obsidian_backup/多体求解器debug/多体+气动 yaw debug.md

109 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# 问题
转速在14s之后一直掉
![[Pasted image 20250120102349.png]]
## yaw求解过程
## 思路
yaw_mom 到 augmat - 再到 qdt dof_yaw
哪里发生了比较大的变化导致 发散 外推drtr
1 输入yaw_mom from 控制
multibody_solution 1834-1846行
Elastodyn.f90 8295
FAST_Subs.f90
- 4835
- 4520
- 4865
pmom_bnc_rt 在基板 (point O) 处由机舱、发电机和转子产生的偏力矩 [-] 2方向
Partial moment at the base plate (body B) / yaw bearing (point O) due the nacelle, generator, and rotor [-]
- 2, 10: yaw 差距较小 3-11
- 2, 12: geaz 差距较大 3-13
- 2, 13: drtr 差距较大 3-14
pmom_ngn_rt 就有问题
Partial moment at the nacelle (body N) / selected point on rotor-furl axis (point V) due the structure that furls with the rotor, generator, and rotor [-]
pmom_lprot 有问题 210PMomLPRot-311
pmom_lprot - Partial moment at the teeter pin (point P) on the low-speed shaft (body L) due to the rotor [-]
pmom_h0b - Partial moment at the hub (body H) / blade root (point S(0)) due to the blade [-]
pmom_lprot[.., dof] += rt_hs.pmom_h0b[.., K, dof] + tmp_vec
n = 0
rust
| pmom_lprot[.., 10] | [10065.169025312112, -880.58815982021201, 0] |
| ------------------- | ---------------------------------------------------------------- |
| tmp_vec | [-106008.52186436673, 4628.43188287714, -1.0682859215676195e-10] |
| pmom_h0b[.., 0, 10] | [-1273126.2724884835, 55585.89184040811, -2.254358687222148e-9] |
| pmom_lprot[.., 10] | [-1369069.625327538, 59333.735563465045, -2.36118727937891e-9] |
| | |
| tmp_vec | [89979.12573566216, -452011.2188342586, -248942.84544012396] |
| pmom_h0b[.., 1, 10] | [1422330.1493642807, -9454670.27374079, -5253335.786885787] |
| pmom_lprot[.., 10] | [143239.64977240493, -9847347.757011585, -5502278.632325914] |
| | |
| tmp_vec | [89979.12573566235, -452011.21883425827, 248942.8454401244] |
| pmom_h0b[.., 2, 10] | [1422330.149364284, -9454670.27374078, 5253335.786885795] |
| pmom_lprot[.., 10] | [1655548.9248723513, -19754029.249586623, 5.820766091346741e-9] |
fortran
| pmom_lprot[.., 10] | [10065.17, -880.5881, 0.0] |
| ------------------- | --------------------------------------- |
| tmp_vec | [-106008.5, 4628.433, -1.0682862E-10] |
| pmom_h0b[.., 0, 10] | [-1273126., 55585.91, -2.2543594E-09] |
| pmom_lprot[.., 10] | [-1369070., 59333.75, -2.3611879E-09] |
| | |
| tmp_vec | [89979.14, -452011.3, -248942.9] |
| pmom_h0b[.., 1, 10] | [1422330., -9454672., -5253337.] |
| pmom_lprot[.., 10] | [143239.8, -9847349., -5502280.] |
| | |
| tmp_vec | [89979.14, -452011.3, 248942.9] |
| pmom_h0b[.., 1, 10] | [1422330., -9454672., 5253337.] |
| pmom_lprot[.., 10] | [1655549., -1.9754032E+07., -0.1093750] |
**pmom_h0b[2,11]**
pfrc_prot 有问题
pfrc_prot - Partial force at the teeter pin (point P) due to the rotor [-]
pfrc_s0b - Partial force at the blade root (point S(0)) due to the blade [-]
pfrc_prot[.., dof] += rt_hs.pfrc_s0b[.., K, dof]
## 切换双精度后:依然出现
plin_vel_ec 10, 0, 0有问题
Partial linear velocity (and its 1st time derivative) of the hub center of mass (point C) in the inertia frame (body E for earth) [-]
rt_hs.pmom_lprot 2, 10 差两倍
```fortran
RtHSdat%PMomLPRot(:,p%DOFs%PCE(I)) = TmpVec2 - p%Hubg1Iner*CoordSys%g1*DOT_PRODUCT( CoordSys%g1, RtHSdat%PAngVelEH(p%DOFs%PCE(I),0,:) ) & - p%Hubg2Iner*CoordSys%g2*DOT_PRODUCT( CoordSys%g2, RtHSdat%PAngVelEH(p%DOFs%PCE(I),0,:) )
```
g1 [2]差2倍
MomBNcRtt有差距导致右端项算的不对
frc_vgn_rtt
mom_ngn_rtt
frc_prot_t - Portion of the force at the teeter pin (point P) due to the rotor associated with everything but the QD2T()'s [-]
frc_s0bt - Force at the blade root (point S(0)) due to the blade (excluding QD2T components) [-]
## 问题
- Fortran 与rust加和 趋于0的结果 精度不同 Fortran e-5 rust e-11
- Fortran写到txt文本的数值读进rust有少许差异
# qt是如何推进的有没有问题