2. 2
𝑝𝑑
𝑟𝑒𝑎𝑙
= −
4
𝑇𝑠𝑒𝑡
= −2
I chose the imaginarypartsof the dominantpolesaccordingtothe dampingratioof .6, correspondingto
overshootof 10%:
𝑝𝑑
𝑖𝑚
=
√1 − 𝜁2
𝜁2 = ±2.6667
I chose the remaining polesas -8, -17, -18 and -20. I thenconstructedthe model transferfunctioninthe
s domainas:
𝐺 𝑀( 𝑠) =
5.44 ∗ 105
𝑠6 + 67𝑠5 + 1709𝑠4 + 20652𝑠3 + 1.217 ∗ 105 𝑠2 + 5.44 ∗ 105
I thenconvertedthe model tothe z-domain:
1.125 ∗ 10−11 𝑧5 = 6.117 ∗ 1010 𝑧4 + 3.09 ∗ 10−9 𝑧3 + 2.946 ∗ 10−9 𝑧2 + 5.299 ∗ 10−10 + 8.86 ∗ 10−12
𝑧6 − 5.678𝑧5 + 13.43𝑧4 − 16.94𝑧3 + 12.01𝑧2 − 4.542𝑧 + .7153
To get the numeratorof the feedbackcontroller,Isubtractedthe coefficientsof the characteristic
polynomial of the model fromthose of the characteristicpolynomial of the plant:
𝐹 =.2478𝑧5 − 1.2012𝑧4 + 2.3296𝑧3 − 2.2589𝑧2 + 1.0952𝑧 − .2124
The denominatorof the feedbackcontrollerwasjustthe numeratorof the plant,delayedbyone sample
to make it the same orderas the numerator.Ithendesignedthe pre-filtertohave the numeratorof the
model andthe numeratorof the plant(delayedbytwosamples) asthe denominator. Simulation
yielded:
6. 6
The control effortU1, withreference appliedtochannel one,and nodisturbance,was:
AndU2:
The control effortU1 withreference appliedtochannel twoandnodisturbance was:
11. 11
U2 was still well withinitslimits:
The systemwasstill able tofollowhigherreferencesbutthe control effortssimplybecame toolarge to
be feasible.Forinstance here isthe systemresponsetoa stepof magnitude 100:
12. 12
On channel two,the systemcouldtrackstepreferencesuptomagnitude 7.5before feasibilitylimitson
the control effortU2 were exceeded.Below are U1 andU2 fora stepreference of 7.5:
AndU2:
13. 13
As inthe previouscase the systemcouldstill trackveryhigh magnitude referencesbutthe control
effortswere beyondfeasibilitylimits.Here isthe responseof channel twotoa stepof magnitude 100:
So althoughthe systemremainsdecoupledandfollowsthe reference forlarge signals,inorderforthe
designconstraintsonbothcontrol effortstobe met,the reference mustbe 5 or below inmagnitude.
Simulationdiagrams:
15. 15
Matlab code:
%% Arna Friend Controls II Final Take Home Exam
% declare s domain transfer matrix to be used for simulation
G_11s = tf(7,[1 0]);
G_12s = tf([1 2],[1 6 5]);
G_21s = tf([1 3],[1 6 5]);
G_22s = tf(10,[1 1]);
% declare time step
dt = .005;
% convert transfer matrix into z domain
G_11z = c2d(G_11s,dt);
G_12z = c2d(G_12s,dt);
G_21z = c2d(G_21s,dt);
G_22z = c2d(G_22s,dt);
% define numerators and denominators in code to avoid rounding errors
[G_11zN G_11zD] = tfdata(G_11z,'v');
[G_12zN G_12zD] = tfdata(G_12z,'v');
[G_21zN G_21zD] = tfdata(G_21z,'v');
[G_22zN G_22zD] = tfdata(G_22z,'v');
% define decoupling filter W(z)
W_12 = tf(G_11zD,G_12zD,dt);
W_22 = tf(-1*G_11zN,G_12zN,dt);
% check that Q_12 = 0
Q_12 = minreal(W_12*G_11z) + minreal(W_22*G_12z);
% this is non-zero but I am certain it is due to rounding error
W_11 = tf(-G_22zN,G_21zN,dt);
W_21 = tf(G_22zD,G_21zD,dt);
% check that Q_21 = 0
Q_21 = minreal(W_11*G_21z)+minreal(W_21*G_22z);
% similarly to Q_12 this is non-zero but the numerator is on the order of
% 10^-18
% construct Q_11 and Q_22
Q_11 = minreal(W_11*G_11z+W_21*G_12z);
[z1 p1 ki] = zpkdata(Q_11,'v'); % assure n0 poles or zeros outside the unit
circle and no uncancelled pole zero pairs.
Q_22 = minreal(W_12*G_21z + W_22*G_22z);
[z2 p2 k2] = zpkdata(Q_22,'v');% assure no poles or zeros outside the unit
circle and no uncancelled pole zero pairs.
% begin design of output feedback controller for channel one
% channel one settling time 2 seconds. Overshoot 10% zeta=.6
% define settling time, damping ratio and proceed with pole placement
T_set = 2;
pd_real = 4/T_set;