[英]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.