繁体   English   中英

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

[英]Extract variable from dde23 differential equation Matlab delayed system

我希望我写在正确的地方。 我的目标是通过 MATLAB 在连续时间内模拟以下系统:

\dot x(t) = f(x) + g(x)·u,
y(t) = C·x(t-k)

我确实找到了一个名为dde23的求解器来完成此任务。 但是,我似乎无法将 y(t) 的值设为 output。

sol = dde23(@(t,x,Z)ddex1de(t,x,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,x,Z)
  % Differential equations function for DDEX1.
  y = 2*Z(:,1);
  dxdt = [-2*y(1)+3;];
end

但是,尽管此代码确实会使用滞后变量x ,但它不允许我使用 output y ,这是x的缩放和延迟版本。 事实上,如果我把它放在dydt变量中,这将被整合,这不是我的目标。

任何改变有什么建议吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM