我正在研究MATLAB中不连续ODE的数值积分,但是我没有得到我想要得到的结果。
我有两个通过弹簧连接的双自由度系统。 (见2-dof system)
我在MATLAB中的功能是:
function [ xdot ] = two_springs(t, x, m1, m2, c, g, k)
% x(1) = x1
% x(2) = x1'
% x(3) = x2
% x(4) = x2'
delta = max(x(3,1) - x(1,1), 0); % (Discontinuous)
F = k * delta^(3 / 2);
xdot(1,1) = x(2,1);
xdot(2,1) = (-F + m1 * g) / m1;
xdot(3,1) = x(4,1);
xdot(4,1) = (F - c * x(3,1) + m2 * g) / m2;
end
然后我随着时间的推移绘制力F.
但无论我使用哪个解算器(ode45,ode23,ode113,ode15s,ode23s,......)我都会因为步长减小到允许的最小值而失败。 主题:MATLAB- ode solver: Unable to meet integration tolerances遗憾的是没有帮助我。
有没有人知道我还能尝试什么?
非常感谢你的帮助! 齿绝杀