260209
This commit is contained in:
parent
f344174ddb
commit
a392054e47
@ -5,3 +5,5 @@ git clone xxx.git
|
|||||||
git remote -v 显示仓库地址
|
git remote -v 显示仓库地址
|
||||||
|
|
||||||
git remote set-url origin 新的仓库地址
|
git remote set-url origin 新的仓库地址
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
246
多体+耦合求解器/多体+水动HD+系泊MD.md
Normal file
246
多体+耦合求解器/多体+水动HD+系泊MD.md
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
|
||||||
|
# 配置文件
|
||||||
|
|
||||||
|
- 配置文件新增MD和MD输入文件路径,加在气动后 done
|
||||||
|
- 新增p_fast.comp_mooring done
|
||||||
|
|
||||||
|
|
||||||
|
# init HD MD初始化
|
||||||
|
|
||||||
|
对照FAST_subs.f90 774行附近
|
||||||
|
```fortran
|
||||||
|
IF ( p_FAST%CompHydro == Module_HD ) THEN
|
||||||
|
```
|
||||||
|
对照FAST_subs.f90 919行附近
|
||||||
|
```fortran
|
||||||
|
! initialize CompMooring modules
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
**补充代码** coupled_solver_sub.rs
|
||||||
|
```rust
|
||||||
|
pub fn fast_init_with_yaml(){}
|
||||||
|
if p_fast.comp_hydro == 1 {
|
||||||
|
to be done
|
||||||
|
}
|
||||||
|
|
||||||
|
if p_fast.comp_mooring == 1{
|
||||||
|
to be done
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
模型文件路径data\HEROWIND_models\NREL_5MW_OC4Semi\
|
||||||
|
配置文件Herowind_NREL5MW_ppl_hdmd_calc_config.yaml中气动,控制,HD MD绝对路径需按需修改
|
||||||
|
|
||||||
|
路径使用示例代码:
|
||||||
|
配置文件参数
|
||||||
|
```rust
|
||||||
|
calc_config.hydrofile.hydro_input_file
|
||||||
|
calc_config.mooringfile.mooring_input_file
|
||||||
|
```
|
||||||
|
|
||||||
|
代码
|
||||||
|
```rust
|
||||||
|
|
||||||
|
// 1 获取运行程序exe所在的路径
|
||||||
|
let exe_path: PathBuf = env::current_exe()
|
||||||
|
|
||||||
|
.expect("Unable to get current executable path");
|
||||||
|
|
||||||
|
let exe_dir = exe_path
|
||||||
|
|
||||||
|
.parent()
|
||||||
|
|
||||||
|
.expect("Executable must have a parent directory");
|
||||||
|
|
||||||
|
// 2 路径拼接
|
||||||
|
let dll_path = &calc_config.controller_input.dll_path;
|
||||||
|
|
||||||
|
let dll_full_path = exe_dir.join(dll_path);
|
||||||
|
|
||||||
|
let dll_full_path_str: &str = dll_full_path.to_str().expect("proxy_path is not valid UTF‑8");
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## InitModuleMappings
|
||||||
|
|
||||||
|
mapping code
|
||||||
|
```fortran
|
||||||
|
if (p_FAST%CompElast == Module_ED) then
|
||||||
|
NumBl = SIZE(ED%y%BladeRootMotion,1)
|
||||||
|
PlatformMotion => ED%y%PlatformPtMesh
|
||||||
|
PlatformLoads => ED%Input(1)%PlatformPtMesh
|
||||||
|
|
||||||
|
SubstructureMotion2HD => ED%y%PlatformPtMesh
|
||||||
|
SubstructureMotion => ED%y%PlatformPtMesh
|
||||||
|
SubstructureLoads => ED%Input(1)%PlatformPtMesh
|
||||||
|
|
||||||
|
IF ( SrvD%Input(1)%PtfmMotionMesh%Committed ) THEN
|
||||||
|
CALL MeshMapCreate( PlatformMotion, SrvD%Input(1)%PtfmMotionMesh, MeshMapData%ED_P_2_SrvD_P_P, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':ED_P_2_SrvD_P_P' )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF ( p_FAST%CompHydro == Module_HD ) THEN ! HydroDyn-{ElastoDyn or SubDyn}
|
||||||
|
|
||||||
|
! Regardless of the offshore configuration, ED platform motions will be mapped to the PRPMesh of HD
|
||||||
|
! we're just going to assume PlatformLoads and PlatformMotion are committed
|
||||||
|
CALL MeshMapCreate( PlatformMotion, HD%Input(1)%PRPMesh, MeshMapData%ED_P_2_HD_PRP_P, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':ED_P_2_HD_PRP_P' )
|
||||||
|
|
||||||
|
IF ( HD%y%WAMITMesh%Committed ) THEN ! meshes for floating
|
||||||
|
! HydroDyn WAMIT point mesh to/from ElastoDyn or SD point mesh
|
||||||
|
CALL MeshMapCreate( HD%y%WAMITMesh, SubstructureLoads, MeshMapData%HD_W_P_2_SubStructure, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':HD_W_P_2_SubStructure' )
|
||||||
|
CALL MeshMapCreate( SubstructureMotion2HD, HD%Input(1)%WAMITMesh, MeshMapData%SubStructure_2_HD_W_P, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':SubStructure_2_HD_W_P' )
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF ( HD%Input(1)%Morison%Mesh%Committed ) THEN
|
||||||
|
CALL MeshMapCreate( HD%y%Morison%Mesh, SubstructureLoads, MeshMapData%HD_M_P_2_SubStructure, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':HD_M_P_2_SubStructure' )
|
||||||
|
CALL MeshMapCreate( SubstructureMotion2HD, HD%Input(1)%Morison%Mesh, MeshMapData%SubStructure_2_HD_M_P, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':SubStructure_2_HD_M_P' )
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF ( p_FAST%CompMooring == Module_MD ) THEN
|
||||||
|
!-------------------------
|
||||||
|
! SubDyn/ElastoDyn <-> MoorDyn
|
||||||
|
!-------------------------
|
||||||
|
! MoorDyn point mesh to/from SubDyn or ElastoDyn point mesh
|
||||||
|
CALL MeshMapCreate( MD%y%CoupledLoads(1), SubstructureLoads, MeshMapData%Mooring_2_Structure, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':Mooring_2_Structure' )
|
||||||
|
CALL MeshMapCreate( SubstructureMotion, MD%Input(1)%CoupledKinematics(1), MeshMapData%Structure_2_Mooring, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':Structure_2_Mooring' )
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF ( p_FAST%SolveOption == Solve_SimplifiedOpt1 ) THEN
|
||||||
|
CALL AllocAry( MeshMapData%Jacobian_Opt1, SizeJac_ED_HD, SizeJac_ED_HD, 'Jacobian for Ptfm-HD coupling', ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
|
||||||
|
|
||||||
|
IF ( ALLOCATED( MeshMapData%Jacobian_Opt1 ) ) THEN
|
||||||
|
CALL AllocAry( MeshMapData%Jacobian_pivot, SIZE(MeshMapData%Jacobian_Opt1), 'Pivot array for Jacobian LU decomposition', ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
|
||||||
|
END IF
|
||||||
|
|
||||||
|
|
||||||
|
CALL ResetRemapFlags(p_FAST, ED, SED, BD, AD, ExtLd, HD, SD, ExtPtfm, SrvD, MAPp, FEAM, MD, Orca, IceF, IceD )
|
||||||
|
|
||||||
|
CALL MeshCopy ( ED%Input(1)%HubPtLoad, MeshMapData%u_ED_HubPtLoad, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':u_ED_HubPtLoad' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( SubStructureLoads, MeshMapData%SubstructureLoads_Tmp, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':SubstructureLoads_Tmp' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( SubStructureLoads, MeshMapData%SubstructureLoads_Tmp2, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':SubstructureLoads_Tmp2' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( PlatformLoads, MeshMapData%PlatformLoads_Tmp, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':PlatformLoads_Tmp' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( PlatformLoads, MeshMapData%PlatformLoads_Tmp2, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':PlatformLoads_Tmp2' )
|
||||||
|
|
||||||
|
|
||||||
|
IF ( p_FAST%CompHydro == Module_HD ) THEN
|
||||||
|
|
||||||
|
!TODO: GJH Is this needed, I created it as a place holder, 5/11/2020
|
||||||
|
!CALL MeshCopy ( HD%Input(1)%PRPMesh, MeshMapData%u_HD_PRP_Mesh, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
! CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':u_HD_PRP_Mesh' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( HD%Input(1)%WAMITMesh, MeshMapData%u_HD_W_Mesh, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':u_HD_W_Mesh' )
|
||||||
|
|
||||||
|
CALL MeshCopy ( HD%Input(1)%Morison%Mesh, MeshMapData%u_HD_M_Mesh, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName//':u_HD_M_Mesh' )
|
||||||
|
|
||||||
|
END IF
|
||||||
|
|
||||||
|
END SUBROUTINE InitModuleMappings
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### SUBROUTINE ResetRemapFlags
|
||||||
|
|
||||||
|
```fortran
|
||||||
|
IF ( p_FAST%CompHydro == Module_HD ) THEN
|
||||||
|
HD%Input(1)%PRPMesh%RemapFlag = .FALSE.
|
||||||
|
IF (HD%Input(1)%WAMITMesh%Committed) THEN
|
||||||
|
HD%Input(1)%WAMITMesh%RemapFlag = .FALSE.
|
||||||
|
HD%y%WAMITMesh%RemapFlag = .FALSE.
|
||||||
|
END IF
|
||||||
|
IF (HD%Input(1)%Morison%Mesh%Committed) THEN
|
||||||
|
HD%Input(1)%Morison%Mesh%RemapFlag = .FALSE.
|
||||||
|
HD%y%Morison%Mesh%RemapFlag = .FALSE.
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF ( p_FAST%CompMooring == Module_MD ) THEN
|
||||||
|
MD%Input(1)%CoupledKinematics(1)%RemapFlag = .FALSE.
|
||||||
|
MD%y%CoupledLoads(1)%RemapFlag = .FALSE.
|
||||||
|
```
|
||||||
|
|
||||||
|
# solution t0
|
||||||
|
|
||||||
|
```fortran
|
||||||
|
if ( P_FAST%CompSeaSt == Module_SeaSt .and. y_FAST%WriteThisStep) then
|
||||||
|
! note: SeaState has no inputs and only calculates WriteOutputs, so we don't need to call CalcOutput unless we are writing to the file
|
||||||
|
call SeaSt_CalcOutput( t_initial, SeaSt%u, SeaSt%p, SeaSt%x(1), SeaSt%xd(1), SeaSt%z(1), SeaSt%OtherSt(1), SeaSt%y, SeaSt%m, ErrStat2, ErrMsg2 )
|
||||||
|
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
|
||||||
|
end if
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## CALL CalcOutputs_And_SolveForInputs()
|
||||||
|
|
||||||
|
|
||||||
|
### solver_option_2(基本没变化)后
|
||||||
|
|
||||||
|
新增 transfer_ServD_to_SD_MD
|
||||||
|
传递u_MD%DeltaL = y_SrvD%CableDeltaL 和 u_MD%DeltaLdot = y_SrvD%CableDeltaLdot
|
||||||
|
|
||||||
|
|
||||||
|
新增CALL Transfer_Structure_to_Opt1Inputs()
|
||||||
|
|
||||||
|
### Transfer_Structure_to_Opt1Inputs()
|
||||||
|
|
||||||
|
```fortran
|
||||||
|
PlatformMotion => y_ED%PlatformPtMesh
|
||||||
|
|
||||||
|
|
||||||
|
IF (p_FAST%CompSub == Module_SD) THEN
|
||||||
|
SubstructureMotion => SD%y%y3Mesh
|
||||||
|
SubstructureMotion2HD => SD%y%y2Mesh
|
||||||
|
ELSE
|
||||||
|
SubstructureMotion => PlatformMotion
|
||||||
|
SubstructureMotion2HD => PlatformMotion
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF ( p_FAST%CompHydro == Module_HD ) THEN
|
||||||
|
|
||||||
|
CALL Transfer_Point_to_Point( PlatformMotion, u_HD%PRPMesh, MeshMapData%ED_P_2_HD_PRP_P, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat(ErrStat2,ErrMsg2,ErrStat, ErrMsg, RoutineName//' (u_HD%PRPMesh)' )
|
||||||
|
|
||||||
|
! if we don't have a call to SD_CalcOutput, we need to check that p_FAST%CompSub /= Module_SD before this:
|
||||||
|
! IF (p_FAST%CompSub /= Module_SD) THEN
|
||||||
|
CALL Transfer_SubStructureMotion_to_HD( SubstructureMotion2HD, u_HD%WAMITMesh, u_HD%Morison%Mesh, MeshMapData, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat(ErrStat2,ErrMsg2, ErrStat, ErrMsg, RoutineName)
|
||||||
|
!END IF ! don't transfer for SubDyn unless we have called SD_CalcOutput
|
||||||
|
|
||||||
|
END IF
|
||||||
|
|
||||||
|
ELSEIF ( p_FAST%CompMooring == Module_MD ) THEN
|
||||||
|
! motions:
|
||||||
|
CALL Transfer_Point_to_Point( SubstructureMotion, u_MD%CoupledKinematics(1), MeshMapData%Structure_2_Mooring, ErrStat2, ErrMsg2 )
|
||||||
|
CALL SetErrStat(ErrStat2,ErrMsg2,ErrStat, ErrMsg,RoutineName//'u_MD%CoupledKinematics' )
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### solveoption1
|
||||||
|
|
||||||
|
CALL MD_CalcOutput
|
||||||
@ -3,12 +3,13 @@
|
|||||||
{"id":"8359617e1edc48ba","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情,它们是完成OKR的保障。\n\n\n效率状态 green","x":-76,"y":-306,"width":456,"height":347},
|
{"id":"8359617e1edc48ba","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情,它们是完成OKR的保障。\n\n\n效率状态 green","x":-76,"y":-306,"width":456,"height":347},
|
||||||
{"id":"a4eaccbbfadaaf17","type":"text","text":"# 目标:\n多体模块完善 线性化模块开发\n### 每周盘点一下它们\n\n\n关键结果:机组整机线性化模块开发 (6/10)\n\n关键结果:叶片、塔架station结果输出功能开发 (0/10)\n关键结果:整机瞬态仿真初始化功能改进 (0/10)\n关键结果:dlc2.x剩余故障工况建模及开发(0/10)\n关键结果:针对软件认证所需输出变量完善输出功能(0/10)\n","x":-76,"y":-803,"width":456,"height":457},
|
{"id":"a4eaccbbfadaaf17","type":"text","text":"# 目标:\n多体模块完善 线性化模块开发\n### 每周盘点一下它们\n\n\n关键结果:机组整机线性化模块开发 (6/10)\n\n关键结果:叶片、塔架station结果输出功能开发 (0/10)\n关键结果:整机瞬态仿真初始化功能改进 (0/10)\n关键结果:dlc2.x剩余故障工况建模及开发(0/10)\n关键结果:针对软件认证所需输出变量完善输出功能(0/10)\n","x":-76,"y":-803,"width":456,"height":457},
|
||||||
{"id":"d2c5e076ba6cf7d7","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-600,"y":-306,"width":456,"height":347},
|
{"id":"d2c5e076ba6cf7d7","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-600,"y":-306,"width":456,"height":347},
|
||||||
{"id":"82708a439812fdc7","type":"text","text":"# 1月已完成\n\n\n\nP1 检查有没有塔筒上所有部件合并计算质量、质心、惯性参数 -- done仅有合并质量\n\nP1 明阳机型验证 \n- 叶片发散 叶片往前位移 原因查找 done -- 刘\n\nP1 明阳机型验证 \n\n- 商业机型模型验证 气动建模有问题\n- 中性轴问题 ED当前不支持预弯叶片计算\n\nP1 机型测试\n- 模型对齐讨论 done\n- 1.4aaa 工况设置问题\n- 明阳、NREL 5MW跑一轮计算\n\nP1 给方方姐回电话 done\n- 商业机型测试有结果后再见面\n- 建议双向了解情况\n\n- 过程+结果,年前 建立信任 现在是副总师了,站位上跟实验室对齐,计划增加王老师从技术角度汇报的渠道\n\nP1 服务器 ing\n- 机架 - 浪潮确定\n- 电源 - 电工给方案,让电工给接线 done\n- 超聚变 - 装系统done\n\nP1 检查误差较大的载荷,首先确保与Bladed同坐标系输出\n- 载荷传递方式,叶根、轮毂部件力和力矩计算方法研究\n\n\n","x":-220,"y":134,"width":440,"height":560},
|
{"id":"82708a439812fdc7","type":"text","text":"# 1月已完成\n\n\n\nP1 检查有没有塔筒上所有部件合并计算质量、质心、惯性参数 -- done仅有合并质量\n\nP1 明阳机型验证 \n- 叶片发散 叶片往前位移 原因查找 done -- 刘\n\nP1 明阳机型验证 \n\n- 商业机型模型验证 气动建模有问题\n- 中性轴问题 ED当前不支持预弯叶片计算\n\nP1 机型测试\n- 模型对齐讨论 done\n- 1.4aaa 工况设置问题\n- 明阳、NREL 5MW跑一轮计算\n\nP1 给方方姐回电话 done\n- 商业机型测试有结果后再见面\n- 建议双向了解情况\n\n- 过程+结果,年前 建立信任 现在是副总师了,站位上跟实验室对齐,计划增加王老师从技术角度汇报的渠道\n\nP1 服务器 ing\n- 机架 - 浪潮确定\n- 电源 - 电工给方案,让电工给接线 done\n- 超聚变 - 装系统done\n- 超聚变入网 done\n- 四台服务器组局域网 done\n\nP1 检查误差较大的载荷,首先确保与Bladed同坐标系输出\n- 载荷传递方式,叶根、轮毂部件力和力矩计算方法研究\n\nP1 水动联调\n- 组建5mw 多体-水动-系泊耦合openfast算例 done\n- 编写多体-水动-系泊网格点匹配函数 done\n\n","x":-220,"y":134,"width":440,"height":560},
|
||||||
{"id":"505acb3e6b119076","type":"text","text":"# 12月已完成\n\nP1 明阳机型验证\n\n- 商业机型建模 done\n- 正常发电工况对故障工况支持 故障建模 done\n\t- 超速n4 普通超速 多体设fault结构体 \n\t- 卡桨、 控制设fault结构体\n\n- 故障工况检查 done\n- 批量计算更新配置文件,风文件,程序版本,再计算 done\n\nP1 稳态工况init_with_yaml检查 done\n\nP1 前端\n- 所有simulation功能测试及对接 done\n\nP1 演示ppt补充内容 再补充\n- 补充steady operational loads / steady parked loads 缺结果 done\n- 6个算例的跑通 找一个与bladed对比 缺结果 done \n- 内部控制器 pass\n- batch 并行计算 单个工况是否快 多工况并行 暂时不做\n\nP1 前端\n- steady输出的名字改掉 done\n- 批量计算 改成并行计算 功能界面\n- 瞬态计算更新控制器 测试 done\n- 简单内控\n- 比较Bladed与正常发电工况速度,总时间短一点 multicase done\n- 是否需要增加相对路径问题 done\n\nP1 dlc 71 done\n\nP1 输出量更新到Bladed相同命名 done\n\nP1 专利 done\n- 做出solidworks模型,写专利\n\n","x":-700,"y":134,"width":440,"height":560},
|
{"id":"505acb3e6b119076","type":"text","text":"# 12月已完成\n\nP1 明阳机型验证\n\n- 商业机型建模 done\n- 正常发电工况对故障工况支持 故障建模 done\n\t- 超速n4 普通超速 多体设fault结构体 \n\t- 卡桨、 控制设fault结构体\n\n- 故障工况检查 done\n- 批量计算更新配置文件,风文件,程序版本,再计算 done\n\nP1 稳态工况init_with_yaml检查 done\n\nP1 前端\n- 所有simulation功能测试及对接 done\n\nP1 演示ppt补充内容 再补充\n- 补充steady operational loads / steady parked loads 缺结果 done\n- 6个算例的跑通 找一个与bladed对比 缺结果 done \n- 内部控制器 pass\n- batch 并行计算 单个工况是否快 多工况并行 暂时不做\n\nP1 前端\n- steady输出的名字改掉 done\n- 批量计算 改成并行计算 功能界面\n- 瞬态计算更新控制器 测试 done\n- 简单内控\n- 比较Bladed与正常发电工况速度,总时间短一点 multicase done\n- 是否需要增加相对路径问题 done\n\nP1 dlc 71 done\n\nP1 输出量更新到Bladed相同命名 done\n\nP1 专利 done\n- 做出solidworks模型,写专利\n\n","x":-700,"y":134,"width":440,"height":560},
|
||||||
{"id":"30cb7486dc4e224c","type":"text","text":"# 2月已完成\n\n\n","x":260,"y":134,"width":440,"height":560},
|
{"id":"30cb7486dc4e224c","type":"text","text":"# 2月已完成\n\n\n","x":260,"y":134,"width":440,"height":560},
|
||||||
{"id":"c18d25521d773705","type":"text","text":"# 计划\n这周要做的3~5件重要的事情,这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\n\nP2 柔性部件 叶片、塔架变形算法 主线\n- 变形体动力学 简略看看ing\n- 柔性梁弯曲变形振动学习,主线 \n\t- 广义质量 刚度矩阵及含义\n\t\n- 梳理bladed动力学框架\n\t- 子结构文献阅读\n\t- 叶片模型建模 done\n- 共旋方法学习\n- DTU 变形量计算方法学习\n\n\nP1 线性化方法编写 ing\n\n- 开始编写扰动代码\n- 形成系统矩阵-输出矩阵\n\n\n\n\nP1 检查误差较大的载荷,首先确保与Bladed同坐标系输出\n- foundation fz - PFrcT0Trb\n- Foundation Fy\n- Foundation Mz\n- Nacelle fore-aft displacement\n- Blade root 1 Mz\n- Blade root 1 Fy\n\n- 机舱、塔顶、塔底力和力矩\n- 叶根、轮毂、机舱、塔底Herowind、Bladed坐标系对比\n\n\n\nP1 叶素、塔架station输出结果\n\nP1 服务器 ing\n- 超聚变入网\n\n\nP2 初始化方法,找到稳态结果开始\n\nP1 报告更新到0.6版本 ing\n\nP2 bladed对比--稳态运行载荷,产出报告\n- 气动参与模块对比\n- 模态对比 两种描述方法不同,bladed方向更多,x y z deflection, x y z rotation,不好对比\n- 气动对比 aerodynamic info 轴向切向诱导因子,根部,尖部差距较大\n\nP2 yaw 自由度再bug确认 已知原理了\n","x":-597,"y":-803,"width":453,"height":457},
|
{"id":"c18d25521d773705","type":"text","text":"# 计划\n这周要做的3~5件重要的事情,这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\n\nP2 柔性部件 叶片、塔架变形算法 主线\n- 变形体动力学 简略看看ing\n- 柔性梁弯曲变形振动学习,主线 \n\t- 广义质量 刚度矩阵及含义\n\t\n- 梳理bladed动力学框架\n\t- 子结构文献阅读\n\t- 叶片模型建模 done\n- 共旋方法学习\n- DTU 变形量计算方法学习\n\n\nP1 线性化方法编写 ing\n\n- 开始编写扰动代码\n- 形成系统矩阵-输出矩阵\n\n\n\n\nP1 检查误差较大的载荷,首先确保与Bladed同坐标系输出\n- foundation fz - PFrcT0Trb\n- Foundation Fy\n- Foundation Mz\n- Nacelle fore-aft displacement\n- Blade root 1 Mz\n- Blade root 1 Fy\n\n- 机舱、塔顶、塔底力和力矩\n- 叶根、轮毂、机舱、塔底Herowind、Bladed坐标系对比\n\n\n\nP1 叶素、塔架station输出结果\n\n\n\nP1 水动联调\n\n- 控制 网格节点先忽略\n- 梳理多体-水动-系泊耦合方法框架 ing\n- 编写多体-水动-系泊耦合计算函数\n- 稳态求解函数签名更改\n\nP1 叶片高阶模态如何加\n\nP2 初始化方法,找到稳态结果开始\n\nP1 报告更新到0.6版本 ing\n\n\n\nP2 yaw 自由度再bug确认 已知原理了\n","x":-597,"y":-803,"width":453,"height":457},
|
||||||
{"id":"859e6853b7f1b92b","type":"text","text":"年底考核:\n专利\n线性化模块","x":1200,"y":-803,"width":320,"height":110},
|
{"id":"859e6853b7f1b92b","type":"text","text":"年底考核:\n专利\n线性化模块","x":1200,"y":-803,"width":320,"height":110},
|
||||||
{"id":"a850b2f46fa52de7","type":"text","text":"# 25年开发工作\n\n- 对标bladed中steady calculation,开发steady operational loads,steady parked loads任务流程序\n- 设计并开发 YAML 配置文件模块,实现了对 YAML 格式模型文件与配置文件的读取、解析\n- 开发控制模块,并与其他模块耦合,实现对32位、64位dll文件支持,完成变桨与变流器执行器的传递函数模型算法开发\n- 对标bladed中simulations,集成控制模块开发正常发电工况、启机、正常停机、紧急停机、空转、停机功能\n- 开发批量计算模块\n\n","x":800,"y":134,"width":440,"height":560}
|
{"id":"a850b2f46fa52de7","type":"text","text":"# 25年开发工作\n\n- 对标bladed中steady calculation,开发steady operational loads,steady parked loads任务流程序\n- 设计并开发 YAML 配置文件模块,实现了对 YAML 格式模型文件与配置文件的读取、解析\n- 开发控制模块,并与其他模块耦合,实现对32位、64位dll文件支持,完成变桨与变流器执行器的传递函数模型算法开发\n- 对标bladed中simulations,集成控制模块开发正常发电工况、启机、正常停机、紧急停机、空转、停机功能\n- 开发批量计算模块\n\n","x":800,"y":134,"width":440,"height":560},
|
||||||
|
{"id":"0f0b9a318a694bb3","x":-1129,"y":-803,"width":449,"height":457,"type":"text","text":"# 封存\n\nP2 bladed对比--稳态运行载荷,产出报告\n- 气动参与模块对比\n- 模态对比 两种描述方法不同,bladed方向更多,x y z deflection, x y z rotation,不好对比\n- 气动对比 aerodynamic info 轴向切向诱导因子,根部,尖部差距较大"}
|
||||||
],
|
],
|
||||||
"edges":[]
|
"edges":[]
|
||||||
}
|
}
|
||||||
BIN
工作总结/周报/26.02.06汇总/一体化仿真软件组周报(第114期).docx
Normal file
BIN
工作总结/周报/26.02.06汇总/一体化仿真软件组周报(第114期).docx
Normal file
Binary file not shown.
BIN
工作总结/周报/26.02.06汇总/一体化仿真软件组周报(第114期).pptx
Normal file
BIN
工作总结/周报/26.02.06汇总/一体化仿真软件组周报(第114期).pptx
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user