첫번째 정리
10M를 목표로하는 드론을 날린다고 가정.
드론을 날렸을 때 12M가 날라갔다면 2M를 오차라고 생각한다.

u(t) : 제어기를 통해 산출된 입력값(Control Onput)
e(t) : 결과값과 목표값의 오차(Error)
t: 시간(time)

Kp : 비례게인(Proportional Gain)
오차가 -2 발생했다고 가정했을 때, Kp가 1이면 그대로 -2라는 제어 입력값을 산출하므로 -2만큼 제어기가 조작을한다.
Kp가 2라면 -4, 3이라면 -6만큼 조작한다고 볼 수 있음.
적절한 Kp의 값을 찾는 과정을 비례 게인 튜닝 이라고한다.

일정 시간 동안 발생한 오차를 적분(합산) 한 값
목표인 10미터를 날아가야되지만 12미터를 날아갔다고 가정.
처음시간이 0일 때 오차는 +10이고 1초 후에는 -2가 된다. 즉, 0~1초에 발생한 오차의 총합은 10-2=8이다.
즉 KI가 1일 때 적분 제어기는 8이라는 제어 입력값을 산출. KI가 2라면 16, 3이라면 24만큼 조작한다.
KI의 값을 적분 게인(Integral Gain)이라고 부르고,
적절한 KI의 값을 찾아내는 과정이 적분 게인 튜닝(Integral Gain Tuning)

동일하게 드론이 1초 만에 12미터까지 날아 갔다고 가정을 하면, 처음 시간이 0일 때(이동 전) 오차는 +10이었고, 1초 이후에는 -2 가 된다.
이러한 오차는 매 초 마다 업데이트가 된다고 하면, 1초에서 계산된 오차의 변화량은 (1초에서의 오차 - 0초에서의 오차)를 소요된 시간(1초)으로 나누어 준 -12가 된다.
이때, KD가 1이라면 미분 제어기가 -12라는 제어 입력값(Control Input)을 산출하게 된다.
마찬가지로, KD가 2라면 -24, 3이라면 -36이라는 값만큼 조작을 하게 된다.
여기서 KD의 값을 미분 게인(Derivative Gain)이라고 부르고, 적절한 KD의 값을 찾아내는 과정이 미분 게인 튜닝(Derivative Gain Tuning)이라고 한다.

상승 시간: 목표/설정값의 90%까지 도달하는데 소요되는 시간
초과량: 목표/설정값을 초과하는 값
정착 시간: 목표/설정값의 95% 또는 99%에 도달까지 소요 시간
정상 편차: 목표/설정값으로부터의 최종 오차
안정성: 목표/설정값에 도달하여 상태를 그대로 유지하려는 성질

예시를 생각해보면 y축 반응은 처음출발위치부터 최종 위치까지의 움직임을 나타낸 것이라고 보면 된다.

안정성 역시 목표의 설정값에 도달하는 것 만큼 중요하다.
참고 사이트 : https://blog.naver.com/droneaje/221989463375
쉽게 이해하는 PID 제어시스템(PID Control System)의 구성과 게인 튜닝(Gain Tuning) 방법
글 알림 표 이번 포스팅에서는 피드백 제어 시스템(Feedback Control System)의 대표 격인 PID 제어...
blog.naver.com
두번째 정리
P(비례제어)는 현재 I(적분제어)는 과거 D(미분 제어)는 미래의 오차를 수정한다.

-----------------------------<개루프 제어시스템(비피드백 시스템) 블럭도>------------------------

장작: 입력 & 조작량
사람: 제어기
난로:제어대상
방온도:제어량
목표온도:목표값
라고 생각했을 때 사람의 감각으로만 판단과 추정을 하기 때문에 장작만으로는 외란에 대응할 수 없으며, 목표값에 도달할 것이라는 보장이 없다.
그러므로 외란을 보정하기 위해선 피드백 제어의 사용이 필요. 사진에서는 피드백 요소를 말함.
----------------------------<폐루프 제어시스템(피드백 시스템) 블럭도>---------------------------

이 사진을 보면 물이 일정량만큼 차면 부력에 의해서 추가 올라가서 입구를 막게한다.
난로의 예시와 달리 수조에 갑자기 엄청나게 많은 양의 물을 흘려보내거나 펌프로 수조안의 물을 퍼 올려도 피드백의 역할을 해주는 추 덕분에 어느정도 범위에서 수위를 유지할 수 있을 것이다.
이 수위를 최대한 일정하게 유지하는게 BEST

