obsidian_backup/多体+耦合求解器/计算线速度 偏加速度.md

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) [-]