-
Notifications
You must be signed in to change notification settings - Fork 0
Stability static
The control system will probably be implemented as software on the main board. Among the different options (integral/differential formulation, transfer function, impulse response, state equations), the most general and probably easiest to implement would be the state equations method. Then, if convenient and applicable, we can translate to any of the other formulations.
We represent the input as a set of variables organized in an m-dim input vector u(t). These can be the desired position/velocity, or even both, the orientation and angular velocity. In a second p-dim vector y(t) we will represent the system output: position, orientation, momentum and angular momentum vectors, as measured (when applicable) by the sensors, as well as the thrust of each of the N motors. Finally, as a separate n-dim state vector x(t) we will represent the current state of the system . These variables will be related to optional/internal degrees of freedom, such as center of mass, mode (smooth/aggressive etc), individual angular momentum of each thruster etc.
Then two systems of differential equations can be set up, following the equations in the kinematics & dynamics section. The first system will be the state equations, giving the evolution of x(t) given the input. Since we will construct a linear, possibly time-varying system, this system can be represented as:
x'(t) = f[x(t), u(t)] = A(t)x(t) + B(t)u(t)
where A is an nxn matrix usually called the system matrix and B is an nxm matrix called the input matrix.
The second system consists the output equations, and gives the output vector as a function of the input and state:
y(t) = g[x(t), u(t)] = C(t)x(t) + D(t)u(t)
where C is the pxn output matrix and D is the pxm direct matrix.
Finally we also have the initial condition on the state, giving the state vector at starting time
x(t0) = x0