가장 좋은 방법은 동작(오차)신호를 0에 수렴시키는 방법이다.
그러나 출력이 명령한 그대로 나온다는 것은 어렵기에 어떻게하면 이 오차항을 적절한 조작량으로 변환시켜 시간이 흐름에 따라 오차를 0에 수렴하게 만드냐는 것이다.
그 방법으로 제어기를 사용하면된다.
앞서 오차는 목표 값(총 거리) – 제어량(현재 거리)라고 했으니 오차는 남은 거리가 된다.

이를 보면 처음에는 빠른속도로 목표거리까지 이동하겠지만 점차 가까워질 수록 점차 속도를 낮추다가 도착하게 된다.
드론으로 쉽게 예시를 들어보면 제자리에서 하늘로 100M를 올라가려고 한다.
잘 올라가고 있지만 일정 수준에 오면 더이상 올라가지않는다. 그 이유는 엄청 복잡해서 이해를 못하겠음.
간단히 이해한 바로는 공중에서 가만히 있을 수 없고 공중부양하는 만화나 헬기 등을 보면 둥실둥실 떠있는걸 생각하면된다. 즉 왔다갔다 해서 그런거같다. 아닐수도있다.. 대충 100M 높이 지점에서 맴돌게 된다.
Gain값을 곱해서 드론의 프로펠러 속도, 즉 조절량을 설정해주는 것인데, P-Gain값을 높일수록 오차는 줄어들겠지만 사라지지는 않는다.
이렇게 시간이 아무리 흘러도 남아있는 오차를 정오차 혹은 정상상태 오차라고한다.
비례, 적분, 미분 제어 모두 오차항에 연산 되는 값인데 이 값들을 제어기를 잘 연결하여 조절해야된다.

간단하게 말하면 제어기에 적분기경로(I)를 추가하고 비례제어기(P)와 병렬로 연결해야된다.
적분기는 누적 합계를 유지하면서도 시간 경과 (정상 상태에서)에 따른 입력 신호의 총량을 계산한다. 즉 과거에 일어났던 일에대한 메모리가 존재.
오차항은 0이 아닌 상태기 때문에 적분기 경로에서 적분 출력이 계속 변경될 것이며 비례기와 적분기가 함께 동작하여 오차는 0으로 수렴한다.
이렇게 끝나면 좋겠지만 PI제어(비례기와 적분기만 사용)는 이제껏 편의를 위해 적용하지 않은 외란(Disturbance)에 대해 매우 취약하다. 이를 해결하기 위해 D제어기(미분제어)가 추가된 PID제어기를 사용한다.

D(미분) 제어는 현재 오차의 기울기를 통해 제어량을 조작하는 방식이다.
(현재 오차의 기울기 값을 안다는 것은 미래의 오차를 예측할 수 있다는 의미)
=> 기울기가 + : 오차항이 크다는 것을 예측해 강도를 높인다. -는 반대이다. 즉 미래에 생일 오차를 예측하고 줄여줌.

