1.5 KiB
1.5 KiB
yaw
ewn_x_r_ou = cross_product(&rt_hs.ang_vel_en, &rt_hs.r_ou);
rt_hs.plin_vel_eu = rt_hs.plin_vel_eo.clone();
for i in 0..NPN{
tmp_vec0 = cross_product(&rt_hs.p_ang_vel_en.slice(s![PN[i] - 1, 0, ..]).to_owned(), &rt_hs.r_ou);
tmp_vec1 = cross_product(&rt_hs.p_ang_vel_en.slice(s![PN[i] - 1, 0, ..]).to_owned(), &ewn_x_r_ou);
tmp_vec2 = cross_product(&rt_hs.p_ang_vel_en.slice(s![PN[i] - 1, 1, ..]).to_owned(), &rt_hs.r_ou);
let update_value = tmp_vec0 + rt_hs.plin_vel_eu.slice(s![PN[i] - 1, 0, ..]);
// Partial linear velocity (and its 1st time derivative) of the nacelle center of mass (point U) in the inertia frame (body E for earth) [-]
rt_hs.plin_vel_eu.slice_mut(s![PN[i] - 1, 0, ..]).assign(&update_value);
let update_value = tmp_vec1 + tmp_vec2 + rt_hs.plin_vel_eu.slice(s![PN[i] - 1, 1, ..]);
rt_hs.plin_vel_eu.slice_mut(s![PN[i] - 1, 1, ..]).assign(&update_value);
// Linear acceleration of the nacelle center of mass (point U) in the inertia frame (body E for earth) (excluding QD2T components) [-]
rt_hs.lin_acc_eut = rt_hs.lin_acc_eut.clone() + x.qdt[PN[i] as usize - 1] * rt_hs.plin_vel_eu.slice(s![PN[i] - 1, 1, ..]).to_owned();
}
plin_vel_eu Partial linear velocity (and its 1st time derivative) of the nacelle center of mass (point U) in the inertia frame (body E for earth) [-]
lin_acc_eut Linear acceleration of the nacelle center of mass (point U) in the inertia frame (body E for earth) (excluding QD2T components) [-]