Why does robstab return stable perturbation?
1 回表示 (過去 30 日間)
古いコメントを表示
With specific forms of parametric uncertainty, I am getting incorrect results when analyzing the stability using robstab in the Robust Control Toolbox. The destabilizing perturbation returned does not result in an unstable system. Additionally, the identified bounds are incorrect.
It seems the issue is limited to situations in which the ureal parameter does not have equal +/- percentages. An example is shown below of a 1st-order low-pass filter with uncertain time constant. This system should be unstable for negative tau, and stable for positive tau.
% Example code of incorrect robstab results
tau = ureal('tau',1,'Range',[0.75 1.5]);
disp(tau);
G = tf(1,[tau 1]);
[STABMARG, WCU, INFO] = robstab(G,opts);
The resulting upper bound is 300% (I think it should be 400%) and I'm told tau = 1 is destabilizing (which is not).
0 件のコメント
採用された回答
Abhi Sundararaman
2017 年 8 月 2 日
I agree that the values do not seem correct. In fact, strangely if you use the range [0.55, 1.5] with a nominal value of 1, then WCU will display the correct destabilizing value of tau (tau = 0). Furthermore, if you use a nominal value that is closer to the upper bound than the lower bound, then tau gets approximated to some value close to zero. I'm not sure why there is such an inconsistency in this function.
The issue seems to occur when the ureal parameter has an asymmetric range that is asymmetric past a certain degree, and occurs more often when the nominal value is closer to the lower bound than the upper bound.
I have notified the developers of this issue. Unfortunately, I suppose the only workaround for now is to use a symmetric range.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Robustness and Worst-Case Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!