Próbuję napisać program mikrokontrolera do sterowania temperaturą w systemie o następujących cechach:
- wyjście może być włączone lub wyłączone, przy stałych częstotliwościach cyklu (~ 2-10 na godzinę)
- Roślina reaguje wolno (mierzalne zmiany temperatury trwają długo> 10 minut).
- Roślina traci temperaturę w zależności od warunków środowiskowych.
- wartość zadana może zmieniać się w dużych krokach w zależności od zapotrzebowania użytkownika.
Piszę kontroler, który ma na celu zminimalizowanie błędu, a także przestrzeganie częstotliwości cyklu podanej jako dane wejściowe.
Można to łatwo zrobić za pomocą kontrolera PI, a jego moc wyjściowa jest konwertowana na cykl pracy. Problem polega na tym, że program musi się automatycznie dostroić i wybrać prawidłowe wartości Kp, Ki oraz dostosować się do zmiennych warunków otoczenia i zmian mocy grzewczej. Dlatego wcześniejsze dostrojenie kontrolera PI nie jest zbyt przydatne.
Użycie rzeczywistego PI lub PID nie jest wymagane. Jestem otwarty na użycie Fuzzy-Logic, jeśli to pomaga, mam również algorytm uczenia maszynowego na chipie, który modeluje odpowiedź systemu i straty ciepła (w przybliżeniu liniowe), co sugeruje informacje o zmierzonej odpowiedzi krokowej . Po prostu nie wiem, co zrobić z tymi informacjami.
Kilka postów sugeruje, że mógłbym użyć danych modelowania, aby dostroić PI on-line, a także podręcznik do laboratorium, który sugeruje, że mogę użyć Fuzzy-Logic do dostrojenia PI.
Moje pytanie brzmi: jakie jest najlepsze podejście dla tego rodzaju scenariusza (np. PID, fuzzy-pid, splot itp.) I jak mógłbym faktycznie wdrożyć to w oprogramowaniu / praktyce.
Nie jestem EE, więc wszelkie uwagi byłyby bardzo mile widziane.