Próbuję uaktualnić sterownik przepływu gazu, który musi być w stanie kontrolować natężenie przepływu trzech gazów niezależnie przez jedną linię wylotową do naszego systemu, i potrzebuję trochę porady na temat programowania. Używam arduino i kilku przetworników DAC, aby powiedzieć zawory elektromagnetyczne dozujące jak powinny być otwarte. Aktualny schemat konfiguracji znajduje się poniżej, ale w razie potrzeby mam do dyspozycji więcej czujników ciśnienia i czujników przepływu masy.
Rada moich kolegów zaleca użycie pętli PID dla każdego gazu. Byłoby to łatwe, szczególnie, że istnieje kod arduino już dostępny - jednak nie jestem przekonany, czy jest to konieczne, czy najlepsze rozwiązanie, ponieważ:
- W systemie prawie nie ma inercji, na przykład w przypadku bezwładności termicznej w piecu. Gdyby to był tylko jeden gaz, z jednym ciśnieniem wlotowym i jednym wylotem, wystarczy, że myślę, że część P PID.
Natężenie przepływu każdego gazu zależy od różnicy ciśnień przed i za zaworem, która jest wtedy zależna od przepływu masy innych gazów i ciśnienia wylotowego, stąd PID może osiągnąć optymalny przepływ dla jednego gazu, ale w ten sposób zmienić natężenia przepływu innych gazów - pozostawiając oscylację w systemie. (ciśnienie w systemie na wylocie może się również nieznacznie zmieniać)
Nie wiem, czy jest to możliwe, a jeśli tak, to w jaki sposób napisać pętlę PID dla jednoczesnych wielu wejść / wyjść.
Dlatego doceniłbym wszelkie pomysły lub rozwiązania, których nie byłem świadomy, jak mój program powinien sterować zaworami elektromagnetycznymi dozującymi?
P.S. Nie proszę nikogo o napisanie kodu dla mnie, ale po prostu podstawowa idea tego, jak powinienem to zrobić, byłaby świetna.
P.P.S. (Istnieje formuła natężenia przepływu gazu tutaj , więc przypuszczam, że mógłbyś spróbować opracować teoretycznie jaki optymalny sygnał do zaworów byłby oparty na pewnego rodzaju równoczesnym rozwiązaniu tej formuły dla trzech gazów, biorąc pod uwagę współczynniki tarcia dla wszystkich małych elementów i części w systemie i czynniki ekspansji dla poszczególnych mieszanin gazowych (nie sądzę, aby którekolwiek z butli gazowych były absolutnie czystymi mieszaninami) itd., ale sądzę, że możliwe jest, aby nie iść tutaj tak skomplikowane!)
źródło
Odpowiedzi:
Moim najlepszym wyborem byłoby dołączenie równoległych danych wejściowych:
...gdzie:Dodatkowo:
Strategia:
Algorytm sterowania
Podejrzewam, że możesz uciec z prostym kontrolerem P. Zakładam, że nie przejmujesz się małymi błędami (nie powiedziałeś). Nie sądzę, że trzeba będzie przetwarzać dane czujnika ciśnienia w dowolne obliczenia. Jeśli jednak delta-p zacznie być zbyt mała, być może będziesz musiał zbudować system sterowania wyższego rzędu lub być może dane Px, aby skalować wyjścia zaworu, gdy delta-p spada. TBD.
Spędzisz 80% swojego czasu na prototypowanie 1 systemu sterowania do pracy. Następnie kolejne 80% czasu na integrację sprzętu.
Doprowadzenie zaworu proporcjonalnego do działania zgodnie z oczekiwaniami, cóż, to złota gęś. Stabilność będzie zależała od kilku rzeczy, ale makroskopowo byłbym zainteresowany:
Kup zawór regulacyjny nadmiarowy o wartości 30 USD, na wypadek gdyby coś poszło nie tak. Nie ma potrzeby rozsadzać płuc biednego faceta.
To brzmi jak zabawny projekt.
Powodzenia!
źródło