Multivariable Control Theory - Lecture 3
Multivariable Control Theory - Lecture 3
In numerous control scenarios, the primary objective is to minimize the Hinf or H2 norm of a transfer function (t.f.) by utilizing a controller, denoted as K. To tackle this
problem effectively, it is common to formulate it with the assistance of a generalized plant, represented as P. The generalized plant encompasses all the known
transfer functions, while the generalized controller, K, is the controller that needs to be designed. It's important to note that P not only represents the physical system
but also encapsulates the problem concept. The ultimate goal of the control process is to minimize a specific norm of the transfer function between the input signal
(w) and the output signal (z).
𝑤 𝑧
P
𝑣
𝑢
K
Example: Classical Disturbance Rejection Problem
The aim of the control is to find a controller K to minimize/reduce/attenuate the effect of the disturbance to the output.
The problem is to minimize the H2 and Hinf norm of the closed loop system transfer function between z and w.
+ 𝑑 𝑦
+ u
K G
r e +
-
u 𝑦 𝑣
G -I
K
Example:
𝑑
𝑒𝑚 𝑢 𝑦
𝑟
K G
-
𝑦𝑚
𝑛
𝑃
K
For the control problem to be meaningful, we may need to use weight
transfer functions on w, d, or z.
𝑤 𝑧ǁ 𝑧
𝑤
ෝ Wz
Ww
P’
𝑣
𝑢
Multiplicative Uncertainty
Additive Uncertainty
Feedback Uncertainty
In the Robust Control Toolbox, several functions are available to define and create various types of uncertain parameters and systems:
1.UComplex(): This function is used to define complex uncertain parameters. It allows you to specify uncertainties in the real and
imaginary parts of complex-valued parameters. These uncertainties can be expressed in terms of uncertain gain, uncertain pole/zero
locations, or other forms of uncertainty.
2.UComplexM(): This function is specifically designed for the creation of complex-valued uncertain matrices. It enables you to define
uncertainties in the elements of matrices, which can be useful in representing uncertain system dynamics or uncertain controller
parameters.
3.UDyn(): By using this function, you can create an unstructured uncertain dynamic system class. The input/output dimension of the
system is specified by the iosize parameter. This function allows you to represent systems with uncertain dynamics, where the exact
structure of the uncertainty is not explicitly known or modeled.
4.ULTIDyn(): This function is used to create an uncertain linear time-invariant (LTI) object, where only bounds on the frequency
response are known. It is particularly helpful when you have limited information about the exact frequency response characteristics of
the uncertain system. The bounds on the frequency response can be defined to represent the uncertainty.
5.UReal(): This function is employed to define real uncertain parameters. It is used in various analysis and design functions within the
Robust Control Toolbox. The uncertainties in the parameters can be expressed in terms of ranges, intervals, or other forms of
uncertainty, allowing for robust analysis and design of control systems.
These functions play a crucial role in representing and handling uncertainties in control systems, enabling robust control analysis and
design by incorporating uncertainties into the models and algorithms.
Mu-Synthesis Toolbox
The Mu-Synthesis toolbox, which was created by renowned experts in Robust Control named Balas, Doyle, Glover,
Packard, and Smith, offers various features that enable robust controller design in the frequency domain.
These individuals are highly respected in the field of control engineering worldwide.
We will focus on highlighting a few noteworthy aspects of the toolbox, providing a glimpse into its capabilities.
Basic Definitions:
Given A, B, C, and D matrices in state-space representation a system matrix can be defined using:
Sys=pck(A,B,C,D);
[A,B,C,D]=unpck(sys);
System Interconnections
To construct a generalized system by connecting multiple subsystems, the sysic command can be employed.
However, before utilizing the sysic command, certain prerequisites need to be fulfilled. Firstly, the names of the subsystems must be defined, indicating how each
subsystem is identified.
Additionally, the names of the inputs and outputs of the overall system need to be specified, denoting the signals that enter and exit the system.
Finally, the inputs to each subsystem should also be defined, outlining the signals that are provided as inputs to individual subsystems.
By fulfilling these requirements, the sysic command can be effectively utilized to interconnect the subsystems and form a comprehensive system described in a
generalized form.
Optimal Controller Design
Generalized plant has been formed:
system: 4 states 3 outputs 2 inputs
• nd2sys(), which enables the construction of a Single Input Single Output (SISO) system using a numerator and denominator representation. By providing the
appropriate numerator and denominator coefficients, the nd2sys() function allows for the creation of a mathematical representation of the system.
• Another useful function is conv(), which facilitates the multiplication of polynomials. This function is commonly used when manipulating transfer functions or
performing operations involving polynomial expressions in control systems.
• It is worth noting that the Mu-Synthesis toolbox considers a constant input Wu=1 as a system. While this may seem unconventional, it is a valid approach
within the context of the toolbox and can be utilized accordingly for system analysis and design.
# of measurement
𝑇𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑒
Gamma range
# of control
[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamTry) calculates a controller for the target performance level gamTry. Specifying gamTry can be useful when the optimal controller performance is better
than you need for your application. In that case, a less-than-optimal controller can have smaller gains and be more numerically well-conditioned. If gamTry is not
achievable, hinfsyn returns [] for K and CL, and Inf for gamma.
example
[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamRange) searches the range gamRange for the best achievable performance. Specify the range with a vector of the form [gmin,gmax]. Limiting the
search range can speed up computation by reducing the number of iterations performed by hinfsyn to test different performance levels.
Robust Performance
Test the system response for
Frequency response of the closed loop system several allowed perturbations
References
• https://www.mathworks.com/help/robust/ref/dynamicsystem.hinfsyn.ht
ml
• https://www.mathworks.com/help/robust/controller-synthesis.html
• https://www.mathworks.com/videos/robust-control-part-5-h-infinity-and-
mu-synthesis-1586760454181.html
• Mu-Analysis and Synthesis Toolbox_For Use with MATLAB, Gary
J.Balas, John C.Doyle, Keith Glover, Andy Packard, Roy Smith
• Robust Control Toolbox_Getting Started Guide, User’s Guide
• Use of mu-Synthesis Toolbox. M. Turan Söylemez