Table of Contents
Planar Ducted Fan
The planar ducted fan is a fun nonlinear control problem whose plant is a non-minimum phase system. Non-minimum phase systems have a right half plane zero, which impacts the achievable closed-loop response of the system. The reason that closed-loop response has constraints is that non-minimum phase systems tend to go in the wrong direction initially before going in the right direction (to go left, the system will initially go right then come around). Many other real-world systems exhibit this behavior.
Equations of Motion
As a system, the planar ducted fan is an example of a flying machine employing vectored thrust. A fan or other thrust generator sends air out of an orifice past to flaps. These flaps, moving identically, redirect the air. Defining $q = (x, y)^T$ to be the center of mass of the ducted fan, and $\theta$ to be the orientation of the ducted fan, \begin{equation} \begin{split} m \ddot q & = -d \dot q + R(\theta) f - m \vec g \\ J \ddot \theta & = r\, \pi_2(f) \end{split} \end{equation} where the force vector $f$ is in the body frame of the ducted fan, generated from the fan's thrust. Adjustable flaps control the decomposition of the thrust vector into its two components as per \begin{equation} f = R(-\psi) \begin{bmatrix} 0 \\ \tau \end{bmatrix} \end{equation} where $R$ is a planar rotation matrix \begin{equation} R(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} \end{equation} The mapping $\pi_2:\mathbb{R}^2 \rightarrow \mathbb{R}$ is the projection of the 2-vector $f$ onto its second coordinate value. The control inputs are the thrust $\tau$ and the flap angle $\psi$. From these equations, it is clear that the system is an interesting nonlinear problem (as even the control inputs enter nonlinearly).
Another formulation of the equations of motion is \begin{equation} \begin{split} m \ddot q & = -d \dot q + R(\theta) R(-\psi) \begin{bmatrix} 0 \\ \tau \end{bmatrix} - m \vec g \\ J \ddot \theta & = r\, \pi_2 ( e_1(-\psi) \tau ) \end{split} \end{equation} which expands to \begin{equation} \begin{split} m \ddot q & = -d \dot q + R(\theta) e_2(-\psi) \tau - m \vec g \\ J \ddot \theta & = - r \sin(\psi) \tau \end{split} \end{equation} where $e_2(\cdot)$ is the second column of the rotation matrix $R(\cdot)$. This system is underactuated in that there are three state coordinates and only two control coordinates. Usually this system, and other aerial systems with similar properties, are reduced to output tracking systems where the angular coordinate is not perfectly tracked. Rather there is a low gain stabilizing term for it and there are higher gain terms for tracking the coupled translational component. In this case $\theta$ is used to control $x$.
Parameters and Limits
Parameter | Value |
---|---|
$m$ | 4.25 kg |
$d$ | 0.1 kg/sec |
$g$ | 9.8 m/sec |
$r$ | 0.26 m |
$J$ | 0.0475 kg m$^2$ |
The thrust vector angle range should be $\psi \in [-\pi/3, \pi/3]$. Make sure to implement these limits in the simulation. It is best to design trajectories that do not hit these limits in the closed-loop. More aggressive trajectories is best saved for future self-study.
Implementation
Functional code stubs for the implementation are provided in the ducted fan zipfile. They implement a constant control signal that most definitely fails to do the job, but provide enough structure to complete the project. Comments in the code should help to realize the necessary improvements.
Activities
These activities sketch what should be done, but do not necessarily indicate what should be turned in. By now you should have seen enough solution postings and possibly also read enough papers on control that you should have an understanding of what should be turned in. This would include the mathematics or derivations, the synthesized controller, and sufficient plots to demonstrate that the task objective was met. Discussion of outcomes should be included.
Step 1: Linear Adaptive Control
Linear Control Model
Linearize the equations of motion about hover at $\theta = 0$ (radians), so that the linearized state and control inputs have an equiblirium at the origin with zero linearized control input. The primary objective is to track a translational signal while staying close to hover. Establish performance specifications for the system and design a linear feedback controller that will stabilize the system and meet the performance specifications. Make sure to not be too aggressive regarding the lateral (or $x$ coordinate) stabilization rate. It will lead to large pitch rates and angles, which will violate the linearity assumption.
Turn in the linearized equations and the linearized control law for achieving the desired closed-loop response.
Model Mismatch and Adaptive Control
Modify by 10-20% some of the model parameters of the system and compare the outcomes under a traditional linear controller. Incorporate linear adaptive control and show the resulting outcomes. Confirm how well the adaptive system meets the performance specifications versus the static controller.
Here, you should consider two cases. One is the initial case, where tracking a particular reference signal will lead to an adaptation transient. Simulate as normal, however pick a time post-transient and grab the adaptive gains from the output signals. Prepare a second simulation that starts with these gains. The second simulation would act like a second or subsequent deployment post-adaptation. Show that the system better meets the performance objectives. It is your responsibility to create appropriate signals to track. One should be a simple step response of point-to-point stabilization (e.g., translation from one hover point to another hover point), and the other should be some trajectory in space.
Considerations: When the model parameters are unknown, that influences the baseline control $u_0$. Since the baseline control is a constant, it is possible to adapt the parameter as a form of structured uncertainty. Treating the $\Phi(x)$ function to have the constant bias term $1$, the baseline control $u_0$ can be adapted online to recover its value. Doing so will improve the performance of the linear DMRAC controller. It is highly recommended to add this term. Otherwise, the adaptive gains will increase to large values in order to compensate for the constant gravity term that was incorrectly “cancelled.”
Likewise, for better tracking some feedforward term can be added that looks a lot like a reference signal. The feedforward term to add is the acceleration needed to track the desired height of the ducted fan. It is recovered from the second derivative of the desired height (the $y$ coordinate). Adding this term will remove some of the gain/phase differences between the desired trajectory and the model reference trajectory, which means that the ducted fan will better track the desired trajectory. This feedforward term can have an adaptive effectiveness gain that is tuned during online operation. It's not necessary to add this feedforward term, but you'll find that it enhances performance.
Step 2: Nonlinear Controller
Rearrange the equations to see if they can be put into a form that looks more like a linear system plus a non-linear defect. Design a controller with nonlinear cancelling terms. Can they all be cancelled or are there constraints on what can be done? How were those constraints, if any, managed by you, the designer? Compare this controller with the purely linear approach and quantify performance differences if any. Do not consider parameter mismatch, just solve this as a standard control problem.
Tip: The ducted fan is similar to the bi-rotor but has the added challenge of being non-minimum phase. The same transformation of state described in the bi-rotor project should apply to the ducted fan. You can use it as one approach to creating an adaptive controller for the nonlinear system.
Step 3: Nonlinear Controller with Adaptation
Now consider parameter mismatch and augment the nonlinear controller to be an adaptive one. Repeat the same procedure as for Step 1 with parameter mismatch and demonstrate improved performance relative to the static nonlinear controller design. If possible, compare performance of linear vs nonlinear adaptive controllers (best to quantify).
Note: One thing to be careful about is the initial transient experienced by the adaptive controllers. When comparing, it is usually best to separate the transient time period from the non-transient period. Also, one could argue that the most important comparison is with the repeated run since that would be the normal use case for an adaptive controller. Thus, limiting comparison to the repeat run outcomes is acceptable and may even be preferred for simplicity of data collected and analyzed.
Report Considerations
Because there are more control signals relative to the typical homework assignments, there is a greater diversity of trajectories to follow. Make sure that you create reference trajectories reflecting this diversity. Trajectories applied should include regulation (moving to a new, feasible set point) and tracking.
The report should include the appropriate controlled equations of motion for the different realizations (linear, nonlinear, transformed nonlinear if done, etc). It should cover the controller design and control synthesis for static and adaptive cases. If using adaptive controllers covered in class, then only their setup and final adaptive laws should be covered. This should be the case if following the Steps. If attempting an adaptive structures slightly different from what was covered in the lectures, then its derivation should be included; this most likely won't be the case unless you do not follow the Steps. Just like in homeworks, attention should be paid to highlighting how the static controller fails to perform under incorrect parameters estimates. Otherwise, the Final Deliverable assignment item should cover what's needed.
When possible, try to stick to canonical control forms. What's the simplest way of providing the equations? Writing it all out coordinate-wise is not sensible; in fact almost all of the time it is the worst thing that can be done since it will hide any underlying structure or geometry and not necessarily be any more informative.
References
There are some references below whose equations might differ from the ones above. There are a few models for this fan. The model chosen depends on what the authors wish to demonstrate.
- Yu, Jadbabaie, Primbs, and Huang. “Comparison of Nonlinear Control Design Techniques on a Model of the Caltech Ducted Fan.” Automatica, 37:1971-1978, 2001. Article