MATLAB Answers

0

Transfer function in Simulink different from Matlab

Asked by Daniel P on 20 Nov 2012
Hey everybody,
I am plotting the step response of a transfer function with matlab and the result is fine.
Gs = (1/s^2) * (1 - 2*exp(-s*0.5) + exp(-s))
Now I am trying to build this function in Simulink with standard blocks, but the step response is different from matlab:
and
I have tried many different solver settings but the result is always the same. I anyone has Ideas what might be the problem, please let me know.
Thanks in advance,
Daniel.

  4 Comments

Show 1 older comment
s=tf('s')
Gs = (1/s^2) * (1 - 2*exp(-s*0.5) + exp(-s))
step(Gs)
What version of matlab are you using? this did'nt work for me
Version R2012a

Sign in to comment.

2 Answers

Answer by Pedro Villena on 21 Nov 2012
Edited by Pedro Villena on 21 Nov 2012
 Accepted Answer

Gs = (1/s^2) * (1 - 2*exp(-s*0.5) + exp(-s))
Gs = 1/s^2 - (2/s^2)*exp(-s*0.5) + (1/s^2)*exp(-s)

  2 Comments

I will try that later. Thanks for your effort.
That looks good. It seem to work for the moment. Thank you very much.

Sign in to comment.


Answer by Ryan G
on 20 Nov 2012

The easiest way to achieve the desired results would be with the LTI System block which comes with the Control System Toolbox. This allows you to create a system in MATALB and directly utilize it in Simulink.
However, your model as shown works. You need to adjust the relative tolerance in the configuration parameters to be tighter. Try 1e-6 or 1e-8 and check the results.

  2 Comments

Hello Ryan.
Are you talking about the relative tolerances of the Integrators? I have tried to reduce them to 1e-10 but still the same (bad) result.
Any other suggestions?
Thanks for your help!
Using the LTI System block causes the same problem :-/

Sign in to comment.