about why in pole placement gives me error?
187 ビュー (過去 30 日間)
表示 古いコメント
Hi guys
Does every body knows why in the system :
s=tf('s');
G=(s-2.44)/((s+5)*(s+6)*(s+7));
[A,B,C,D]=tf2ss([1 2.44],[1 18 107 210]);
k_max=1001;
for j=1:k_max
p(j,:)=[-j-1 -3*j -j-2];
K(j,:)=place(A,B,p(j,:));
end
with differeing the p value it gives me this error?
Error using place (line 78)
The "place" command cannot place poles with multiplicity greater than rank(B).
Error in test2 (line 33)
K(j,:)=place(A,B,p(j,:));
0 件のコメント
採用された回答
Aquatris
2018 年 12 月 27 日
It is just the error says. Place command cannot place poles with multiplicity greater than rank(B). In your case, rank(B) is 1. However when j=1, you want to place your poles at [-2 -3 -3]. You see the multiplicity of pole at -3 is 2. So place command cannot be used. If you start j from 2 instead of 1, there won't be an issue.
6 件のコメント
Aquatris
2018 年 12 月 28 日
I dont know why you think it does not work. You do realize place is for state feedback not output feedback so you need an observer right?
その他の回答 (1 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!