D제어를 추가하면서 점차 오차가 보정되는 것으로 보인다.
나중에는 거의 완만하게 나타나며 아예 오차가 0이될 수는 없지만 0에 수렴한다고 볼 수 있다.
1. P (Proportional) 제어:
• P 게인은 현재 오차를 기반으로 제어 출력을 조절
• P 게인은 현재 오차와 설정값 사이의 차이를 사용하여 제어 출력을 계산
• P 게인이 크면 현재 오차에 대한 반응이 빨라지며, 오버슈팅이 증가할 수 있음
2. I (Integral) 제어:
• I 게인은 과거의 누적 오차(적분 오차)를 기반으로 제어 출력을 조절
• I 게인은 과거 오차의 누적값을 사용하여 제어 출력을 계산
• I 게인은 정적 오차를 제거하고 시스템이 장기적으로 목표값에 수렴하도록 도움
3. D (Derivative) 제어:
• D 게인은 미래의 오차 변화율을 기반으로 제어 출력을 조절
• D 게인은 현재 오차의 변화율을 사용하여 제어 출력을 계산
• D 게인은 오버슈팅을 감소시키고 시스템의 진동을 제어하는 데 도움
PID제어에 관한 이해
PID제어에 관한 간단한 이해
velog.io
GPT의 대답
PID 제어(PID Control)는 기계나 시스템의 동작을 자동으로 조절하기 위해 사용되는 제어 방법 중 하나입니다. PID는 비례(Proportional), 적분(Integral), **미분(Derivative)**의 약자입니다. 이 각각의 요소가 협력하여 원하는 목표에 도달하도록 제어를 수행합니다. 처음 듣는 개념이라면, 먼저 각각의 용어를 간단히 살펴보고 PID 제어가 실제로 어떻게 작동하는지 설명해볼게요.
1. PID 제어의 목적과 기본 개념
PID 제어의 목표는 시스템이 목표로 하는 값(예: 온도, 속도, 위치)에 최대한 가깝게 도달하고 유지하도록 하는 것입니다. 이를 위해 PID 제어기는 목표와 현재 값의 차이를 줄이기 위해 작동합니다. 이 차이를 **오차(Error)**라고 부릅니다.
2. PID의 구성 요소
각각의 PID 요소는 오차를 줄이는 데 서로 다른 역할을 합니다:
- 비례(Proportional, P): 현재 오차에 비례해서 조절값을 만듭니다. 오차가 클수록 제어 입력이 크게 변해서 오차를 빠르게 줄일 수 있습니다. 다만, 이 비례 요소만 사용하면 목표 값에 다다르기 전에 오차가 남는 **정상 상태 오차(Steady-State Error)**가 발생할 수 있습니다.
- 적분(Integral, I): 시간에 걸쳐 누적된 오차를 반영하여 제어합니다. 적분 요소는 오차가 시간이 지나면서 누적되면 이를 상쇄하는 조절값을 추가해, 정상 상태 오차를 줄이는 데 도움이 됩니다. 그러나 적분만 사용하면 오히려 시스템이 목표값을 넘어가거나, 느려질 수 있습니다.
- 미분(Derivative, D): 오차의 변화율에 따라 조절값을 만듭니다. 즉, 오차가 급격히 변할 때 이를 제어해 빠르게 반응하도록 하며, 시스템의 과도한 진동이나 **오버슈트(Overshoot)**를 줄이는 데 효과적입니다. 다만, 미분 요소는 노이즈에 민감하기 때문에 신호가 불안정할 때 주의가 필요합니다.
3. PID 제어기 조합
PID 제어기는 위 세 가지 요소를 합쳐서 사용하는 경우가 많습니다. 이때 P, I, D 요소를 각각 어느 정도씩 적용할지를 결정하는 게 중요한데, 이를 **게인(Gain)**이라고 합니다. PID 게인을 어떻게 설정하느냐에 따라 시스템의 반응 속도, 정확도, 안정성이 달라집니다.
예를 들어, PID 제어를 통해 드론의 위치를 제어한다고 가정해보겠습니다. 드론이 목표 위치에 가깝게 도달하려면:
- P 제어를 사용해 오차에 비례해서 위치를 조정합니다.
- 목표 위치에 거의 도달했을 때 I 제어를 통해 작은 오차를 없애 안정적인 위치에 도달하도록 합니다.
- D 제어는 드론이 목표 위치를 넘어서지 않도록 속도 변화를 감지해 급격한 움직임을 억제합니다.
4. 실제 적용 예시
PID 제어는 산업 자동화, 온도 제어, 로봇 제어 등 다양한 분야에서 사용됩니다. 예를 들어, 온도 제어 시스템에서 PID 제어는 현재 온도와 목표 온도의 차이를 계산하고, 이를 조정해 보일러나 냉각 장치를 조절하여 일정한 온도를 유지합니다.
요약
PID 제어는 비례(P), 적분(I), 미분(D)의 조합을 통해 목표에 도달하도록 하는 자동 제어 방식입니다. 각 요소는 오차를 줄이는 방식이 다르며, 적절한 게인을 설정해 시스템의 반응 속도와 정확성을 최적화할 수 있습니다.
PWM 이란?
Pulse : 사각파
Width : 폭
Modulation : 변조
직역시 펄스(사각파)의 폭을 제어한다.


PWM 제어에서는 크게 2개의 파라미터가 있습니다.
(1) 주파수 [Hz] : 1초에 진동하는 횟수(PWM 신호가 켜졌다 꺼지는 속도)
(2) Duty ratio(또는 duty cycle) [%] : 한 주기 안에서 신호가 on 되어 있는 비율
PWM을 사용하는 이유는 대부분의 제어를 마이크로프로세서에서 사용하는데 디지털 출력에서 LED밝기, 모니터 제어 등인 아날로그 제어를 구현해야된다.
그래서 생각해낸 것이 디지털 신호 0, 1을 빠르게 반복해서 마치 평균처럼 보이게 하면 아날로그 효과를 낼 수 있지 않을까라는 아이디어가 PWM이 된 것
PWM 신호는 디지털 신호의 0, 1을 빠르게 반복한 것이라 볼 수 있다.
즉, HIGH와 LOW를 반복하는 펄스파이며, HIGH가 되는 시간을 조절하여 제어

