MATLAB에서 분석 솔루션을 찾은 차등 및 대수 방정식이 혼합되어 있습니다. y=x^2
으로 제한된 2D 커브를 따라 움직이는 점 질량에 관련됩니다.MATLAB에서 y = x^2를 따라 움직이는 2D 점 질량을 시뮬레이트합니다.
커브 위로 구르는 공을 시뮬레이트하기 위해 MATLAB에서 ode-solver (또는 다른 것이 더 쉬운 경우)를 사용하려면 어떻게해야합니까? 제가 직접 할 수있는 애니메이션, 나는 연속적인 단계마다 속도 (xd yd
)를 찾는 것에 더 관심이 있습니다. 그것이 내가 잃어버린 곳입니다.
이들은 Lagrange 승수를 사용하여 유도 한 운동 방정식입니다. 따라서 lambda
. lambda
은 반력입니다. xdd ydd
가속도를 계산할 수 있습니다. 그러나이 시뮬레이션을 올바르게 시뮬레이션하려면 상태의 속도가 필요합니다. 당신은 당신이 아래에 볼 수있는 다음과 같은 공식을 얻을 것 lagrancian를 사용하여 문제를 해결하는 경우
% Symbolic functions
syms y x xd yd xdd ydd
syms m g lambda
% Parameters
A = [m 0 -2*x; 0 m 1; -2*x 1 0];
X = [xdd ydd lambda].';
b = [0 -m*g -2*xd^2].';
sol = A\b % these are the states stored in X
가속도를 알고 있으면 속도와 위치를 계산할 수 있습니다. x = dx + dx * dt, dx = dx + ddx * dt. (d -> 유도체, dd 2 차 유도체). 시간이 지남에 따라 루프가 반복됩니다 ... –
커브를 따라 질량에 대한 운동 방정식을 쓰면됩니다. Serret-Frenet 수식 : https://en.wikipedia.org/wiki/Frenet%E2%80%93Serret_formulas. 일단 당신이 그들을 가지면 Runge-Kutta 수치 적분이 충분해야합니다. – duffymo