175 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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会被外层覆盖