convert a transfer function to controllable and observable canonical form
438 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
TALAL alghattami
el 29 de Mzo. de 2020
Editada: Arkadiy Turevskiy
el 18 de Jun. de 2024
Hi, I want to convert a transfer function to controllable and observable canonical form for the
num = [4];
den = [1 0.8 4];
Gp = tf (num , den)
Gp =
4
---------------
s^2 + 0.8 s + 4
0 comentarios
Respuesta aceptada
Star Strider
el 29 de Mzo. de 2020
Editada: Arkadiy Turevskiy
el 18 de Jun. de 2024
num = [4];
den = [1 0.8 4];
Gp = tf (num , den);
The canon function requesting the 'companion' canonical form directly produces the observable canonical form:
GpssObs = canon(Gp,'companion')
GpssObsA = GpssObs.A
GpssObsB = GpssObs.B
GpssObsC = GpssObs.C
GpssObsD = GpssObs.D
producing:
GpssObsA =
0 -4
1 -0.8
GpssObsB =
1
0
GpssObsC =
0 4
GpssObsD =
0
The controllable canonical form is then:
GpssConA = GpssObsA.'
GpssConB = GpssObsC.'
GpssConC = GpssObsB.'
GpssConD = GpssObsD
producing:
GpssConA =
0 1
-4 -0.8
GpssConB =
0
4
GpssConC =
1 0
GpssConD =
0
Update by Arkadiy Turevskiy at MathWorks on 6/18/2024
The answer above is valid for the software release that was current at the time the answer was posted. As of R2024a the doc link is still correct, but a different function should be used to compute controllable and observable forms.
Please use the function compreal, and set the argument type to "c" or "o" for controllable and observable forms respectively.
4 comentarios
Bill Tubbs
el 5 de Feb. de 2021
Sean Doherty
el 4 de Sept. de 2021
Star Strider. This MATLAB example contradicts the documentation (https://uk.mathworks.com/help/control/ug/canonical-state-space-realizations.html)
documentaion says observable canonical form has:
in example: n = 2, b0 = 0, bn1 = 0; b2 = 4, a0 = 1, a1 = 0.8, a0 = 0.4 should give:
B0 = [4 0]'
C0 = [0 1]
MATLAB example gives:
B0 = [1 0]'
C0 = [0 4]
Documentation is correct, MATLAB's canon() is wrong?
Más respuestas (2)
Branislav Hatala
el 16 de Dic. de 2020
I would like to ask how can I convert SIMO system to controllable form. I did not find anything about SIMO or MIMO systems and this cannot be applied since C and B matrices will result in frong dimensions.
0 comentarios
Ver también
Categorías
Más información sobre Control System Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!