如何使用 ODE45 的输入 u 进行仿真 - MATLAB
How can I simulate with a input u with ODE45 - MATLAB
我有两个函数句柄:
A = @(x, y, z) [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z]
B = @(u) [u; 0; 0]
如何在 MATLAB 中使用控制变量 u 模拟它们?控制变量 u 是时变的。
您可以使用:
[t,out] = ode45(@(t,vars) myfunction(t,vars,U),tsim,xyz0);
x = out(1);
y = out(2);
z = out(3);
其中U为u的值,tsim为仿真时间(final time o 时间向量)和xyz0是变量初始条件的向量x,y和z 形式为 [x0 y0 z0]。 myfunction 定义为:
function dxyz= myfunction(t,vars,u)
x = vars(1);
y = vars(2);
z = vars(3);
% u varying with a condition
if t>1
u = newValue;
end
% u is a function of time u=f(t)
u = 2*t;
A = [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z];
B = [u; 0; 0];
dxyz = A+B;
end
我有两个函数句柄:
A = @(x, y, z) [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z]
B = @(u) [u; 0; 0]
如何在 MATLAB 中使用控制变量 u 模拟它们?控制变量 u 是时变的。
您可以使用:
[t,out] = ode45(@(t,vars) myfunction(t,vars,U),tsim,xyz0);
x = out(1);
y = out(2);
z = out(3);
其中U为u的值,tsim为仿真时间(final time o 时间向量)和xyz0是变量初始条件的向量x,y和z 形式为 [x0 y0 z0]。 myfunction 定义为:
function dxyz= myfunction(t,vars,u)
x = vars(1);
y = vars(2);
z = vars(3);
% u varying with a condition
if t>1
u = newValue;
end
% u is a function of time u=f(t)
u = 2*t;
A = [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z];
B = [u; 0; 0];
dxyz = A+B;
end