본문 바로가기

Theory/ControlTheory

제어입력의 크기를 가늠하기 위한 단순 진자 시뮬레이션 실험


   동역학 모델 !  
 

제목에도 있지만, 문득 그냥 고정된 진자를 움직일려면 어느정도 힘이 필요한지 궁금했습니다. 그래서 급히 동역학을 구성하고 한번 테스트를 해 보기로 했습니다. 일단,


위과 같이 생각합니다. m은 질점이라고 가정하고 이너셔는 없다고 봅니다. 진자의 길이는 l이고 움직인 각도는 theta로 표현하기로 하지요. 그러면


와 같이 질점의 위치벡터를 잡을 수 있고, 그로부터 속도벡터 v를 유도할 수 있습니다.


[공학기초/Robot] - Cart Pendulum의 동역학 유도에서 이야기 한데로 라그랑지방법을 사용하기 위해 위치에너지(T)와 운동에너지(V)를 설정하고 라그랑지 방정식을 만듭니다. 위치에너지나 운동에너지 모두 질점에 대해서만 생각하면 됩니다. 그리고, 간단히 유도를 해보면


위와 같이 나타나는군요. 여기서 f_theta는 마찰계수입니다.

   MATLAB 시뮬레이션 구축 !  
 


먼저 앞서 구한 최종식을 위와 같이 꾸미고, Fcn안에는


와 같이 입력합니다. 그걸 Subsystem으로 구축하고 다시 [공학기초/MATLAB] - Simulink에서 Mask 하기에서처럼 masking을 합니다.


귀찮아서 설명은 안달았습니다....ㅜ.ㅜ 보시 다시피 무게는 50톤으로 설정하고 길이는 30m로 설정했습니다. 그리고, 마찰은 없다고 보고, 초기값도 0로 설정했습니다.

 
마스킹된 블럭을 포함한 전체 블럭입니다. 제어입력으로는 Newton(N)이 단위인 힘을 정현파로 인가하는 것으로 하고, 각도와 각속도를 degree단위로 보기 위한 블럭도 넣었습니다. 


   실험 셜과 !  
 


위에 보이듯이 설정무게를 50톤으로 잡았기 때문에 입력 진폭도 100kN으로 잡았습니다. 그리고, 주파수는 0.1rad/sec로 설정했습니다. 그 결과는


위에 보다시피 0.5도도 채 움직이질 못하네요...ㅜ.ㅜ


그래서, 주파수를 0.2rad/sec로 잡고 시뮬레이션 시간을 좀 길게 해보았습니다.


그랬더니 위와 같은 결과가 나왔습니다. 일단, 생각보다 작은 진폭의 결과가 나와서 좀 의아하구요. 두번째로는 결과 그래프가 깔끔한 즉, 입력과 같은 정현파가 아니라 좀 찌그러 진다던지 혹은 진폭이 변화하는가.. 하는 것인데요... 음... 역시 역학이 약해서 뭐라 아름다운 결론을 내리기가 좀 힘드네요..ㅜ.ㅜ 좀더 생각을 해봐야겠네요...


반응형