Control System with Tunable Components
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 zpk
and tf
.
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 F
.
Connect the models together to construct a model of the closed-loop response from to .
T = feedback(G*C,S)*F
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 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 T
.
T.Blocks
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.
Related Examples
- Tunable Low-Pass Filter
- Create Tunable Second-Order Filter
- Create State-Space Model with Both Fixed and Tunable Parameters