duty ratio는 0~100%로 표현하며, 0%는 0V DC 전압, 100%는 5V DC 전압입니다. 위의 그림에서 밝음의 경우 duty ratio는 75%, 중간의 경우 50%, 어두움의 경우 25%이다.
[출처] PWM 제어란? (Pulse Width Modulation)|작성자 엠에스리
참고 사이트: https://blog.naver.com/lagrange0115/222345576071
PWM 제어란? (Pulse Width Modulation)
기초전기전자, 모터 제어, 전력전자제어 등에서 가장 기초 개념인 PWM 제어, 펄스 폭 제어에 대해 알아...
blog.naver.com
PWM의 Duty Cycle 조절방식(GPT참고)
G = Kp * Error는 PID 제어에서 P(Proportional, 비례) 제어의 기본 공식으로
Duty Cycle 조절에 반영하면 ON상태의 비율을 줄일 수 있다. => 전력공급이 줄어 목표값에 점점 가까워진다.
1. 용어 정리
- G (제어 출력): 시스템에 전달할 최종 제어 값. 이 값이 커지면 시스템이 더 강하게 반응하게 됩니다.
- Kp (비례 게인): 상수 값으로, 오차에 얼마나 민감하게 반응할지를 결정. 높은 Kp 값은 오차가 조금만 있어도 큰 제어 출력을 발생시키며, 낮은 Kp 값은 반대로 반응을 완화시킵니다.
- Error (오차): 목표 값과 현재 값의 차이. 오차가 클수록 목표 값에 도달하기 위해 제어 출력(G)을 더 크게 만들어야 합니다.
2. 작동 원리
이 공식을 통해 시스템이 목표 값(Target)과 현재 상태(Current Value) 간의 차이(Error)를 줄여 목표 값에 도달하도록 제어할 수 있습니다. 오차가 클수록 G 값이 커져 빠르게 목표로 움직이고, 오차가 작아지면 G 값도 작아져 미세한 조절을 하게 됩니다.
3. 예시: 온도 제어 시스템
가장 직관적인 예로 온도 제어 시스템을 들어보겠습니다. 예를 들어, 목표 온도가 100°C인데 현재 온도가 80°C인 상황에서 이 공식을 사용하는 방법을 살펴볼게요.
- 오차 계산
- Error=Target−Current=100−80=20
- 비례 제어 출력(G) 계산
Kp가 1.5로 설정되어 있다고 가정할 때, 제어 출력 G는 다음과 같이 계산됩니다:- G=Kp×Error=1.5×20=30
- 여기서 G 값이 30이므로, 시스템은 더 높은 출력을 주어 현재 온도가 100°C에 빨리 도달하도록 조절됩니다.
- 오차가 줄어들 때
현재 온도가 올라가서 95°C에 도달했다고 가정해보죠.- Error=100−95=5
- 이제 다시 G를 계산하면:
- G=1.5×5=7.5
- 이전보다 출력 값이 낮아져, 온도가 점차 목표 값에 근접할수록 부드럽게 조절됩니다.
- 목표 값에 도달할 때
현재 온도가 100°C에 도달하면 오차가 0이 되어, 제어 출력도 0이 됩니다. 이는 목표 값에 정확히 도달했으므로 추가적인 제어가 필요하지 않다는 것을 의미하죠.
4. Kp 값의 조정
- 높은 Kp 값: 오차에 민감하게 반응하여 빠르게 목표 값에 도달하지만, 지나치게 높으면 목표 값을 초과하는 오버슈트가 발생할 수 있습니다.
- 낮은 Kp 값: 천천히 목표 값에 접근하게 되어 더 안정적이지만, 반응이 너무 느려질 수 있습니다.
K와 P를 나누어 설명하는 방식
- K (비례 상수): 단순히 비례 제어에서 "출력 강도"를 결정하는 상수입니다. K의 값이 크면 작은 오차도 크게 확대해서 제어하려 하고, 작으면 더 부드럽게 반응합니다.
- P (Proportional, 오차 값): 현재의 오차 값으로, 목표 값과 현재 상태의 차이를 의미합니다. 오차 값이 크면 목표에 도달할 거리가 멀다는 의미이므로, 제어 출력을 크게 하고 오차가 작아지면 제어 출력도 함께 작아지게 되는 것이죠.
K와 P의 역할을 바탕으로 Kp 해석하기
따라서 Kp = K × P의 의미는, 오차 값(P)에 비례 상수(K)를 곱한 값이 제어 시스템에 전달되어 목표 값에 가까워지도록 조정한다는 뜻입니다. 오차 값이 클 때는 더 강하게 제어하고, 오차가 작아지면 제어 출력을 줄여 목표 값에 다가가는 방식을 의미합니다.
즉, PID에서 Kp는 오차에 대해 시스템이 얼마나 빠르게 반응해야 하는지를 결정하는 상수라고 보면 됩니다.
https://m.blog.naver.com/emperonics/221725399383
PWM(pulse width modulation)이란?: 펄스폭 변조
PWM 이번 강좌에서는 PWM이 무엇인지 알아보고 실제 아두이노에서 어떻게 사용할 수 있는지에 대해서...
blog.naver.com
참고해보면 좋을만한 사이트
첫번째 정리
10M를 목표로하는 드론을 날린다고 가정.
드론을 날렸을 때 12M가 날라갔다면 2M를 오차라고 생각한다.

