PID 제어 공식 - PID jeeo gongsig

yss=lim⁡t→∞y(t)=lim⁡s→0s⋅Y(s)y_{ss}= \lim_{t→\infin}{y(t)} = \lim_{s→0}{s\cdot Y(s)}yss​=t→∞lim​y(t)=s→0lim​s⋅Y(s)

고전제어 이론의 대표적인 제어법은 PID 제어입니다. 실제 산업에서 많이 적용하고 있는 제어법으로 PID 제어기의 전달함수는 비례, 미분, 적분기 3개의 항으로 이루어져 있습니다.
Kp,KI,KDK_p, K_I, K_DKp​,KI​,KD​를 각각 비례, 미분, 적분 gain이라고 합니다.

  • 전달함수

    G(s)=Kp+KIs+KDsG(s)=K_p+\frac{K_I}{s}+K_DsG(s)=Kp​+sKI​​+KD​s

  • 시간영역에서 출력방정식

    y(t)=Kp⋅e(t)+KI⋅∫0te(τ)dτ+KDddte(t)y(t)=K_p\cdot e(t)+K_I\cdot \int_0^te(\tau)d\tau+K_D \frac{d}{dt}e(t)y(t)=Kp​⋅e(t)+KI​⋅∫0t​e(τ)dτ+KD​dtd​e(t)

    제어 쪽 공부를 하다보면 무조건 마주치고 많이 들어본 PID제어!


    로봇 분야, 라인트레이서, 특히 요즘은 드론에 활발하게 사용되고 있습니다.


    PID는 Proportional Integral Derivative 의 약자로 각각 비례, 적분, 미분의 뜻 입니다.


    P, I, D 보통 세 개 모두 사용하여 제어를 합니다.


    세 개 중 일부를 사용하지 않으면 생기는 단점들이 있기 때문입니다.


    PID를 이해하기 좋은 움짤입니다.

    PID 제어 공식 - PID jeeo gongsig

    https://en.wikipedia.org/wiki/PID_controller


    이제 중요한 설명을 하겠습니다.


    P로 빠르게 목표값과 비슷하게 끌어올립니다.


    하지만 P로 정확히 원하는 값으로 맞추기는 어렵습니다.(정상상태의 오차가 존재할 수 있습니다.)


    I로 정상상태 오차를 없애줍니다. 원하는 값으로 끌어 올리는 것이죠.


    그리고 D로 오버슈팅을 없애 줍니다. 초반에 목표값보다 크게 물결처럼 발생한 것을 오버슈팅이라고 합니다.




    PID 제어 공식 - PID jeeo gongsig

    PID 제어 공식 - PID jeeo gongsig

    https://en.wikipedia.org/wiki/PID_controller


    PID 공식입니다.


    e는 오차로 목표값에서 현재값을 빼서 얻는 값입니다.


    PID 제어 공식 - PID jeeo gongsig


    제어시스템을 수강하며 I값을 바꿔가며 시뮬레이션을 돌린 결과입니다.


    PID 제어 공식 - PID jeeo gongsig


    또한 시뮬레이션을 돌리며 얻은 내용입니다.



    드론에서 원하는 방향으로 움직이거나 회전할 때 PID를 사용하여 각각의 모터 속도를 제어합니다.


    드론 관련해서는 워낙 오픈소스나 라이브러리가 많기 때문에 원리만 간단히 이해하시고 개발하시면 될 거 같습니다 ㅎ

    공유하기

    게시글 관리

    구독하기편하게 보는 전자공학 블로그

    '최신 트렌드' 카테고리의 다른 글

    라이다 LIDAR 센서  (0)2020.08.09하이퍼루프(Hyperloop)  (0)2019.12.013D센싱, ToF에 대하여  (0)2018.10.27발뮤다에 관해서  (0)2018.10.22다이슨에 관해서  (0)2018.10.04

    ��, ���μ��� ���� �о߿����� �� Ʃ���� �ڵ������� �����ϴ� Auto tuning ����� ���� �ڵ����� ���ֵ� �ִ�. �̰Ϳ��� ���� ����� �н��ϰ�, �� ����κ��� �׻� ������ �Ķ���Ͱ��� ���Ͽ� ���� ���� ����Ŭ�� �ݿ��ϴ� ��ɵ� ����Ǿ� �ִ�.

    pid제어의 개념과 게인값 조정 방법

    • 2016.12.12 09:53
    • Works/Gimbal

    pid 제어는 원하는 값에 도달하기 위한 기초적인 자동 피드백 제어 방법 중 하나입니다.


    pid제어를 위해서는 몇가지 요소에 대한 정의가 필요합니다.

    e(t) : 오차값이라 부르고, 목표값에서 현재값을 뺀 값입니다.

    MV(t) : 제어량이라 부르고, 현재값에서 목표값에 도달하기 위해 제어기에 줄 값을 의미합니다.


    알고리즘은 다음과 같습니다.

    MV(t) = Kp*e(t)+Ki*(integral)e(t)+Kd*(derivative)*e(t)

    PID 제어 공식 - PID jeeo gongsig

    PID제어는 사실 위키백과에 생각보다 설명이 잘 되어 있어 놀랐습니다.

    문서에서 괜찮은 그래프가 있길래 하나 가져와봤습니다.

    PID에 대한 내용은 이거 하나만으로 모두 정리될 것 같네요.

    그래프를 참조하면서 읽으시면 도움이 크게 됩니다.


    P제어

    P : Proportion제어는 오차값만큼 제어량을 줍니다.

    오차가 클수록 제어량이 크고, 오차가 적으면 제어량이 적죠.

    pid제어에 가장 큰 역할을 하고 목표값에 도달하는 속도 역시 괜찮은 편이지만,

    목표값에 가까워지면 더이상 목표값에 수렴하지 못하고 어느정도 오차가 있는 상태에서 더이상 제어가 되지 않습니다.

    이를 잔류편차가 생긴다고 합니다.


    PI제어

    위의 P제어를 해결하기 위해 나온 제어방식이 Proportion 제어에 Integral-적분항을 추가해서 만든

    PI제어인것이죠. PI제어는 오차의 비례값과 오차의 누적값을 제어량으로 사용해 P제어의 문제인 오차를 낮춥니다.

    목표값에 정확히 수렴할 수 있도록 해주죠. 다만 이것도 문제가 있습니다.

    도달하는데 시간이 너무 걸리고, 급격한 변화에 대응하기 어렵다는 것입니다.


    PID제어

    마찬가지로 PI제어의 단점을 보완할 제어로 PID제어가 등장합니다,

    기존PI제어에 Derivative 미분항을 추가해 급격한 변화에도 대응하고, 도달시간을 줄일 수 있습니다.


    위 내용은 사실 크게 중요하지는 않습니다. 그냥 pid=빠른 제어 라고만 생각해도 충분할테니까요.

    다만 p, i, d 각각의 요소들이 제어기에 어떤 역할을하고, 어떤 영향을 미치는지 이해하는 데는 

    위 내용이 상당히 중요하게 다가올것이기 때문에 굳이 언급하게 되었습니다.


    위 내용을 숙지하고 알고리즘을 보면

    정체불명의 Kp, Ki, Kd가 있는 것을 보실겁니다. 

    위 값들은 pid 제어가 적절히 이루어지도록 하는 상수값으로, 적절히 맞췄을 때 최적의 성능을 냅니다.

    그니까 우리가 노가다를 하며 세 값들은 모두 찾아야한다는 이야기죠.

    어렵게 느낄 수 있겠지만 각 상수에는 자기들만의 성질이 있고, 그 성질을 힌트로 값을 찾아내면 됩니다.


    Kp, p게인은 목표치에 가는 정도를 결정하는 상수입니다.

    p게인이 너무 낮으면 목표값에 도달하기 어렵게됩니다. 제어량이 충분치 않기때문에 시간도 오래걸리고, 

    제어에 어려움을 겪기도 합니다.

    반대로 p게인이 너무 높으면 제어량이 너무 커서 진동하기 시작합니다. 시소를 탄다고 하죠...


    Ki, i게인은 목표치에 대한 정확도를 결정하는 상수입니다.

    i게인이 너무 낮으면 위 설명처럼 목표치에 근접하기 어렵습니다. 

    반대로 i게인이 너무 높으면 시간이 오래걸리고, 외부 변화에 잘 대응하지 않습니다.

    역동적인 움직임을 중시하는 드론 pid 게인값 설정에서는 특히 i게인 세팅이 중요하겠죠.


    Kd, d게인은 목표치에 대한 속도를 결정하는 상수입니다.

    d게인은 p게인으로 조금 부족한 제어량을 보충해주는 역할을 합니다.

    순간 제어량을 확 높이면서 목표치에 도달하는 도움닫기 역할같은거죠.

    d게인이 너무 낮으면 마찬가지로 시간이 오래걸리고, d게인이 너무 크면 진동이 생깁니다.


    게인값에 따른 설명은 이정도 하겠습니다.

    무엇보다 게인값에 따라 나타나는 진동의 종류와 차이를 직접 느끼는 것이 중요하다 생각합니다.

    그 느낌을 파악하게 된다면 pid 게인값 찾는 것은 그리 어려운 일이 아닐 것입니다.

    반응형

    공유하기

    게시글 관리

    구독하기꿈속에서조차 너를 그리다

    저작자표시 비영리 동일조건

    • 댓글
    • 공유하기
    • 다른 글

    댓글

    이 댓글의 메뉴 토글

      방문자 정보

      이름

      암호

      운영자에게만 공개

      작성하기

      이 글 공유하기

      • 구독하기

        구독하기

      • 카카오톡

        카카오톡

      • 라인

        라인

      • 트위터

        트위터

      • Facebook

        Facebook

      • 카카오스토리

        카카오스토리

      • 밴드

        밴드

      • 네이버 블로그

        네이버 블로그

      • Pocket

        Pocket

      • Evernote

        Evernote

      다른 글

      • 3축 짐벌 제작-5. 18650 배터리팩 제작

        3축 짐벌 제작-5. 18650 배터리팩 제작

        2017.01.01

      • 3축 짐벌 제작-4. SimpleBGC pid 게인값 조정

        3축 짐벌 제작-4. SimpleBGC pid 게인값 조정

        2016.12.16

      • 3축 짐벌 제작-3. 중심 잡기

        3축 짐벌 제작-3. 중심 잡기

        2016.12.01

      • 3축 짐벌 제작-2. 1차 조립

        3축 짐벌 제작-2. 1차 조립

        2016.11.29

      다른 글 더 둘러보기

      3축 짐벌 제작-3. 중심 잡기

      이 글은 어떠세요?

      3축 짐벌 제작-3. 중심 잡기

      닫기