2025-07-31 09:47:19 +08:00
fast_advance_states()
- ed_updatestates
- SolveOption2a_Inp2BD
- ed_calc_output 更新数据
- BD updatestates
- SolveOption2b_Inp2IfW Ifw根据ED结果更新
- ifw updatestates
- SolveOption2c_Inp2AD_SrvD
- ifw calcoutput
- AD_InputSolve_IfW
- SrvD_InputSolve
2025-07-31 17:19:02 +08:00
- ``! from Ifw` `
- WindDir
- HorWindV
- LidSpeed
- MsrPositionsX
- MsrPositionsY
- MsrPositionsZ
-
- ``! from ED` `
- YawAngle
- Yaw
- YawRate
- LSS_Spd
- HSS_Spd
- RotSpeed
- RootMxc
- RootMyc
- YawBrTAxp
- YawBrTAyp
- LSSTipPxa
- LSSTipMxa
- LSSTipMya
- LSSTipMza
- LSSTipMys
- LSSTipMzs
- YawBrMyn
- YawBrMzn
- NcIMURAxs
- NcIMURAys
- NcIMURAzs
- RotPwr
- LSShftFxa
- LSShftFys
- LSShftFzs
2025-07-31 09:47:19 +08:00
2025-07-31 17:19:02 +08:00
- SrvD_UpdateStates
- SrvD_CopyInput
- SrvD_Input_ExtrapInterp
- SrvD_UpdateDiscState
- SrvD_Input_ExtrapInterp
- DLL_controller_call
- Torque_UpdateStates
- Pitch_UpdateStates
- Yaw_UpdateStates
- TipBrake_UpdateStates
- ! Blade Nacelle Tower Platform StrucCtrl, 但是NumSStC = 0 这部分代码跳过
- ! Compute ElecPwr and GenTrq for controller (and DLL needs this saved):
- CalculateTorque
CalcOutputs_And_SolveForInputs
- SolveOption2
- AD_CalcOutput
- SrvD_CalcOutput
- ED_InputSolve ED接收AD SD输入
- BladeLoads.force/moment
- towerloads.force/moment
- GenTrq
- HSSBrTrqC
- BlPitchCom
- YawMom
- StrucCtrl loads 暂时没有
- NacelleLoads.force/moment
- Transfer_SrvD_to_SD_MD
- ! 都在ifw更新后
- SrvD_InputSolve
2025-08-21 16:48:29 +08:00
- ResetRemapFlags
ed 到Bladed dll的输出:
```
y%RotPwr = m%AllOuts( RotPwr)*1000.
DO K=1,p%NumBl
y%RootMxc(K) = m%AllOuts( RootMxc(K) )*1000.
y%RootMyc(K) = m%AllOuts( RootMyc(K) )*1000.
END DO
y%YawBrTAxp = m%AllOuts( YawBrTAxp)
y%YawBrTAyp = m%AllOuts( YawBrTAyp)
!y%LSSTipPxa = m%AllOuts( LSSTipPxa)*D2R ! bjj: did this above already
y%LSSTipMxa = m%AllOuts(LSShftMxa)*1000.
y%LSSTipMya = m%AllOuts(LSSTipMya)*1000. ! Rotating hub My (GL co-ords) (Nm)
y%LSSTipMza = m%AllOuts(LSSTipMza)*1000. ! Rotating hub Mz (GL co-ords) (Nm)
y%LSSTipMys = m%AllOuts(LSSTipMys)*1000. ! Fixed hub My (GL co-ords) (Nm)
y%LSSTipMzs = m%AllOuts(LSSTipMzs)*1000. ! Fixed hub Mz (GL co-ords) (Nm)
y%YawBrMyn = m%AllOuts( YawBrMyn)*1000. ! Yaw bearing My (GL co-ords) (Nm) !tower accel
y%YawBrMzn = m%AllOuts( YawBrMzn)*1000. ! Yaw bearing Mz (GL co-ords) (Nm)
y%NcIMURAxs = m%AllOuts(NcIMURAxs)*D2R ! Nacelle roll acceleration (rad/s^2) -- this is in the shaft (tilted) coordinate system, instead of the nacelle (nontilted) coordinate system
y%NcIMURAys = m%AllOuts(NcIMURAys)*D2R ! Nacelle nodding acceleration (rad/s^2)
y%NcIMURAzs = m%AllOuts(NcIMURAzs)*D2R ! Nacelle yaw acceleration (rad/s^2) -- this is in the shaft (tilted) coordinate system, instead of the nacelle (nontilted) coordinate system
y%LSShftFxa = m%AllOuts(LSShftFxa)*1000. ! Rotating low-speed shaft force x (GL co-ords) (N)
y%LSShftFys = m%AllOuts(LSShftFys)*1000. ! Nonrotating low-speed shaft force y (GL co-ords) (N)
y%LSShftFzs = m%AllOuts(LSShftFzs)*1000. ! Nonrotating low-speed shaft force z (GL co-ords) (N)
```
```
m%AllOuts(LSShftMxa) = DOT_PRODUCT( MomLPRot, m%CoordSys%e1 )
m%AllOuts( RotPwr) = ( x%QDT(DOF_GeAz) + x%QDT(DOF_DrTr) )*m%AllOuts(LSShftMxa)
DO K=1,p%NumBl
m%AllOuts( RootMxc(K) ) = DOT_PRODUCT( MomH0B(:,K), m%CoordSys%i1(K,:) )
m%AllOuts( RootMyc(K) ) = DOT_PRODUCT( MomH0B(:,K), m%CoordSys%i2(K,:) )
END DO !K
m%AllOuts(YawBrTAxp) = DOT_PRODUCT( LinAccEO, m%CoordSys%b1 )
m%AllOuts(YawBrTAyp) = -DOT_PRODUCT( LinAccEO, m%CoordSys%b3 )
y%LSSTipPxa = x%QT (DOF_GeAz) + x%QT (DOF_DrTr) + p%AzimB1Up + PiBy2
m%AllOuts(LSSTipPxa) = y%LSSTipPxa*R2D
m%AllOuts(LSShftMxa) = DOT_PRODUCT( MomLPRot, m%CoordSys%e1 )
m%AllOuts(LSSTipMya) = DOT_PRODUCT( MomLPRot, m%CoordSys%e2 )
m%AllOuts(LSSTipMza) = DOT_PRODUCT( MomLPRot, m%CoordSys%e3 )
m%AllOuts(LSSTipMys) = -DOT_PRODUCT( MomLPRot, m%CoordSys%c3 )
m%AllOuts(LSSTipMzs) = DOT_PRODUCT( MomLPRot, m%CoordSys%c2 )
m%AllOuts( YawBrMyn) = -DOT_PRODUCT( MomBNcRt, m%CoordSys%d3 )
m%AllOuts( YawBrMzn) = DOT_PRODUCT( MomBNcRt, m%CoordSys%d2 )
m%AllOuts(NcIMURAxs) = DOT_PRODUCT( AngAccER , m%CoordSys%c1 )*R2D
m%AllOuts(NcIMURAys) = -1.0*DOT_PRODUCT( AngAccER , m%CoordSys%c3 )*R2D
m%AllOuts(NcIMURAzs) = DOT_PRODUCT( AngAccER , m%CoordSys%c2 )*R2D
m%AllOuts(LSShftFxa) = DOT_PRODUCT( FrcPRot, m%CoordSys%e1 )
m%AllOuts(LSShftFys) = -DOT_PRODUCT( FrcPRot, m%CoordSys%c3 )
m%AllOuts(LSShftFzs) = DOT_PRODUCT( FrcPRot, m%CoordSys%c2 )
```