从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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...