본문으로 바로가기

벌써 이번 연재인 시스템 시뮬레이션 마지막회네요^^. 이전에 수행했던 결과로 제어기까지 설계를 완료했습니다. 비록 LQR은 트래킹 기법은 아니지만, 실제로 사용할때는 오차에 대한 설계를 통해서 트래킹을 간단히 해결할 수 있습니다.

지난시간에 얻은 선형미방이었습니다.

여기서 간단히 기준신호를 계단입력이라고 한다면, 오차에 대한 식을 세워볼 수 있습니다. 그것을 이용해서 오차의 미방을 완성할 수 있지요

가중치를 좀 변경했습니다.

그렇게해서 다시 제어게인을 얻었습니다.

이전에 쓰던 시뮬링크 블럭인데요. 요걸 살짝

이렇게 변경해줍니다. 오차에 대한 시뮬레이션 환경을 꾸며야하는 거니까요. 추적해야할 기준수치는 0.1로 두겠습니다.

이렇네요. 대략 0.5초에 수렴한다는 것을 확인할 수 있네요. 실제로는 이정도만해도 쓸만합니다. 그래서 계속 레퍼런스값을 바꿔주는 거지요. 그러면 일정 경로를 따라갈 수 있습니다.

그러나 계단입력이 아니라 정현파를 가해보겠습니다.

살짝 늦게 따라가는 것을 확인할 수 있습니다.  이것이 마음에 들지 않는다면, 오차의 미방을 수정할 필요가 있습니다.

기준신호가 정현파이니까... 오차의 미분치가 바뀌어야하는 것이지요^^

그럼 시뮬레이션 블럭도 위와 같이 바꿔줘야합니다. 물론 전 귀찮아서 그냥 미분기 하나 달고 끝냈습니다.^^

정확히 일치했기 때문에 얼핏 선이 하나로 보이지만, 원체 잘 추적해서 그렇습니다.

이번 연재는 간단한 시스템을 예로 들긴했습니다만, 일반적으로 로봇을 제작 설계 및 제어하는 일반적 과정을 이야기해보았습니다.


