Why does robstab fail for systems with more than two zeros?
Show older comments
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);
Accepted Answer
More Answers (0)
Categories
Find more on Wireless Communications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!