To determine whether the system is stable.
35 ビュー (過去 30 日間)
古いコメントを表示
I have writen the code to determine the stability of a system. However, the result keeps saying that 'System is not stable' even if I checked the value of pm in workspace and it shows that pm equals to 1, which means that the system is marginally stable. What's wrong with it?
b = [1 0 0 -1 0];
a = [1 0 0 0 -1];
zplane(b,a)
p = roots(a);
pm = abs(p);
if max(pm) <= 1
disp('System is stable');
else
disp('System is not stable');
end
end
0 件のコメント
採用された回答
Star Strider
2021 年 9 月 21 日
Welcome to the wonderful world of floating-point approximation error!
See ‘Check’ and ‘Check_max’ for an illustration of the probllem:
format long % View Full Precision Results
b = [1 0 0 -1 0];
a = [1 0 0 0 -1];
zplane(b,a)
p = roots(a)
pm = abs(p)
Check = pm-1
Check_max = max(pm)-1
if max(pm) <= 1
disp('System is stable');
else
disp('System is not stable');
end
% end
.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Filter Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!