댓글을 달아 주세요

  1. 엄청피곤 2010.08.31 12:50 신고

    죄송한데요 그림이 몇개가 안나와요 ㅜㅜ;; 공지사항 보고, 파이어폭스랑 크롬으로도 들어와 보았는데 마찬가지군요...

    • BlogIcon PinkWink 2010.08.31 13:01 신고

      현재 제 주위 컴을 이용해서 확인했는데 모두 정상입니다. 리플레쉬를 한번 해보시고 안되면 잠시 후 접속해주세요. 제 블로그가 정착한 곳인 티스토리의 속도문제일 수도 있으니까요

  2. 김현진 2010.09.15 11:22 신고

    혹시 학술대회나 이런데가서 지적받으실까봐 작성해봤습니다. Regulation문제로 설계한 제어기에 위와 같은 방법으로 외란입력을 통해 추적제어문제를 달성할 순 있겠지만 사실 핑크윙크님이 구하신 제어법칙 K는 안정기 문제에 적용되는 게인을 구하신 것이라 문제가 될 수 있을 것 같습니다.

    • BlogIcon PinkWink 2010.09.15 11:40 신고

      Tracking이라고 말하는 것에 약간 위험성을 가지고 있지만,^^ 오차를 '0'으로 regulation 한다는 것 또한 크게 개념상 어긋나는 것인지는 사실 저도 잘 모르겠습니다.ㅠㅠ.

    • 김현진 2010.09.15 11:45 신고

      제어계의 우파들에게 공격당할 소지가 있습니다.ㅋ
      안정기문제는 추적문제에서 기준신호가 0인 특수한 문제이니깐요^^

    • BlogIcon PinkWink 2010.09.15 11:57 신고

      그래도 정의에 충실해야겠죠...?^^

  3. 김현진 2010.09.15 11:24 신고

    핑크윙크님 LQ Regulation 문제와 Tracking문제는 가격함수의 선정부터 조금 다른 문제이고 제어기의 구조도 다소 다른면이 있습니다. 혹시나 해서 적어봅니다. 괜히 제가 설레발친건아닌지 ㅠ

    • BlogIcon PinkWink 2010.09.15 11:37 신고

      아닙니다. 저도 알고있습니다. 그래서 실제로 약간 편법처럼 사용한다고 말씀드린겁니다. ^^ 그래도 본문에서 제가 오해의 소지가 있을지도 모르게 적은 내용인듯도 합니다. 설레발이라뇨.. 이런 댓글과 또 댓글로 하나의 포스팅이 완성되는 것 같습니다.

  4. 김현진 2010.09.15 11:28 신고

    혹시해서 책을 찾아봤네여
    Optimal Control Theory - Donald E. Kirk

  5. 김현진 2010.09.15 11:46 신고

    항상 좋은 자료 올려주셔서 감사합니다.
    덕분에 정말 많이 배웠습니다^^

  6. 동대스님 2010.11.03 00:17 신고

    저기 죄송한데 ^^;; 각 변수들이 뭘 의미하는지를 잘 몰라서 그러는데 설명좀 해주실수 있으신가요? 음... 식이 어케 나오는지도 모르겠구요. 현재 전자공학과 다니는 학생입니다. 도와주세요~

    • BlogIcon PinkWink 2010.11.03 10:38 신고

      연재 처음부터 보셔야겠습니다. 연재의 목차는 글 상단에 있고, 거기서부터 내용이 이어집니다.이 글에서 설명하지 않은 문자에 대한 설명은 대체로 이전 연재에서 다루었기 때문입니다.

  7. 일렉틱스 2011.03.28 09:13 신고

    매번 PinkWink님 글 잘 보고 있고 감사드립니다. 다름이 아니라 질문이 있어서 그런데요. 예를 들어 위의 시스템을 실제로 꾸미고 싶을때는 어떤식으로 제작을 하는 것인가요? 위의 공식들을 MCU에다 집어 넣는 것인지 알고 싶습니다..

    • BlogIcon PinkWink 2011.03.28 09:59 신고

      실제 시스템은 동역학이 대신하고 있으므로 MCU에 저장되는 것은 몇몇 준비단계를 제외하고 나면 사실 제어게인 K라는 것만 대입됩니다.

    • 일렉틱스 2011.03.28 17:06 신고

      답변감사드립니다. 이론을 바탕으로 실제 시스템을 꾸며 보고 싶어서 질문드렸습니다. 감사합니다.

    • BlogIcon PinkWink 2011.03.29 09:20 신고

      네. 그렇다면 이 연재는 그저 MATLAB의 사용법을 익히는 것으로만 학습을 하시길 바랍니다.
      실제 시스템에 적용하는 것은 밸런싱로봇 연재나.. 혹은 펜들럼 관련 포스팅이 좋을 듯합니다.

  8. 지나가던사람 2011.04.01 15:18 신고

    옵티멀 컨트롤 책을보면 tracking probelm에대해서
    error에 관한 cost function으로 놓고 풉니다.
    그리고 또한 많은 ieee 논문들이 PinkWink 님처럼 error dynamics를
    정의하고 lyapunov 등등의 method드로 stability를 보이고 있으니깐
    저렇게 tracking을 얘기해도 될거같습니다

  9. sigrece 2011.08.11 18:37 신고

    위에서는 theta를 tracking 목표로 두고 있는데요 dot_theta를 tracking 할 수는 없는건가요? 해보니까 안되더라구요 ㅎㅎ;;

    • BlogIcon PinkWink 2011.08.12 09:32 신고

      dot_theta가 목표라면, 그에 맞도록 theta도 잡아줘야합니다. 물리적으로, theta는 그대로 있으면서 dot_theta만 변화하는건 없으니까요.

  10. 123Root 2013.02.22 18:40 신고

    안녕하세요 PinkWInk 님 항상 블로그 잘 보고 있습니다. 볼때마다 대단하시구나 하는 생각만 ... ㅠ 저도 열심히 해야겠내요
    다름이 아니라 오차의 미방수정하는 부분을 조금더 자세히? 설명좀 부탁드려도 될까요 그부분이 조금 아리송해서요 ㅠ