u(t) : 제어기를 통해 산출된 입력값(Control Onput)
e(t) : 결과값과 목표값의 오차(Error)
t: 시간(time)

Kp : 비례게인(Proportional Gain)
오차가 -2 발생했다고 가정했을 때, Kp가 1이면 그대로 -2라는 제어 입력값을 산출하므로 -2만큼 제어기가 조작을한다.
Kp가 2라면 -4, 3이라면 -6만큼 조작한다고 볼 수 있음.
적절한 Kp의 값을 찾는 과정을 비례 게인 튜닝 이라고한다.

일정 시간 동안 발생한 오차를 적분(합산) 한 값
목표인 10미터를 날아가야되지만 12미터를 날아갔다고 가정.
처음시간이 0일 때 오차는 +10이고 1초 후에는 -2가 된다. 즉, 0~1초에 발생한 오차의 총합은 10-2=8이다.
즉 KI가 1일 때 적분 제어기는 8이라는 제어 입력값을 산출. KI가 2라면 16, 3이라면 24만큼 조작한다.
KI의 값을 적분 게인(Integral Gain)이라고 부르고,
적절한 KI의 값을 찾아내는 과정이 적분 게인 튜닝(Integral Gain Tuning)

동일하게 드론이 1초 만에 12미터까지 날아 갔다고 가정을 하면, 처음 시간이 0일 때(이동 전) 오차는 +10이었고, 1초 이후에는 -2 가 된다.
이러한 오차는 매 초 마다 업데이트가 된다고 하면, 1초에서 계산된 오차의 변화량은 (1초에서의 오차 - 0초에서의 오차)를 소요된 시간(1초)으로 나누어 준 -12가 된다.
이때, KD가 1이라면 미분 제어기가 -12라는 제어 입력값(Control Input)을 산출하게 된다.
마찬가지로, KD가 2라면 -24, 3이라면 -36이라는 값만큼 조작을 하게 된다.
여기서 KD의 값을 미분 게인(Derivative Gain)이라고 부르고, 적절한 KD의 값을 찾아내는 과정이 미분 게인 튜닝(Derivative Gain Tuning)이라고 한다.

상승 시간: 목표/설정값의 90%까지 도달하는데 소요되는 시간
초과량: 목표/설정값을 초과하는 값
정착 시간: 목표/설정값의 95% 또는 99%에 도달까지 소요 시간
정상 편차: 목표/설정값으로부터의 최종 오차
안정성: 목표/설정값에 도달하여 상태를 그대로 유지하려는 성질

예시를 생각해보면 y축 반응은 처음출발위치부터 최종 위치까지의 움직임을 나타낸 것이라고 보면 된다.

안정성 역시 목표의 설정값에 도달하는 것 만큼 중요하다.
참고 사이트 : https://blog.naver.com/droneaje/221989463375
쉽게 이해하는 PID 제어시스템(PID Control System)의 구성과 게인 튜닝(Gain Tuning) 방법
글 알림 표 이번 포스팅에서는 피드백 제어 시스템(Feedback Control System)의 대표 격인 PID 제어...
blog.naver.com
두번째 정리
P(비례제어)는 현재 I(적분제어)는 과거 D(미분 제어)는 미래의 오차를 수정한다.

-----------------------------<개루프 제어시스템(비피드백 시스템) 블럭도>------------------------

장작: 입력 & 조작량
사람: 제어기
난로:제어대상
방온도:제어량
목표온도:목표값
라고 생각했을 때 사람의 감각으로만 판단과 추정을 하기 때문에 장작만으로는 외란에 대응할 수 없으며, 목표값에 도달할 것이라는 보장이 없다.
그러므로 외란을 보정하기 위해선 피드백 제어의 사용이 필요. 사진에서는 피드백 요소를 말함.
----------------------------<폐루프 제어시스템(피드백 시스템) 블럭도>---------------------------

이 사진을 보면 물이 일정량만큼 차면 부력에 의해서 추가 올라가서 입구를 막게한다.
난로의 예시와 달리 수조에 갑자기 엄청나게 많은 양의 물을 흘려보내거나 펌프로 수조안의 물을 퍼 올려도 피드백의 역할을 해주는 추 덕분에 어느정도 범위에서 수위를 유지할 수 있을 것이다.
이 수위를 최대한 일정하게 유지하는게 BEST

