You are on page 1of 9

Name:

Mid-term Exam Version 1 Modern Control Systems (J. Carlos Aguado) April 13, 2021

Any day now the first flight from and in Mars is scheduled, and it will be
attempted by the small helicopter Ingenuity (1.8 Kg, a solar panel, two counter-
rotating rotors, a space for cameras and microphones and four flexible legs):

All of its dynamics are captured in this pole map (from the first tests on Earth
simulating Mars conditions):

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
We assume as inputs the pitch of both (counter-rotating) rotors, and we can
select as output the three axis related speeds, angles and derivatives. So let us
concentrate only in a possible output, the pitch angle, and let us assume a
maximum simplification:

1
G(s)= 3
s +1

1) Is the helicopter stable? What is the expected shape of its step response? (1
point, 3 minutes)

It has one real negative pole but a pair of complex conjugate poles of POSITIVE
real part, therefore the system is unstable and its step response (even its
impulse response) will tend to infinity with increasing oscillations.

> damp(G)

Pole Damping Frequency Time Constant


(rad/seconds) (seconds)

5.00e-01 + 8.66e-01i -5.00e-01 1.00e+00 -2.00e+00


5.00e-01 - 8.66e-01i -5.00e-01 1.00e+00 -2.00e+00
-1.00e+00 1.00e+00 1.00e+00 1.00e+00

As we can see, we have a stable exponential mode and an ABSOLUTELY


UNSTABLE phugoid, a behavior quite common in Earth-based helicopters

>> step(G, 20)

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
2) What can you conclude from its PM and GM? (1 point, 3 minutes)

Nothing, as the system is unstable the frequency response makes no sens and
we cannot trust a Bode representation or the existence of positive PM and GM to
guarantee closed loop stability. Nevertheless erroneously both Matlab and the
ProgramCC make this representation and erroneously could even indicate PM
equal to 180 degrees and GM equal to infinity. Matlab at least indicates that the
PM is -180 and therefore the closed loop system would be absolutely unstable:

3) Can you control it with just a proportional controller? If you can, give an
“optimal” value and the consequent characteristics of the step response for the
obtained control system (1 point, 3 minutes)

No, the resulting system would be absolutely unstable for any proportional gain:

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
4) Can you control it with a phase lead (and proportional) controller? If you can,
give an “optimal” gain value and the consequent characteristics of the step
response for the obtained control system (1 point, 3 minutes)

No, it also turns out unstable for any proportional gain, let us illustrate it with a
zero at 0.25 and a pole at -10:

>> C = (s+0.25)/(s+10);
>> rlocus(C*G)

even we can try a closer location of the zero (and further away pole) but stability
is never attained:

>> C = (s+0.001)/(s+100);
>> rlocus(C*G);

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
5) Can you control it with two phase lead controllers (and proportional gain)? If
you can, give an “optimal” gain value and the consequent characteristics of the
step response for the obtained control system (2 points, 6 minutes)

Yes, let us try a zero at 0.25, another one at 0.5, a pole at -10 and another one
at -20:
>> C = ((s+0.25)*(s+0.5))/((s+10)*(s+20));
>> rlocus(C*G)

and zooming in:

we can see that the system is stable approximately from a gain of 250 to a gain
of 5000. IT could see that the optimal location is at the break-in point between
the open-loop zeros, but it would happen for a gain bigger that 5000 (close to
14400), therefore the other pair of complex poles would be giving absolute
instability.

So let us try a point with relative maximum speed and minimum oscillations. We
can never get rid of oscillations but let us try to reduce them as much as
possible:
________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
>> T = feedback(604*C*G, 1)
T=

604 s^2 + 453 s + 75.5


------------------------------------------------
s^5 + 30 s^4 + 200 s^3 + 605 s^2 + 483 s + 275.5

>> pole(T)
-22.1650 + 0.0000i
-3.4914 + 2.7510i
-3.4914 - 2.7510i
-0.4261 + 0.6690i
-0.4261 - 0.6690i

>> step(T)

Stable but very imprecise (final value 75.5/275.5 = 0.274). If we add a pre-filter
we could get precision (but unable to adapt to any changes) and a HUGE
overshoot.
________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
6) Can you control it with just a PID controller? If you can, give an “optimal”
gain value and the consequent characteristics of the step response for the
obtained control system (1 point, 3 minutes)

No, it remains unstable for every proportional gain, let us try a zero at 0.25,
another one at 0.5, a pole at -10 and of course the other at 0:
>> PID = ((s+0.25)*(s+0.5))/(s*(s+20));
>> rlocus(PID*G)

7) Can you control it with a PID plus a lead controller? If you can, give an
“optimal” gain value and the consequent characteristics of the step response for
the obtained control system (2 points, 6 minutes)

Yes, let us try a zero at 0.25, another one at 0.5, the third at 0,75 a pole at -10,
another at -20 and of course the other at 0:
>> PIDL = ((s+0.25)*(s+0.5)*(s+0.75))/(s*(s+10)*(s+20));
>> rlocus(PIDL*G)

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
The optimal value could be 614 with minimum oscillations, but we have a
dominant very slow real pole.

>> T = feedback(614*PIDL*G, 1)

T=

614 s^3 + 921 s^2 + 422.1 s + 57.56


------------------------------------------------------------
s^6 + 30 s^5 + 200 s^4 + 615 s^3 + 951 s^2 + 622.1 s + 57.56

Continuous-time transfer function.

>> pole(T)

ans =

-22.1345 + 0.0000i
-1.9137 + 1.5840i
-1.9137 - 1.5840i
-2.0867 + 0.0000i
-1.8419 + 0.0000i
-0.1096 + 0.0000i

>> step(T)

Perfect precision to step input, considerable overshoot (a single peak), not many
oscillations but a bit slow system.

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered
If we can tolerate more overshoot we can accelerate a bit more the system, but
changes are not very big in any of those linked directions from gains to 600 to
2000, bigger values imply many oscillations.

8) What is your decision and why? Is this controller strictly causal? How could
you implement it? (1 points, 3 minutes)

Of course the PID plus lead controller, but it is non-strictly causal. In real life it
will be implemented within a microprocessor and some delay/s will be added, but
very tiny compared to the helicopter response time.

________________________________________________________________________________________
Justify the answers and show the steps, MatLab commands, results and graphs, otherwise your
results will not be considered

You might also like