수온을 정확하게 제어


9

다음 설정이 있습니다.

  • 아두 이노 듀 에밀 라노베
  • 광학 릴레이와 연결된 소형 온수기 (PWM은 정상 임)
  • 방수 DS18B20 온도 센서
  • 알 수없는 양의 물 (그러나 온도 센서와 히터는 항상 수중에 있습니다).

온도 센서 판독 값을 기반으로 수온을 정확하게 제어하려면 어떻게해야합니까? 정확하게 말하자면, 온도 센서의 정확도 (이 경우 ± 0.5 ° C)를 의미합니다. 모든 것이 Arduino에서 실행되어야하므로 추가 데이터 스토리지 또는 처리 능력이 없습니다. 디버깅을 위해 분명히 컴퓨터를 사용할 수 있습니다.

PID를 실행하려고 시도했지만 실제로는 어렵습니다.

  1. 오버 슈팅을 피하십시오-처음 또는 (차가운) 물이 첨가 될 때 목표 온도를 초과하는
  2. 냉수를 넣은 후 올바르게 안정화하십시오.

PID를 조정 했습니까, 아니면 표준 값만 사용 했습니까?
피터 블룸필드

운이없이 다양한 'PID 조정 방법'가이드를 사용하여 PID 매개 변수를 조정하려고했습니다. 나는 또한 PIDAutotune 을 시도했지만 더 나은 것을 얻을 수 없었습니다. PID가 이것에 맞지 않는다는 말은 아닙니다.
Olli

물을 가열하면 많은 불일치가 발생합니다. 온도 프로브와 관련하여 탱크의 히터는 어디에 있습니까?
Matt Clark

1
아마도 물을 섞어 온도를 균질화하는 무언가를 추가해야 할 것입니다. 그런 다음 발열체의 열 속성, 비활성화 후 냉각되는 데 걸리는 시간 등을 고려해야합니다. 시스템의 물 양에 따라 달라집니다. 발열체의 온도를 조절할 수 있다면 먼 길을 갈 것입니다.
Daniel

문제 ATM의 일부는 아니지만 정확성, 정확성 및 반복성을 혼동하지 마십시오. 정확도는보고 된 온도가 실제 온도와 얼마나 가까운 지 의미합니다. 정밀도는 장치가 구별 할 수있는 가장 작은 차이입니다 (DS18b20의 경우 0.025도). 반복성은 동일한 온도에 대해보고 된 측정 값이 서로 얼마나 다른지입니다. 마지막 두 개는 첫 번째 것보다 더 우려됩니다. +/- 0.5degC 정확한 센서를 사용하더라도 몇 1 / 16th degC의 온도를 유지하거나 최소한 차이를 구별 할 수 있습니다.
JRobert

답변:


2

데이터의 특성을 분석하려면 시스템의 응답 시간과 측정의 반복성을 알아야합니다 (신뢰 설정). 히터를 다시 켜기 전에 샘플을 채취하여 평균을 구하는 것이 좋습니다.

Imho, 물은 0.5 ° C 내에서 행복하게 머 무르지 않습니다. 거칠고 미세한 모드를 허용 할 수 있습니까? 큰 차이를 얻으려면 더 높은 PWM을 사용하고 목표에 가까울 때는 더 낮은 PWM을 사용하십시오.

일단 목표물에 도달하면 온도 안정성을 개선 할 수있는 몇 가지 방법이 있습니다. PID와 같은 사전 구축 된 것들이 많은 사람들에게 효과적이지만 일반적으로 이와 같은 기능을 수동으로 구현합니다.


0

BrettAM, dE (오류 변화율)는 제어 매개 변수 (이 경우 히터 요소 신호의 펄스 폭이 변조 됨)에 따라 변경되며 PID에 따라 달라집니다. 온도 오류 변화율이 좋지 않다고 말하는 나의 말. 미분 용어는 온도 ( 20.4.186 kJ / (kg K) @ 100C) 에서 4.186 kJ / (kg K)의 비열에서 작은 변화를 처리하는 데에도 도움이됩니다 .

내 요점은 그렇습니다. 파생 용어는 dE의 변화율을 계산합니다. 여기서 오차는 원하는 온도와 실제 온도의 차이이므로, 도함수는 물이 가열되는 속도의 변화를 계산합니다.

문제는 종종 미분 용어로 안정적인 시스템을 만드는 것이 어렵다는 것입니다. PID 시스템은 주로 비례 항을 기반으로해야합니다. 내 생각에 물의 양을 바꾸면 PID가 보상 할 수있는 것보다 더 많은 비선형 성을 만들고 있습니다. 이러한 이유로 PID는 다소 반복 가능해야하며 수위가 심각하게 변하면 시스템을 더 이상 반복 할 수 없습니다.

비슷한 디자인으로, 나는 물을 다시 냉각시키는 방법으로 물을 흐르기 위해 작은 라디에이터 / 팬 콤보와 12V DC 펌프를 사용하려고합니다. 나는 이것이 더 잘 작동한다고 생각합니다. 성공하면 알려 드리겠습니다.


Arduino SE에 오신 것을 환영합니다! 이것은 질문에 직접 대답하지는 않습니다 (다른 의견에 더 답하는 것 같습니다). 편집 단추를 사용하여이 정보가 질문에 어떻게 대답하는지 명확하게 설명해 주시겠습니까? 감사!
익명 펭귄

-2

가열되는 물의 양을 일정하게 유지해야합니다. 물의 양이 변하면 물 온도가 상승하는 속도가 변경됩니다 (앞서 언급 한 것처럼 냉수 추가). 비례 적분 파생 컨트롤러 (PID)는 제어하려는 변수의 미분 (변화율)을 관찰하면서 작동합니다. 온도 변화율이 (합리적으로) 일정하지 않으면 PID가 제대로 작동하지 않습니다.

물의 비열, 주로 방정식 Q = c m dT를 살펴보십시오 . Q는 추가 된 열이며 설정에서 일정하다고 가정합니다. m은 가열되는 물질의 질량입니다 (일관되게 유지해야합니다). c는 물의 비열로 4.186 Joules / gram * degreeC입니다. Q, m 및 c가 dT와 일정하고 dT이면 수온이 상승하는 속도도 일정합니다 (실제로 c는 온도에 따라 약간 다르지만 0에서 일하는 경우 무시할 수 있음) 100C). 일정한 수량으로 PID를 조정하면 더 나은 결과를 얻을 수 있습니다.

어떤 온수기를 사용하고 있습니까? 나는 현재 비슷한 것을하고 있지만 화학 실험실에서 핫 플레이트를 사용하려고 시도하고 엄청난 오버 슈트를 경험했습니다. 수족관 히터로 전환하는 것을 고려했지만 사용중인 제품을 알고 싶습니다.

-매트


PID는 변화율이 일정하다고 가정하지 않습니다. dE (오류 변화율)가 일정하면 "D"항은 존재하지 않습니다. 게다가, 물이 얼마나 많은지 증기로 더 많은 열이 손실되기 때문에 물은 고온에서 더 천천히 가열 될 것이다. PID는 특정 열 질량에 대해 이상적으로 조정될 수 있지만 광범위한 수위 및 외부 온도 / 압력에 대해서는 여전히 작동해야합니다.
BrettAM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.