가장 좋은 방법은 동작(오차)신호를 0에 수렴시키는 방법이다.
그러나 출력이 명령한 그대로 나온다는 것은 어렵기에 어떻게하면 이 오차항을 적절한 조작량으로 변환시켜 시간이 흐름에 따라 오차를 0에 수렴하게 만드냐는 것이다.
그 방법으로 제어기를 사용하면된다.
앞서 오차는 목표 값(총 거리) – 제어량(현재 거리)라고 했으니 오차는 남은 거리가 된다.

이를 보면 처음에는 빠른속도로 목표거리까지 이동하겠지만 점차 가까워질 수록 점차 속도를 낮추다가 도착하게 된다.
드론으로 쉽게 예시를 들어보면 제자리에서 하늘로 100M를 올라가려고 한다.
잘 올라가고 있지만 일정 수준에 오면 더이상 올라가지않는다. 그 이유는 엄청 복잡해서 이해를 못하겠음.
간단히 이해한 바로는 공중에서 가만히 있을 수 없고 공중부양하는 만화나 헬기 등을 보면 둥실둥실 떠있는걸 생각하면된다. 즉 왔다갔다 해서 그런거같다. 아닐수도있다.. 대충 100M 높이 지점에서 맴돌게 된다.
Gain값을 곱해서 드론의 프로펠러 속도, 즉 조절량을 설정해주는 것인데, P-Gain값을 높일수록 오차는 줄어들겠지만 사라지지는 않는다.
이렇게 시간이 아무리 흘러도 남아있는 오차를 정오차 혹은 정상상태 오차라고한다.
비례, 적분, 미분 제어 모두 오차항에 연산 되는 값인데 이 값들을 제어기를 잘 연결하여 조절해야된다.

간단하게 말하면 제어기에 적분기경로(I)를 추가하고 비례제어기(P)와 병렬로 연결해야된다.
적분기는 누적 합계를 유지하면서도 시간 경과 (정상 상태에서)에 따른 입력 신호의 총량을 계산한다. 즉 과거에 일어났던 일에대한 메모리가 존재.
오차항은 0이 아닌 상태기 때문에 적분기 경로에서 적분 출력이 계속 변경될 것이며 비례기와 적분기가 함께 동작하여 오차는 0으로 수렴한다.
이렇게 끝나면 좋겠지만 PI제어(비례기와 적분기만 사용)는 이제껏 편의를 위해 적용하지 않은 외란(Disturbance)에 대해 매우 취약하다. 이를 해결하기 위해 D제어기(미분제어)가 추가된 PID제어기를 사용한다.

D(미분) 제어는 현재 오차의 기울기를 통해 제어량을 조작하는 방식이다.
(현재 오차의 기울기 값을 안다는 것은 미래의 오차를 예측할 수 있다는 의미)
=> 기울기가 + : 오차항이 크다는 것을 예측해 강도를 높인다. -는 반대이다. 즉 미래에 생일 오차를 예측하고 줄여줌.

