【发布时间】:2017-03-31 05:40:11
【问题描述】:
我已经在 MATLAB 中建立了一个模型,并且我正在使用 SIMULINK 来求解微分方程。
function sys=mdlDerivatives(t,x,u)
% Constant block
n = 10; % fixed switch exponent
k1 = u(2);% input rate constant (1/min)
k2 = u(3);% output rate constant (1/min)
Td = 70; % time delay (min)
Alfa = 0.7;% ug per 100 ml
Beta = 1;% ug per 100 ml
f = 250; % phase (min)
a=Alfa*cos((t-f)*2*pi()/1440) + Beta;
Sigmoid = a^n*u(4)/(a^n + u(4)^n);
dxdt(1) = k1*Sigmoid -k2*x(1);
sys = [dxdt];
我想从基础工作区发送 Alfa 的值。
tspan=[0:0.05:1400]';
x0=1.7;
PARAMETERS=simset('InitialState',x0,'Solver','ode15s','MaxStep',0.05,'OutputPoints','specified','RelTol',1E-6);
[tdata,y]=sim('cortisol_model_2',tspan,PARAMETERS);
我尝试在 simulink 块中使用 From Workspace,但我只能从中插入一个向量。那么有没有更好的方法将常量参数传递给 mdlfunction。我实际上想传递不同的 alpha 值来检查灵敏度。
【问题讨论】: