2015-06-05 7 views
-1

Я делаю один код в 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

Спасибо

+0

Если вы ищете "MatLab код в Simulink" вы получите много результатов. Разве они не помогли? – Navan

+0

Нет, я не видел, ничего интересного для моего примера. Теперь я видел несколько примеров, но я не понимаю. – user243380

+0

x0 = [2,5; 0]; tf = 3 * pi; options = simset ('InitialState', x0); [t, x] = sim ('vdp2n', tf, options); plot (t, x (:, 1), '-', t, x (:, 2), '-.') С примером уравнения пула van der работает правильно, но в моем случае передайте x0 = [ 0,0], и никакой работы для этого резонанса, может быть, ничего не понять или нет правильно @Navan – user243380

ответ

0

вы можете использовать функции блока MATLAB в Simulink и скопировать код в функцию. Но важно, чтобы вы добавить строки определяют все MatLab команды в первой строке функции:

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

вы также урожденная добавить конец в нижней части функции.

Matlab Функциональный блок Link: http://www.mathworks.com/help/simulink/slref/matlabfunction.html coder.extrinsic документация: http://www.mathworks.com/help/fixedpoint/ref/coder.extrinsic.html

Или Гиршфельд

אור הירשפלד

+0

Существует также возможность использовать его с помощью специального блока simulink для решения дифференциальных уравнений, называемого DEE. перейдите по этой ссылке: http://www.ualberta.ca/~fforbes/che572/pdf_current/DEE_tutorial.pdf –

+1

Начиная с R2014b, 'odeset' и' ode23' [поддерживаются для генерации кода] (http: // www. mathworks.com/help/coder/release-notes.html#R2014b), поэтому вам не нужно объявлять их внешними –

Смежные вопросы