function dxdt = driver_system(t, x)
alpha = 0.98; % 可根据需要设置 alpha 的值
dxdt = zeros(2, 1);
dxdt(1) = x(2)^(1/alpha);
dxdt(2) = (x(1) - x(1) * abs(x(1)) + 0.05 * x(2) * (1 - x(2)^2) + 0.4 * sin(t))^(1/alpha);
end
function [u1, u2] = control_function(t, x, y, alpha)
e1 = x(1) - y(1);
e2 = x(2) - y(2);
u1 = e1 + e2;
u2 = 1.05 * e2 + e1 - x(1) * abs(x(1)) + y(1) * abs(y(1)) - 0.05 * x(2)^3 + 0.05 * y(2)^3;
end
function dydt = response_system(t, y)
alpha = 0.98; % 可根据需要设置 alpha 的值
x = [y(1); y(2)]; % x 是通过测量得到的驱动系统输出
[u1, u2] = control_function(t, x, y, alpha);
dydt = zeros(2, 1);
dydt(1) = (y(2) + u1)^(1/alpha);
dydt(2) = (y(1) - y(1) * abs(y(1)) + 0.05 * y(2) * (1 - y(2)^2) + 0.4 * sin(t) + u2)^(1/alpha);
end
function main()
% 设置仿真时间范围
tspan = [0 10];
% 设置初始条件
x0 = [3; -3]; % 初始状态值
y0 = [-3; 2];
% 解驱动系统和响应系统的微分方程
[~, X] = ode45(@driver_system, tspan, x0);
[~, Y] = ode45(@response_system, tspan, y0);
% 绘制 y(1) 与时间 t 的图像
figure;
plot(Y(:,1));
axis([0 100 -4 3]);
end
求大家指点
你得复现代码怎么来的