问题描述
我希望我写在正确的地方。 我的目标是通过 MATLAB 在连续时间内模拟以下系统:
\dot x(t) = f(x) + g(x)·u,y(t) = C·x(t-k)
我确实找到了一个名为 dde23
的求解器来完成此任务。但是,我似乎无法让它输出 y(t) 的值。
sol = dde23(@(t,x,Z)ddex1de(t,Z),[12],@ddex1hist,[0,100]);
figure;
plot(sol.x,sol.y)
xlabel('time t');
ylabel('solution y');
% --------------------------------------------------------------------------
function s = ddex1hist(t)
% Constant history function for DDEX1.
s = zeros(1,1);
end
% -------------------------------------------
function [dxdt] = ddex1de(t,Z)
% Differential equations function for DDEX1.
y = 2*Z(:,1);
dxdt = [-2*y(1)+3;];
end
然而,虽然这段代码确实会使用滞后变量 x
,但它不允许我输出 y
,它是 x
的缩放和延迟版本。事实上,如果我将它放在 dydt
变量中,这将被整合,这不是我的目标。
有任何改变的建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)