서보 제어 밸브를 사용하여 온수 및 냉수를 혼합하기 위해 Arduino Leonardo에서 기본 PID 알고리즘을 구현하려고합니다. 목표는 온도를 설정 값에 최대한 가깝게 유지하는 것입니다. 화상으로부터 사용자를 보호하기 위해 출력 온도가 설정 값을 초과하지 않도록하는 것이 특히 중요합니다. 두 번째로 중요한 것은 설정 점 근처에서 가능한 빨리 온도를 얻는 것입니다.
온도의 작은 변화에 대해서는 PID 알고리즘 의 표준 구현이 정상적으로 작동하는 것 같습니다. 그러나 밸브 위치를 변경 한 후 지연이 표준 지연보다 훨씬 길기 때문에 온수가 밸브에 도달하기를 기다릴 때 발생할 수있는 긴 지연을 설명하는 방법을 모르겠습니다.
온수 라인의 길이와 온수를 마지막으로 사용한 이후의 시간에 따라 온수가 밸브에 도달하는 데 수십 초가 걸릴 수 있으므로이 시간 동안 수온은 저온에서 상당히 일정하게 유지됩니다 온수 밸브가 곧 100 % 열립니다. 적분 구성 요소가 큰 오류 값을 누적하기 시작합니다.
온수가 밸브에 도달하면 감지 된 온도가 최대 온수 온도로 매우 빠르게 상승합니다. 적분 오차가 크기 때문에 온도가 설정 값을 초과 한 후 온수 밸브가 100 %로 오랫동안 유지됩니다. 적분 값을 기다리면 정상 수준으로 감소합니다. 따라서 결과는 몇 초 동안 최대 온도의 물입니다.
이 가능한 긴 지연 을 설명하는 방법을 잘 모르겠습니다 . 이 경우 최대 응답 시간을 제한하기 위해 적분 오차 값에 상한과 하한을 설정하는 것이 현명합니까? 이것은 필수 구성 요소의 목적을 무효화하는 것으로 보이며 설정 점에 도달 한 후에도 여전히 약간의 지연이 발생합니다.
아니면 오랜 지연 후에 빠른 입력 변경을 처리하는 더 좋은 방법이 있습니까?
조언을 주셔서 감사합니다!