如图,怎么利用matlab画出这个分段微分方程的关于x和x点(x导)的坐标系图?
这个问题的关键在于,如何处理碰撞时速度状态量的突变问题,两种解决思路:
注意碰撞时应该是 dx = -0.99*dx ,即碰撞后速度方向会发生变化。
第2种方法的代码如下:
clear
clc
x0 = [0;0];
ts = 0.01;
T = 0:ts:10;
x = x0;
for ii = 1:length(T)
t = T(ii);
dx(1,1) = x(2);
w = 1;
dx(2,1) = 0.1*sin(w*t) + 0.1*x(2) - 0.25*x(1)^3 + 0.5*x(1);
x = x + dx*ts; % 欧拉法解微分方程
%% 碰撞处理
if x(1) <= -0.6
x(1) = -0.6;
x(2) = -0.99*x(2);
elseif x(1) >= 0.5
x(1) = 0.5;
x(2) = -0.99*x(2);
end
X(:,ii) = x;
end
%% 相图
figure
plot(X(1,:),X(2,:))
xlim([-0.8 0.8])
xlabel('x')
ylabel('dx')
相图为: