본문으로 바로가기

2002년 학부 졸업논문으로 완성했던 카트형 역진자 시스템입니다. 이걸 소개하는 것만 3번째네요. (네이버의 제 블로그-지금은 안쓰지만, 이전 pinkwink.kr) 데이터를 백업받을 수도 있었지만, 그래도 명색이 학부졸업논문인데, 너무 허덥하게 소개한듯해서 그냥 다시 작성할 각오로 백업받질 않았습니다. (지금 후회 中 ...) 역진자 시스템은 로터리 형이나 요즘 유행하는 밸런싱 형태도 있지만, 이 카트형 펜들럼은 상대적으로 동역학이 쬐~금 쉽고 (정말 쪼금 쉽습니다.) 기구부의 구현을 생각할때 편합니다. 기구부에서는 바퀴와 지면의 마찰력을 적절히 유지시켜야하는 부분이 좀 걸리긴 하죠^^. 역진자, 혹은 도립진자, (Inverted Pendulum) 시스템은 미사일이나 로켓트, 2족 보행로봇 등을 제어하기 위해 고안된 간단한 모델 시스템으로 카트(Cart)위의 폴(Pole)이 적당한 제어력이 없는 상황에서 중력에 의해 어느 한 쪽 방향으로 넘어지려고 할 때 외부에서 카트에 힘을 가하여 특정 위치와 폴의 각도를 유지시키는 시스템을 말합니다. 어릴때 빗자루 손가락 끝에 두고 중심잡던 놀이를 생각하시면 됩니다. 2002년 당시 동역학을 유도하고, 선형화시켜서 LQR을 이용하여 제어기를 설계했습니다. 사용한 마이크로프로세서는 80c196이었고, 앱솔루트 타입의 엔코더 2개를 센서로 사용했습니다. 모터는 Maxon의 DC모터를 사용했지요.

위의 모습은 논문 발표회를 하던 모습입니다. 쿨러가 달린 부분이 당시 DC 모터의 구동회로를 H-Bridge로 꾸몄는데 뭐가 잘못되었는지 발열이 너무 심해서 달았던 겁니다. 바퀴가 있는 부분 바로 위가 엔코더입니다. 폴이 넘어지는 각도를 측정하지요. 사진에서는 안보이지만, 앞바퀴에 또 하나의 엔코더가 달려있어서 카트의 위치를 센싱합니다.

I. 동역학 방정식 유도

카트형 펜들럼의 동역학을 유도하기 위해 간단히 카트부분을 도식화한겁니다. 폴이 누르는 힘을 P라고 하고 기울어진 폴이 카트를 미는 힘을 N이라고 합니다. 모터에 의해 움직이는 힘을 F로 두고, 카트의 위치와 가속도를 X와 X의 두번 미분치로 잡았습니다.

위는 폴(Pole)을 도식화한 것입니다. 폴자체는 카트위에 고정되어있으니 중력방향으로 병진운동으로 낙하(중력에 의해 기울어지는 것과는 별개의 문제)하지는 않습니다. 그 힘을 P로 보고, 역시 카트를 밀려고하는 힘을 N으로 보고 있습니다.

위 의 두 그림을 수직으로 표현하면 저렇습니다. 첫 그림에서 왼쪽으로 카트가 움직일려고 하는 힘 F는 속도성분에 비례하는 마찰력과 폴의 기울어짐에 의해 방해받은 힘과 실제 F=Ma라는 유명한 법칙에 의해 움직인 전체 합과 같다는 것입니다. 두 번째 수직은 폴 입장에서 유도된 것인데, 폴의 기울어지는 각도를 theta라고 했을때, 그 가속도성분은 theta 자체가 가지는, 즉 폴의 기구적인 마찰력과 무게 중심을 폴의 정중앙에 있다고 가정했을때 N과 P의 삼각함수로 표현할 수 있습니다. 이를 다시 폴의 Y축 X축 방향으로 표현하면

이 될것입니다. 이를 최초의 식에 대입하여 정리하면

이 됩니다. 이제 제어입력을 힘으로 보고난 x와 theta의 식으로 표현된것입니다. 하지만, 위 식들은 비선형 운동방정식입니다. 이를 동작점 부근에서 선형화할 필요가 있습니다.

동작점을 theta = 0 로 생각하면, 사인과 코사인은 각각 위와 같이 바뀌게 될것입니다. 그리고 평형상태 (모든 상태가 0)에서 상태를 편차까지 고려하여 다시 정립하면,

이를 이용하여 원 동역학을

로 표현하겠습니다. 좀 복잡한듯하지만, 대부분 상수값이므로 그리 복잡한 것도 아닙니다.^^ 이제 고려해야할 것이 DC모터에 관련된 부분입니다. 위 수식은 제어입력(u)을 단지 힘으로 보고 있기 때문에 바퀴를 돌릴 DC모터도 동역학적 고찰이 필요합니다. 여기선 통상 두 가지 방법이 사용되는데, 첫 번째는 필요한 힘을 산출한다음 모터의 제어기를 별도로 설계해서, 그 모터 제어기에게 필요한 속도로 돌게 하는 겁니다. 그러나 여기서는 다른 방법으로 모터의 동역학을 저 위의 수식에 포함시켜서 하나의 시스템으로 표현할 겁니다. 이를 위해 모터의 전압에 관한 식을 보면,

Vb는 역기전력으로

이므로 다시 대입하여

로 표현합니다. 우리는 기어가 장착된 모터를 사용하니까 기어비도 고려해서 생각해야겠죠.

위 그림이 도식화된 모터 제어 구성도입니다. 바퀴의 회전을 생각한다면, 회전 각도에 대한 원의 둘레로 표현을 해야할 것입니다. 이것까지 모두 고려한 수식이

입니다. Rm, Km 은 모터의 Data Sheet에 있으니 큰 걱정은 없을 겁니다.

여기서 토크식

을 이용해서

힘을 전압으로 완전히 표현할 수 있게 되었습니다. 저 F를 원 동역학에 다시 대입하겠습니다.

예.. 이제 모터에 인가되는 전압을 제어입력으로 가진 동역학을 우리는 얻게 되었습니다. 여기서 p는

입니다.

위의 상태방정식에서도 다시 전압으로 표현하면

이렇게 될것입니다.

이 식에 각종 파라미터 값인

를 대입하여

상태방정식을 얻었습니다. 뭐 이제 제어기를 설계하면 되겠네요^^ 그 전에 하드웨어의 구성을 잠시 보겠습니다.

II. 하드웨어의 구성

실제 제어 구동부의 개략도입니다. 펜들럼의 센싱값이 마이크로프로세서로 입력되고 제어게인에 의해서 각 모터에 인가될 전압이 결정되면 모터드라이버에 입력하면 됩니다.

그 모터 드라이버로 채택한 H-Bridge를 설명하는 그림입니다. 정역회전에 대해 설명하는 것이지요.

III. 제어기 설계

모든 선형시스템은 위와 같은 상태방정식으로 표현가능합니다. 즉, 아까 우리도 위의 형식으로 구했지요.

각 행렬들입니다.

특성근을 조사해보니, 모든 근이 좌반부에 있는것은 아니네요. 즉, 불안정한 시스템입니다.

그러나 가제어성을 조사해보니 Rank가 4가 되어서 선형제어기 설계가 가능하겠습니다. 그래서 우리는 LQR제어기법을 이용한 상태궤환 제어기를 설계하겠습니다. 최적 제어 문제는 다음의 성능지수 J를 최소화하는 제어 이득행렬 K를 구하는 것으로 정의 됩니다.

여기서 Q, R은 설계변수가 됩니다. 우리는

로 Q,R을 잡았습니다.

MATLAB의 LQR 툴박스를 이용해서 간단히 제어 이득을 구했습니다.

