Konwersja elementów regulatora PID ze sprzężeniem zwrotnym stanu w funkcję pojedynczego transferu i dyskretną formę przestrzeni stanu

9

Od około tygodnia zmagam się z tym problemem w ramach całorocznego projektu. Projektujemy sterownik dla konkretnego reaktora w oparciu o model. Po dłuższym spojrzeniu na to nadal nie mogę uruchomić tego - więc byłbym bardzo wdzięczny, jeśli mogę uzyskać pomoc.

Jeden z opublikowanych przeglądów literatury, na którym w dużej mierze oparliśmy, wymienia regulator PID w każdym oddzielnym składniku zamiast połączonego równania, tak jak poniżej:

{P(n)=Kp[G(n)target]I(n)=I(n1)+KpTI[G(n)target]D(n)=KpTDdGdt(n)

Po prostu łącząc trzy komponenty w wyjście :

PID(n)=P(n)+I(n)+D(n)

I stąd autor dodaje dodatkową warstwę sprzężenia zwrotnego stanu na górze sygnału PID, aby uzyskać końcowe wyjście kontrolera zastosowane w systemie.

{Q(n)=K0R(n1)+K1Q(n1)K2Q(n2)R(n)=(1+γ)PID(n)γQ(n1)

A R jest ostatnim „wyjściem kontrolera”. Tutaj jest wzmocnieniem procesu, i są całkowania i pochodnych, , i są „wzmocnieniami” dostrojonymi dla sprzężenia zwrotnego stanu (niezmiennego), a jest stałą, 0,5. jest stanem systemu, jest stanem szacunkowym, który wpływa na dynamikę modelu, a jest faktyczną wydajnością końcową wysyłaną do instalacji.KpTITDK0,K1K2γG(n)Q(n)R(n)

Próbowałem najpierw przekonwertować całość na funkcję transferu pojedynczego kontrolera, ale powiedziano mi, że zwykłe dodanie ich razem nie zadziała.

Miałem też zadanie znaleźć dyskretną reprezentację tego kontrolera w przestrzeni stanów. W tym celu próbowałem zmienić na aby pozbyć się tego problemu.dGdt(n)G(n)G(n1)

Następnie próbowałem zdefiniować nową zmienną stanu dla aby i mogły zostać przekonwertowane do pierwszego rzędu.Q(n)Q(n1)Q(n2)

Następnie próbowałem podstawić wartości do regulatora PID, aby uzyskać jako zmienną stanu. Wszystkie te wysiłki były oparte na zaleceniach mojego profesora.G(n)

Jednak nadal jestem bardzo utknięty, ponieważ ślepo podążam za jego wskazówkami, bez ogólnej wizji, aby nad tym popracować. Myślałem, że będzie to prosta sprawa transformacji Tustina - och, jak bardzo się myliłem ...

Jestem dość sfrustrowany, ponieważ po tygodniowym wysiłku wciąż jestem zaskoczony tym, co wydaje się być prostym problemem.

Jeśli to możliwe, czy mogę pokornie poprosić o pomoc w tych dwóch konkretnych pytaniach?

  1. Przekształć ten kontroler w funkcję przesyłania pojedynczego kontrolera (jak zwykle widać w dowolnej reprezentacji funkcji przesyłania, tj. )G(s)=1s+1
  2. Przekształcić ten kontroler w dyskretną reprezentację przestrzeni stanów, pozostawiając częstotliwość próbkowania jako zmienną?
John Galt
źródło
MATLAB i Maple potrafią rozwiązać te problemy. Mam oba programy. Wydrukowałem twój post i spróbuję je uruchomić. Zrobiłem trochę tego na studiach.
Wesley Wortman
Czy możesz podać tytuł publikacji?
Hazem

Odpowiedzi:

1

To nie jest pełna odpowiedź, ale mam nadzieję, że może być pomocna.

Możesz przepisać pierwszy system jako

{P(n)=KPE(n)I(n)=I(n1)+KPTIE(n)ΔtD(n)=KPTDE(n)E(n1)Δt

Gdzie i to przedział próbkowania. Zauważ, że i nie są zdefiniowane jako zyski. i są odpowiednio wzmocnieniem całkowitym i wzmocnieniem pochodnym.E(n)=G(n)target(n)ΔtTDTIKI=KPTIKD=KPTI

Teraz możesz przepisać system jako jedną funkcję błędu.

PID(n)=P(n)+I(n)+D(n)

I(n1)=PID(n1)P(n1)D(n1)=PID(n1)KPE(n1)KPTDE(n1)E(n2)Δt

PID(n)=KPE(n)+PID(n1)KPE(n1)KPTDE(n1)E(n2)Δt+KPTIE(n)Δt+KPTDE(n)E(n1)Δt=PID(n1)+KP((1+ΔtTI+TDΔt)E(n)(1+2TDΔt)E(n1)+TDΔtE(n2))

Drugi jest nieco bardziej skomplikowany do przepisania jako pojedyncze równanie, ale możesz to zrobić w podobny sposób. Wynik powinien być

R(n)=K1R(n1)(γK0+K2)R(n2)+(1+γ)(PID(n)K1PID(n1)+K2PID(n2))

Teraz wystarczy podstawić równanie PID, aby uzyskać równanie regulatora jako funkcję błędu.

gvgramazio
źródło