Jak kontrolować poziom w wielu połączonych zbiornikach jednocześnie?


0

W systemie zbiorników sprzężonych, jaka jest strategia kontroli, aby jednocześnie kontrolować poziom w wielu zbiornikach. W takim przypadku siłowniki wpływają na wiele zmiennych sterujących. System jest pokazany na tym schemacie

wprowadź opis zdjęcia tutaj

Zmienne, które należy kontrolować, to poziomy cieczy w każdym zbiorniku. Siłowniki to zawory na rurach oraz przepływ wlotowy q0. Problem polega na tym, że ten sam siłownik, np. V1, wpływa zarówno na h1, jak i h2. Próbowałem 3 różne PID dla każdego zbiornika. Każdy sterownik odbiera wysokość w odpowiednim zbiorniku i wysyła sygnał sterujący do odpowiedniego wylotu. Tak więc PID1 odbiera sygnał wejściowy h1 i steruje tylko V1; PID2 odbiera sygnał wejściowy h2 i steruje tylko V2 ...


3
Utrzymuj zawory między zbiornikami otwartymi.
Solar Mike

1
Lepiej byłoby umieścić obraz w tekście w swoim pytaniu, niż wymagać od kogoś kliknięcia, aby go zobaczyć. Z czasem linki zewnętrzne stają się przestarzałe, a przyszli użytkownicy tego pytania nie będą mogli zobaczyć systemu, o który pytasz.
GlenH7

@SolarMike To zadziała tylko wtedy, gdy poziom we wszystkich 3 czołgach ma być taki sam. Jeśli chcesz mieć niezależne punkty ustawień dla każdego z 3 czołgów, to inna sprawa.
popr.

@ am304 więc biorąc pod uwagę kwestię mój komentarz był w porządku ... może prosząc OP wyjaśnić sytuację tak wszyscy wiemy ...
Solar Mike

1
Tak więc proste: podłącz zasilanie (i wyjście) tak, aby zbiorniki były równoległe - ułatwia kontrolę, ponieważ każdy zbiornik staje się indywidualny ... Powinieneś również dodać takie istotne informacje do pierwotnego pytania - ludzie nie lubią trawlerować za pomocą komentarzy próbując rozwiązać pytanie ...
Solar Mike,

Odpowiedzi:


1

Masz do czynienia z systemem z wieloma wejściami i wieloma wyjściami (MIMO), w którym to przypadku ogólnie nie możesz zastosować takich samych technik, jak w przypadku systemów z jednym wejściem i jednym wyjściem (SISO). Jeśli masz do czynienia z liniowym systemem niezmienniczym MIMO, możesz użyć czegoś zwanego macierzą względnego wzmocnienia, aby zobaczyć, jak dobrze działałoby podejście kontrolne SISO. Jednak w tym przypadku uważam, że masz do czynienia z układem nieliniowym, ale może być możliwe oddzielenie wejścia i wyjścia, a mianowicie poprzez kontrolowanie dopływu netto do każdego zbiornika. W tym celu zakładam na razie, że możesz wybrać natężenia przepływu , , i i że dynamikę można zapisać jakoq0q1q2q3

(1)h˙i=αi(qi1qi)

więc dynamikę kombajnów można zapisać jako

(2)h˙=[α1α1000α2α2000α3α3]q

gdzie i . Teraz poprzez zdefiniowanie wirtualnego wejścia takiego, że , wówczas każda para danych wejściowych i wyjściowych jest oddzielona. Do tego potrzebujemyq =[ q 0 q 1 q 2 q 3 ]vh=[h1h2h3]q=[q0q1q2q3]vh˙=v

(3)[α1α1000α2α2000α3α3]q=v

które można rozwiązać dla za pomocą pseudo-odwrotności macierzy po lewej stronie. Można to zrobić na wiele sposobów, ale rozwiązanie minimalizujedajeqq

(4)q=[34α112α214α314α112α214α314α112α214α314α112α234α3]v.

Teraz możesz używać normalnych metod sterowania SISO, takich jak PID, dla każdej pary - która doprowadziłaby do pożądanej wartości.hivih

Jednak prawdopodobnie nie ma liniowej zależności między i , ale bardziej prawdopodobne jest coś takiego jak lub inna funkcja zależna od stanu nieliniowego. Jeśli znasz tę relację dokładniej, możesz wymyślić kontroler nieliniowy, w przeciwnym razie możesz wykonać sekwencyjne zamykanie pętli. Do sekwencyjnego zamykania pętli używasz do sterowania do pożądanej wartości zdefiniowanej przez z równania .qiViqiVi(hihi+1)Viqiv(4)

Jeśli masz trudniejszy sygnał odniesienia dla wysokości, być może będziesz musiał skorzystać z jeszcze bardziej zaawansowanych technik, takich jak kontrola predykcyjna modelu. Na przykład, gdy wysokości odniesienia są takie, że i ale system zaczyna od , wówczas początkowo nie będzie możliwe uzyskanie dodatniego dopływu do drugiego zbiornika i osiągnięcie pożądanych wysokości musi przez chwilę być większe niż , aby osiągnął swój cel.hr,1<hr,2hr,2>hr,3h1=h2=h3<hr,2h1h2h2


0

Nie jestem osobą zajmującą się systemami sterowania, więc wybacz moje niezbyt systematyczne podejście.

Pierwszą rzeczą, którą powinieneś zrobić, to spróbować ręcznie wyregulować zawory na stałe q, aby osiągnąć pożądany poziom.

Kontrolowałbym q na podstawie średniej odchyleń wysokości od pożądanej wysokości w każdym zbiorniku. Jeśli ogólny poziom wody jest niższy niż pożądany, zwiększ q i odwrotnie.

Zmienną kontrolną dla zaworów powinna być różnica wysokości między dwoma kolejnymi zbiornikami: V1 jest kontrolowany dla h1-h2, te różnice wysokości obliczasz na podstawie pożądanych wysokości we wszystkich zbiornikach. Tylko zawór 3 jest sterowany bezpośrednio dla h3.

Spraw, aby pierwszy zawór był szybszy niż drugi, a drugi szybszy niż trzeci. Powinno to pomóc uniknąć oscylacji.

Mimo to obiecałem niesystematyczne podejście, oto kilka powodów: dla danego q istnieje związek między różnicą wysokości a tym, jak otwarty lub zamknięty jest zawór. Prawdopodobnie dlatego Twoja strategia nie zadziałała.


To ciekawy pomysł. Spróbuję i skontaktuję się z tobą
yaska

@Ranade przyszedł, żeby spróbować? Jak poszło?
mart
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.