149 lines
4.7 KiB
Markdown
149 lines
4.7 KiB
Markdown
|
||
|
||
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
|
||
- ``! 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
|
||
|
||
- 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
|
||
|
||
- 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 )
|
||
``` |