Why does robstab fail for systems with more than two zeros?
Mostrar comentarios más antiguos
When using the "robstab" function, the following error is generated when the uncertain system contains more than two zeros:
Error using DynamicSystem/robstab
Improper state-space models (models with infinite gain at s,z=Inf) do not have an explicit representation. Use the "dssdata" command
to retrieve their descriptor representation.
Using a proper system of 2 zeros and 2 poles works as expected, and strictly proper systems with 2 zeros and 3 or more poles also works as expected:
z1 = ureal('z1', -1, 'Range', [-1.2, -0.8]);
z2 = ureal('z2', -2, 'Range', [-2.2, -1.8]);
p1 = ureal('p1', -0.1, 'Range', [-0.14, -0.08]);
p2 = ureal('p2', -1.1, 'Range', [-1.4, -0.8]);
% define a proper transfer function
s = tf('s');
T = (s - z1)*(s - z2) / ...
((s - p1)*(s - p2));
opt = robOptions('Display','on');
robstab(T, opt);
But a proper system of 3 zeros and 3 poles errors:
z1 = ureal('z1', -1, 'Range', [-1.2, -0.8]);
z2 = ureal('z2', -2, 'Range', [-2.2, -1.8]);
z3 = ureal('z3', -3, 'Range', [-3.2, -2.8]);
p1 = ureal('p1', -0.1, 'Range', [-0.14, -0.08]);
p2 = ureal('p2', -1.1, 'Range', [-1.4, -0.8]);
p3 = ureal('p3', -2.1, 'Range', [-2.4 -1.8]);
% define a proper transfer function
s = tf('s');
T = (s - z1)*(s - z2)*(s - z3) / ...
((s - p1)*(s - p2)*(s - p3));
opt = robOptions('Display','on');
robstab(T, opt);
A strictly proper system of 3 zeros and 4 poles also fails:
z1 = ureal('z1', -1, 'Range', [-1.2, -0.8]);
z2 = ureal('z2', -2, 'Range', [-2.2, -1.8]);
z3 = ureal('z3', -3, 'Range', [-3.2, -2.8]);
p1 = ureal('p1', -0.1, 'Range', [-0.14, -0.08]);
p2 = ureal('p2', -1.1, 'Range', [-1.4, -0.8]);
p3 = ureal('p3', -2.1, 'Range', [-2.4 -1.8]);
p4 = ureal('p4', -3.1, 'Range', [-3.4, -2.8]);
% define a proper transfer function
s = tf('s');
T = (s - z1)*(s - z2)*(s - z3) / ...
((s - p1)*(s - p2)*(s - p3)*(s - p4));
opt = robOptions('Display','on');
robstab(T, opt);
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Uncertain Models en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!