PID 제어를 배우는 방법?


26

온도에 대한 PID (Proportional–Integral-Derivative) 제어를 배우고 싶습니다.

쉬운 프로젝트를 통해 바람직하게 배우고 싶습니다.

배우는데 몇 주가 걸리는 것을 추천 해 주시겠습니까?

편집 : 물 탱크의 온도를 제어하고 싶습니다. 가열은 저항에 의해 이루어진다.


나는 누군가로부터 배울 수있는 기본 프로젝트를 얻으려고 노력했다. 나는 수학도 흥미 롭다고 생각한다. 사람들은 그것에 자신의 삶을 바칩니다.
Kortuk

온도를 어떻게 조절하고 싶습니까?
J. Polfer

3
열을 제거 할 수 없기 때문에 작은 전류를 적용하거나 pid가 조절 문제를 일으킬 수있는 경우에도 시스템이 여전히 냉각되도록해야합니다. 실험 할 때 팬이나 얼음을 추가 할 수 있습니다. 당신이 가득 차면 올라가고, 꺼져있을 때 내려 가기를 원합니다. 이 경우 피드백이 조정됩니다.
Rex Logan

1
이는 필요한 물 탱크의 온도에 의해 결정됩니다. 만약 그가 80C를 원한다면 환경 온도는 충분할 것이고 25C를 원한다면 그는 문제가있을 것입니다. 적절하게 튜닝 된 PID는 느린 온도 손실을 처리 할 수 ​​있어야합니다.
Kortuk

답변:


27

온도 조절 (매체에 따라 다름)은 그리 어렵지 않습니다. 처음 시작할 때 프로젝트였습니다. 내가 이미 알고있는 것을 반복하면 용서해주십시오.

이미 시스템을 제어하는 ​​방법 (예 : 히터 또는 냉각기 장치)과 시스템 (서미스터와 같은 온도 센서 등)에서 피드백을 얻는 방법이 있다고 가정합니다. 폐쇄 루프 제어 유형 인 PID 루프를 구현하려면 둘 다 필요합니다. 그 후에 실제로해야 할 일은 제어 명령을 보내고 피드백을 읽고 피드백에 대한 결정을 내리기 위해 약간의 소프트웨어를 작성하는 것입니다.

PhD없이 PID를 읽는 것으로 시작하겠습니다 . 과학 실험에서 온도를 처음 조절해야 할 때 사용한 기사입니다. 이해하기 쉬운 그림과 '식물'을 제어하는 ​​방법을 설명하는 멋진 샘플 코드 (30 줄만 조정할 수있는 기본 루프)를 제공합니다.이 경우 온도를 제어하려는 것 .

PID (Proportional-Integral-Differential) 제어의 요점은 특정 시점에서 시스템을 제어하여 지정된 설정 점에 도달하는 방법을 결정하기 위해 시스템의 순간적, 과거 및 예측 된 미래 성능 (각각)을 사용하는 것입니다. 대부분의 경우, 원하는 성능을 얻기 위해 알고리즘의 이득 계수를 조정해야합니다. 온도가 얼마나 빨리 상승하는지, 오버 슈트를 피하고 싶은지 등입니다. 차이가 필요하지 않을 수도 있습니다. 또는 당신이 원하는 곳에 도착하기 위해 통합 제어!


PhD없이 PID에 대한 링크가 어디로 갔는지 기억할 수 없었습니다. 나는 그 이름을 잊어 버렸고 오래 전에 읽은 것을 기억하지 못했습니다. +1 선생님
Kortuk

3
PhD가없는 PID는 훌륭한 기사입니다! 그러나, 음, 내 8 비트 마이크로 컨트롤러는 부동 소수점 연산 좋아하지 않았다 ..
압둘라 kahraman

그냥 훌륭합니다! PHD가없는 PID는 완벽합니다. 나는 PHD를 가지고 있지만 제어 이론을 피하기 위해 최선을 다했습니다. :) 또한 미니 라인 추종자를 좋아하십시오.

@Bistromath 답변으로 "감사합니다"를 추가하지 마십시오. 평판 이 충분 하면 도움이되는 질문과 답변투표 할 수 있습니다.
m.Alin

10

예. 서미스터와 저항을 얻으십시오. 상당히 큰 전류 (> 100mA)를 끌어낼 수있는 저항을 선택하십시오.

그들 사이에 열 페이스트를 사용하고 테이프와 함께 테이프. ADC를 통해 서미스터 회로를 마이크로 컨트롤러에 연결하십시오. 트랜지스터를 사용하여 저항을 제어하고 PWM으로이를 제어하십시오.

