将Matlab的代码转换为Simulink

时间:2015-06-05 13:00:04

标签: matlab simulink

我在matlab中创建了一个代码来解决并绘制一个差分方程,但我现在的问题是如何在simulink中进行:

matlab的代码是:

function dy = eqdif1(t,y)

%y''+4y=sin^2(2x)

% with initial values y(pi) = 0,y’(pi) = 0
% y(1)=y  y(2)=y'

dy = [y(2); (sin(2*t).^2 - 4*y(1))];

clc,clear

yp = [0 0];  %initial values
options = odeset('RelTol', 1e-4);

[t,y]= ode23('eqdif1',[pi pi*3],yp,options); 

ya=-(1/6)*cos(2.*t)+ (1/4)*(cos(2.*t)).^2-(1/12)*(cos(2.*t)).^4+ (1/12)*(sin(2.*t)).^4; %analitical solution
 figure
 plot(t,y(:,1),'-',t,y(:,2),'--',t,ya,'-.')
 title(['y'''' + 4y = sin^2(2x)'])

任何人都可以通过simulink的一个例子或解释来帮助我

谢谢

1 个答案:

答案 0 :(得分:0)

您可以在Simulink中使用MATLAB功能块并将代码复制到该功能中。但重要的是,在函数的第一行添加一行定义所有matlab命令:

coder.extrinsic('odeset','ode23', 'figure','plot','title')

您可能还需要在函数底部添加end。

Matlab功能块链接:http://www.mathworks.com/help/simulink/slref/matlabfunction.html coder.extrinsic文档:http://www.mathworks.com/help/fixedpoint/ref/coder.extrinsic.html

或Hirshfeld

אורהירשפלד