Creating Symbolic state space model and transforming to canonical form?
3 views (last 30 days)
Show older comments
Johnathon Street
on 17 Apr 2021
Commented: Johnathon Street
on 17 Apr 2021
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
0 Comments
Accepted Answer
Paul
on 17 Apr 2021
Edited: Paul
on 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 Comments
Walter Roberson
on 17 Apr 2021
A=sym('a',3)
B=sym('b',[3 1])
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)
Bc = simplify(Tinv*B)
Works for me. I just copied Paul's code exactly.
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!