This example shows how to create a tunable model of a control system that has both fixed plant and sensor dynamics and tunable control components.
Consider the control system of the following illustration.
Suppose that the plant response is , and that the model of the sensor dynamics is . The controller is a tunable PID controller, and the prefilter is a low-pass filter with one tunable parameter,a.
Create models representing the plant and sensor dynamics. Because the plant and sensor dynamics are fixed, represent them using numeric LTI models.
G = zpk([],[-1,-1],1); S = tf(5,[1 4]);
To model the tunable components, use Control Design Blocks. Create a tunable representation of the controllerC.
C = tunablePID('C','PID');
C
is atunablePID
object, which is a Control Design Block with a predefined proportional-integral-derivative (PID) structure.
Create a model of the filter with one tunable parameter.
a = realp('a',10); F = tf(a,[1 a]);
a
is arealp
(real tunable parameter) object with initial value 10. Usinga
as a coefficient intf
creates the tunablegenss
model objectF
.
Interconnect the models to construct a model of the complete closed-loop response fromrtoy.
T = feedback(G*C,S)*F
T = Generalized continuous-time state-space model with 1 outputs, 1 inputs, 5 states, and the following blocks: C: Tunable PID controller, 1 occurrences. a: Scalar parameter, 2 occurrences. Type "ss(T)" to see the current value, "get(T)" to see all properties, and "T.Blocks" to interact with the blocks.
T
is agenss
model object. In contrast to an aggregate model formed by connecting only numeric LTI models,T
keeps track of the tunable elements of the control system. The tunable elements are stored in theBlocks
property of thegenss
model object. Examine the tunable elements ofT
.
T.Blocks
ans =struct with fields:C: [1x1 tunablePID] a: [1x1 realp]
When you create agenss
model of a control system that has tunable components, you can use tuning commands such assystune
to tune the free parameters to meet design requirements you specify.