How to Convert Symbolic Transfer Function into zero-pole transfer function?

799 views Asked by At

I am trying to convert my Symbolic transfer function (e.g. (m.s^2+c.m.s+c.m^2)/s^3+2.m.c.s^2+2.c.s-c^2.m) into zero-pole form like [((s-c/m)(s-2.c.m))/(s-cm)(s-m/2.c)(s-cm)] by using command tf2zp but it is giving

error "DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use VPA."

Can somebody help to fix this error because i need pole-zero form in symbolic form. I would be very grateful.

1

There are 1 answers

0
Cecilia On

Symbolic expressions are not read as transfer functions, you need to turn it into a tf to be able to use tf2zp

I'm not sure about the VPA option but you can try turning the numerator and denominator into vectors by using sym2poly and then using them as the [num, den] required in tf2zp

(this is, assuming c and m are numeric values. If they are all symbolic I think it might be a bit more complicated)