about why in pole placement gives me error?
古いコメントを表示
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,:));
採用された回答
その他の回答 (1 件)
azam ghamari
2018 年 12 月 28 日
2 件のコメント
Aquatris
2018 年 12 月 28 日
This error is not because of place function. Just check the size of the matrix place() function return with given A and B matrice and you will realize the error.
Since this is a 2 input 4 state system, place() will return a 2x4 matrix. With the line "K(j,:) = place(...)" you are trying to assign 2x4 matrix to a 1x4 matrix, hence the error dimension mismatch. A quick fix is to change the line to;
K(j,:,:)=place(A,B,p(j,:))
azam ghamari
2018 年 12 月 29 日
カテゴリ
ヘルプ センター および File Exchange で Robust Control Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!