Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"More Zeros than Poles" in Simulink issue

2,030 views
Skip to first unread message

Wen Long

unread,
May 28, 2012, 9:58:06 AM5/28/12
to
Error from 'tf2ss' --> Order of denominator must be greater than or equal to order of numerator
The other error was an issue with "More Zeros than Poles" (and I don't remember the rest)

The problem is about a rapresentation of our Regulator/Compensator FeedForward on Simulink.

num=[1 190.7 10033 87930 56700];
den=[36290 90720 56700];

It has more zeros than poles And Simulink refuses it with a single block.
We tried Transfer Fcn, Trasfer Fcn Discrete, Zero-Pole.
We saw that someone use State-Space Block for the FeedForward, but it's not compatible with our university project :(
Could you help us with the correct instruction and block?
Thank you for the support
SWL, Bologna University (Italy, Computer Science Engineering)

Star Strider

unread,
May 28, 2012, 3:23:07 PM5/28/12
to
"Wen Long" wrote in message <jq009e$8vq$1...@newscl01ah.mathworks.com>...
------------------------------------------------------------------------

To see the problem with your tf, I suggest:

[h,t] = impz(num,den);
plot(t,h)
grid

If your present model is continuous, you can first convert it to discrete if you like, but the result won't change significantly.

Wen Long

unread,
May 28, 2012, 4:04:06 PM5/28/12
to
"Star Strider" wrote in message <jq0jar$lt2$1...@newscl01ah.mathworks.com>...
Here you are the image of the figure:
http://img545.imageshack.us/img545/81/impzi.png
How exactly can we transform the function to discrete?
This function of FeedForward will be used to only increase the acceleration of Step Response (combined with a FeedBack component). So we don't need so exactly result, but just only more acceleration in the step :)

I've tried some discrete blocks on Simulink (Trasnfer FCN Discrete), but probably I have to set something to set the calculation "more softly" than the continuous one :O
Thanks again
SWL

Wen Long

unread,
May 29, 2012, 6:57:13 PM5/29/12
to
The main error is: tf2ss --> order of denominator must be greater than or equal to order of numerator (using Transfer Fcn)
num=[1 190.7 10033 87930 56700];
den=[36290 90720 56700];
Probably it's impossible to realize such system in real life and in Simulink (not real). It that correct or can I try to realize in Simulink?

My professor suggest my THIS component start from Feedforward = G^-1
G= 56700 /((s+0.7)*(s+10)*((s+90)^2));
Any new idea to explain this limit of Simulink?

Phil Goddard

unread,
May 29, 2012, 9:57:07 PM5/29/12
to
You can't implement (in Simulink or real-life) non-proper transfer functions.

A typical thing to do would be to append as many fast response first order filters to your model as required to make it proper.

i.e.
(s+10)(s+7)(s+15)/(s+4)

requires 2 poles to be proper, so it becomes
1000*1000*(s+10)(s+7)(s+15)/(s+4)(s+1000)(s+1000)

The Bode response of these plots is identical up to a high frequency.

Phil.

Wen Long

unread,
May 30, 2012, 6:30:17 AM5/30/12
to
[RESOLVED with SOLUTION]

Thank you Phil!
Yes, the main problem was that Matlab can do this Feedforward because it's a virtual non-realistic workspace. Simulink is made of real-blocks components, so has got some limitations for the implementation (as like in the reality, of course!).
As you said, we are interesting only for the high frequencies, so this modification at low freq we don't care ;)

I've followed your formula, and this is my best result for using the step response:
G= 56700 /((s+0.7)*(s+10)*((s+90)^2));
Rff = 20000*20000*(G^-1)/((0.01*s+1)*(s+20000)*(s+20000));

Thank you so much!
SWL, Bologna (Italy)

M Gokul

unread,
Jun 6, 2016, 2:48:09 AM6/6/16
to
"Phil Goddard" <ph...@goddardconsulting.ca> wrote in message <jq3upj$qbc$1...@newscl01ah.mathworks.com>...
thank you Phil. your thread was really helpful as i was also facing the problem of implementing transfer function with numerator order > denominator order
0 new messages