Numerical instability of spherical pendulum

Hi,
I am trying to simulate a spherical pendulum. The equation of motion of the spherical pendulum are:
So far, I was able to simulate the equation of motion with a ode45 solver. However I experiencing numerical instabilities when the phi angle approach zero.
Does any one have an idea to get rid off these numerical instabilities?
Thank you in advance,
Bas

 채택된 답변

Mischa Kim
Mischa Kim 2015년 2월 25일

0 개 추천

Bas, the plus sign in your equation does look a bit strange. Shouldn't that be a minus instead?

댓글 수: 8

Bas Siebers
Bas Siebers 2015년 2월 26일
Yes that needs to be a minus sign
Mischa Kim
Mischa Kim 2015년 2월 26일
Did the sign change take care of the instability issue?
Bas Siebers
Bas Siebers 2015년 2월 26일
No, I still have the same problem.
Mischa Kim
Mischa Kim 2015년 2월 26일
Can you attach the code?
Bas Siebers
Bas Siebers 2015년 2월 26일
I have attached two files:
- the function 'odefun'
- the program
I get numerical instabilities when I give initial_dot_theta a value that isn't equal to zero
Mischa Kim
Mischa Kim 2015년 2월 26일
Without having gone through your code in detail, I believe you are good to go. I have created the plot below from your code.
  1. The azimuth is growing out of bounds and that's to be expected (conservation of angular momentum). The pendulum is simply rotating about the z-axis. Consecutive rotations do not start from zero but continue at 360, 720, etc. So this has nothing to do with an unstable behavior of any kind.
  2. Another thing to be expected is that the elevation does not cross zero for non-zero angular momentum (about the z-axis), also due to conservation of angular momentum. Nice to see in the plot, when elevation decreases the azimuth rate is higher.
Hope this helps.
Bas Siebers
Bas Siebers 2015년 2월 26일
편집: Bas Siebers 2015년 2월 26일
Thank you, I have still one question: Why is the line of the azimuth angle not straight? With other words, why is the velocity of the azimuth angle not constant? Because the initial value of the azimuth angle velocity is constant.
Angular momentum is conserved (constant), not azimuth rate. The equation for the angular momentum is
m*l^2*sin(phi)^2*thetadot = const.
Therefore, when phi decreases, thetadot increases, just like described above.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

제품

질문:

2015년 2월 25일

댓글:

2015년 2월 26일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by