vault backup: 2025-03-14 16:09:36
This commit is contained in:
parent
c66e41041e
commit
8310c43857
3
.obsidian/community-plugins.json
vendored
3
.obsidian/community-plugins.json
vendored
@ -2,5 +2,6 @@
|
|||||||
"copilot",
|
"copilot",
|
||||||
"obsidian-git",
|
"obsidian-git",
|
||||||
"smart-connections",
|
"smart-connections",
|
||||||
"obsidian-excalidraw-plugin"
|
"obsidian-excalidraw-plugin",
|
||||||
|
"obsidian-icon-folder"
|
||||||
]
|
]
|
37
.obsidian/plugins/copilot/data.json
vendored
37
.obsidian/plugins/copilot/data.json
vendored
@ -38,12 +38,25 @@
|
|||||||
"maxSourceChunks": 3,
|
"maxSourceChunks": 3,
|
||||||
"groqApiKey": "",
|
"groqApiKey": "",
|
||||||
"activeModels": [
|
"activeModels": [
|
||||||
|
{
|
||||||
|
"name": "copilot-plus-flash",
|
||||||
|
"provider": "copilot-plus",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "gpt-4o",
|
"name": "gpt-4o",
|
||||||
"provider": "openai",
|
"provider": "openai",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
],
|
||||||
"baseUrl": "",
|
"baseUrl": "",
|
||||||
"apiKey": ""
|
"apiKey": ""
|
||||||
},
|
},
|
||||||
@ -53,6 +66,9 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
],
|
||||||
"baseUrl": "",
|
"baseUrl": "",
|
||||||
"apiKey": ""
|
"apiKey": ""
|
||||||
},
|
},
|
||||||
@ -62,6 +78,9 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
],
|
||||||
"baseUrl": "",
|
"baseUrl": "",
|
||||||
"apiKey": ""
|
"apiKey": ""
|
||||||
},
|
},
|
||||||
@ -95,13 +114,24 @@
|
|||||||
"isEmbeddingModel": true,
|
"isEmbeddingModel": true,
|
||||||
"core": true
|
"core": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "copilot-plus-large",
|
||||||
|
"provider": "copilot-plus-jina",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"isEmbeddingModel": true,
|
||||||
|
"core": true,
|
||||||
|
"believerExclusive": true,
|
||||||
|
"dimensions": 1024
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "copilot-plus-multilingual",
|
"name": "copilot-plus-multilingual",
|
||||||
"provider": "copilot-plus-jina",
|
"provider": "copilot-plus-jina",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"isEmbeddingModel": true,
|
"isEmbeddingModel": true,
|
||||||
"core": true
|
"core": true,
|
||||||
|
"dimensions": 512
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "text-embedding-3-small",
|
"name": "text-embedding-3-small",
|
||||||
@ -189,5 +219,8 @@
|
|||||||
"name": "Change tone of selection"
|
"name": "Change tone of selection"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"promptUsageTimestamps": {}
|
"promptUsageTimestamps": {},
|
||||||
|
"embeddingRequestsPerMin": 90,
|
||||||
|
"embeddingBatchSize": 16,
|
||||||
|
"isPlusUser": false
|
||||||
}
|
}
|
172214
.obsidian/plugins/copilot/main.js
vendored
172214
.obsidian/plugins/copilot/main.js
vendored
File diff suppressed because one or more lines are too long
2
.obsidian/plugins/copilot/manifest.json
vendored
2
.obsidian/plugins/copilot/manifest.json
vendored
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "copilot",
|
"id": "copilot",
|
||||||
"name": "Copilot",
|
"name": "Copilot",
|
||||||
"version": "2.7.15",
|
"version": "2.8.7",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "An AI Copilot in Obsidian.",
|
"description": "An AI Copilot in Obsidian.",
|
||||||
"author": "Logan Yang",
|
"author": "Logan Yang",
|
||||||
|
2
.obsidian/plugins/copilot/styles.css
vendored
2
.obsidian/plugins/copilot/styles.css
vendored
File diff suppressed because one or more lines are too long
@ -100,7 +100,7 @@
|
|||||||
"library2": {
|
"library2": {
|
||||||
"type": "excalidrawlib",
|
"type": "excalidrawlib",
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.7.5",
|
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.9.2",
|
||||||
"libraryItems": []
|
"libraryItems": []
|
||||||
},
|
},
|
||||||
"imageElementNotice": true,
|
"imageElementNotice": true,
|
||||||
@ -112,10 +112,11 @@
|
|||||||
"mdCSS": "",
|
"mdCSS": "",
|
||||||
"scriptEngineSettings": {},
|
"scriptEngineSettings": {},
|
||||||
"defaultTrayMode": true,
|
"defaultTrayMode": true,
|
||||||
"previousRelease": "2.7.5",
|
"previousRelease": "2.9.2",
|
||||||
"showReleaseNotes": true,
|
"showReleaseNotes": true,
|
||||||
"showNewVersionNotification": true,
|
"showNewVersionNotification": true,
|
||||||
"latexBoilerplate": "\\color{blue}",
|
"latexBoilerplate": "\\color{blue}",
|
||||||
|
"latexPreambleLocation": "preamble.sty",
|
||||||
"taskboneEnabled": false,
|
"taskboneEnabled": false,
|
||||||
"taskboneAPIkey": "",
|
"taskboneAPIkey": "",
|
||||||
"pinnedScripts": [],
|
"pinnedScripts": [],
|
||||||
@ -785,5 +786,14 @@
|
|||||||
"key": "G"
|
"key": "G"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"showSplashscreen": true
|
"showSplashscreen": true,
|
||||||
|
"pdfSettings": {
|
||||||
|
"pageSize": "A4",
|
||||||
|
"pageOrientation": "portrait",
|
||||||
|
"fitToPage": 1,
|
||||||
|
"paperColor": "white",
|
||||||
|
"customPaperColor": "#ffffff",
|
||||||
|
"alignment": "center",
|
||||||
|
"margin": "normal"
|
||||||
|
}
|
||||||
}
|
}
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-excalidraw-plugin",
|
"id": "obsidian-excalidraw-plugin",
|
||||||
"name": "Excalidraw",
|
"name": "Excalidraw",
|
||||||
"version": "2.7.5",
|
"version": "2.9.2",
|
||||||
"minAppVersion": "1.1.6",
|
"minAppVersion": "1.1.6",
|
||||||
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
||||||
"author": "Zsolt Viczian",
|
"author": "Zsolt Viczian",
|
||||||
|
File diff suppressed because one or more lines are too long
170
.obsidian/plugins/obsidian-git/main.js
vendored
170
.obsidian/plugins/obsidian-git/main.js
vendored
File diff suppressed because one or more lines are too long
2
.obsidian/plugins/obsidian-git/manifest.json
vendored
2
.obsidian/plugins/obsidian-git/manifest.json
vendored
@ -6,5 +6,5 @@
|
|||||||
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||||
"version": "2.31.1"
|
"version": "2.32.0"
|
||||||
}
|
}
|
||||||
|
38
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
38
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"migrated": 6,
|
||||||
|
"iconPacksPath": ".obsidian/icons",
|
||||||
|
"fontSize": 16,
|
||||||
|
"emojiStyle": "native",
|
||||||
|
"iconColor": null,
|
||||||
|
"recentlyUsedIcons": [
|
||||||
|
"🧑🏫",
|
||||||
|
"📚",
|
||||||
|
"LiCoffee"
|
||||||
|
],
|
||||||
|
"recentlyUsedIconsSize": 5,
|
||||||
|
"rules": [],
|
||||||
|
"extraMargin": {
|
||||||
|
"top": 0,
|
||||||
|
"right": 4,
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0
|
||||||
|
},
|
||||||
|
"iconInTabsEnabled": false,
|
||||||
|
"iconInTitleEnabled": false,
|
||||||
|
"iconInTitlePosition": "above",
|
||||||
|
"iconInFrontmatterEnabled": false,
|
||||||
|
"iconInFrontmatterFieldName": "icon",
|
||||||
|
"iconColorInFrontmatterFieldName": "iconColor",
|
||||||
|
"iconsBackgroundCheckEnabled": false,
|
||||||
|
"iconsInNotesEnabled": true,
|
||||||
|
"iconsInLinksEnabled": true,
|
||||||
|
"iconIdentifier": ":",
|
||||||
|
"lucideIconPackType": "native",
|
||||||
|
"debugMode": false,
|
||||||
|
"useInternalPlugins": false
|
||||||
|
},
|
||||||
|
"InterestingStuffs": "LiCoffee",
|
||||||
|
"力学书籍": "📚",
|
||||||
|
"补课": "🧑🏫"
|
||||||
|
}
|
7158
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
7158
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-icon-folder",
|
||||||
|
"name": "Iconize",
|
||||||
|
"version": "2.14.7",
|
||||||
|
"minAppVersion": "0.9.12",
|
||||||
|
"description": "Add icons to anything you desire in Obsidian, including files, folders, and text.",
|
||||||
|
"author": "Florian Woelki",
|
||||||
|
"authorUrl": "https://florianwoelki.com/",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
120
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
120
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
.iconize-inline-title-wrapper {
|
||||||
|
width: var(--line-width);
|
||||||
|
max-width: var(--max-width);
|
||||||
|
margin-inline: var(--content-margin);
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-title-icon {
|
||||||
|
max-width: var(--max-width);
|
||||||
|
margin-right: var(--size-4-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-icon-in-link {
|
||||||
|
transform: translateY(20%);
|
||||||
|
margin-right: var(--size-2-2);
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-icon {
|
||||||
|
border: 1px solid transparent;
|
||||||
|
margin: 0px 4px 0px 0px;
|
||||||
|
display: flex;
|
||||||
|
align-self: center;
|
||||||
|
margin: auto 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-folder-title,
|
||||||
|
.nav-file-title {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-setting input[type='color'] {
|
||||||
|
margin: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-modal.prompt-results {
|
||||||
|
margin: 0;
|
||||||
|
overflow-y: auto;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt .iconize-subheadline {
|
||||||
|
margin-top: 12px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: gray;
|
||||||
|
grid-column-start: 1;
|
||||||
|
grid-column-end: 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.iconize-modal.prompt-results {
|
||||||
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
.prompt .iconize-subheadline {
|
||||||
|
grid-column-end: 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-modal.prompt-results .suggestion-item {
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column-reverse;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 13px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
padding: 16px 8px;
|
||||||
|
line-break: auto;
|
||||||
|
word-break: break-word;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-modal.prompt-results .suggestion-item.suggestion-item__center {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-icon-preview {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-icon-preview img {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-icon-preview svg {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
color: currentColor;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-dragover {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-dragover-el {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
color: var(--text-normal);
|
||||||
|
background-color: var(--background-secondary-alt);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom rule modal. */
|
||||||
|
.iconize-custom-modal .modal-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconize-custom-modal .modal-content input {
|
||||||
|
width: 100%;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
@ -21,5 +21,5 @@
|
|||||||
"show_full_path": false,
|
"show_full_path": false,
|
||||||
"expanded_view": true,
|
"expanded_view": true,
|
||||||
"language": "en",
|
"language": "en",
|
||||||
"version": "2.3.47"
|
"version": "2.5.4"
|
||||||
}
|
}
|
17935
.obsidian/plugins/smart-connections/main.js
vendored
17935
.obsidian/plugins/smart-connections/main.js
vendored
File diff suppressed because one or more lines are too long
@ -6,5 +6,5 @@
|
|||||||
"minAppVersion": "1.1.0",
|
"minAppVersion": "1.1.0",
|
||||||
"authorUrl": "https://wfhbrian.com",
|
"authorUrl": "https://wfhbrian.com",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"version": "2.3.47"
|
"version": "2.5.4"
|
||||||
}
|
}
|
25
.obsidian/plugins/smart-connections/styles.css
vendored
25
.obsidian/plugins/smart-connections/styles.css
vendored
@ -204,6 +204,7 @@
|
|||||||
|
|
||||||
.sc-chat-name-input {
|
.sc-chat-name-input {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
min-width: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -616,6 +617,7 @@
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
font-size: var(--font-smallest);
|
font-size: var(--font-smallest);
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: var(--background-secondary-hover);
|
background-color: var(--background-secondary-hover);
|
||||||
@ -794,6 +796,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
.setting-item {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -966,3 +972,22 @@ div.workspace-leaf-content[data-type^="smart-"] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sc-inline-confirm-row {
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 6px;
|
||||||
|
border: 1px solid var(--interactive-normal);
|
||||||
|
}
|
||||||
|
.sc-inline-confirm-row-buttons {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
& .sc-inline-confirm-yes {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
& .sc-inline-confirm-cancel {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
@ -31,21 +31,121 @@ Steady state parameters
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
BEMSolve(twist) --> phi、Pn、Pt
|
|
||||||
|
|
||||||
Solve_along_blade(V, omega) -> Cp、Power、Thrust
|
# 转速、变桨算法
|
||||||
|
|
||||||
|
|
||||||
aoa = phi - twist
|
输入:
|
||||||
|
- 风速 3, 25, 0.1
|
||||||
|
- 转速min(rpm)
|
||||||
|
- 转速max(rpm)
|
||||||
|
|
||||||
new_twist = twist + pitch_angle
|
1、算Cp-lambda -> Cpmax + 对应lambda
|
||||||
|
2、根据追踪最佳cp方法,得到3-25,每个风速对应的转速
|
||||||
|
```python
|
||||||
|
# 根据转速上下界,找到风速上下界 rpm -> deg
|
||||||
|
omegalb = self.omega_rpmlb * 2 * np.pi / 60
|
||||||
|
omegaub = self.omega_rpmub * 2 * np.pi / 60
|
||||||
|
|
||||||
|
# 根据relalabmda_R找到风速上下界,在此风速范围内可以追踪最佳Cp
|
||||||
|
V0lb = omegalb * self.RPlusHub / relalabmda_R
|
||||||
|
V0ub = omegaub * self.RPlusHub / relalabmda_R
|
||||||
|
|
||||||
|
for V in self.v_w:
|
||||||
|
# self.v_w 风速序列 3, 25, 0.1
|
||||||
|
|
||||||
delta_pitch_anlge - >
|
# 形成转速规律
|
||||||
|
|
||||||
|
if V < V0lb:
|
||||||
|
|
||||||
0
|
# 转速为最小转速
|
||||||
0 + 1
|
|
||||||
0 + 1 + 1
|
|
||||||
|
|
||||||
19.006
|
append(omegalb)
|
||||||
|
|
||||||
|
elif V > V0ub:
|
||||||
|
|
||||||
|
# 转速为最大转速
|
||||||
|
|
||||||
|
append(omegaub)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
# 转速为最大Cp对应的转速
|
||||||
|
|
||||||
|
append(relalabmda_R * V / self.RPlusHub)
|
||||||
|
|
||||||
|
self.omega_list = omega_list
|
||||||
|
```
|
||||||
|
|
||||||
|
3、遍历速度
|
||||||
|
```python
|
||||||
|
for i in range(self.numv_w):
|
||||||
|
|
||||||
|
V = np.round(self.v_w[i], 3)
|
||||||
|
|
||||||
|
omega = self.omega_list[i]
|
||||||
|
|
||||||
|
Cp, CThrust, Power, Thrust, Mxy = self.SolveAlongBlade(V, omega) #对整只叶片解BEM
|
||||||
|
|
||||||
|
if Power > self.Rated_P: # 达到额定风速了,开始变桨
|
||||||
|
min_angle = 0
|
||||||
|
|
||||||
|
max_angle = 90
|
||||||
|
|
||||||
|
init_pitch_angle = pitch_angle[i-1] # 从前一步变桨角度开始
|
||||||
|
|
||||||
|
tolerance = 0.01
|
||||||
|
|
||||||
|
max_iterations = 1000
|
||||||
|
error = Power - self.Rated_P
|
||||||
|
print(f"Iteration {0}: pitch_angle={init_pitch_angle}, Power={Power}, Error={error}")
|
||||||
|
|
||||||
|
delta_pitch_angle = compute_delta_pitch(Power, self.Rated_P, 0.05)
|
||||||
|
# 我直接把delta变桨角度加到扭角里了
|
||||||
|
self.Twist += np.full((self.SectionNum,), delta_pitch_angle)
|
||||||
|
|
||||||
|
total_pitch_angle = init_pitch_angle + delta_pitch_angle
|
||||||
|
|
||||||
|
# 开始迭代
|
||||||
|
for iteration in range(max_iterations):
|
||||||
|
Cp, CThrust, Power, Thrust, Mxy = self.SolveAlongBlade(V, omega)
|
||||||
|
error = Power - self.Rated_P
|
||||||
|
|
||||||
|
if abs(error) < tolerance:
|
||||||
|
Power_re[i] = Power
|
||||||
|
self.V0 = V
|
||||||
|
Thrust_re[i] = Thrust
|
||||||
|
Mxy_re[i] = Mxy
|
||||||
|
Cp_re[i] = Cp
|
||||||
|
pitch_angle[i] = total_pitch_angle
|
||||||
|
iteration_step[i] = iteration + 1
|
||||||
|
break
|
||||||
|
|
||||||
|
else:
|
||||||
|
delta_pitch_angle = compute_delta_pitch(Power, self.Rated_P, 0.05)
|
||||||
|
total_pitch_angle = total_pitch_angle + delta_pitch_angle
|
||||||
|
|
||||||
|
# 约束检查
|
||||||
|
if total_pitch_angle < min_angle:
|
||||||
|
total_pitch_angle = min_angle
|
||||||
|
elif total_pitch_angle > max_angle:
|
||||||
|
total_pitch_angle = max_angle
|
||||||
|
self.Twist += np.full((self.SectionNum,), delta_pitch_angle)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
Power_re[i] = Power
|
||||||
|
Thrust_re[i] = Thrust
|
||||||
|
Mxy_re[i] = Mxy
|
||||||
|
Cp_re[i] = Cp
|
||||||
|
pitch_angle[i] = 0
|
||||||
|
iteration_step[i] = 0
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
def compute_delta_pitch(current_power, target_power, sensitivity):
|
||||||
|
|
||||||
|
delta = (current_power - target_power) * sensitivity
|
||||||
|
|
||||||
|
return delta
|
||||||
|
```
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"nodes":[
|
"nodes":[
|
||||||
{"id":"b698e88ca5fb9c51","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情,它们是完成OKR的保障。\n\n\n效率状态 green","x":-96,"y":80,"width":456,"height":347},
|
{"id":"b698e88ca5fb9c51","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情,它们是完成OKR的保障。\n\n\n效率状态 green","x":-96,"y":80,"width":456,"height":347},
|
||||||
{"id":"58be7961ae7275a7","type":"text","text":"# 计划\n这周要做的3~5件重要的事情,这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\nP1 多体原理学习 YouTube课程 ing\nP1 根据公共mesh模块调整代码\nP1 气动模块联合调试,跑通 no\nP1 梳理Steady Operational Load计算条件,方法及输出结果,确定变桨角度技术路线\nP1 反序列化\n\n","x":-620,"y":-307,"width":450,"height":347},
|
{"id":"58be7961ae7275a7","type":"text","text":"# 计划\n这周要做的3~5件重要的事情,这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\nP1 多体原理学习 YouTube课程 014\nP1 根据公共mesh模块调整代码 no\nP1 气动模块联合调试,跑通 no\nP1 稳态工况多体动力学求解方法\n\n","x":-620,"y":-307,"width":450,"height":347},
|
||||||
{"id":"2b068bfe5df15a72","type":"text","text":"# 目标:多体动力学模块完善\n### 每周盘点一下它们\n\n\n关键结果:建模原理、建模方法掌握 (6.5/10)\n\n关键结果:对标Bladed模块完成 (6.5/10)\n\n关键结果:风机多体动力学文献调研情况完成 (5/10)","x":-96,"y":-307,"width":456,"height":347},
|
{"id":"2b068bfe5df15a72","type":"text","text":"# 目标:多体动力学模块完善\n### 每周盘点一下它们\n\n\n关键结果:建模原理、建模方法掌握 (6.7/10)\n\n关键结果:对标Bladed模块完成 (7/10)\n\n关键结果:风机多体动力学文献调研情况完成 (5/10)","x":-96,"y":-307,"width":456,"height":347},
|
||||||
{"id":"01ee5c157d0deeae","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-620,"y":80,"width":456,"height":347}
|
{"id":"01ee5c157d0deeae","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-620,"y":80,"width":456,"height":347}
|
||||||
],
|
],
|
||||||
"edges":[]
|
"edges":[]
|
||||||
|
BIN
工作总结/周报/周报68-郭翼泽-1.docx
Normal file
BIN
工作总结/周报/周报68-郭翼泽-1.docx
Normal file
Binary file not shown.
Binary file not shown.
45
补课/多体动力学/14_inertia.ipynb
Normal file
45
补课/多体动力学/14_inertia.ipynb
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import sympy as sm\n",
|
||||||
|
"import sympy.physics.mechanics as me\n",
|
||||||
|
"me.init_vprinting()\n",
|
||||||
|
"\n",
|
||||||
|
"A = me.ReferenceFrame('A')\n",
|
||||||
|
"B = me.ReferenceFrame('B')\n",
|
||||||
|
"\n",
|
||||||
|
"theta = me.dynamicsymbols('theta')\n",
|
||||||
|
"\n",
|
||||||
|
"B.orient_axis(A, theta, A.y)\n",
|
||||||
|
"\n",
|
||||||
|
"Q = 3*me.outer(B.x, A.z) + 4*me.outer(A.x, A.x) + 6*me.outer(A.z, B.z)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "TagUIFocus5",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.12.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 2
|
||||||
|
}
|
22
补课/多体动力学/14_inertia.py
Normal file
22
补课/多体动力学/14_inertia.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import sympy as sm
|
||||||
|
import sympy.physics.mechanics as me
|
||||||
|
me.init_vprinting()
|
||||||
|
|
||||||
|
A = me.ReferenceFrame('A')
|
||||||
|
B = me.ReferenceFrame('B')
|
||||||
|
|
||||||
|
theta = me.dynamicsymbols('theta')
|
||||||
|
|
||||||
|
B.orient_axis(A, theta, A.y)
|
||||||
|
|
||||||
|
Q = 3*me.outer(B.x, A.z) + 4*me.outer(A.x, A.x) + 6*me.outer(A.z, B.z)
|
||||||
|
|
||||||
|
print(Q)
|
||||||
|
|
||||||
|
print(Q.express(A))
|
||||||
|
|
||||||
|
print(Q.express(B))
|
||||||
|
|
||||||
|
print(Q.to_matrix(A))
|
||||||
|
|
||||||
|
print(Q.to_matrix(B))
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user