Path: SCPro/ProControl
% A PID Based 3 axis controller for rigid body. Use the call with one output to get the default data structure. This has 4 modes: 0 - steady rotation 1 - align two vectors 2 - align with a quaternion 3 - point vector and steady rotation Type PID3Axis for a demo Forms: % PID3Axis; d = PID3Axis; [torque, d] = PID3Axis( q_ECI_body, d ) -------------------------------------------------------------------------- ----- Input ----- q_ECI_body (4,1) ECI to body quaternion d (1,1) Data structure .a (2,2) PID A Matrix .b (2,1) PID B Matrix .c (1,2) PID C Matrix .d (1,1) PID D Matrix .x_roll (2,1) PID roll state .x_yaw (2,1) PID yaw state .x_pitch (2,1) PID pitch stage .mode (1,1) Four options: Mode 0 = rotate about an axis -requires d.q_desired_state d.angle / d.axis Mode 1 = align two vectors -requires d.eci_vector d.body_vector Mode 2 = quaternion -requires d.q_desired_state d.body_vector Mode 3 = quaternion -requires d.eci_vector d.angle d.body_vector .inertia (3,3) Inertia matrix .l (2,1) Windup compensation matrix .accel_sat (1,1) Saturation acceleration .max_angle (1,1) Maximum incremental angle .axis_command (3,1) Angle of rotation .body_vector (3,1) Axis in body frame (mode 1 and 3) .eci_vector (3,1) Axis in ECI frame .q_desired_state (4,1) Target quaternion . .q_target_last (4,1) Last target ------ Output ------ torque (3,1) Control torque d (1,1) Data structure --------------------------------------------------------------------------
AerospaceUtils: Coord/QIToBDot Common: Control/PIDMIMO Common: Graphics/Plot2D Common: Graphics/TimeLabl Common: Quaternion/AU2Q Common: Quaternion/Q2AU Common: Quaternion/QMult Common: Quaternion/QPose Common: Quaternion/QTForm Common: Quaternion/U2Q Math: Integration/RK4 Math: Linear/Dot
Back to the SCPro Module page