我在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的一个例子或解释来帮助我
谢谢
答案 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
אורהירשפלד