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

4.4 KiB
Raw Blame History

问题

转速在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 差两倍

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是如何推进的1961有没有问题

qdt误差很小qt误差大 这里很奇怪

前一步qdt -> qt