This example shows how to create a tunable model of the control system in the following illustration.
The plant response is . The model of sensor dynamics is . The controller is a tunable PID controller, and the prefilter is a low-pass filter with one tunable parameter, .
Create models representing the plant and sensor dynamics. Since the plant and sensor dynamics are fixed, represent them using numeric LTI models
G = zpk(,[-1,-1],1); S = tf(5,[1 4]);
Create a tunable representation of the controller .
C = tunablePID('C','PID');
C is a
tunablePID 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 a
realp (real tunable parameter) object with initial value 10. Using
a as a coefficient in
tf creates the tunable
genss model object
Connect the models together to construct a model of the closed-loop response from to .
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 a
genss 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 the
Blocks property of the
genss model object.
Display the tunable elements of
ans = struct with fields: C: [1x1 tunablePID] a: [1x1 realp]
You can use tuning commands such as
systune to tune the free parameters of
T to meet design requirements you specify.