0% found this document useful (0 votes)
10 views12 pages

Multivariable Control Systems Help

The document discusses solving a control problem using H2 and H-infinity optimization. It provides the plant transfer function and asks to write state space models, find singularities, modify the setup, and use MATLAB functions to design and test controllers. Steps are provided to write MATLAB code to solve the problems.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views12 pages

Multivariable Control Systems Help

The document discusses solving a control problem using H2 and H-infinity optimization. It provides the plant transfer function and asks to write state space models, find singularities, modify the setup, and use MATLAB functions to design and test controllers. Steps are provided to write MATLAB code to solve the problems.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

MULTIVARIABLE

CONTROL SYSTEMS
VISIT US:
[Link]
[Link]
MAIL US:
INFO@MATLABASSIGNMENTEXPE
[Link]
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

[Link]
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

[Link]
(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.

[Link]
(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 [Link]:

[Link]
The SIMULINK diagram for testing the controller is defined
in ps1 [Link]:

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

[Link]
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.

[Link]
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

[Link]
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 [Link],

[Link]
and the testing block diagram ps1 [Link]:

are used by the M-fuction ps1 2.m:

function ps1_2(a,b)
% function ps1_2(a,b)
%
% Solves 6.245/Spring
2004

[Link]
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);

[Link]
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

[Link]

Common questions

Powered by AI

The strategic use of parameter d in multivariable control systems aims to balance model singularity mitigation and optimization efficacy. Introducing d helps resolve control and sensor singularities by scaling additional noise and cost components, ensuring the problem remains well-posed for d ≠ 0. By varying d, one can achieve optimal trade-offs between minimizing tracking errors and managing control energy levels and noise sensitivity. For example, a small d (close to 0.001) can significantly reduce the H2 norm and tracking error while maintaining control performance .

To address control and sensor singularities, additional noise and cost components need to be introduced, which are scaled by a parameter d. For sensor singularities, introduce three extra noise components scaled by d: one each added to outputs y1 and y2, and one at the plant input, as the plant has a pole on the imaginary axis. For control singularity, append an extra component (d times the control input u) to the original cost variable z. The parameter d ensures the problem is well-posed for d ≠ 0, while the original ill-posed problem is recovered when d = 0 .

In the hinfsyn optimization routine, the gfin value represents the achieved minimum H-Infinity norm, indicating the worst-case system gain. A lower gfin value generally reflects a more robust control system with tighter bounds on performance degradation due to uncertainty or disturbances. It helps assess how well the controller suppresses sensitivity spikes and manages system performance under worst-case scenarios, essentially measuring the efficiency and robustness of the H-Infinity optimization process .

In the MATLAB function ps1_1.m, the parameter d is pivotal in adjusting the noise and control cost terms in the system. For d > 0, it alters the augmentation of noise components, which affects the system’s sensitivity and energy consumption. The implementation with d < 0.001 indicates the optimal setting for meaningful reductions in closed-loop H2 norms, suggesting a trade-off between reduced tracking error versus higher control effort and system sensitivity to noise disturbances .

Introducing additional noise components scaled by a real parameter d helps rectify sensor singularities by altering the dimensions of matrix My, making it right invertible. Since sensor singularities occur due to more sensor equations than the control inputs, adding noise to outputs y1 and y2, and injecting noise at the plant input compensates for the system having poles in critical locations, ensuring more balanced and invertible equations .

The complexity of achieving a desired closed-loop bandwidth is partly determined by the location of unstable zeros of the system, characterized by the parameter a. As the value of a increases, the closed-loop system becomes harder to stabilize over larger bandwidths. Although mathematically the location of these unstable zeros doesn’t directly limit the bandwidth, achieving a larger bandwidth necessitates making the sensitivity function S(jw) very large at some frequencies. The achievable closed-loop bandwidth b closely depends on the choice of a, with the ratio b/a approximately remaining constant .

A control singularity occurs when the gain matrix Mu is not left invertible, meaning Mu has a zero determinant since it is a square matrix. This condition is satisfied at frequencies where certain matrix determinants equate to zero, such as at s = 0 and when additional conditions like D12 = 0 are met .

SIMULINK models ps1 1a.mdl and ps1 1b.mdl are used to create a graphical environment for designing and testing the H2-optimal control setup. The ps1 1a.mdl diagram is used to build the design model, setting up the plant and controller structure for optimization. ps1 1b.mdl is used for testing, allowing for simulation of the closed-loop system to evaluate changes in H2 norms and verify system performance under different conditions and configurations .

In multivariable control systems, achieving the condition |S(jw)H(jw)| < 1 for all w within the real axis requires careful tuning of controller F parameters. This condition ensures that the product of the sensitivity function and the closed-loop system transfer has gains less than 1, which provides adequate system stability margins and desired performance within the defined bandwidth b. The parameters a and b should be tuned such that the controller satisfies this inequality, often necessitating adjustments in filters and compensators to maintain system robustness while achieving required performance .

To address the bug in hinfsyn.m caused by D22 in the standard model, modify the sensor measurement y by replacing it with ym = y - D22u. This adjustment ensures that the optimization algorithm functions correctly without exposure to the zeroing out issue in D22. This transformed sensor measurement should also be included when testing the controller to ensure consistency and proper model behavior .

You might also like