D제어를 추가하면서 점차 오차가 보정되는 것으로 보인다.
나중에는 거의 완만하게 나타나며 아예 오차가 0이될 수는 없지만 0에 수렴한다고 볼 수 있다.
1. P (Proportional) 제어:
• P 게인은 현재 오차를 기반으로 제어 출력을 조절
• P 게인은 현재 오차와 설정값 사이의 차이를 사용하여 제어 출력을 계산
• P 게인이 크면 현재 오차에 대한 반응이 빨라지며, 오버슈팅이 증가할 수 있음
2. I (Integral) 제어:
• I 게인은 과거의 누적 오차(적분 오차)를 기반으로 제어 출력을 조절
• I 게인은 과거 오차의 누적값을 사용하여 제어 출력을 계산
• I 게인은 정적 오차를 제거하고 시스템이 장기적으로 목표값에 수렴하도록 도움
3. D (Derivative) 제어:
• D 게인은 미래의 오차 변화율을 기반으로 제어 출력을 조절
• D 게인은 현재 오차의 변화율을 사용하여 제어 출력을 계산
• D 게인은 오버슈팅을 감소시키고 시스템의 진동을 제어하는 데 도움
PID제어에 관한 이해
PID제어에 관한 간단한 이해
velog.io
GPT의 대답
PID 제어(PID Control)는 기계나 시스템의 동작을 자동으로 조절하기 위해 사용되는 제어 방법 중 하나입니다. PID는 비례(Proportional), 적분(Integral), **미분(Derivative)**의 약자입니다. 이 각각의 요소가 협력하여 원하는 목표에 도달하도록 제어를 수행합니다. 처음 듣는 개념이라면, 먼저 각각의 용어를 간단히 살펴보고 PID 제어가 실제로 어떻게 작동하는지 설명해볼게요.
1. PID 제어의 목적과 기본 개념
PID 제어의 목표는 시스템이 목표로 하는 값(예: 온도, 속도, 위치)에 최대한 가깝게 도달하고 유지하도록 하는 것입니다. 이를 위해 PID 제어기는 목표와 현재 값의 차이를 줄이기 위해 작동합니다. 이 차이를 **오차(Error)**라고 부릅니다.
2. PID의 구성 요소
각각의 PID 요소는 오차를 줄이는 데 서로 다른 역할을 합니다:
- 비례(Proportional, P): 현재 오차에 비례해서 조절값을 만듭니다. 오차가 클수록 제어 입력이 크게 변해서 오차를 빠르게 줄일 수 있습니다. 다만, 이 비례 요소만 사용하면 목표 값에 다다르기 전에 오차가 남는 **정상 상태 오차(Steady-State Error)**가 발생할 수 있습니다.
- 적분(Integral, I): 시간에 걸쳐 누적된 오차를 반영하여 제어합니다. 적분 요소는 오차가 시간이 지나면서 누적되면 이를 상쇄하는 조절값을 추가해, 정상 상태 오차를 줄이는 데 도움이 됩니다. 그러나 적분만 사용하면 오히려 시스템이 목표값을 넘어가거나, 느려질 수 있습니다.
- 미분(Derivative, D): 오차의 변화율에 따라 조절값을 만듭니다. 즉, 오차가 급격히 변할 때 이를 제어해 빠르게 반응하도록 하며, 시스템의 과도한 진동이나 **오버슈트(Overshoot)**를 줄이는 데 효과적입니다. 다만, 미분 요소는 노이즈에 민감하기 때문에 신호가 불안정할 때 주의가 필요합니다.
3. PID 제어기 조합
PID 제어기는 위 세 가지 요소를 합쳐서 사용하는 경우가 많습니다. 이때 P, I, D 요소를 각각 어느 정도씩 적용할지를 결정하는 게 중요한데, 이를 **게인(Gain)**이라고 합니다. PID 게인을 어떻게 설정하느냐에 따라 시스템의 반응 속도, 정확도, 안정성이 달라집니다.
예를 들어, PID 제어를 통해 드론의 위치를 제어한다고 가정해보겠습니다. 드론이 목표 위치에 가깝게 도달하려면:
- P 제어를 사용해 오차에 비례해서 위치를 조정합니다.
- 목표 위치에 거의 도달했을 때 I 제어를 통해 작은 오차를 없애 안정적인 위치에 도달하도록 합니다.
- D 제어는 드론이 목표 위치를 넘어서지 않도록 속도 변화를 감지해 급격한 움직임을 억제합니다.
4. 실제 적용 예시
PID 제어는 산업 자동화, 온도 제어, 로봇 제어 등 다양한 분야에서 사용됩니다. 예를 들어, 온도 제어 시스템에서 PID 제어는 현재 온도와 목표 온도의 차이를 계산하고, 이를 조정해 보일러나 냉각 장치를 조절하여 일정한 온도를 유지합니다.
요약
PID 제어는 비례(P), 적분(I), 미분(D)의 조합을 통해 목표에 도달하도록 하는 자동 제어 방식입니다. 각 요소는 오차를 줄이는 방식이 다르며, 적절한 게인을 설정해 시스템의 반응 속도와 정확성을 최적화할 수 있습니다.
PWM 이란?
Pulse : 사각파
Width : 폭
Modulation : 변조
직역시 펄스(사각파)의 폭을 제어한다.


PWM 제어에서는 크게 2개의 파라미터가 있습니다.
(1) 주파수 [Hz] : 1초에 진동하는 횟수(PWM 신호가 켜졌다 꺼지는 속도)
(2) Duty ratio(또는 duty cycle) [%] : 한 주기 안에서 신호가 on 되어 있는 비율
PWM을 사용하는 이유는 대부분의 제어를 마이크로프로세서에서 사용하는데 디지털 출력에서 LED밝기, 모니터 제어 등인 아날로그 제어를 구현해야된다.
그래서 생각해낸 것이 디지털 신호 0, 1을 빠르게 반복해서 마치 평균처럼 보이게 하면 아날로그 효과를 낼 수 있지 않을까라는 아이디어가 PWM이 된 것
PWM 신호는 디지털 신호의 0, 1을 빠르게 반복한 것이라 볼 수 있다.
즉, HIGH와 LOW를 반복하는 펄스파이며, HIGH가 되는 시간을 조절하여 제어

