Creating Symbolic state space model and transforming to canonical form?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Johnathon Street
el 17 de Abr. de 2021
Comentada: Johnathon Street
el 17 de Abr. de 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 comentarios
Respuesta aceptada
Paul
el 17 de Abr. de 2021
Editada: Paul
el 17 de Abr. de 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 comentarios
Walter Roberson
el 17 de Abr. de 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.
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!