state-space controlability

3 次查看(过去 30 天)
hello.
i'm fairly new to MatLab and im trying calculate whether a state-space system is controllable or not and then display it in writing. the question i have is: am i doing it correclty? i've googled a bit trying to figure it out on my own, but since i have little no no experience using the software i'm not getting a definite answer.
my goal is simply to write out whether the system is controlable or not, and im unsure if i've got the syntax correct.
thanks in advance :)
System controlability.
clc, clear, close all;
A=[1 1;-4 -2;]; B=[1 -1;1 -1];
system=ss(A,B,[],[]);
co=ctrb(system)
dimensjon=isequal(A,co);
if(dimensjon==0)
disp('system is not controlable')
else
disp('system is controlable')
end
edit:
i've since updated the code:
  • think it's better, but original question still stands.
System controlability.
clc, clear, close all;
A=[1 1;4 -2]; B=[1 -1;1 -1];
system=ss(A,B,[],[]);
co=ctrb(system);
unco= length(A)-rank(co);
if(unco==0)
disp('system is controlable')
else
disp('system is not controlable')
end

采纳的回答

Star Strider
Star Strider 2022-2-24
The example in the documentation section on Check System Controllability is the same test I usually use. It would be appropriate in your application as well.
  4 个评论
sverre Kvist
sverre Kvist 2022-2-24
alright. thank you very much for your assistance.
i think i've arrived at a code that works.
for Reference:
clc, clear, close all;
A=[1 1;4 -2]; B=[1 -1;1 -1];
system=ss(A,B,[],[]);
controlabilityMatrix=ctrb(A,B); %Mc=[B, AB]
unco= length(A)-rank(controlabilityMatrix);
if(unco==0)
disp('system is controlable')
else
disp('system is not controlable')
end
Star Strider
Star Strider 2022-2-24
My pleasure!
The code appears to be correct, at least wirh respect to my understanding.
If my Answer helped you solve your problem, please Accept it!
.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by