I have been trying yo simulate the current SIMULINK block to a MATLAB program.
I got this result.
I have tried to simulate the same wave using MATLAB but I got the below results. I can't understand why for the similar integrators the simulated wave seems different. Is there any better way to to get the same simulink result on MATLAB??
clc;clear all; close all;%Matlab program for a resonator
w=3; %Frequency in radians
Gain=-1; %Gain of the resonator
K1=1; %Gain of integrator 1
K2=1; %Gain of integrator 2
T=0.01; %Sample Time
%Define input and output of the resonator
n=0:T:20;y1=zeros(1,length(n));y2=zeros(1,length(n));x1=zeros(1,length(n));x2=zeros(1,length(n));u1=zeros(1,length(n));u2=zeros(1,length(n));u1(1:length(n))=w*Gain;x1(1)=1; x2(1)=0;%y1(1)=1; y2(1)=0;
for i=1:1:length(n) %Backward Euler method (Integrator 1)
for n1=1:1:length(n) y1(n1)=x1(n1)+K1*T*u1(n1); x1(n1+1)=y1(n1); end u2(1:length(n))=y1*w; %Input to Integrator 2
%Forward Euler method (Integrator 2)
for n2=1:1:length(n) y2(n2)=x2(n2); x2(n2+1)=x2(n2)+K2*T*u2(n2); end u1(1:length(n))=Gain*y2; %Input to Integrator 1
endplot(n,y1,'ro',n,y2,'bo');xlabel('Time(seconds)');ylabel('Amplitude');title('Sine and Cosine of the resonator');legend('Integrator 1 (Backward Euler)','Integrator 2 (Forward Euler)');grid on;
Best Answer