How does Simulink Simulate Transfer function?

5 Ansichten (letzte 30 Tage)
Nicobari Jarawa
Nicobari Jarawa am 5 Nov. 2015
Bearbeitet: Nicobari Jarawa am 5 Nov. 2015
Hi, I was working with Transfer Functions in Simulink and am seeing some weird results. The transfer function I am trying to simulate is tf([2 4],[1 4]). Now if I convert the same transfer function into state space I will get A=-4, B=1, C=-4, D=2 such that Xdot=A*X+B*u and Y=C*X+D*u. Just because I want to understand how everything works I am using a matlab user defined function in simulink to calculate my output of the transfer function, I am usimg X(t)=X(t-1)+dt*(A*X(t-1)+B*u(t)) and then Y=C*X(t)+D*u(t) where Y is my output. The simulink model is shown in picture
And the code inside user define MATLAB function is as follows
function y = fcn(u)
dt=0.01;
persistent X
if isempty(X)
X=0;
end
b0=2;b1=4;a1=4;D=b0;
Beta1=b1-D*a1;
X=X + dt*(-a1*X+u);Y=Beta1*X-D*u;
% X=X+dt*(2*udash+u-4*X);
y = Y;
When I run simulation the output of two blocks are not same it looks something like
Where Yellow color is for the Transfer Fcn block. What am I doing wrong. I will appreciate any help regarding this matter. I am using ODE 1 solver with fixed time step of 0.01.
Regards, TM

Akzeptierte Antwort

Nicobari Jarawa
Nicobari Jarawa am 5 Nov. 2015
Got it, my output equation should be
Y=Beta1*X+D*u;

Weitere Antworten (0)

Kategorien

Mehr zu Simulink finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by