다이얼을 사용하여 온도를 제어 할 수있는 PID를 개발하고 온도를 오버 슛 및 링잉하는 PID를 만드는 연습을하십시오. 과도하게 댐핑하고 온도에 도달하는 데 시간이 오래 걸리고, 온도를 극도로 낮추고 최대 속도로 온도에 도달하십시오.

자세한 내용이 도움이되는지 알려주세요.

이 작업을 수행 한 후 열 전도도를 줄인 후 온도 전파를 지연시키는 단계를 추가하여 온도를 잘 제어하십시오.

이것은 LED와 포토 트랜지스터로도 가능합니다.


다음은 PID 루프의 작동 방식을 중단시키려는 좋은 제안입니다.
J. Polfer



1

좋은 반응에 이미 2 센트 가치를 더하는 것뿐입니다.

온도 제어에 PID를 실용적으로 사용하는 경우 온도 오류 감지가 제한되고 (op amp 게인 포화 출력) 온도를 제어하는 ​​데 사용할 수있는 전력이 고정 된 경우 비선형 동작이 종종 발생합니다.

온-오프 컨트롤러를 고려하십시오. 시스템은 열이 가해지고 온도 변화가 감지되는 시점부터 대기 시간을 갖습니다. PID 루프가없는이 대기 시간은 불안정한 루프 발진을 발생시키고 히스테리가 발생하는 경우 노이즈 (On-Off-On)로 전력 사이클이 발생하지만 비교기 등의 매우 높은 게인은 잔류 온도 오류가 작습니다. 대기 시간은 사이클 시간과 오버 슈트에 영향을줍니다.

탱크 램프와 같은 외부 열에 중대한 열을 추가 할 수있는 경우, 램프 열에서 온도 상승이 감지되는 즉시 히터 조절기가 반응해야합니다. Lamp swith가 PID 루프의 일부가 아닌 경우 효과를 "예상"할 수 없습니다 (미분 피드백 게인). 램프가 너무 많은 열을 생성하면 온도를 조절할 수없고 설정 점을 초과합니다.

PID 제어를 사용한 열 제어에는 램프 스위치 상태 및 출력 제어를위한 입력이 있어야합니다.

절대 제어 오류, % 오버 슈트 및 응답 시간에 대한 요구 사항을 정의하는 것은 PID 루프를 최적화하는 데 필요한 일부 설계 입력입니다. 마찬가지로 시스템 장애를 정의하고이를 제어 시스템에 입력 및 출력에 포함시키는 것이 중요합니다. 예. 램프 열 전력 및 센서 및 위치 선택.

따로 경험.

온수기를 사용한 나의 첫 경험은 학생 시절 70 년대의 물층 시대였습니다. 서미스터, 제어 회로 및 히터에 대한 제로 크로싱 트라이 액 스위치를 사용하여 자체 온도 조절기를 설계했습니다. 나는 비교기 제어로 시작하여 침대에서 뛰어 내리는 이상한 반응을 발견했습니다. 따라서 ZCS 트라이 액이 임계 값 근처에서 ON 일 때 센서에 필터링되지 않은 노이즈를 사용하여 비례 제어를 추가하여 비례적인 "누락주기"를 제공합니다. 0.1'C 내에서 온도를 조절할 수있었습니다. 반응은 부드럽지만 결과는 동일했습니다.

센서의 위치와 수압의 작은 변화에서 가장 큰 오류가 발견되었습니다. (저는 작았지만 185 파운드에 불과했지만 2000 파운드의 워터 베드에서는 <10 % 수압 변화가 작았습니다)

센서와 워터 베드 사이의 열 저항은 센서에 대한 수압에 따라 작은 오프셋 오류를 생성했습니다. 물 탱크 시나리오에서 센서 오류는 탱크의 크기와 센서와 히터 또는 센서 사이의 거리 및 센서의 가장 먼 표면 또는 센서와 히터 사이의 물의 흐름 또는 기포의 속도에 의해 영향을받을 수 있습니다.

내 경우에는 침대에 뛰어들 때마다 열 저항이 추가 압력에서 약간 떨어졌고 온도가 10도 정도 떨어지거나 추가 무게와 압력으로 인한 겉보기 온도 상승과 일치 할 때까지 1 ~ 2 분 동안 전원 표시등이 어두워졌습니다. 온도 조절 장치에 대한 물침대.

(강의 학습. 혼란의 원인과 제어 시스템 오류에 미치는 영향을 무시하지 마십시오)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.