MULTIVARIABLE
CONTROL SYSTEMS
VISIT US:
WWW.MATLABASSIGNMENTEXPE
RTS.COM
MAIL US:
INFO@MATLABASSIGNMENTEXPE
RTS.COM
CONTACT US:
+1 (315)557-6473
Problem 1.1 Consider the task of finding a controller F = F(s)
(with two inputs r, q and one output v) which stabilizes the
system on Figure 1.1 with
and minimizes the H2 norm of the closed loop transfer
function from f to e (essentially, this means minimizing the
tracking error at low frequencies).
Figure 1.1: Design setup for Problem 1.1
(a) The feedback optimization problem formulated above is a
special case of a standard LTI feedback optimization setup.
Express the corresponding signals w, u, z, u in terms of f, r,
v, q, e, and write down the resulting plant transfer matrix P
= P(s).
Answer: Use
www.matlabassignmentexperts.com
which leads to
(b) Write down a (minimal) state space model for P.
Answer: One possible choice of the state vector is
which leads to the state space model
x˙ 1 = −10x1 + 10w,
x˙ 2 = x3 + u,
x˙ 3 = −x2,
z = x2 − x1,
Y1 = x1,
Y2 = x2,
The corresponding coefficient matrices are
www.matlabassignmentexperts.com
(c) Find all frequencies w € ≈ R at which the setup has control
singularity or sensor singularity
Answer: Using lecture notes notation,
A control singularity occurs when Mu is not left invertible.
Since Mu is a square matrix, this is equivalent to Mu having a
zero determinant. Hence, a control singularity occurs at s = 0
and s = ≈ (the latter just the consequence of having D12 = 0).
There is not much need to write down My: since there are
more sensors than noises, the number of rows in My is larger
than the number of its columns. Hence, the matrix is never
right invertible, and there is a sensor singularity at every
point of the imaginary axis.
www.matlabassignmentexperts.com
(d) Suggest a way to modify the setup, by introducing extra
cost and disturbance variables, scaled by a single real
parameter d ≈ R, so that the parameterized problem becomes
well-posed for d √= 0, and the original ill-posed problem is
recovered at d = 0.
Answer: To fix sensor singularities, want to include three extra
noise components, scaled by d: one added to y1, the other
added to y2, and the third injected at the plant input (need the
last one because the plant has a pole on the imaginary axis). To
fix the control singularity, append one extra component (d
times u) to the original cost z.
(e) Write and test a MATLAB function, utilizing h2syn.m,
which takes d > 0 as an input and produces the H2 optimal
controller.
Answer: The SIMULINK design diagram describing the setup
is defined in ps1 1a.mdl:
www.matlabassignmentexperts.com
The SIMULINK diagram for testing the controller is defined
in ps1 1b.mdl:
The M-file handling the processing is ps1 1.m:
function ps1_1(d)
% function ps1_1(d)
%
% function for 6.245/Spring 2004 PS Problem 1.1
if nargin <1, d=0.001; end % the dfault value of d
s=tf(’s’); % a convenient shortcut
assignin(’base’,’s’,s); % export s to the
workspace
assignin(’base’,’d’,d); % export d to the
workspace
www.matlabassignmentexperts.com
load_system(’ps1_1a’); % load the design model
into workspace
[a,b,c,d]=linmod(’ps1_1a’); % extract the LTI model
close_system(’ps1_1a’); % close the design model
p=pck(a,b,c,d); % re-write plant model in
Mu-Tools format
[k,g]=h2syn(p,2,1,2,0); % design the controller
[ak,bk,ck,dk]=unpck(k); % get a state space model
of the controller
K=ss(ak,bk,ck,dk); % define controller as a
standard LTI object
assignin(’base’,’K’,K); % export controller into
workspace
load_system(’ps1_1b’); % open the testing model
into workspace
[ac,bc,cc,dc]=linmod(’ps1_1b’); % extract the testing
model coefficients
close_system(’ps1_1b’); % close the testing model
G=ss(ac,bc,cc,dc); % calculate the closed
loop H2 norm
disp([’True H2 norm: ’ num2str(norm(G))]); %
the actual H2 norm
disp([’Promised H2 norm: ’ num2str(h2norm(g))])
% H2 norm promised by h2syn
Running ps1 1.m with different values of d (meaningful
results achieved for d < 0.001) shows that the closed loop H2
norm can be greatly reduced at the expense of spending more
power to control and getting higher sensitivity to noises.
www.matlabassignmentexperts.com
Problem 1.2 Consider the feedback design setup from
Figure 1.2. It is frequently claimed that location
Figure 1.2: Design Setup For Problem 1.2
of unstable zeros of P0 limits the maximal achievable closed
loop bandwidth, which can be defined as the largest w0 > 0
such that | | S(jw) ≤ 0.1 for all € ≈ [0, w0], where
is the closed loop sensitivity function. While mathematically
this is not exactly true, the only way to achieve a sufficiently
large bandwidth is by making | | S(jw) extremely large at
other frequencies.
You are asked to verify this using H-Infinity optimization on
the following setup. Let
where a > 0 is a positive parameter (location of the unstable
zero). For
www.matlabassignmentexperts.com
where b, c are positive parameters, and c ∈ b, examine the
possibility of finding a controller F which makes S(jw)H(jw)
< 1 for all w € ≈ R. Since | | H(jw) |≈ 10 for w ≤ b, and |H(jw)
≈ 10(b/c)2 ≤ | 1 for w ∈ c | | , a controller satisfying condition
|S(jw)H(jw)| < 1 will provide (at least) the closed loop
bandwidth b. For all a ≈ {0.1, 1, 10}, use H-Infinity
optimization to find, with relative accuracy 20 percent, the
maximal b such that the objective |S(jw)H(jw)| < 1 can be
achieved with c = 20b. Make a conclusion about the relation
between a and the achievable closed loop bandwidth.
Answer: The plant model for the corresponding setup will
have D22 =∈ 0, which apparently exposes a bug in hinfsyn.m.
To avoid this, modify the sensor measurement by replacing y
with ym = y − D22u (not to forget to include this
transformation when testing the resulting controller). If
SIMULINK complains about algebraic loops, disable the
warning in the preferences setting. The design SIMULINK
diagram ps1 2a.mdl,
www.matlabassignmentexperts.com
and the testing block diagram ps1 2b.mdl:
are used by the M-fuction ps1 2.m:
function ps1_2(a,b)
% function ps1_2(a,b)
%
% Solves 6.245/Spring
2004
www.matlabassignmentexperts.com
s=tf(’s’); % the "Laplace
transform" s as a system
if nargin <1, a=1; end % default a
if nargin <2, b=0.2*a; end % default b
C=20*b; % extra parameter
assignin(’base’,’a’,a); % export variables
assignin(’base’,’b’,b);
assignin(’base’,’s’,s);
P0=(s-a)/(s+1); % plant and
shaping filter
H=10*((s/c)^2+sqrt(2)*(s/c)+1)/((s/b)^2+sqrt(2)*(s/b)+1);
assignin(’base’,’P0’,P0); % export
variables
assignin(’base’,’H’,H);
load_system(’ps1_2a’); % generate state
space plant model
[a,b,c,d]=linmod(’ps1_2a’);
close_system(’ps1_2a’);
d22=d(2,2); % remember D22
d(2,2)=0; % zero out D22 in
the hinfsyn input
p=pck(a,b,c,d); % H-Infinity
optimization
[k,g,gfin]=hinfsyn(p,1,1,0,1,0.1,2,1e-10,1e-6,0);
if ~isempty(k), % if H-Inf norm not
exceeding 1 is possible
[ak,bk,ck,dk]=unpck(k); % get the controller
K=ss(ak,bk,ck,dk);
www.matlabassignmentexperts.com
assignin(’base’,’K’,K); % export controller and D22
assignin(’base’,’d22’,d22);
load_system(’ps1_2b’); % generate closed loop
model
[ac,bc,cc,dc]=linmod(’ps1_2b’);
close_system(’ps1_2b’);
disp([’gmin:’ num2str(gfin)])
bode(ss(ac,bc,cc,dc)) % check the Bode plot
visually
else
disp(’Infeasible specifications’)
end
The results of optimization show that the ratio b/a is
approximately equal to 0.3
www.matlabassignmentexperts.com