Why does robstab fail for systems with more than two zeros?
Afficher commentaires plus anciens
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);
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Wireless Communications dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!