5.2 KiB
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 )
self.avr_swap[10] = self.demanded_pitch as f32; self.avr_swap[34] = self.gen_state as f32; 1
49 |
50 |
51 |
报错信息 |
self.avr_swap[60] = self.num_blades as f32;
self.avr_swap[68] = self.root_mxc[0] as f32;
self.avr_swap[69] = self.root_mxc[1] as f32;
self.avr_swap[70] = self.root_mxc[2] as f32;
78 默认是4
94
初始化在swap,会被外层覆盖