Filter löschen
Filter löschen

Creating Symbolic state space model and transforming to canonical form?

4 Ansichten (letzte 30 Tage)
Hi all,
Is it possible to create a state space model based on symbolic parameters?... and then convert this model into controllable cannonical form?
Thanks,
Johnathon Street

Akzeptierte Antwort

Paul
Paul am 17 Apr. 2021
Bearbeitet: Paul am 17 Apr. 2021
Yes, at least in principle. For example:
>> A=sym('a',3)
A =
[ a1_1, a1_2, a1_3]
[ a2_1, a2_2, a2_3]
[ a3_1, a3_2, a3_3]
>> B=sym('b',[3 1])
B =
b1
b2
b3
>> C=[B A*B A^2*B]; % controllability matrix
>> t3 = [0 0 1]/C;
>> Tinv=[t3;t3*A;t3*A^2]; % state transformation
>> Ac = simplify(Tinv*A/Tinv,100)
Ac =
[ 0, 1, 0]
[ 0, 0, 1]
[ a1_1*a2_2*a3_3 - a1_1*a2_3*a3_2 - a1_2*a2_1*a3_3 + a1_2*a2_3*a3_1 + a1_3*a2_1*a3_2 - a1_3*a2_2*a3_1, a1_2*a2_1 - a1_1*a2_2 - a1_1*a3_3 + a1_3*a3_1 - a2_2*a3_3 + a2_3*a3_2, a1_1 + a2_2 + a3_3]
>> Bc = simplify(Tinv*B)
Bc =
0
0
1
  6 Kommentare
Walter Roberson
Walter Roberson am 17 Apr. 2021
A=sym('a',3)
A = 
B=sym('b',[3 1])
B = 
C=[B A*B A^2*B]; % controllability matrix
t3 = [0 0 1]/C;
Tinv=[t3;t3*A;t3*A^2]; % state transformation
Ac = simplify(Tinv*A/Tinv,100)
Ac = 
Bc = simplify(Tinv*B)
Bc = 
Works for me. I just copied Paul's code exactly.
Johnathon Street
Johnathon Street am 17 Apr. 2021
Yeah I just now got it to work. I dont know what i was doing...
It works just fine.
Thanks again

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by