stability_derivatives gives roll, pitch and yaw rate derivatives about the reference point
Second part of #330. The first part (branch agent/330-add-rigid-body-stability-derivatives-and, pull request from #330) adds stability_derivatives with the angle of attack and sideslip derivatives and trim_angle; stack this on that pull request.
Blocked on #329: set_va! takes the rotation about the origin, while linearize's moments are about solver.reference_point, so the omega columns of linearize are only the rate derivatives once #329 lets the rotation be taken about the reference point and linearize passes solver.reference_point through. Build on #329's pull request, not on a local copy of omega × (r - r0).
What to add: dC/dp, dC/dq, dC/dr for C in CFx..CMz from the omega_idxs columns, in p̂ = pb/2V, q̂ = qc/2V, r̂ = rb/2V (Python compute_rigid_body_stability_derivatives, ocayon/Vortex-Step-Method, uses c = S/b for q̂ while its moment coefficients use the max chord; this package's moment coefficients use body_aero.c_ref, decide which and say so). Test against central differences of solve! at a reference point away from the origin.
stability_derivatives gives roll, pitch and yaw rate derivatives about the reference point
Second part of #330. The first part (branch
agent/330-add-rigid-body-stability-derivatives-and, pull request from #330) addsstability_derivativeswith the angle of attack and sideslip derivatives andtrim_angle; stack this on that pull request.Blocked on #329:
set_va!takes the rotation about the origin, whilelinearize's moments are aboutsolver.reference_point, so theomegacolumns oflinearizeare only the rate derivatives once #329 lets the rotation be taken about the reference point andlinearizepassessolver.reference_pointthrough. Build on #329's pull request, not on a local copy ofomega × (r - r0).What to add:
dC/dp,dC/dq,dC/drfor C in CFx..CMz from theomega_idxscolumns, in p̂ = pb/2V, q̂ = qc/2V, r̂ = rb/2V (Pythoncompute_rigid_body_stability_derivatives, ocayon/Vortex-Step-Method, uses c = S/b for q̂ while its moment coefficients use the max chord; this package's moment coefficients usebody_aero.c_ref, decide which and say so). Test against central differences ofsolve!at a reference point away from the origin.