# yaw pfrc_oncrt: Partial force at the yaw bearing (point O) due to the nacelle, generator, and rotor [-] pmom_bnc_rt: 在基板 (point O) 处由机舱、发电机和转子产生的偏力矩 [-] ```rust //  Partial force at the yaw bearing (point O) due to the nacelle, generator, and rotor [-]     rt_hs.pfrc_oncrt = rt_hs.pfrc_vgn_rt.clone() + rt_hs.pfrc_wtail.clone(); //Initialize these partial forces and moments using     // Partial moment at the base plate (body B) / yaw bearing (point O) due the nacelle, generator, and rotor [-]     rt_hs.pmom_bnc_rt = rt_hs.pmom_ngn_rt.clone() + rt_hs.pmom_ntail.clone(); // the rotor, rotor-furl, generator, and tail effects     for i in 0..p.dofs.n_actv_dof as usize{         tmp_vec = cross_product(&rt_hs.r_ov, &rt_hs.pfrc_vgn_rt.slice(s![.., p.dofs.srt_ps[i] - 1]).to_owned()); // The portion of PMomBNcRt associated with the PFrcVGnRt         let value = rt_hs.pmom_bnc_rt.slice(s![.., p.dofs.srt_ps[i]-1]).to_owned() + tmp_vec;         rt_hs.pmom_bnc_rt.slice_mut(s![.., p.dofs.srt_ps[i]-1]).assign(&value);     }     for i in 0.. p.dofs.npie as usize{         tmp_vec = cross_product(&rt_hs.r_ow, &rt_hs.pfrc_wtail.slice(s![.., p.dofs.pie[i] - 1]).to_owned()); // The portion of PMomBNcRt associated with the PFrcWTail         let value = rt_hs.pmom_bnc_rt.slice(s![.., p.dofs.pie[i]-1]).to_owned() + tmp_vec;         rt_hs.pmom_bnc_rt.slice_mut(s![.., p.dofs.pie[i]-1]).assign(&value);     }     for i in 0.. p.dofs.npue as usize{         tmp_vec1 = -p.nac_mass * rt_hs.plin_vel_eu.slice(s![p.dofs.pue[i] -1, 0, ..]).to_owned(); //The portion of PFrcONcRt associated with the NacMass         tmp_vec2 = cross_product(&rt_hs.r_ou, &tmp_vec1); // The portion of PMomBNcRt associated with the NacMass         let value = rt_hs.pfrc_oncrt.slice(s![.., p.dofs.pue[i] -1]).to_owned() + tmp_vec1;         rt_hs.pfrc_oncrt.slice_mut(s![.., p.dofs.pue[i] -1]).assign(&value);         let value = rt_hs.pmom_bnc_rt.slice(s![.., p.dofs.pue[i] -1]).to_owned() + tmp_vec2 -                                                                 p.nacd2_iner * coord_sys.d2.clone() * dot_product(&coord_sys.d2.clone(), &rt_hs.p_ang_vel_en.slice(s![p.dofs.pue[i] -1, 0, ..]).to_owned());         rt_hs.pmom_bnc_rt.slice_mut(s![.., p.dofs.pue[i] -1]).assign(&value);     } ```