Create a model of a mass-spring-damper system in which the mass, spring constant, and damping constant are all uncertain.
m = ureal('m',3,'percent',40);
k = ureal('k',2,'percent',30);
c = ureal('c',1,'percent',20);
G = tf(1,[m,c,k])
G =
Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states.
The model uncertainty consists of the following blocks:
c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences
Type "G.NominalValue" to see the nominal value, "get(G)" to see all properties, and "G.Uncertainty" to interact with the uncertain elements.
G is a uss model. Extract its nominal value.
Gnom = getNominal(G);
Because G has only uncertain control design blocks, Gnom is a numeric state-space (ss) model.
Combine G with a tunable PID controller.
C = tunablePID('C','pid');
T = feedback(G*C,1)
T =
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 3 states, and the following blocks:
C: Tunable PID controller, 1 occurrences.
c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 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 generalized state-space (genss) model that has both tunable and uncertain blocks. Extract the nominal value of T.
Tnom = getNominal(T)
Tnom =
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 3 states, and the following blocks:
C: Tunable PID controller, 1 occurrences.
Type "ss(Tnom)" to see the current value, "get(Tnom)" to see all properties, and "Tnom.Blocks" to interact with the blocks.
Extracting the nominal value of T preserves the tunable control design block, resulting in another genss model.