微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从dde23微分方程Matlab延迟系统中提取变量

如何解决从dde23微分方程Matlab延迟系统中提取变量

我希望我写在正确的地方。 我的目标是通过 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 举报,一经查实,本站将立刻删除。