Convert transfer function writing form
44 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alexander Quarterblad
el 14 de Mzo. de 2021
How to convert transfer function writing form Matlab form to canonical from via Matlab?
canonical form:
Example:
0 comentarios
Respuesta aceptada
Paul
el 14 de Mzo. de 2021
Editada: Paul
el 14 de Mzo. de 2021
Maybe something like this:
>> H = tf([15 25 1],[5 0 5],-1)
H =
15 z^2 + 25 z + 1
-----------------
5 z^2 + 5
Sample time: unspecified
Discrete-time transfer function.
>> H.Variable='z^-1'
H =
15 + 25 z^-1 + z^-2
-------------------
5 + 5 z^-2
Sample time: unspecified
Discrete-time transfer function.
>> minreal(H)
ans =
3 + 5 z^-1 + 0.2 z^-2
---------------------
1 + z^-2
Sample time: unspecified
Discrete-time transfer function.
Note that minrea() will remove common poles/zeros in addition to normalizing so that the denominator has a leading coefficient of 1. Alternatively, convert to one of the other forms and then coonvert back to normalize the denominator, e.g.,
>> H
H =
3 z^2 + 5 z + 0.2
-----------------
z^2 + 1
Sample time: unspecified
Discrete-time transfer function.
>> tf(zpk(H))
ans =
3 z^2 + 5 z + 0.2
-----------------
z^2 + 1
Sample time: unspecified
Discrete-time transfer function.
Can also write the transfer function in terms of z^-1 from the start:
>> H = tf([15 25 1],[5 0 5],-1,'Variable','z^-1')
H =
15 + 25 z^-1 + z^-2
-------------------
5 + 5 z^-2
Sample time: unspecified
Discrete-time transfer function.
0 comentarios
Más respuestas (1)
Walter Roberson
el 14 de Mzo. de 2021
temp = cellfun(@(n, d) tf(n./d(1),d./d(1),h.Ts),h.num,h.den,'uniform', 0)
This returns a cell array with size output dimensions by input dimensions. This turns out to be the easy part. The harder part is automatically putting the cell back together the right way. You cannot create a vector and reshape. You can vertcat and horzcat but unless you loop somehow over rows or columns you have trouble getting the right size output.
It might even be easier to create the cells separately and build one tf... might work.
3 comentarios
Walter Roberson
el 14 de Mzo. de 2021
Ah, I did not notice the change in coordinates (it was pretty late my time!)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!