duty ratio는 0~100%로 표현하며, 0%는 0V DC 전압, 100%는 5V DC 전압입니다. 위의 그림에서 밝음의 경우 duty ratio는 75%, 중간의 경우 50%, 어두움의 경우 25%이다.
[출처] PWM 제어란? (Pulse Width Modulation)|작성자 엠에스리
참고 사이트: https://blog.naver.com/lagrange0115/222345576071
PWM 제어란? (Pulse Width Modulation)
기초전기전자, 모터 제어, 전력전자제어 등에서 가장 기초 개념인 PWM 제어, 펄스 폭 제어에 대해 알아...
blog.naver.com
PWM의 Duty Cycle 조절방식(GPT참고)
G = Kp * Error는 PID 제어에서 P(Proportional, 비례) 제어의 기본 공식으로
Duty Cycle 조절에 반영하면 ON상태의 비율을 줄일 수 있다. => 전력공급이 줄어 목표값에 점점 가까워진다.
1. 용어 정리
- G (제어 출력): 시스템에 전달할 최종 제어 값. 이 값이 커지면 시스템이 더 강하게 반응하게 됩니다.
- Kp (비례 게인): 상수 값으로, 오차에 얼마나 민감하게 반응할지를 결정. 높은 Kp 값은 오차가 조금만 있어도 큰 제어 출력을 발생시키며, 낮은 Kp 값은 반대로 반응을 완화시킵니다.
- Error (오차): 목표 값과 현재 값의 차이. 오차가 클수록 목표 값에 도달하기 위해 제어 출력(G)을 더 크게 만들어야 합니다.
2. 작동 원리
이 공식을 통해 시스템이 목표 값(Target)과 현재 상태(Current Value) 간의 차이(Error)를 줄여 목표 값에 도달하도록 제어할 수 있습니다. 오차가 클수록 G 값이 커져 빠르게 목표로 움직이고, 오차가 작아지면 G 값도 작아져 미세한 조절을 하게 됩니다.
3. 예시: 온도 제어 시스템
가장 직관적인 예로 온도 제어 시스템을 들어보겠습니다. 예를 들어, 목표 온도가 100°C인데 현재 온도가 80°C인 상황에서 이 공식을 사용하는 방법을 살펴볼게요.
- 오차 계산
- Error=Target−Current=100−80=20
- 비례 제어 출력(G) 계산
Kp가 1.5로 설정되어 있다고 가정할 때, 제어 출력 G는 다음과 같이 계산됩니다:- G=Kp×Error=1.5×20=30
- 여기서 G 값이 30이므로, 시스템은 더 높은 출력을 주어 현재 온도가 100°C에 빨리 도달하도록 조절됩니다.
- 오차가 줄어들 때
현재 온도가 올라가서 95°C에 도달했다고 가정해보죠.- Error=100−95=5
- 이제 다시 G를 계산하면:
- G=1.5×5=7.5
- 이전보다 출력 값이 낮아져, 온도가 점차 목표 값에 근접할수록 부드럽게 조절됩니다.
- 목표 값에 도달할 때
현재 온도가 100°C에 도달하면 오차가 0이 되어, 제어 출력도 0이 됩니다. 이는 목표 값에 정확히 도달했으므로 추가적인 제어가 필요하지 않다는 것을 의미하죠.
4. Kp 값의 조정
- 높은 Kp 값: 오차에 민감하게 반응하여 빠르게 목표 값에 도달하지만, 지나치게 높으면 목표 값을 초과하는 오버슈트가 발생할 수 있습니다.
- 낮은 Kp 값: 천천히 목표 값에 접근하게 되어 더 안정적이지만, 반응이 너무 느려질 수 있습니다.
K와 P를 나누어 설명하는 방식
- K (비례 상수): 단순히 비례 제어에서 "출력 강도"를 결정하는 상수입니다. K의 값이 크면 작은 오차도 크게 확대해서 제어하려 하고, 작으면 더 부드럽게 반응합니다.
- P (Proportional, 오차 값): 현재의 오차 값으로, 목표 값과 현재 상태의 차이를 의미합니다. 오차 값이 크면 목표에 도달할 거리가 멀다는 의미이므로, 제어 출력을 크게 하고 오차가 작아지면 제어 출력도 함께 작아지게 되는 것이죠.
K와 P의 역할을 바탕으로 Kp 해석하기
따라서 Kp = K × P의 의미는, 오차 값(P)에 비례 상수(K)를 곱한 값이 제어 시스템에 전달되어 목표 값에 가까워지도록 조정한다는 뜻입니다. 오차 값이 클 때는 더 강하게 제어하고, 오차가 작아지면 제어 출력을 줄여 목표 값에 다가가는 방식을 의미합니다.
즉, PID에서 Kp는 오차에 대해 시스템이 얼마나 빠르게 반응해야 하는지를 결정하는 상수라고 보면 됩니다.
https://m.blog.naver.com/emperonics/221725399383
PWM(pulse width modulation)이란?: 펄스폭 변조
PWM 이번 강좌에서는 PWM이 무엇인지 알아보고 실제 아두이노에서 어떻게 사용할 수 있는지에 대해서...
blog.naver.com
참고해보면 좋을만한 사이트