MATLAB/Simulink에서 사용한 제어블럭입니다. 상단은 선형화된 시스템이고 하단은 비선형시스템입니다. 제어기를 선형시스템에서 구했지만, 실제 적용은 당연히 비선형시스템이니 실제 구동전에 비선형시스템에서도 잘 동작하는 지 확인 해야지요...^^

비선형 시스템의 내부 블럭입니다.

시뮬레이션 결과이빈다. 제어입력이에요.

Cart와 Pole의 상태입니다. 제어성능이 괜찮다는 사실을 발견할 수 있습니다. 이를 실제로 테스트하는 환경을 보겠습니다. 동영상의 화면에 나오는 사람은 제가 아닙니다.^^


댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 광팔 2012.06.08 14:41 신고

    안녕하세요~ 기계공학과 대학원생입니다. 현제 PIC을 활용해서 도립진자를 제어하려고 하는데요~
    여러가지 설명이 잘되있어서 많은 도움을 얻고 갑니다. 정말 훌륭하신것 같습니다.
    현재 핑크윙크님께서 올려주신 블로그를 보고 현재 과학상자와 포텐시오미터를 활용해서 만들었는데요. 자꾸 진자의 속도를 못쫒아가서 넘어집니다. 게인값을 올리면 바퀴가 미끄러져서 가속도를 못냅니다. 무겁게 하기 위해서 추를 달고 바닦에 사포를 깔고 했음에도 불구하고 미끄러지네요~ 혹시 안미끄러지는 방법 좀 알수있을까요?
    제가 만든 도립진자 동영상을 보여드리고 문제점을 알고 싶은데 부탁드려도 될까요??
    10턴짜리 포텐시오미터와 일반소형 dc모터로 pwm 2개를 가지고 제어를 하는데 이거 말고 센서가 더 필요한가요??

    • BlogIcon PinkWink 2012.06.08 17:50 신고

      네 동영상을 다음이나 유투브에 올리시고 링크를 주세요.
      그전에 하나 확인하실게 있습니다.
      잘 제어되지 않을때일 수록 더더욱 확인해야할 데이터인데요
      바로 그래프입니다.
      제어가 잘 되지 않는 순간의 각도와 위치, 그리고 그때의 입력 전압값이지요.
      그리고 댓글만으로는 확인이 되지 않는데,
      카트를 움직이는 바퀴의 회전각도도 측정하고 있나요?
      그 회전각도가 계산하면 결국 움직인 거리인데요. 그 거리가 피드백되어서 거리값도 제어하지 않으면 안됩니다.
      일단, 폴의 각도, 카트의 위치, 그 순간의 입력 전압값을 그래프로 보고, 현상이 맞는지를 먼저 확인하셔야합니다.

  3. 광팔 2012.06.08 23:16 신고

    http://youtu.be/W3oBhPklm7A
    여기 유투브에 올렸습니다. 카트를 움직이는 바퀴의 회전각도는 측정하지 않습니다.
    오로지 모터와 포텐시오미터에 의해서 pwm정역제어가 되고 프로그램으로는 PID제어를 사용했습니다.
    입력전압값을 그래프로 보라고 하셨는데 오실로스코프로 보는건가요? 그래프로 보는방법은 무엇이 있는지 부탁드려요~~

    • BlogIcon PinkWink 2012.06.09 10:26 신고

      만약 폴이 넘어가는 각도와 각속도만 가지고, 제어를 한다고 보죠.
      이런 상황이 있을 수 있습니다.
      폴의 각도와 각속도가 모두 0입니다.
      그럼 제어기는 자신이 일을 다 한줄 알고 끝나죠.
      그러나, 밑에서 움직이는 카트의 속도는 0이 아니었던 겁니다.
      그러니 한 방향으로 계속 갑니다.
      그러다가 폴의 각도가 어긋납니다.
      그러면 다시 제어기는 약간의 힘을 주라고 모터에 지령을 내립니다.
      그러면 다시 속도가 0이 아니던 카트는 자기 관성으로 움직이고 있다가 추가의 힘을 받습니다.

      이런 상황이 될 수도 있습니다.
      다시 말씀드립니다만, 카트의 위치와 속도도 제어가 되어야합니다.
      그래서 제 블로그 자료들 중 밸런싱로봇이나 펜들럼에 관련된건, 모두 제어해야할 대상이 되는 상태가 4개가 됩니다.
      폴의 각도와 각속도, 카트 혹은 암의 각도와 각속도
      이렇게 말입니다.

  4. 광팔 2012.06.09 14:48 신고

    바쁘신와중에도 답변달아주셔서 감사드려요~ 말씀해주신 부분 학습해보도록 하겠습니다

    • BlogIcon PinkWink 2012.06.09 19:01 신고

      저 한가지만 보시지 마시고, 여러원인이 있을 수도 있습니다.
      바퀴의 슬림도 한 원인일거구요.
      사람이 탑승하는 세그웨이도 분해배보면 단지 속도측정용이라고 하기엔 너무도 분해능이 좋은 엔코더가 탑재되어있습니다.
      이동체의 위치(혹은 각도)와 속도를 고려하시는것은 필수입니다.

  5. 광팔 2012.06.12 19:52 신고

    PinkWink님 우선적으로 운동방정식부터 세울려고 합니다. 저같은 경우에는 로터리 역진자 시스템에서 나와있는 운동방정식을 사용해도 괜찮을 까요?? 아니면 카트형 역진자시스템으로 세워야 될까요??
    그리고 이동체의 위치와 속도를 고려해야 된다면 엔코터가 달려있는 모터로 제어를 해야 되나요??

    • BlogIcon PinkWink 2012.06.13 11:00 신고

      동영상처럼 꾸미신다면 카트형으로 보셔도 무리는 없을겁니다.
      한 가운데 있는 축에서 각도측정을 하는 엔코더를 달고, 원주를 계산하면 이동거리가 나올것 같은데요^^

  6. 2012.07.19 13:59 신고

    안녕하세요..
    광팔이란 아이디로 하니깐 차단되어있다고 합니다 ㅜㅜ
    무슨 문제라도..ㅜㅜ

    • BlogIcon PinkWink 2012.07.19 14:06 신고

      글쎄요. 방금확인해보니 '광팔'이라는 아이디에 문제는 없어보이는데요.
      각종 욕설로된 단어, 성인광고, 이상한 약물광고때문에 몇몇 키워드를 차단했습니다만, 그 속에 광팔은 없답니다.^^

  7. 광팔 2012.07.19 18:05 신고

    PinkWink님의 도움으로 도립진자를 제어해보았습니다. 엔코더가 달린 모터를 장착해서 구동하려고 했으나 엔코더를 어떻게 써야될지 몰라서 일반DC모터를 사용하였고 포텐시오미터로 AD변환 된 신호로 도립진자를 제어해보았습니다. 유튜브 영상입니다.
    http://youtu.be/O1m-8A0Eckg
    여기서 외란을 폴에 너무 많이 주면 폴을 제어하려고 모터에 많은 토크가 발생되어 미끄러지게 됩니다. 구조부 설계를 과학상자로 하다보니 진동도 많이 발생하고 가볍고 바퀴의 두께와 폭 등의 영향인것 같습니다. 그리고 엔코더를 장착을 안해서 그런지 폴을 밀면 넘어지지는 않으나 폴을 계속 따라가게 됩니다. 올린 동영상은 폴을 세운 모습을 보기 위해서 외란을 조금만 주었습니다. 그런데 교수님께서 지금 만든 제어기를 통해서 운동방정식을 다시 구하라고 합니다. 처음에 운동방정식을 구하여 매트랩으로 PID제어를 하여 시뮬링크를 하였는데, PID값이 현재 PIC으로 프로그래밍 한 값과 다릅니다. 정확한 운동방정식이 아니라며 다시 정확히 구하라고 하시는데, 혹시 운동방정식을 구할 수 없을때, 완성된 혹은 실험된 데이터들을 가지고 운동방정식을 구하는 방법에 대해서 아시면 조언을 구하고 싶습니다. 마이크로칩 PIC에 대한
    것도 운동방정식이 있는지도 궁금하구요~ 어느방향으로 공부를 해야될지 여쭈어 봅니다.

    • BlogIcon PinkWink 2012.07.20 13:13 신고

      1. 카트에 엔코더든 뭐든 카트의 위치를 알 수 있는 센서를 부탁해서 위치값과 속도를 받아오지 않는한 카트는 제어할 수 없습니다.

      그리고, 구해진 제어기를 가지고 역으로 각종 파라미터를 역으로 추적하는 것은 불가능이라고 보셔야합니다. 제어기 게인 많아야 6개, 통상 4개, 카트쪽은 손을 안대셨으니, 어쩌면 2-3개일텐데, 그걸로 그 많은 파라미터를 다 알 순 없습니다. 미지수개수는 너무 많고, 알고있는 방정식은 너무 작습니다.

      결국 어느정도는 괜찮은 동역학을 구하거나 찾으셔야할 듯합니다. 어차피 선형제어기이기때문에, 동역학이 정확하지 않아도 어느정도만 맞으면, 그것에서 도출된 제어기는 잘 동작합니다.^^

      마지막으로, 마이크로칩에 대한 운동방정식이 뭐죠? 잘 모르겠습니다.

  8. 광팔 2012.07.20 16:42 신고

    알려주셔서 정말 감사합니다.

  9. 2014.04.20 01:58 신고

    현재 cart type inverted pendulum을 제작중인 대학생입니다~
    처음에는 외계어처럼 보이다가 계속 보고 쓰고를 반복하니깐 동역학부터 LQR제어기까지 어느정도 이해를 했습니다.
    현재 기구에 맞는 파라미터를 측정중에 있는데 질문이 있어서 게시글에 댓글을 달았습니다.
    1. theta가 라디안인지 일반 각도인지 궁금합니다.
    2.만약 theta가 라디안 단위라면 dot_theta도 라디안단위의 theta의 각속도를 의미하는지 궁금합니다.
    3. 그리고 u가 입력volt를 의미하는 건 알겠습니다.
    저또한 정격전압이 24v인 dc모터를 사용중인데요. Q,R을 이용해서 출력 volt를 노가다 식으로 맞추어야 하는건가요?
    혹시 출력이 volt가 아닌 단순히 모터의 속도가 출력으로 나오게 할려면 모터 동역학에 어떤 식이 필요한가요?

    • BlogIcon PinkWink 2014.04.20 16:44 신고

      라디안입니다. 그리고 속도로 제어입력의 결과를 나타낼수있습니다만, 그러면 모터의 속도제어를 또 다시 해야합니다. 그냥 모터의 입력되는 전압으로 제어입력을 잡는 것이 더 편합니다.

  10. 2014.04.20 23:38 신고

    제가 DC모터는 PID제어기를 써서 속도제어는 됩니다.
    거기다가 이제 4가지 출력값을 이용해서 속도를 출력하려고 합니다.
    모 그렇게되면 제어기를 더많이 사용하게 되지만
    우선은 그렇게하고싶어서 그런데
    속도제어식을 알수있을까요?

    • BlogIcon PinkWink 2014.04.21 10:23 신고

      네.. 속도식으로 뽑지는 않았습니다만...
      수식을 다시 봐야하니 지금은 제가 도와드리기 어려울 듯 합니다.
      그런데
      속도제어가 된다고 낙관적인건 아닙니다. 속도제어가 되어도 펜들럼처럼 불안정한 시스템이 속도 제어가 되는 새틀링타이밍까지 시스템의 안정성이 어떻게 될지는 모릅니다.
      뭐~ 해봐야 아는 일입니다만...
      제 의견으로는 모터의 전압입력을 사용하는 것이 분명 더 쉬운 일일거라고 생각됩니다.ㅠㅠ

  11. 2014.04.30 03:20 신고

    이 시스템에서
    마찰계수를 구하려면 어떤 실험을 이용하는지 궁금합니다 ....

    • BlogIcon PinkWink 2014.05.01 02:04 신고

      카트를 뒤집어 놓고 폴을 잡아 당긴다음 놓았습니다.
      그리고 그 후 나타나는 자유운동을 측정했습니다. 폴 카트 둘다...
      그리고 그 일차계 결과를 보고 관성모멘트와 마찰계수를 잡았습니다.

  12. KFCbest 2015.03.24 01:44 신고

    궁금한게 있습니다.
    만약에 도립진자의 막대 끝에 막대의 질량을 무시할 수 있을 정도로 차이가 있는 물체를 올리면
    무게 중심이 막대 끝으로 이동합니다. 그렇게 되면 관성모멘트가 0이 된다고 책에서 나왔는데 이 부분이 이해가 되지 않습니다.

    또 수학적인게 있는데 theta가 0으로 가까워 지면 theta를 한번 미분한 값이의 제곱이 왜 0이 되는것인지 궁금합니다.
    theta를 한 번 미분하면 각속도 인데 그게 매우 작아서 각속도를 제곱한 값을 0으로 가정한다고 그러던데
    왜 매우 작아지는 것입니까 ?

    마지막으로 상태변수를 왜 저렇게 잡았는지 궁금합니다.
    학교에서 졸업논문을 위해 이것을 공부하는데 역학적인 부분에서 부터 막히니..... 제어공학을 펴보지 못하겠네욤..;;

    • BlogIcon PinkWink 2015.03.24 22:28 신고

      그렇다하더라도 막대회전 중심이 끝이고 그 반대편에 질량이 모여있다면 관성모멘트는 0이 되지 않습니다. 회전 중심 축이 어디냐에 따라 달라지므로 다시 확인하셔야할듯 합니다. 그리고 상태변수는 제어할 대상이어서 잡았습니다. 시스템을 설명할수 있는 최소단위로 상태변수를 잡아야합니다.
      아.. 마지막으로... 미분한 값의 제곱을 그냥 0으로 보낸게 아닙니다. 동작점이 0 부근이라는 가정이 있으며 그 동작점에서 어떤 변수의 미분의 제곱을 테일러급수전개같은 걸로 전개하면 ... 즉.. 선형화하면 0이 됩니다.

  13. 존.경! 2015.03.24 19:26 신고

    도립진자에서 1/2Iw^2(관성모멘트에너지)는 왜 0이 되는것입니까 ?
    진자의 관성모멘트 I가 너무 작아서 0이라고 하던데 왜 그런지 이유를 모르겠습니다.

    • BlogIcon PinkWink 2015.03.24 22:30 신고

      지금 내용이 제 포스팅에 있는 내용인가요??? 아무튼... 관성모멘트는 보통 무시하지 않습니다. 정확히 어떤 내용인지는 잘 모르겠습니다.ㅠㅠ

  14. 그냥공대생 2015.03.27 01:28 신고

    여기에 있는 도립진자 시스템을 만들어 볼려고 하는데..... 어떻게 준비해야 되는지 자세히좀 알 수 있을까요?
    실제로 구현하는 것은 힘들더라도 특정한 프로그램이나 툴로 실제구현 만들기 전까지를 해보고 싶습니다.

    그리고 상태방정식은 왜 필요한지 궁금합니다...수학정 모델링을 구하기 위해 상태방정식을 사용한다고 알고 있는데
    수학적 모델은 라플라스 변환을 해서 얻을 수 있는데 왜 상태방정식을 구하는 건지 궁금합니다.

    그리고 수학적 모델 구할 때 비선형 방정식을 선형방정식으로 만드셨는데....
    어떤 근거로 비선형 방정식이라고 하셨는지 궁금합니다. 제가 학교에서 배웠을 때는
    f(a+b) = f(a)+f(b)가 성립하면 선형방정식이고 아니면 비선형 방정식이라고 했는데....;;

    inverted pendulum을 주제로한 님의 논문과 혹은 공부하셨을 때 도움을 받았던 논문을 보고 싶은데
    혹시 받을 수 있을까요 ?
    kane_106@naver.com이 제 이메일 입니다.

    • BlogIcon PinkWink 2015.03.28 10:10 신고

      상태궤환이라는 제어기법을 사용하기 위해서 상태방정식을 얻은 것입니다.^^
      근거???는 좀 이상하군요...
      그냥 식이 비선형입니다.ㅠㅠ. 예를 들어 sin이라는 함수는 비선형 함수 입니다. 공업수학이나 선형대수학 책에서 선형과 비선형 관련된 챕터를 보시는게 더 좋을 듯 합니다.
      다시 처음으로 돌려서 상태궤환 말고 그냥 PID 제어기로 튜닝한다면 상태방정식까지 할 필요가 없습니다. 그냥 라플라스 변환된 상태에서 시뮬레이션및 제어기 설계까지 가능하답니다.^^
      그리고 저는 공부할때 ... 자동제어 책과 inverted pendulum의 동역학을 유도하는 법(뉴턴방법과 라그랑지안 방법)을 공부해서 시작했답니다.
      좋은 성과가 있으시길 바랍니다.^^

  15. 공대생이용 2015.05.23 20:43 신고

    맨 처음에 pole의 운동 방정식을 사용할 때
    N의 방향이 왜 저렇게 되는지 궁금합니다. pole의 운동 방정식이기 때문에 pole이 cart에 가한 힘이 아닌
    pole이 받는 힘에 대해 운동 방정식을 사용해야 되는 것이 아닙니까 ?
    그러면 N의 방향은 (->) 이 되고 운동방정식은
    P*l*sin(theta) - N*l*cos(theta) 라고 생각합니다.

    또 pole의 운동방정식을 보면 pole이 반시계 방향으로 회전을 하는데, 회전방향 같은 경우는 운동 방정식을 세우는 사람이 아무렇게나 세워도 되는지 궁금합니다.

    마지막으로 저는 다른 조건은 모두 똑같고 운동 방정식만
    I*(d^2*theta / dt^2) = P*Lsin(theta) - N*Lcos(theta)로
    전달함수를 구하고 pid제어기를 사용해서 matlab으로 시물레이션을 하는데 pid 상수들을 각 각 음수(-) 값을 넣어야 님처럼 각도가 (-)로 갔다가 0으로 수렴합니다...... 왜 그러는지 알고 싶습니다.

    그리고 왜 theta가 처음에 음수로 되는지도 알고 싶습니다.

    마지막으로 pole의 운동방정식이 이해가 가질 않습니다.
    어떤 책을 보면 모두다 (+)이고 또 다른 논문을 보면
    (-)로 해서 식을 세우는데........
    제가 쓰는 논문에 제가 모르거나 이해가 가지 않은 것이 하나도 없었으면 좋겠습니다... 바쁘고 귀찮으시더라도 제발 답변 부탁드립니다


    • BlogIcon PinkWink 2015.05.23 23:07 신고

      폴과 카트를 다 연관지어 생각하면 됩니다.
      카트가 움직이고 카트에서 N의 방향의 역방향으로 폴의 N방향이 정해지는 것으로 보시면 됩니다.

  16. 공대생이용 2015.05.24 00:52 신고

    죄송합니다... 윗 질문에 대한 답변에 대햄
    무슨 말씀이신지 잘 이해가 되지 않습니다....;;
    조금만 더 자세히 설명 해 주실 수 있으신지요...;;

    또 pole의 회전 방향도 임의로 선택해도 되는 것입니까 ?

    • BlogIcon PinkWink 2015.05.26 10:41 신고

      제가 너무 짧게 응답한듯합니다.ㅠㅠ.
      카트가 양의 방향으로 간다고 가정하면...

      카트의 N은 카트가 가능 방향으로 잡힐겁니다.
      그러면... 폴의 N은 당연히 그 반대방향을 잡혀야한다는 이야기입니다....

      그리고 회전방향은 대부분은 기준축대비 시계반대방향으로 잡았습니다.

      그리고.. 마지막으로 가장 좋은 방법은 그 상태에서 자유운동 시뮬레이션을 해보면 됩니다. 그때 모든 축의 방향이 내가 설계한 방향과 같은지를 보면 방향을 잘 잡았는지 아닌지 알 수 있습니다.

  17. 노올자 2015.10.12 10:29 신고

    좋은 자료 감사합니다!

  18. 제어실험맨 2015.11.10 20:18 신고

    지금도 댓글 달아주시는 지 모르겠는 데 제가 프로젝트를 하기 위해 inverted pendulum을 만드려고 하는데 서보형 DC모터 (KR-300-SIDE) 2개, MPU6050 6축 자이로 가속도 센서 모듈 GY-521 1개, MMA8452 3축 가속도센서 모듈 GY-45 1개 이렇게만 가지고도 만들 수 있을까요? 재료만 준비가 제대로 되있다면 공부해서 만들면 될텐데 아직 공부가 덜된상태라서 부품을 어떻게 신청해야할지 모르겠습니다. 저 부품만으로 가능한지 여부와 안된다면 뭘 더 추가하고 바꿔야하는 지 알려주시면 감사하겠습니다.

    • BlogIcon PinkWink 2015.11.11 10:56 신고

      시뮬레이션을 해보시면 되는데..
      시뮬레이션에서 모터가 내야하는 속도가 나올겁니다.
      제 생각에는 말씀하신 모터는 속도가 느려서 힘들 것 같다는 생각이 드는데요...

  19. 한공대 2017.03.24 17:41 신고

    궁금한게 있어서 질문드립니다. 위 식 F에서 F = Mx''+fcx'-N이라고 표현하셨는데 이때 마찰력이 바퀴에 작용하는 마찰력을 말하시는 건지 궁금합니다. 운동마찰력이라면 수직항력에 비례하는 것이 아닌가요? 잘 모르겠어서 질문드립니다

    • BlogIcon PinkWink 2017.03.24 18:09 신고

      카트의 속도에 비례해서 발생한다고 수식에 표현했으니...
      당시에 아마 저 식을 꾸밀때.... 모터에 연결된 바퀴와 지면사이의 마찰을 포함한 카트의 진행을 방해햐는 마찰을 이야기하고 싶었을 겁니다.
      지금이라면 좀 다르게 표현했을 것도 같은데... 뭐 당시엔 그랬네요^^

  20. RESCUE 2017.05.09 10:44 신고

    포스팅한 자료 잘 보았습니다. 다만 궁금한 것이 있는데, 이 경우에는 전달 함수는 어떻게 구하는 것인지 궁금합니다. 제어 입력이 V이고 제어 변수가 theta인건지 궁금하고 만약 그렇다면 이를 어떻게 구하는 건지 궁금합니다.

    • BlogIcon PinkWink 2017.05.10 13:36 신고

      정말 죄송합니다.... 질문에 답변을 드리기가 너무 힘이 듭니다.ㅠㅠ.
      어떻게 좀 더 쉽게 설명드릴 능력이 되지 않아서ㅠㅠ. 충분히 하실수 있는 질문인데... 제가 어떻게 답변을 드려야할지...

  21. 풋내기공대생 2018.11.20 20:15

    관리자의 승인을 기다리고 있는 댓글입니다