100% au considerat acest document util (1 vot)
154 vizualizări58 pagini

Intrododucere Controller

Documentul prezintă metode de modelare a sistemelor dinamice, inclusiv reprezentarea spațiului de stare și a funcției de transfer pentru sisteme liniare invariante în timp. De asemenea, oferă exemple de modelare a unui sistem mecanic de masă-arc-amortizor și a unui circuit RLC.

Încărcat de

mihai_1957
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
100% au considerat acest document util (1 vot)
154 vizualizări58 pagini

Intrododucere Controller

Documentul prezintă metode de modelare a sistemelor dinamice, inclusiv reprezentarea spațiului de stare și a funcției de transfer pentru sisteme liniare invariante în timp. De asemenea, oferă exemple de modelare a unui sistem mecanic de masă-arc-amortizor și a unui circuit RLC.

Încărcat de

mihai_1957
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

[Link]

example=Introduction&section=ControlPID

Introducere: Modelare sistem


Primul pas în procesul de proiectare a controlului este de a dezvolta modele matematice adecvate ale sistemului care
trebuie controlat. Aceste modele pot fi derivate fie din legi fizice, fie din date experimentale. În această secțiune,
prezentăm reprezentările funcției de spațiu-stare și de transfer ale sistemelor dinamice. Analizăm apoi câteva abordări
de bază ale modelării sistemelor mecanice și electrice și arătăm cum se generează aceste modele în MATLAB pentru
analize suplimentare.
Comenzile cheie MATLAB utilizate în acest tutorial sunt: ss , tf
cuprins
 Sisteme dinamice
 Reprezentare stat-spațiu
 Reprezentarea funcției de transfer
 Sisteme mecanice
 Exemplu: Sistem de masă-arc-amortizor
 Introducerea modelelor de spațiu de stat în MATLAB
 Introducerea modelelor de funcții de transfer în MATLAB
 Sisteme electrice
 Exemplu: RLC Circuit
 Identificarea sistemului
 Conversii de sistem
Sisteme dinamice
Sistemele dinamice sunt sisteme care se schimbă sau evoluează în timp conform unei reguli fixe. Pentru multe sisteme
fizice, această regulă poate fi declarată ca un set de ecuații diferențiale de prim ordin:

(1)
În ecuația de mai sus, este vectorul de stare , un set de variabile reprezentând configurația sistemului la timp . De
exemplu, într-un sistem mecanic simplu-amortizor de masă-arc, cele două variabile de stare ar putea fi poziția și viteza
masei. este vectorul intrărilor externe către sistem la timp și este o funcție (posibil neliniară) care produce derivata
de timp (viteza de schimbare) a vectorului de stare , pentru o anumită clipă de timp.
Starea, în orice moment viitor , poate fi determinată exact, având în vedere cunoașterea stării inițiale și
istoricul timpului al intrărilor , între și prin integrarea ecuației (1). Deși variabilele de stat în sine nu sunt unice,
există un număr minim de variabile de stare , necesare pentru a surprinde „starea” unui sistem dat și pentru a putea
prezice comportamentul viitor al sistemului (rezolva ecuațiile de stat). este denumită ordine de sistem și determină
dimensionalitatea spațiului stării . Ordinea sistemului corespunde de obicei numărului de elemente independente de
stocare a energiei din sistem.
Relația dată în ecuația (1) este foarte generală și poate fi utilizată pentru a descrie o mare varietate de sisteme
diferite; din păcate, poate fi foarte dificil de analizat. Există două simplificări comune care fac ca problema să fie mai
tratabilă. În primul rând, dacă funcția nu depinde explicit de timp, adică , atunci se spune că sistemul
este invariant în timp . Aceasta este adesea o presupunere foarte rezonabilă, deoarece legile fizice care stau la baza
lor nu depind de obicei de timp. Pentru sistemele invariante în timp, parametrii sau coeficienții funcției sunt
constanți. Variabilele de stare și intrările de control pot totuși să depindă de timp.
A doua presupunere comună se referă la liniaritatea sistemului. În realitate, aproape fiecare sistem fizic este neliniar. Cu
alte cuvinte, este de obicei o funcție complicată a stării și a intrărilor. Aceste neliniarități apar în mai multe moduri
diferite, unul dintre cele mai frecvente în sistemele de control fiind „saturația” în care un element al sistemului atinge o
limită fizică dură la funcționarea sa. Din fericire, pe o rază de operare suficient de mică (cred că linia tangentă lângă o
curbă), dinamica majorității sistemelor este aproximativ liniară . În acest caz, sistemul ecuațiilor diferențiale de prim ordin
poate fi reprezentat ca o ecuație matricială, adică .
Până la apariția calculatoarelor digitale (și în mare măsură după aceea), a fost practic doar analiza sistemelor liniare
invariante în timp (LTI) . În consecință, majoritatea rezultatelor teoriei controlului se bazează pe aceste
presupuneri. Din fericire, după cum vom vedea, aceste rezultate s-au dovedit a fi remarcabil de eficiente și multe
provocări semnificative ale ingineriei au fost rezolvate folosind tehnici LTI. De fapt, adevărata putere a sistemelor de
control al feedback-ului este aceea că funcționează (sunt solide ) în prezența incertitudinii de modelare inevitabile.
Reprezentare stat-spațiu
Pentru sisteme liniare continue invariante în timp (LTI), reprezentarea standard a spațiului de stat este prezentată mai
jos:
(2)
(3)
unde este vectorul variabilelor de stare (nx1), este derivatul de timp al vectorului de stare (nx1), este vectorul de
intrare sau de control (px1), este vectorul de ieșire (qx1), este matricea de sistem (nxn), este matricea de intrare
(nxp), este matricea de ieșire (qxn) și este matricea de avans (qxp).
Ecuația de ieșire, Ecuația (3), este necesară, deoarece de multe ori există variabile de stat care nu sunt direct observate
sau altfel nu prezintă interes. Matricea de ieșire , este utilizată pentru a specifica ce variabile de stare (sau combinații
ale acestora) sunt disponibile pentru utilizare de controler. De asemenea, de multe ori se întâmplă că ieșirile nu depind
direct de intrări (doar prin variabilele de stare), caz în care este matricea zero.
Reprezentarea spațiului de stat, denumită și reprezentarea domeniului timp, poate gestiona cu ușurință sistemele MIMO
(multi-input / multi-output) , sisteme cu condiții inițiale nule și sisteme neliniare prin ecuație (1). În consecință,
reprezentarea spațiu-stat este folosită pe larg în teoria controlului „modern”.
Reprezentarea funcției de transfer
Sistemele LTI au proprietatea extrem de importantă, dacă intrarea în sistem este sinusoidală, atunci ieșirea va fi, de
asemenea, sinusoidală cu aceeași frecvență cu intrarea, dar cu o magnitudine și fază posibil diferite. Aceste mărimi și
diferențe de fază sunt funcție de frecvență și captează ceea ce este cunoscut sub numele de răspunsul de frecvență al
sistemului.
Folosind transformarea Laplace , este posibilă transformarea reprezentării domeniului timp într-o reprezentare într-o
reprezentare de intrare / ieșire a domeniului de frecvență, cunoscută sub numele de funcție de transfer . Procedând
astfel, transformă, de asemenea, ecuația diferențială de guvernare într-o ecuație algebrică, care este adesea mai ușor
de analizat.
Transformarea Laplace a unei funcții de domeniu de timp , este definită mai jos:

(4)
unde parametrul este o variabilă de frecvență complexă. În practică este foarte rar că va trebui să evaluați
direct o transformare Laplace (deși cu siguranță ar trebui să știți cum să faceți). Este mult mai obișnuit să căutați
transformarea unei funcții de timp într-un tabel precum cel găsit aici: Laplace Transform Table
Transformarea Laplace a derivării a opta a unei funcții este deosebit de importantă:

(5)
Metodele cu domenii de frecvență sunt utilizate cel mai adesea pentru analiza sistemelor LTI cu o singură intrare / cu o
singură ieșire (SISO) , de exemplu, cele guvernate de o ecuație diferențială a coeficientului constant, așa cum se arată
mai jos:

(6)
Transformarea Laplace a acestei ecuații este prezentată mai jos:
(7)
unde și sunt Transformările Laplace ale și , respectiv. Rețineți că , atunci când găsirea funcții
de transfer, vom presupune întotdeauna că fiecare dintre condițiile inițiale, , , , etc este zero. Prin urmare,
funcția de transfer de la intrare la ieșire este:

(8)
Este util să se factorizeze numerotatorul și numitorul funcției de transfer în ceea ce se numește formă de câștig cu pol
zero :

(9)
De zerourile funcției de transfer , sunt rădăcinile polinomului numărătorul, adică valorile astfel
încât . De poli ai funcției de transfer, sunt rădăcinile polinomului numitor, adică valorile astfel
încât . Atât zerourile cât și poli pot fi complexe evaluate (au atât părți reale, cât și imaginare). Câștigul
de sistem este .
Rețineți că putem determina, de asemenea, funcția de transfer direct din reprezentarea spațiului de stat, după cum
urmează:

(10)
Sisteme mecanice
Legile mișcării Newton constituie baza pentru analiza sistemelor mecanice. Cea de-a doua lege a lui Newton , Ecuația
(11), afirmă că suma forțelor care acționează asupra unui corp este egală cu produsul masei sale și al accelerării. A
treia lege a lui Newton , în scopurile noastre, afirmă că dacă două corpuri sunt în contact, atunci acestea
experimentează aceeași forță de contact de mărime, acționând doar în direcții opuse.

(11)
Atunci când aplicați această ecuație, este mai bine să construiți o diagramă cu corp liber (FBD) a simetmului care să
prezinte toate forțele aplicate.
Exemplu: Sistem de masă-arc-amortizor

Diagrama corpului liber pentru acest sistem este prezentată mai jos. Forța arcului este proporțională cu deplasarea
masei și forța de amortizare vâscoasă este proporțională cu viteza masei . Ambele forțe se opun mișcării masei
și, prin urmare, sunt arătate în direcția negativă . Rețineți, de asemenea, că corespunde poziției masei atunci
când arcul nu este întins.

Acum vom continua adunând forțele și aplicând a doua lege a lui Newton, Ecuația (11), în fiecare direcție. În acest caz,
nu există forțe care acționează în direcția; cu toate acestea, în -direcție avem:
(12)
Această ecuație, cunoscută drept ecuația de guvernare , caracterizează complet starea dinamică a sistemului. Mai
târziu, vom vedea cum să utilizăm acest lucru pentru a calcula răspunsul sistemului la orice intrare externă , precum
și pentru a analiza proprietățile sistemului, precum stabilitatea și performanța.
Pentru a determina reprezentarea stării-spațiu a sistemului de masă-arc-amortizor, trebuie să reducem ecuația de
guvernare de ordinul doi la un set de două ecuații diferențiale de prim ordin. În acest scop, alegem poziția și viteza ca
variabile ale stării noastre.

(13)
Variabila de poziție captează energia potențială stocată în primăvară, în timp ce variabila de viteză captează energia
cinetică stocată de masă. Amortizorul disipează energie, nu stochează energie. Adesea, atunci când alegeți variabile de
stare, este util să luați în considerare ce variabile captează energia stocată în sistem.
Ecuația de stare în acest caz este:

(14)
Dacă, de exemplu, suntem interesați să controlăm poziția masei, atunci ecuația de ieșire este:

(15)
Introducerea modelelor de spațiu de stat în MATLAB
Acum vom demonstra cum să introduceți ecuațiile derivate mai sus într-un fișier m pentru MATLAB. Să atribuim
următoarele valori numerice fiecăreia dintre variabile.

m masă 1,0 kg
k constantă de arc 1,0 N / m
b constantă de amortizare 0,2 Ns / m
F forță de intrare 1,0 N

Creați un nou fișier m și introduceți următoarele comenzi.

m = 1;
k = 1;
b = 0,2;
F = 1;

A = [0 1; -k / m -b / m];
B = [0 1 / m] ';
C = [1 0];
D = [0];

sys = ss (A, B, C, D)

sys =
A =
x1 x2
x1 0 1
x2 -1 -0,2

B =
u1
x1 0
x2 1

C =
x1 x2
y1 1 0

D =
u1
y1 0

Model continuu de spațiu de stat în timp continuu.

Transformarea Laplace pentru acest sistem presupunând că zero condiții inițiale este
(16)
și, prin urmare, funcția de transfer de la intrarea forței la ieșirea deplasării este

(17)
Introducerea modelelor de funcții de transfer în MATLAB
Acum vom demonstra cum să creăm modelul funcției de transfer derivat mai sus în MATLAB. Introduceți următoarele
comenzi în fișierul m în care ați definit parametrii sistemului.

s = tf ( 's' );
sys = 1 / (m * s ^ 2 + b * s + k)

sys =

1
---------------
s ^ 2 + 0,2 s + 1

Funcție de transfer în timp continuu.

Rețineți că aici am folosit variabila simbolică s pentru a defini modelul funcției noastre de transfer. Vă recomandăm să
folosiți această metodă de cele mai multe ori; cu toate acestea, în unele circumstanțe, de exemplu în versiunile mai vechi
ale MATLAB sau când interfațăm cu SIMULINK, poate fi necesar să definiți modelul funcției de transfer folosind direct
numeric și numitor coeficienți polinomiali. În aceste cazuri, utilizați următoarele comenzi:

num = [1];
den = [mbk];
sys = tf (num, den)

sys =

1
---------------
s ^ 2 + 0,2 s + 1

Funcție de transfer în timp continuu.

Sisteme electrice
La fel ca legile Newton pentru sisteme mecanice, legile circuitului lui Kirchoff sunt instrumente analitice fundamentale
pentru modelarea sistemelor electrice. Legea curentă (KCL) a lui Kirchoff precizează că suma curenților electrici care
intră într-un nod într-un circuit trebuie să fie egală cu suma curenților electrici care ies din nod. Legea de tensiune (KVL)
a lui Kirchoff precizează că suma diferențelor de tensiune în jurul oricărei bucle închise dintr-un circuit este zero. Când
se aplică KVL, tensiunile sursă sunt de obicei considerate pozitive, iar tensiunile de încărcare sunt considerate negative.
Exemplu: RLC Circuit
Vom lua în considerare acum o serie simplă de combinație de trei elemente electrice pasive: un rezistor, un inductor și
un condensator, cunoscut sub numele de RLC Circuit .

Deoarece acest circuit este o singură buclă, fiecare nod are o singură intrare și o singură ieșire; prin urmare, aplicarea
KCL arată pur și simplu că curentul este același pe întregul circuit la un moment dat ,. Acum aplicând KVL în jurul
buclei și folosind convențiile semnului indicate în diagramă, ajungem la următoarea ecuație de guvernare .

(18)
Reținem că ecuația de guvernare pentru circuitul RLC are o formă analogă sistemului mecanic-amortizor cu arc-masă. În
special, sunt ambele sisteme de ordinul doi unde încărcarea (integrală a curentului) corespunde deplasării, inductanța
corespunde masei, rezistența corespunde amortizării vâscoase, iar capacitatea inversă corespunde rigidității
arcului. Aceste analogii și altele ca ele se dovedesc a fi destul de utile conceptual pentru a înțelege comportamentul
sistemelor dinamice.
Reprezentarea stării-spațiu se găsește prin alegerea încărcării pe condensator și a curentului prin circuit (inductor) ca
variabile de stare.

(19)
Unde,

(20)
Ecuația de stare este, prin urmare:

(21)
Alegem curentul ca ieșire după cum urmează:

(22)
Reprezentarea funcției de transfer poate fi găsită luând transformarea Laplace așa cum am făcut-o pentru amortizorul de
masă-arc sau din ecuația stării-spațiu după cum urmează:

(23)

(24)
Modelele RLC de spațiu-stare și funcții de transfer pot fi introduse în MATLAB folosind aceeași procedură descrisă
pentru sistemul de amortizare cu arcuri de masă de mai sus.
Identificarea sistemului
În această secțiune, am văzut cum să modelăm sisteme folosind principii fizice de bază; cu toate acestea, deseori acest
lucru nu este posibil nici pentru că parametrii sistemului sunt incerti, sau pur și simplu nu sunt înțelese procesele de
bază. În aceste cazuri, trebuie să ne bazăm pe măsurători experimentale și tehnici statistice pentru a dezvolta un model
de sistem, un proces cunoscut sub numele de identificare a sistemului .
Identificarea sistemului poate fi efectuată folosind date de domeniu temporal sau domenii de frecvență, consultați
pagina Introducere: Identificare sistem pentru detalii suplimentare. Câteva activități de identificare a sistemului pot fi, de
asemenea, găsite din fila Hardware situată în partea de sus a acestei ferestre.
De asemenea, consultați Cutia cu instrumente de identificare a sistemului MATLAB pentru mai multe informații despre
acest subiect.
Conversii de sistem
Cele mai multe operații în MATLAB pot fi efectuate fie pe funcția de transfer, modelul spațiu de stat, fie pe formularul de
câștig cu pol zero. În plus, este simplu să transferați între aceste forme dacă este necesară cealaltă reprezentare. Dacă
doriți să aflați cum să convertiți de la o reprezentare la alta, consultați pagina Introducere: Conversii de sistem .

Introducere: Analiza sistemului


După ce au fost obținute modele matematice adecvate ale unui sistem, fie în formă de spațiu de stare, fie în formă de
funcție de transfer, putem analiza apoi aceste modele pentru a prezice modul în care sistemul va răspunde atât în
domeniile de timp cât și de frecvență. Pentru a pune acest lucru în context, sistemele de control sunt deseori concepute
pentru a îmbunătăți stabilitatea, viteza de răspuns, eroarea de stare constantă sau pentru a preveni oscilațiile. În această
secțiune, vom arăta cum să determinați aceste proprietăți dinamice din modelele de sistem.
Cheie MATLAB comenzi utilizate în acest tutorial
sunt: tf , ssdata , pol , EIG , pas , pzmap , Bode , linearSystemAnalyzer

cuprins
 Prezentare generală a răspunsului timpului
 Prezentare generală a răspunsului la frecvență
 Stabilitate
 Comanda de sistem
 Sisteme de primă ordine
 Sisteme de ordinul doi
Prezentare generală a răspunsului timpului
Răspunsul în timp reprezintă modul în care starea unui sistem dinamic se schimbă în timp atunci când este supus unei
anumite intrări. Deoarece modelele pe care le-am derivat constau în ecuații diferențiale, o anumită integrare trebuie
efectuată pentru a determina răspunsul în timp al sistemului. Pentru unele sisteme simple, poate fi disponibilă o soluție
analitică cu formă închisă. Cu toate acestea, pentru majoritatea sistemelor, în special a sistemelor neliniare sau a celor
supuse unor intrări complicate, această integrare trebuie efectuată numeric. Din fericire, MATLAB oferă multe resurse
utile pentru calcularea răspunsurilor în timp pentru multe tipuri de intrări, după cum vom vedea în secțiunile următoare.
Răspunsul în timp al unui sistem dinamic liniar constă din suma răspunsului tranzitoriu care depinde de condițiile
inițiale și de răspunsul în stare de echilibru care depinde de intrarea sistemului. Acestea corespund cu omogenitatea
(intrare liberă sau zero) și, respectiv, soluțiile specifice ale ecuațiilor diferențiale de guvernare.
Prezentare generală a răspunsului la frecvență
Toate exemplele prezentate în acest tutorial sunt modelate prin ecuații diferențiale de coeficient constant liniar și sunt
astfel liniare invariante în timp (LTI). Sistemele LTI au proprietatea extrem de importantă, dacă intrarea în sistem este
sinusoidală, atunci ieșirea în stare de echilibru va fi, de asemenea, sinusoidală la aceeași frecvență, dar, în general, cu
magnitudine și fază diferite. Aceste diferențe de mărime și fază sunt o funcție a frecvenței și cuprind răspunsul de
frecvență al sistemului.
Răspunsul în frecvență al unui sistem poate fi găsit din funcția de transfer a acestuia în felul următor: creați un vector de
frecvențe (variind între zero sau „DC” până la infinit) și calculați valoarea funcției de transfer a instalației la acele
frecvențe. Dacă funcția de transfer în buclă deschisă a unui sistem și este vectorul de frecvență, atunci
complotăm versus . Deoarece este un număr complex, putem trasa atât amploarea și faza ( Bode Plot ),
fie poziția sa în planul complex ( diagrama Nyquist ). Ambele metode afișează aceleași informații, dar în moduri diferite.
Stabilitate
În scopurile noastre, vom folosi definiția stabilității BIB (Bounded Input Bounded Output) (BIBO), care stabilește că un
sistem este stabil dacă ieșirea rămâne delimitată pentru toate intrările delimitate (finite). Practic, acest lucru înseamnă că
sistemul nu va „arunca” în funcțiune.
Reprezentarea funcției de transfer este utilă în special atunci când analizăm stabilitatea sistemului. Dacă toți poli ai
funcției de transfer (valorile pentru care numitorul este egal cu zero) au părți reale negative, atunci sistemul este
stabil. Dacă orice pol are o parte reală pozitivă, sistemul este instabil. Dacă vedem poli pe planul s complex, atunci toți
poli trebuie să se afle în planul din jumătatea stângă (LHP) pentru a asigura stabilitatea. Dacă vreo pereche de poli se
află pe axa imaginară, atunci sistemul este marginal stabil și sistemul va tinde să oscileze. Un sistem cu poli pur
imaginari nu este considerat stabil BIBO. Pentru un astfel de sistem, vor exista intrări finite care duc la un răspuns
nelimitat. Stâlpii unui model de sistem LTI pot fi găsiți cu ușurință în MATLAB folosindcomanda de poli , un exemplu de
mai jos este prezentat:

s = tf ( 's' );
G = 1 / (s ^ 2 + 2 * s + 5)
poli (G)

G =

1
-------------
s ^ 2 + 2 s + 5

Funcție de transfer în timp continuu.

ans =
-1.0000 + 2.0000i
-1.0000 - 2.0000i
Astfel, acest sistem este stabil, deoarece părțile reale ale poli sunt ambele negative. Stabilitatea unui sistem poate fi, de
asemenea, găsită din reprezentarea spațiului de stat. De fapt, poli ai funcției de transfer sunt valorile proprii ale matricei
sistemului . Putem folosi comanda eig pentru a calcula valorile proprii folosind fie modelul de sistem LTI direct, eig
(G) , fie matricea de sistem, așa cum se arată mai jos.

[A, B, C, D] = ssdata (G);


EIG (A)

ans =
-1.0000 + 2.0000i
-1.0000 - 2.0000i
Comanda de sistem
Ordinea unui sistem dinamic este ordinea celui mai înalt derivat al ecuației sale diferențiale de guvernare. În mod
echivalent, este cea mai mare putere a numitorului funcției sale de transfer. Proprietățile importante ale sistemelor de
primă, a doua și de ordin superior vor fi analizate în această secțiune.
Sisteme de primă ordine
Sistemele de primă ordine sunt cele mai simple sisteme dinamice de analizat. Unele exemple comune includ sisteme de
amortizare a maselor și circuite RC.
Forma generală a ecuației diferențiale de ordinul întâi este următoarea
(1)
Forma unei funcții de transfer de prim ordin este

(2)
unde parametrii și definesc complet caracterul sistemului de primă ordine.
Câștigul DC
Câștigul de curent continuu , este raportul dintre mărimea răspunsului în etapă de echilibru și magnitudinea de intrare
în pas. Pentru funcții de transfer stabile, Teorema valorii finale demonstrează că câștigul DC este valoarea funcției de
transfer evaluată la = 0. Pentru sistemele de prim ordin ale formelor prezentate, câștigul DC este .
Timpul constant
Constanta de timp a unui sistem de primă ordine este egală cu timpul necesar pentru ca răspunsul
sistemului să ajungă la 63% din valoarea sa de echilibru pentru o intrare în pas (de la zero condiții inițiale) sau să scadă
la 37% din valoarea inițială pentru răspunsul gratuit al unui sistem. Mai general, reprezintă scala de timp pentru care
dinamica sistemului este semnificativă.
Polonezii / Zeros
Sistemele de primă ordine au un singur pol real, în acest caz la . Prin urmare, sistemul este stabil dacă este
pozitiv și instabil dacă este negativ. Sistemul standard de primă comandă nu are zerouri.
Răspuns pas
Putem calcula răspunsul timpului sistemului la o intrare în pas de mărime folosind următoarele comenzi MATLAB:

k_dc = 5;
Tc = 10;
u = 2;

s = tf ( 's' );
G = k_dc / (Tc * s + 1)

etapa (u * G)

G =

5
--------
10 s + 1

Funcție de transfer în timp continuu.


Notă: MATLAB oferă, de asemenea, o puternică interfață grafică de utilizator pentru analizarea sistemelor LTI la care se
poate accesa folosind sintaxa lineSystemAnalyzer („pas”, G) .
Dacă faceți clic dreapta pe graficul de răspuns la pas și selectați Caracteristici , puteți alege să aveți mai multe valori de
sistem suprapuse pe răspuns: răspuns maxim, timp de decontare, timp de creștere și stare constantă.
Stabilirea timpului
Timpul de decontare este timpul necesar pentru ieșirea sistemului să se încadreze într-un anumit procent (adică 2%)
din valoarea de echilibru pentru o intrare în pas. Timpurile de decontare pentru un sistem de primă ordine pentru cele
mai comune toleranțe sunt prezentate în tabelul de mai jos. Rețineți că, cu cât este mai așteptată, cu cât este mai mare
toleranța, cu atât este mai lung să se stabilească răspunsul sistemului.
10% 5% 2% 1%
Ts = 2,3 / a = 2.3Tc Ts = 3 / a = 3TC Ts = 3,9 / a = 3.9Tc Ts = 4.6 / a = 4.6Tc
Timpul de creștere
Timpul de creștere , este timpul necesar pentru ieșirea sistemului să crească de la un nivel inferior x% la un nivel mai
mare y% din valoarea finală a stării de echilibru. Pentru sistemele de primă ordine, intervalul tipic este de 10% - 90%.
Parcele Bode
Diagramele cu boduri arată magnitudinea și faza răspunsului la frecvență al unui sistem , reprezentat în raport cu
frecvența . Putem genera graficul Bode al unui sistem în MATLAB folosind sintaxa bod (G) așa cum se arată mai
jos.

Bode (G)

Din nou, aceleași rezultate pot fi obținute folosind GUI pentru analizatorul de sistem liniar, linearSystemAnalyzer
(„bode”, G) .
Ploturile cu bode utilizează o scară de frecvență logaritmică, astfel încât o gamă mai mare de frecvențe sunt vizibile. De
asemenea, mărimea este reprezentată folosind unitatea de decibeli logaritmici (dB) definită ca:
(3)
Ca și în cazul axei de frecvență, scara decibelă ne permite să vizualizăm o gamă mult mai mare de mărimi pe o singură
diagramă. De asemenea, așa cum vom vedea în tutorialele ulterioare, când componentele și controlerele sunt plasate în
serie, funcția de transfer a sistemului general este produsul funcțiilor individuale de transfer. Folosind scara dB, graficul
cu magnitudinea sistemului general este pur și simplu suma graficelor de mărime ale funcțiilor de transfer
individuale. Diagrama de faze a sistemului general este, de asemenea, doar suma parcelelor individuale de fază.
Mărimea de frecvență scăzută a complotului Bode de ordinul întâi este . Graficul de magnitudine are o
îndoire la frecvența egală cu valoarea absolută a polului (adică ), și apoi scade cu 20 dB pentru fiecare factor de
creștere de zece în frecvență (pantă = -20 dB / deceniu). Diagrama de fază este asimptotică la 0 grade la frecvențe
joase, iar asimptotică la -90 grade la frecvențe înalte. Între frecvența 0,1a și 10a, faza se modifică cu aproximativ -45
grade pentru fiecare factor de zece creștere a frecvenței (-45 grade / deceniu).
Vom vedea în secțiunea Metode de frecvență pentru proiectarea controlerului cum se utilizează parcele Bode pentru a
calcula stabilitatea în buclă închisă și performanța sistemelor de feedback.
Sisteme de ordinul doi
Sistemele de ordinul doi sunt frecvent întâlnite în practică și sunt cel mai simplu tip de sistem dinamic pentru a prezenta
oscilații. Exemple includ sisteme de amortizare cu arcuri de masă și circuite RLC De fapt, multe sisteme adevărate de
ordin superior pot fi aproximate ca a doua ordine pentru a facilita analiza.
Forma canonică a ecuației diferențiale de ordinul doi este următoarea
(4)
Funcția canonică de transfer de ordinul doi are următoarea formă, în care are doi poli și fără zerouri.

(5)
Parametrii , și caracterizează comportamentul unui sistem de ordinul canonic.
Câștigul DC
Câștigul de curent continuu este, din nou, raportul dintre mărimea răspunsului în treaptă de echilibru și magnitudinea
intrării în trepte, iar pentru sistemele stabile aceasta este valoarea funcției de transfer atunci când . Pentru
formularele date,

(6)
Coeficientul de amortizare
Raportul de amortizare este o cantitate fără dimensiuni care caracterizează viteza cu care o oscilație în răspunsul
sistemului scade din cauza efectelor precum frecarea vâscoasă sau rezistența electrică. Din definițiile de mai sus,

(7)
Frecventa naturala
Frecvența naturală este frecvența (în rad / s) la care sistemul va oscila atunci când nu există amortizare .

(8)
Polonezii / Zeros
Funcția canonică de transfer de ordinul doi are doi poli la:
(9)
Sisteme underdamped
Dacă , atunci sistemul este defectat . În acest caz, ambii poli sunt evaluați complex cu părți reale negative; prin
urmare, sistemul este stabil, dar oscilează în timp ce se apropie de valoarea stării de echilibru. Mai exact, răspunsul
natural oscilează cu frecvența naturală amortizată, (în rad / sec).

k_dc = 1;
w_n = 10;
zeta = 0,2;

s = tf ( 's' );
G1 = k_dc * w_n ^ 2 / (s ^ 2 + 2 * zeta * w_n * s + w_n ^ 2);

pzmap (G1)
axa ([- 3 1-15 15])
etapa (G1)
axa ([0 3 0 2])

Stabilirea timpului
Timpul de decontare este timpul necesar pentru ca ieșirea sistemului să se încadreze într-un anumit procent din
valoarea de echilibru pentru o intrare în pas. Pentru un sistem canonic de ordin secund, subamortizat, timpul de
decontare poate fi aproximat prin următoarea ecuație:

(10)
Timpurile de decontare pentru cele mai comune toleranțe sunt prezentate în următorul tabel:
10% 5% 2% 1%
Ts = 2,3 / (zeta * w_n) Ts = 3 / (zeta * w_n) Ts = 3.9 / (zeta * w_n) Ts = 4.6 / (zeta * w_n)
Procentaj de depășire
Procentul de depășire a procentului este procentul prin care răspunsul pasului unui sistem depășește valoarea finală a
stării de echilibru. Pentru un sistem subcomandat de ordinul doi, procentul de depășire este direct legat de raportul
de amortizare prin următoarea ecuație. Aici, este un număr zecimal unde 1 corespunde la o depășire de 100%.

(11)
În cazul sistemelor subacoperite de ordinul doi, timpul de decantare de 1%, timpul de creștere de 10-90% și
procentul de depășire sunt raportate la raportul de amortizare și frecvența naturală, așa cum se arată mai jos.

(12)

(13)

(14)
Sisteme suprapuse
Dacă , atunci sistemul este suprasolicitat . Ambii poli sunt reali și negativi; prin urmare, sistemul este stabil și nu
oscilează. Răspunsul în pas și o hartă pol-zero a unui sistem suprasolicitat sunt calculate mai jos:

zeta = 1,2;

G2 = k_dc * w_n ^ 2 / (s ^ 2 + 2 * zeta * w_n * s + w_n ^ 2);

pzmap (G2)
axa ([- 20 1 -1 1])
etapa (G2)
axa ([0 1.5 0 1.5])

Sisteme cu amortizări critice


Dacă , atunci sistemul este amortizat critic . Ambii poli sunt reali și au aceeași amploare . Pentru un
sistem canonic de ordinul doi, cel mai rapid timp de soluționare se realizează atunci când sistemul este amortizat
critic. Acum schimbați valoarea raportului de amortizare la 1 și re-complotați răspunsul pasului și harta pol-zero.

zeta = 1;

G3 = k_dc * w_n ^ 2 / (s ^ 2 + 2 * zeta * w_n * s + w_n ^ 2);

pzmap (G3)
axa ([- 11 1 -1 1])

etapa (G3)
axa ([0 1.5 0 1.5])
Sisteme nedeteriorate
Dacă , atunci sistemul este nedeteriorat . În acest caz, poli sunt pur imaginari; prin urmare, sistemul este marginal
stabil și răspunsul pasului oscilează la nesfârșit.

zeta = 0;

G4 = k_dc * w_n ^ 2 / (s ^ 2 + 2 * zeta * w_n * s + w_n ^ 2);

pzmap (G4)
axa ([- 1 1-15 15])

etapa (G4)
axa ([0 5 -0,5 2,5])

Plot Bode
Vă prezentăm graficul cu magnitudinea și faza Bode pentru toate condițiile de amortizare ale unui sistem de ordinul doi
de mai jos:

Bode (G1, G2, G3, G4)


legenda ( 'underdamped: zeta <1' , 'overdamped: zeta> 1' , 'amortized critic: zeta = 1' ,
'undamped: zeta = 0' )

Mărimea complotului bod al unui sistem de ordinul doi scade la -40 dB pe deceniu în limită, în timp ce faza relativă se
schimbă de la 0 la -180 grade. Pentru sistemele afectate, vedem și un vârf rezonant în apropierea frecvenței
naturale, = 10 rad / s. Mărimea și claritatea vârfului depind de amortizarea sistemului și este caracterizată de factorul
de calitate, sau factorul Q , definit mai jos. Factorul Q este o proprietate importantă în procesarea semnalului.

(15)

Introducere: Proiectarea controlerului PID


În acest tutorial vom introduce o structură simplă, dar versatilă, de compensare a feedbackului: controlerul PID
(Proporțional-Integral-Derivat). Controlerul PID este utilizat pe scară largă, deoarece este foarte inteligibil și pentru că
este destul de eficient. O atracție a controlerului PID este că toți inginerii înțeleg diferențierea și integrarea conceptuală,
astfel încât pot implementa sistemul de control chiar și fără o înțelegere profundă a teoriei controlului. Mai mult, chiar
dacă compensatorul este simplu, este destul de sofisticat prin faptul că surprinde istoria sistemului (prin integrare) și
anticipează comportamentul viitor al sistemului (prin diferențiere).
Comenzile cheie MATLAB utilizate în acest tutorial sunt: tf , step , pid , feedback , pidtune
cuprins
 Prezentare generală PID
 Caracteristicile termenilor P, I și D
 Exemplu problemă
 Răspuns la pas deschis
 Control proporțional
 Control proporțional-derivat
 Control proporțional-integral
 Control proporțional-integral-derivat
 Sfaturi generale pentru proiectarea unui controler PID
 Reglaj automat PID
Prezentare generală PID
În acest tutorial, vom lua în considerare următorul sistem de feedback-unitate:

Ieșirea unui controler PID, care este egal cu intrarea de control în instalație, este calculată în domeniul timp din eroarea
de feedback, după cum urmează:
(1)
Mai întâi, să aruncăm o privire la modul în care funcționează controlerul PID într-un sistem cu buclă închisă folosind
schemele prezentate mai sus. Variabila ( ) reprezintă eroarea de urmărire, diferența dintre ieșirea dorită ( ) și ieșirea
reală ( ). Acest semnal de eroare ( ) este alimentat controlerului PID, iar controlerul calculează atât derivatul cât și
integralitatea acestui semnal de eroare în ceea ce privește timpul. Semnalul de control ( ) către instalație este egal cu
câștigul proporțional ( ) ori mărimea erorii plus câștigul integral ( ) ori integrala erorii plus câștigul derivat ( ) de
ori derivat al erorii.
Acest semnal de control ( ) este alimentat la uzină și se obține noua ieșire ( ). Noua ieșire ( ) este apoi alimentată și
comparată cu referința pentru a găsi noul semnal de eroare ( ). Controlerul ia acest nou semnal de eroare și calculează
o actualizare a intrării de control. Acest proces continuă în timp ce controlerul este în vigoare.
Funcția de transfer a unui controler PID este găsită luând transformarea Laplace a ecuației (1).

(2)
unde = câștig proporțional, = câștig integral și = câștig derivat.
Putem defini un controler PID în MATLAB folosind direct un model de funcții de transfer, de exemplu:

Kp = 1;
Ki = 1;
Kd = 1;

s = tf ( 's' );
C = Kp + Ki / s + Kd * s

C =

s ^ 2 + s + 1
-----------
s

Funcție de transfer în timp continuu.

Alternativ, putem folosi obiectul pid al MATLAB pentru a genera un controler echivalent cu timp continuu, după cum
urmează:

C = pid (Kp, Ki, Kd)

C =

1
Kp + Ki * --- + Kd * s
s

cu Kp = 1, Ki = 1, Kd = 1

Controler PID în timp continuu în formă paralelă.

Să transformăm obiectul pid într-o funcție de transfer pentru a verifica dacă dă același rezultat ca mai sus:

tf (C)

ans =

s ^ 2 + s + 1
-----------
s

Funcție de transfer în timp continuu.

Caracteristicile termenilor P, I și D
Creșterea câștigului proporțional ( ) are ca efect creșterea proporțională a semnalului de control pentru același nivel
de eroare. Faptul că controlerul va „împinge” mai tare pentru un anumit nivel de eroare tinde să determine reacția mai
rapidă a sistemului cu buclă închisă, dar și să depășească mai mult. Un alt efect al creșterii este acela că are tendința
de a reduce, dar nu de a elimina, eroarea de stare constantă .
Adăugarea unui termen derivat la controller ( ) adaugă abilitatea controlorului de a „anticipa” eroarea. Cu un control
proporțional simplu, dacă este remediat, singura cale prin care controlul va crește este dacă eroarea crește. Cu
controlul derivat, semnalul de control poate deveni mare dacă eroarea începe să se înclineze în sus, chiar dacă
amploarea erorii este încă relativ mică. Această anticipare tinde să adauge amortizare în sistem, scăzând astfel
depășirea. Adăugarea unui termen derivat, însă, nu are efect asupra erorii de stare constantă.
Adăugarea unui termen integral controlerului ( ) tinde să contribuie la reducerea erorilor în stare constantă. Dacă
există o eroare persistentă și constantă, integratorul construiește și construiește, crescând astfel semnalul de control și
reducând eroarea. Un dezavantaj al termenului integral este însă că poate face ca sistemul să fie mai lent (și oscilator),
deoarece atunci când semnalul de eroare se schimbă semn, poate fi nevoie de ceva timp pentru ca integratorul să se
„dezlege”.
Efectele generale ale fiecărui parametru regulator ( , , ) pe un sistem cu circuit închis sunt prezentate pe scurt
în tabelul de mai jos. Rețineți că aceste orientări sunt valabile în multe cazuri, dar nu în toate. Dacă doriți cu adevărat să
știți efectul reglării câștigurilor individuale, va trebui să faceți mai multe analize sau va trebui să efectuați testarea pe
sistemul real.
CL RESPONSE TIMPUL DE CREȘTERE nu nimeri SETAREA TIMPULUI EROARE SS
Kp Scădea Crește Mică schimbare Scădea
Ki Scădea Crește Crește Scădea
kd Mică schimbare Scădea Scădea Nicio schimbare

Exemplu problemă
Să presupunem că avem un sistem simplu de amortizare cu arcuri în masă.

Ecuația de guvernare a acestui sistem este


(3)
Luând transformarea Laplace a ecuației de guvernare, obținem
(4)
Funcția de transfer între forța de intrare și deplasarea de ieșire devine apoi

(5)
Lăsa
m = 1 kg
b = 10 N s / m
k = 20 N / m
F = 1 N
Înlocuirea acestor valori în funcția de transfer de mai sus

(6)
Scopul acestei probleme este de a arăta modul în care fiecare dintre termenii, , și , contribuie la obținerea
obiectivelor comune:
 Timp de creștere rapid
 Depasire minima
 Eroare în stare de echilibru zero
Răspuns la pas deschis
Să vedem mai întâi răspunsul cu pas deschis. Creați un nou fișier m și rulați următorul cod:

s = tf ( 's' );
P = 1 / (s ^ 2 + 10 * s + 20);
etapa (P)
Câștigul de curent continuu al funcției de transfer al instalației este de 1/20, deci 0,05 este valoarea finală a ieșirii către o
intrare în pas unitar. Aceasta corespunde unei erori de 0,95, care este destul de mare. Mai mult, timpul de creștere este
de aproximativ o secundă, iar timpul de decontare este de aproximativ 1,5 secunde. Să proiectăm un controler care va
reduce timpul de creștere, va reduce timpul de decontare și va elimina eroarea în stare constantă.
Control proporțional
Din tabelul prezentat mai sus, vedem că regulatorul proporțional ( ) reduce timpul de creștere, mărește depășirea și
reduce eroarea de stare constantă.
Funcția de transfer cu buclă închisă a sistemului nostru de feedback cu un control proporțional este următoarea,
unde este ieșirea noastră (egală ) și referința noastră este intrarea:

(7)
Lăsați câștigul proporțional ( ) egal cu 300 și schimbați fișierul m în următoarele:

Kp = 300;
C = pid (Kp)
T = feedback (C * P, 1)

t = 0: 0,01: 2;
etapa (T, t)

C =

Kp = 300

Controler numai P.

T =

300
----------------
s ^ 2 + 10 s + 320

Funcție de transfer în timp continuu.


Diagrama de mai sus arată că regulatorul proporțional a redus atât timpul de creștere, cât și eroarea de stare constantă,
a crescut depășirea și a scăzut timpul de decontare cu o cantitate mică.
Control proporțional-derivat
Acum, să aruncăm o privire la controlul PD. Din tabelul prezentat mai sus, vedem că adăugarea controlului derivatelor
( ) are tendința de a reduce atât depășirea, cât și timpul de decontare. Funcția de transfer cu buclă închisă a
sistemului dat cu un controler PD este:

(8)
Lăsați 300 ca înainte și lăsați egal 10. Introduceți următoarele comenzi într-un fișier m și rulați-l în fereastra de
comandă MATLAB.

Kp = 300;
Kd = 10;
C = pid (Kp, 0, Kd)
T = feedback (C * P, 1)

t = 0: 0,01: 2;
etapa (T, t)

C =

Kp + Kd * s

cu Kp = 300, Kd = 10

Controler PD în timp continuu în formă paralelă.

T =

10 s + 300
----------------
s ^ 2 + 20 s + 320

Funcție de transfer în timp continuu.


Această diagramă arată că adăugarea termenului derivat a redus atât timpul de depășire, cât și timpul de decontare și a
avut un efect neglijabil asupra timpului de creștere și a erorii de stare constantă.
Control proporțional-integral
Înainte de a trece la controlul PID, să investigăm controlul PI. Din tabel, vedem că adăugarea controlului integral ( )
tinde să scadă timpul de creștere, să crească atât timpul de depășire, cât și timpul de decontare și să reducă eroarea de
stare constantă. Pentru sistemul dat, funcția de transfer cu buclă închisă cu un controler PI este:

(9)
Să reducem la 30 și să lăsăm egal 70. Creați un nou fișier m și introduceți următoarele comenzi.

Kp = 30;
Ki = 70;
C = pid (Kp, Ki)
T = feedback (C * P, 1)

t = 0: 0,01: 2;
etapa (T, t)

C =

1
Kp + Ki * ---
s

cu Kp = 30, Ki = 70

Controler PI în timp continuu în formă paralelă.

T =

30 s + 70
------------------------
s ^ 3 + 10 s ^ 2 + 50 s + 70

Funcție de transfer în timp continuu.


Rulează acest fișier m în fereastra de comandă MATLAB și ar trebui să generezi graficul de mai sus. Am redus câștigul
proporțional ( ) deoarece controlul integral reduce timpul de creștere și crește depășirea la fel cum face regulatorul
proporțional (efect dublu). Răspunsul de mai sus arată că regulatorul integral a eliminat eroarea în stare constantă în
acest caz.
Control proporțional-integral-derivat
Acum, să examinăm controlul PID. Funcția de transfer cu buclă închisă a sistemului dat cu un controler PID este:

(10)
După mai multe iterații de ajustare, câștigurile = 350, = 300 și = 50 au oferit răspunsul dorit. Pentru confirmare,
introduceți următoarele comenzi într-un fișier m și rulați-l în fereastra de comandă. Ar trebui să obțineți următorul răspuns
în pas.

Kp = 350;
Ki = 300;
Kd = 50;
C = pid (Kp, Ki, Kd)
T = feedback (C * P, 1);

t = 0: 0,01: 2;
etapa (T, t)

C =

1
Kp + Ki * --- + Kd * s
s

cu Kp = 350, Ki = 300, Kd = 50

Controler PID în timp continuu în formă paralelă.


Acum, am conceput un sistem cu buclă închisă, fără depășire, timp de creștere rapid și fără erori de stare constantă.
Sfaturi generale pentru proiectarea unui controler PID
Când proiectați un controler PID pentru un sistem dat, urmați pașii de mai jos pentru a obține un răspuns dorit.
1. Obțineți un răspuns în buclă deschisă și determinați ce trebuie îmbunătățit
2. Adăugați un control proporțional pentru a îmbunătăți timpul de creștere
3. Adăugați un control derivat pentru a reduce depășirea
4. Adăugați un control integral pentru a reduce eroarea în stare constantă
5. Ajustați fiecare dintre câștigurile , și până când se obține un răspuns global dorit. Vă puteți referi
întotdeauna la tabelul prezentat în această pagină „Tutorial PID” pentru a afla ce controler controlează ce
caracteristici.
În cele din urmă, rețineți că nu este necesar să implementați toate cele trei controlere (proporționale, derivate și
integrale) într-un singur sistem, dacă nu este necesar. De exemplu, dacă un controller PI îndeplinește cerințele date
(cum ar fi exemplul de mai sus), atunci nu trebuie să implementați un controler derivat pe sistem. Păstrați regulatorul cât
mai simplu.
Un exemplu de reglare a unui controler PI pe un sistem fizic efectiv poate fi găsit la următorul link . Acest exemplu
începe, de asemenea, să ilustreze unele provocări ale implementării controlului, inclusiv: saturația controlului, lichidarea
integratorului și amplificarea zgomotului.
Reglaj automat PID
MATLAB oferă instrumente pentru alegerea automată a câștigurilor PID optime, ceea ce face ca procesul de încercare și
eroare descris mai sus să fie inutil. Puteți accesa algoritmul de ajustare direct folosind pidtune sau printr-o interfață
grafică de utilizator (GUI), folosind pidTuner .
Algoritmul de reglare automată MATLAB alege câștiguri PID pentru a echilibra performanța (timpul de răspuns, lățimea
de bandă) și robustetea (marjele de stabilitate). În mod implicit, algoritmul proiectează o marjă de fază de 60 de grade.
Haideți să explorăm aceste instrumente automate, generând mai întâi un control proporțional pentru sistemul de
amortizare cu arcuri de masă, introducând comanda prezentată mai jos. În sintaxa prezentată, P este modelul de plantă
generat anterior și „p” specifică faptul că tunerul are un control proporțional.

pidTuner (P, 'p')

PidTuner fereastra GUI, cum ar fi cea prezentată mai jos, ar trebui să apară.

Observați că răspunsul la pas indicat este mai lent decât controlorul proporțional pe care l-am proiectat manual. Acum
faceți clic pe butonul Afișați parametrii din dreapta sus. După cum era de așteptat, câștigul proporțional este mai
mic decât cel pe care l-am folosit, = 94,86 <300.
Acum putem regla interactiv parametrii controlerului și vom vedea imediat răspunsul rezultat în fereastra GUI. Încercați
să trageți glisorul Timp de răspuns la dreapta la 0,14 s, așa cum se arată în figura de mai jos. Acest lucru face ca
răspunsul să se accelereze într-adevăr și putem vedea acum este mai aproape de valoarea aleasă manual. Putem
vedea și alți parametri de performanță și robustete pentru sistem. Rețineți că, înainte de a ajusta glisorul, marja de fază
țintă a fost de 60 de grade. Aceasta este valoarea implicită pentru pidTuner și, în general, oferă un echilibru bun între
robustete și performanță.
Acum să încercăm să proiectăm un controler PID pentru sistemul nostru. Prin specificarea controlerului C, ca al doilea
parametru proiectat anterior sau (linie de bază), pidTuner va proiecta un alt controler PID (în loc de P sau PI) și va
compara răspunsul sistemului cu regulatorul automat cu cel al liniei de bază.

pidTuner (P, C)

În fereastra de ieșire vedem că regulatorul automat răspunde mai lent și prezintă mai multe depășiri decât linia de
bază. Acum alege opțiunea Domeniu: Frecvență din instrumentul de instrumente, care dezvăluie parametrii de reglare
a domeniului de frecvență.

Acum tastați 32 rad / s pentru lățimea de bandă și 90 ° pentru marja de fază , pentru a genera un control similar în
performanță cu cel de bază. Rețineți că o lățime de bandă cu buclă închisă mai mare duce la un timp de creștere mai
rapid și o marjă de fază mai mare reduce depășirea și îmbunătățește stabilitatea sistemului.
În cele din urmă, observăm că putem genera același controler folosind instrumentul liniei de comandă pidtune în
locul GUI pidTuner care folosește următoarea sintaxă.

opts = pidtuneOptions ( 'CrossoverFrequency' , 32, 'PhaseMargin' , 90);


[C, info] = pidtune (P, 'pid' , optează)

C =

1
Kp + Ki * --- + Kd * s
s

cu Kp = 320, Ki = 796, Kd = 32,2

Controler PID în timp continuu în formă paralelă.

info =
struct cu câmpuri:

Stabil: 1
Frecvență de crossover: 32
PhaseMargin: 90

Introducere: Root Locus Controller Design


În acest tutorial, vom introduce locusul rădăcină, vom arăta cum să-l creăm folosind MATLAB și vom demonstra modul
de proiectare a controlerelor de feedback care satisfac anumite criterii de performanță prin utilizarea locusului rădăcină.
Comenzile cheie MATLAB utilizate în acest tutorial sunt: feedback , rlocus , step , controlSystemDesigner
cuprins
 Stalpi cu bucla inchisa
 Trasarea locusului rădăcină a unei funcții de transfer
 Alegerea unei valori de K din Locusul rădăcină
 Răspuns cu buclă închisă
 Utilizarea proiectantului de sistem de control pentru proiectarea Locus Root
Stalpi cu bucla inchisa
Locusul rădăcină al unei funcții de transfer (buclă deschisă) este o diagramă a locațiilor (locus) a tuturor poli
posibile cu buclă închisă cu un anumit parametru, adesea un câștig proporțional , variat între 0 și . Figura de mai jos
prezintă o arhitectură de feedback-unitate, dar procedura este identică pentru orice funcție de transfer cu buclă
deschisă , chiar dacă unele elemente ale funcției de transfer cu buclă deschisă se află pe calea de feedback.

În acest caz, funcția de transfer cu buclă închisă este:

(1)
și astfel poli ai sistemului cu buclă închisă sunt valori astfel încât .
Dacă scriem , atunci această ecuație poate fi rescrisă ca:
(2)

(3)
Să fie ordinea și să fie ordinea (ordinea polinomului corespunde celei mai mari puteri a ).
Vom lua în considerare toate valorile pozitive ale . În limită ca , poli ai sistemului cu buclă închisă sunt soluții
de (poli de ). În limită ca , poli ai sistemului cu buclă închisă sunt soluții de (zerouri
de ).
Indiferent de alegerea noastră , sistemul cu buclă închisă are poli , unde se află numărul de poli ai funcției de
transfer cu buclă deschisă . Locusul rădăcină are apoi ramuri , fiecare ramură începe de la un pol și se
apropie de zero . Dacă are mai mulți poli decât zerouri (așa cum se întâmplă adesea) și spunem
că are zerouri la infinit . În acest caz, limita de as este zero. Numărul de zerouri la infinit
este , numărul de poli cu buclă deschisă minus numărul de zerouri cu buclă deschisă și este numărul de ramuri
ale locusului rădăcină care merg la „infinit” (asimptote).
Deoarece locusul rădăcină constă în locațiile tuturor polilor cu buclă închisă posibilă, locusul rădăcină ne ajută să alegem
valoarea câștigului pentru a obține tipul de performanță dorit. Dacă oricare dintre poli selectați se află pe planul
complex al jumătății drepte, sistemul cu buclă închisă va fi instabil. Polii care sunt cei mai apropiați de axa imaginară au
cea mai mare influență asupra răspunsului cu buclă închisă, astfel încât chiar dacă un sistem are trei sau patru poli,
acesta poate totuși să se comporte similar cu un sistem de ordinul doi sau de prim ordin, în funcție de locația (locurile)
polului (lor) dominant.
Trasarea locusului rădăcină a unei funcții de transfer
Luați în considerare un sistem cu buclă deschisă, care are o funcție de transfer de

(4)
Cum proiectăm un controler de feedback pentru sistem folosind metoda root-locus? Să presupunem că criteriile noastre
de proiectare sunt de depășire de 5% și timp de creștere de 1 secundă. Crearea unui m-fișier cu denumirea rl.m . În
acest fișier, creați modelul funcției de transfer și utilizați comanda rlocus după cum urmează:

s = tf ( 's' );
sys = (s + 7) / (s * (s + 5) * (s + 15) * (s + 20));
rlocus (sys)
axa ([- 22 3 -15 15])

Alegerea unei valori de K din Locusul rădăcină


Graficul de mai sus arată toate locațiile posibile ale poli cu buclă închisă pentru un controler proporțional pur. În acest
caz, nu toate aceste locații cu poli cu buclă închisă indică satisfacția criteriilor noastre de proiectare. Pentru a determina
ce parte a locusului este acceptabilă, putem folosi comanda sgrid (zeta, wn) pentru a completa linii de raport de
amortizare constantă și frecvență naturală. Cele două argumente ale acestuia sunt raportul de amortizare ( ) și
frecvența naturală ( ) [acestea pot fi vectori dacă doriți să priviți o gamă de valori acceptabile]. În problema noastră,
avem nevoie de o depășire mai mică de 5% (ceea ce înseamnă un raport de amortizare mai mare de 0,7) și un timp de
creștere de 1 secundă (ceea ce înseamnă o frecvență naturală mai mare de 1,8). Introduceți următoarele în fereastra
de comandă MATLAB:

zeta = 0,7;
wn = 1,8;
sgrid (zeta, wn)
Pe complotul de mai sus, cele două linii punctate la aproximativ un unghi de 45 de grade indică locațiile polului cu =
0,7; între aceste linii, poli vor avea > 0,7 și în afara acestor linii <0,7. Semicercul indică locațiile polului cu o frecvență
naturală = 1,8; în interiorul cercului, <1.8 și în afara cercului > 1.8.
Revenind la problema noastră, pentru a face depășirea mai mică de 5%, poli trebuie să se afle între cele două linii
punctate în unghi și pentru ca timpul de ascensiune să fie mai scurt de 1 secundă, poli trebuie să fie în afara
semicercului punctat. Deci, acum știm ce parte a locus-ului rădăcină, ce posibile locații cu poli cu buclă închisă,
satifizează cerințele date. Toți poli din această locație se află în planul din stânga, deci sistemul cu buclă închisă va fi
stabil.
Din graficul de deasupra vedem că există o parte din locusul rădăcină în regiunea dorită. Prin urmare, în acest caz,
avem nevoie de un singur control proporțional pentru a muta poli în regiunea dorită. Puteți utiliza comanda rlocfind în
MATLAB pentru a alege poli dorite pe locus:
[k, poli] = rlocfind (sys)
Faceți clic pe complot în punctul în care doriți să fie polul cu buclă închisă. Poate doriți să selectați punctele indicate în
graficul de mai jos pentru a satisface criteriile de proiectare.

Rețineți că, deoarece locusul rădăcină poate avea mai multe ramuri, atunci când selectați un pol, identificați și unde sunt
și alți poli cu buclă închisă, toate pentru aceeași valoare corespunzătoare . Nu uitați că acești poli vor afecta și
răspunsul. Din graficul de mai sus, vedem că din cei patru poli selectați (indicați prin semnele „+”), cei doi cei mai
apropiați de axa imaginară sunt în regiunea dorită. Deoarece acești poli tind să domine răspunsul, avem o anumită
încredere că cerințele dorite vor fi îndeplinite pentru un control proporțional cu această valoare de .
Răspuns cu buclă închisă
Pentru a verifica răspunsul la pas, trebuie să cunoașteți funcția de transfer cu buclă închisă. Puteți calcula acest lucru
folosind regulile de reducere a diagramei blocului sau lăsați MATLAB să o facă pentru dvs. (nu este necesar să
introduceți o valoare pentru K dacă a fost folosită comanda rlocfind ):

K = 350;
sys_cl = feedback (K * sys, 1)

sys_cl =

350 s + 2450
--------------------------------------
s ^ 4 + 40 s ^ 3 + 475 s ^ 2 + 1850 s + 2450

Funcție de transfer în timp continuu.

Cele două argumente ale feedback-ului funcției sunt funcția de transfer în calea înainte și funcția de transfer în calea
de feedback a sistemului cu buclă deschisă. În acest caz, sistemul nostru este un feedback de unitate.
Dacă aveți o situație de feedback non-unitate, consultați fișierul de ajutor pentru feedback-ul funcției MATLAB , care
demonstrează cum puteți găsi funcția de transfer cu buclă închisă cu un câștig în calea de feedback.
Verificarea răspunsului în pas al sistemului cu buclă închisă cu valoarea aleasă de :

etapa (sys_cl)

După cum ne-am așteptat, acest răspuns are o depășire mai mică de 5% și un timp de creștere mai mic de 1 secundă.
Utilizarea proiectantului de sistem de control pentru proiectarea
Locus Root
Un alt mod de a completa ceea ce a fost făcut mai sus este utilizarea instrumentului interactiv Design System
Designer în cadrul MATLAB. Folosind același model ca mai sus, definim mai întâi planta , .

s = tf ( 's' );
plantă = (s + 7) / (s * (s + 5) * (s + 15) * (s + 20));

Funcția controlSystemDesigner poate fi utilizată pentru analiză și proiectare. În acest caz, ne vom concentra pe
utilizarea locusului rădăcină ca metodă de proiectare pentru a îmbunătăți răspunsul în pas al sistemului cu buclă
închisă. Pentru început, tastați următoarele în fereastra de comandă MATLAB:
controlSystemDesigner (plantă)
Ar trebui să apară următoarea fereastră. Puteți, de asemenea, să lansați GUI accesând fila APPS și făcând clic pe
pictograma aplicației de sub Design and Analysis System Control . Aici puteți vedea complotul locus-ului rădăcină,
împreună cu complotul Bode cu buclă deschisă, și complotul cu răspuns în pas cu buclă închisă pentru planta dată în
feedback-ul unității cu un controler implicit al .
Următorul pas este să adăugați cerințele de proiectare în complotul Root Locus. Acest lucru se realizează direct pe
complot făcând clic dreapta și selectând Cerințe de proiectare , Nou . Cerințele de proiectare pot fi setate pentru timpul
de decontare, depășirea procentului, raportul de amortizare, frecvența naturală sau o restricție de regiune.
Aici, vom stabili cerințele de proiectare pentru raportul de amortizare și frecvența naturală, așa cum s-a făcut anterior
cu comanda sgrid . Reamintim că limita cerințelor noastre necesită = 0,7 și = 1,8. Setați acestea în conformitate cu
cerințele de proiectare. Pe parcelă, orice zonă care este încă albă este o regiune acceptabilă pentru poli cu buclă
închisă.
Măriți Locusul Root făcând clic dreapta pe o axă și selectând Proprietăți urmate de eticheta Limite . Modificați limitele
axelor reale la -25 la 5 și limitele axei imaginare la -2,5 la 2,5 .
De asemenea, putem vedea valorile curente ale unor parametri cheie în răspuns. Pe complotul cu răspuns pas, faceți
clic dreapta pe complot și mergeți la Caracteristici și selectați Răspuns maxim . Repetați caracteristica Timpului de
creștere . Acum ar trebui să existe două puncte mari pe ecran care să indice valorile acestor parametri. Faceți clic pe
fiecare dintre aceste puncte pentru a afișa o casetă cu informații.
Ambele parcele ar trebui să apară așa cum se arată aici, odată ce complotul Bode este închis:
După cum arată caracteristicile din răspunsul Step, depășirea este acceptabilă, dar timpul de creștere este mult prea
mare. Casetele roz de pe locusul rădăcină arată locațiile polului cu buclă închisă corespunzătoare pentru câștigul de
control ales în prezent .
Pentru a remedia acest lucru, trebuie să alegem o nouă valoare pentru câștig . Similar cu modul în care am
folosit comanda rlocfind , câștigul controlerului poate fi modificat direct pe complotul locus root. Faceți clic și trageți
caseta roz cea mai apropiată de axa imaginară (la origine) până la regiunea acceptabilă a graficului nostru de locus
rădăcină, așa cum se arată mai jos.

În caseta Previzualizare a ferestrei, se poate vedea că câștigul buclei a fost modificat la 360. Inspectând complotul de
răspuns cu pas cu buclă închisă, ambele cerințe sunt acum îndeplinite.

Introducere: Metode de domeniu de frecvență


pentru proiectarea controlerului
Metoda de răspuns în frecvență a proiectării controlerului poate fi mai puțin intuitivă decât alte metode pe care le-ați
studiat anterior. Cu toate acestea, are anumite avantaje, în special în situațiile din viața reală, cum ar fi modelarea
funcțiilor de transfer din date fizice. În acest tutorial, vom vedea cum putem folosi răspunsul de frecvență cu buclă
deschisă a unui sistem pentru a prezice comportamentul său de răspuns în timp în buclă închisă.
Comenzile cheie MATLAB utilizate în acest tutorial
sunt: bode , nyquist , margin , lsim , step , feedback , controlSystemDesigner
cuprins
 Marja de câștig și faza
 Diagrama Nyquist
 Criteriul Cauchy
 Performanță cu buclă închisă de pe parcele Bode
 Stabilitate cu buclă închisă din diagrama Nyquist
Marja de câștig și faza
Reamintim din pagina Introducere: Analiza sistemului că răspunsul de frecvență al unui sistem constă în evaluarea
modului în care sistemul de intrare sinusoidală la un sistem este scalat și deplasat de sistem. Modul în care scalarea și
schimbarea ieșirii sinusoidale se schimbă ca o funcție de frecvență oferă informații utile despre răspunsul în timp al
sistemului. Un aspect, în special, faptul că răspunsul la frecvență al unui sistem este utilizat pentru a determina este
„rezistența” sistemului. De exemplu, cât de aproape este sistemul de a deveni instabil? Aici folosim două cantități, marja
de câștig și marja de fază pentru a indica marja pe care sistemul o are înainte de a fi instabilă.
Luați în considerare următorul sistem de feedback al unității:

unde este un câștig variabil (constant) și este planta analizată. Marja de câștig este definită ca modificarea
câștigului în buclă deschisă necesară pentru ca sistemul cu buclă închisă să fie instabil. Sistemele cu marje de câștig
mai mari pot suporta modificări mai mari ale parametrilor sistemului înainte de a deveni instabile în buclă închisă.
Marja de fază este definită ca modificarea schimbării de fază cu buclă deschisă necesară pentru ca sistemul cu buclă
închisă să fie instabil. Marja de fază măsoară, de asemenea, toleranța sistemului la întârzierea timpului. Dacă există o
întârziere de timp mai mare decât în buclă (unde este frecvența în rad / sec unde magnitudinea este 0 dB și
PM este marja de fază convertită în radiani), sistemul cu buclă închisă va deveni instabil. Întârzierea de timp , poate fi
gândită ca un bloc suplimentar în calea înainte a diagramei blocului care adaugă decalaj de fază la sistem, dar nu are
efect asupra câștigului. Adică, o întârziere în timp poate fi reprezentată ca un bloc cu magnitudinea de 1 și faza .
Deocamdată, nu ne vom îngrijora de unde provine toate acestea și mai degrabă ne vom concentra pe identificarea
marjelor de câștig și a fazei pe un complot Bode.
Marja de fază a sistemului cu buclă închisă este cantitatea suplimentară de întârziere de fază care este necesară pentru
ca faza sistemului cu buclă deschisă să atingă -180 de grade la frecvența în care magnitudinea sistemului cu buclă
deschisă este 0 dB (frecvența de încărcare a câștigului ). De asemenea, marja de câștig este cantitatea suplimentară
de câștig (de obicei în dB) necesară pentru ca mărimea sistemului cu buclă deschisă să atingă 0 dB la frecvența în care
faza sistemului buclă deschisă este egală cu -180 de grade (frecvența de încărcare a fazei, ).

Un lucru frumos despre marja de fază este faptul că nu este necesar să replotați diagrama Bode pentru a găsi noua
marjă de fază atunci când modificați câștigul buclei. Dacă vă amintiți, adăugarea câștigului nu face decât să mute
graficul de mărime în sus sau în jos. Aceasta este echivalentă cu schimbarea axei y pe graficul de mărime. Găsirea
marjei de fază este pur și simplu o problemă de a găsi noua frecvență de încrucișare a câștigului și de a citi marja de
fază. De exemplu, să presupunem că ați folosit următoarele comenzi pentru a genera complotul Bode prezentat mai jos:

s = tf ( 's' );
G = 50 / (s ^ 3 + 9 * s ^ 2 + 30 * s +40);
Bode (G)
grilă de pe
titlu ( „Plot Bode fără câștig” )

Ar trebui să vedeți că marja de fază este de aproximativ 100 de grade. Acum să presupunem că ați adăugat un câștig de
100, introducând bode de comandă (100 * G) . Ar trebui să obțineți următorul complot:

Bode (100 * G)
grilă de pe
titlu ( "Botul grafic cu câștig = 100" )

După cum puteți vedea, trama de fază este exact aceeași ca înainte, iar graficul cu magnitudinea este redus cu 40 dB
(câștig de 100). Marja de fază este acum de aproximativ -60 de grade. Același rezultat ar putea fi obținut dacă axa Y a
graficului de mărime ar fi coborât cu 40 dB. Încercați acest lucru, priviți primul complot Bode, găsiți unde curba
traversează linia -40 dB și citiți marja de fază. Ar trebui să fie de aproximativ -60 de grade, la fel ca al doilea complot
Bode.
Putem avea MATLAB să calculeze și să afișeze marjele de câștig și fază folosind comanda margin (G) . Această
comandă returnează marjele de câștig și fază, frecvențele de câștig și fază de croaziere și o reprezentare grafică a
acestor cantități pe graficul Bode. Vezi mai jos, de exemplu:

Marja (100 * G)
Frecvența lățimii de bandă
Frecvența lățimii de bandă este definită ca frecvența la care magnitudinea cu buclă închisă scade cu 3 dB sub
magnitudinea sa la DC (mărimea pe măsură ce frecvența se apropie de 0). Cu toate acestea, atunci când proiectăm prin
răspunsul la frecvență, suntem interesați să prezicem comportamentul cu buclă închisă din răspunsul cu buclă
deschisă. Prin urmare, vom folosi o aproximare a sistemului de ordinul doi și vom spune că frecvența de lățime de bandă
este egală cu frecvența la care răspunsul cu magnitudinea buclelor deschise este între -6 și -7,5 dB, presupunând că
răspunsul în fază cu buclă deschisă este între -135 grade și -225 deg. Pentru o derivare completă a acestei aproximări,
consultați manualul.
Pentru a ilustra importanța frecvenței de lățime de bandă, vom arăta modul în care ieșirea se schimbă cu diferite
frecvențe de intrare. Vom constata că intrările sinusoidale cu frecvență mai mică decât (frecvența lățimii de bandă)
sunt urmărite „rezonabil de bine” de către sistem. Intrările sinusoidale cu frecvență mai mare decât sunt atenuate (în
mărime) cu un factor de 0,707 sau mai mare (și sunt, de asemenea, deplasate în fază).
Să spunem că avem următoarea funcție de transfer cu buclă închisă reprezentând un sistem:

(1)

G = 1 / (s ^ 2 + 0,5 * s + 1);
Bode (G)

Deoarece aceasta este funcția de transfer cu buclă închisă, frecvența noastră de bandă va fi frecvența corespunzătoare
unui câștig de -3 dB. Privind parcela, descoperim că este de aproximativ 1,4 rad / s. De asemenea, putem citi graficul că
pentru o frecvență de intrare de 0,3 radiani, sinusoidul de ieșire ar trebui să aibă o magnitudine de aproximativ unul, iar
faza ar trebui să fie deplasată cu poate cu câteva grade (în spatele intrării). Pentru o frecvență de intrare de 3 rad / sec,
mărimea de ieșire ar trebui să fie de aproximativ -20 dB (sau 1/10 la fel de mare ca intrarea) și faza ar trebui să fie de
aproape -180 (aproape exact din faza). Putem folosi comanda lsim pentru a simula răspunsul sistemului la intrările
sinusoidale.
În primul rând, luați în considerare o intrare sinusoidală cu o frecvență mai mică decât . De asemenea, trebuie să
ținem cont că dorim să vedem răspunsul la starea de echilibru. Prin urmare, vom modifica axele pentru a vedea clar
răspunsul în stare constantă (ignorând răspunsul tranzitoriu).

G = 1 / (s ^ 2 + 0,5 * s + 1);
w = 0,3;
t = 0: 0,1: 100;
u = păcat (w * t);
[y, t] = lsim (G, u, t);
plot (t, y, t, u)
axa ([50 100 -2 2])

Rețineți că ieșirea (albastru) urmărește intrarea (roșu) destul de bine; este probabil la câteva grade în spatele intrării așa
cum era de așteptat. Cu toate acestea, dacă setăm frecvența de intrare mai mare decât frecvența de lățime de
bandă pentru sistem, obținem un răspuns foarte denaturat (în raport cu intrarea):

G = 1 / (s ^ 2 + 0,5 * s + 1);
w = 3;
t = 0: 0,1: 100;
u = păcat (w * t);
[y, t] = lsim (G, u, t);
plot (t, y, t, u)
axa ([90 100 -1 1])

Din nou, rețineți că magnitudinea este de aproximativ 1/10 din cea a intrării, așa cum s-a prevăzut și că este aproape
exact în afara fazei (180 de grade în urmă). Simțiți-vă liber să experimentați și să vizualizați răspunsul pentru mai multe
frecvențe diferite și vedeți dacă se potrivesc cu complotul Bode.
Diagrama Nyquist
Diagrama Nyquist ne permite să prezicem stabilitatea și performanța unui sistem cu buclă închisă observând
comportamentul său cu buclă deschisă. Criteriul Nyquist poate fi utilizat în scopuri de proiectare indiferent de stabilitatea
în buclă deschisă (nu uitați că metodele de proiectare Bode presupun că sistemul este stabil în buclă deschisă). Prin
urmare, utilizăm acest criteriu pentru a determina stabilitatea în buclă închisă atunci când loturile Bode afișează
informații confuze.
Notă: comanda MATLAB nyquist nu oferă o reprezentare adecvată pentru sistemele care au poli cu buclă
deschisă pe axa imaginară. Prin urmare, vă sugerăm să copiați fișierul nyquist1.m ca un nou fișier
m . Acest fișier m creează comploturi Nyquist mai precise, deoarece tratează corect poli și zerouri de pe axa
imaginară.
Diagrama Nyquist este practic o diagramă a locului unde este funcția de transfer cu buclă deschisă și este
un vector al frecvențelor care înglobează întregul plan jumătate dreapta. La trasarea diagramei Nyquist sunt luate în
considerare atât frecvențele pozitive (de la zero la infinit) cât și cele negative (de la infinit negativ la zero). Vom
reprezenta frecvențe pozitive în roșu și negative în verde. Vectorul de frecvență utilizat în reprezentarea diagramei
Nyquist arată de obicei așa (dacă vă puteți imagina complotul care se întinde până la infinit):

Cu toate acestea, dacă avem poli sau zerouri cu buclă deschisă pe axa imaginară, nu vom fi definiți în acele puncte
și trebuie să ne buclăm în jurul lor atunci când trasăm conturul. Un exemplu de contur va apărea după cum urmează:

Vă rugăm să rețineți că conturul se bucle în jurul polului pe axa imaginară. Așa cum am menționat
anterior, comanda MATLAB nyquist nu ia în calcul poli sau zerouri pe axa imaginară și, prin urmare, produce o
diagramă incorectă. Pentru a corecta acest lucru, vă rugăm să descărcați și să utilizați nyquist1.m . Dacă avem un pol pe
axa imaginară, trebuie să folosim nyquist1 . Dacă nu există poli sau zerouri pe axa imaginara, sau dacă avem pol de
zero anulare, putem folosi fie Nyquist comanda sau nyquist1.m .
Criteriul Cauchy
Criteriul Cauchy (din analiza complexă) afirmă că atunci când se ia un contur închis în planul complex și se mapează
printr-o funcție complexă , numărul de ori în care complotul încercuiește originea este egal cu numărul de
zerouri închise de către contur de frecvență minus numărul de poli de închis de conturul de
frecvență. Încercuirile de origine sunt considerate pozitive dacă sunt în aceeași direcție cu conturul închis inițial sau
negativ dacă sunt în direcția opusă.
Atunci când studiem controlul feedback-ului, nu suntem atât de interesați și, mai degrabă, suntem mai preocupați
de funcția de transfer cu buclă închisă:

(2)
Dacă încercuiește originea, atunci va cuprinde punctul -1. Deoarece ne interesează stabilitatea cu buclă
închisă, vrem să știm dacă există planuri cu buclă închisă (zerouri ale ) în planul jumătății drepte. Mai multe
detalii despre cum să se stabilească acest lucru vor veni mai târziu.
Prin urmare, comportamentul diagramei Nyquist în jurul punctului -1 din axa reală este foarte important; cu toate
acestea, axa de pe diagrama standard a niștilor ar putea îngreuna să vezi ce se întâmplă în jurul acestui
punct. Pentru a corecta acest lucru, puteți adăuga funcția lnyquist.m în fișierele dvs. Comanda lnyquist.m grafică
diagrama Nyquist folosind o scară logaritmică și păstrează caracteristicile punctului -1.
Pentru a vizualiza un complot Nyquist simplu folosind MATLAB, vom defini următoarea funcție de transfer și vom
vizualiza complotul Nyquist:

(3)

s = tf ( 's' );
G = 0,5 / (s - 0,5);
Nyquist (G)
axa ([- 1 0 -1 1])

Acum vom analiza diagrama Nyquist pentru următoarea funcție de transfer:

(4)
Rețineți că această funcție are un pol la origine. Vom vedea diferența dintre utilizarea comenzilor
nyquist , nyquist1 și lnyquist cu această funcție particulară.

G = (s + 2) / (s ^ 2);
Nyquist (G)

nyquist1 (G)
lnyquist (G)

Rețineți că complotul nyquist nu este corect. În special, nu surprinde comportamentul complotului Nyquist pentru o
rază care se apropie de infinit (se apropie de 0). Nyquist1 Parcela are forma corectă, care ne permite să evalueze
înconjurarea de -1 punct și aplică criteriul Nyquist, dar este dificil de a vedea ce se întâmplă aproape de -1
punct. Funcția lnyquist folosește o scară modificată care menține comportamentul corect al complotului aproape de
punctul -1 și păstrează forma de bază corectă.
Performanță cu buclă închisă de pe parcele Bode
Pentru a prezice performanța în buclă închisă din răspunsul cu frecvență în buclă deschisă, trebuie să facem câteva
presupuneri:
 Sistemul trebuie să fie stabil în buclă deschisă dacă vom folosi parcele Bode pentru proiectarea noastră.
 Pentru sistemele canonice de ordinul doi, raportul de amortizare cu buclă închisă este aproximativ egal cu
marja de fază divizată la 100 dacă marja de fază este cuprinsă între 0 și 60 de grade. Putem folosi acest concept cu
precauție dacă marja de fază este mai mare de 60 de grade.
 Pentru sistemele canonice de ordinul doi, o relație între raportul de amortizare, frecvența lățimii de bandă și
timpul de decontare este dată de o ecuație descrisă în pagina Extras: Bandwidth .
 O estimare foarte aspră pe care o puteți folosi este că lățimea de bandă este aproximativ egală cu frecvența
naturală.
Să folosim aceste concepte pentru a proiecta un controler pentru următorul sistem:
Unde este controlerul și este:

(5)
Designul trebuie să îndeplinească următoarele specificații:
 Eroare în stare de echilibru zero
 Depășirea maximă trebuie să fie mai mică de 40%
 Timpul de decontare trebuie să fie mai mic de 2 secunde
Există două moduri de soluționare a acestei probleme: una este grafică și cealaltă numerică. În MATLAB, abordarea
grafică este cea mai bună, deci aceasta este abordarea pe care o vom folosi. În primul rând, să ne uităm la complotul
Bode. Creați un fișier m cu următorul cod:

P = 10 / (1,25 * s + 1);
Bode (P)

Există mai multe caracteristici ale sistemului care pot fi citite direct din acest complot Bode. În primul rând, putem vedea
că frecvența lățimii de bandă este în jur de 10 rad / sec. Deoarece frecvența lățimii de bandă este aproximativ aceeași cu
frecvența naturală (pentru un sistem de acest prim ordin de acest tip), timpul de creștere este de 1,8 / BW = 1,8 / 10 =
0,18 secunde. Aceasta este o estimare brută, așa că vom spune că timpul de creștere este de aproximativ 0,2 secunde.
Marja de fază pentru acest sistem este de aproximativ 95 de grade. Relația, raportul de amortizare = PM / 100, este
valabilă doar pentru PM <60. Deoarece sistemul este de primă ordine, nu trebuie să existe depășiri.
Ultimul punct de interes major este eroarea de stare constantă . De asemenea, eroarea de stare constantă poate fi
citită direct de pe complotul Bode. Constanta de eroare ( , sau, ) este găsită de la intersecția asimptotului de
joasă frecvență cu linia = 1 rad / sec. Extindeți linia de frecvență joasă la linia = 1. Mărimea în acest moment este
constanta de eroare. Întrucât complotul Bode al acestui sistem este o linie orizontală la frecvențe joase (pantă = 0), știm
că acest sistem în feedback-ul unității este de tip zero. Prin urmare, intersecția este ușor de găsit. Câștigul este de 20 dB
(magnitudine 10). Ceea ce înseamnă asta este că constanta pentru funcția de eroare este 10. Eroarea în stare constantă
este 1 / (1+ ) = 1 / (1 + 10) = 0,091.
Dacă sistemul nostru ar fi de tipul unu în loc de cel zero, constanta pentru eroarea de stare constantă ar fi găsită într-o
manieră similară cu cea următoare.
Haideți să ne verificăm predicțiile, uitându-ne la un grafic de răspuns la pas. Acest lucru se poate face prin adăugarea
următoarelor două linii de cod în fereastra de comandă MATLAB.

sys_cl = feedback (P, 1);


etapa (sys_cl)
title ( „Răspuns la pas închis, fără controler” )

După cum puteți vedea, predicțiile noastre au fost foarte bune. Sistemul are un timp de creștere de aproximativ 0,2
secunde, nu are depășire și are o eroare de stare constantă de aproximativ 9%. Acum trebuie să alegem un controler
care să ne permită îndeplinirea criteriilor de proiectare. Alegem un controler PI, deoarece va produce zero erori de
echilibru pentru o introducere pas. De asemenea, controlerul PI are un zero, pe care îl putem plasa. Acest lucru ne oferă
o flexibilitate suplimentară de proiectare pentru a ne ajuta să ne îndeplinim criteriile. Reamintim că un controler PI are
următoarea formă:

(6)
Primul lucru pe care trebuie să-l găsim este raportul de amortizare corespunzător unei depășiri de procente de
40%. Conectând această valoare la ecuația referitoare la raportul de depășire și amortizare (sau consultarea unui
complot al acestei relații), descoperim că raportul de amortizare corespunzător acestei depășiri este de aproximativ
0,28. Prin urmare, marja noastră de fază ar trebui să fie de cel puțin 30 de grade. Trebuie să avem o frecvență de lățime
de bandă mai mare sau egală cu 12 dacă dorim ca timpul nostru de decontare să fie mai mic de 1,75 secunde, care
corespunde specificațiilor de proiectare.
Acum că ne cunoaștem marja de fază dorită și frecvența lățimii de bandă, putem începe proiectarea noastră. Amintiți-vă
că ne uităm la loturile Bode cu buclă deschisă. Prin urmare, frecvența noastră de lățime de bandă va fi frecvența
corespunzătoare unui câștig de aproximativ -7 dB.
Să vedem cum porțiunea integratoare a controlerului PI afectează răspunsul nostru. Schimbați fișierul dvs. m în
următoarele (aceasta adaugă un termen integral, dar fără un termen proporțional):

P = 10 / (1,25 * s + 1);
C = 1 / s;
bode (C * P, spațiu de bord (0,2))
Marja noastră de fază și frecvența lățimii de bandă sunt prea mici. Vom adăuga câștig și fază cu un zero. Să plasăm
zero la -1 pentru moment și să vedem ce se întâmplă. Schimbați fișierul dvs. m pentru a arăta astfel:

P = 10 / (1,25 * s + 1);
C = (s + 1) / s;
bode (C * P, spațiu de bord (0,2))

Se pare că zero la -1 cu un câștig de unitate ne oferă un răspuns satisfăcător. Marja noastră de fază este mai mare de
60 de grade (chiar și mai puțin de depășit decât se aștepta), iar frecvența noastră de lățime de bandă este de
aproximativ 11 rad / s, ceea ce ne va oferi un răspuns satisfăcător. Deși satisfăcător, răspunsul nu este chiar atât de bun
pe cât ne-am dori. Prin urmare, să încercăm să obținem o frecvență de lățime de bandă mai mare, fără a modifica prea
mult marja de fază. Să încercăm să creștem câștigul la 5 și să vedem ce se întâmplă. Acest lucru va face schimbarea
câștigului și faza va rămâne aceeași.

P = 10 / (1,25 * s + 1);
C = 5 * ((s + 1) / s);
bode (C * P, spațiu de bord (0,2))
Arată foarte bine. Să ne uităm la răspunsul nostru pas și să ne verificăm rezultatele. Adăugați următoarele două linii
în fișierul dvs. m :

sys_cl = feedback (C * P, 1);


etapa (sys_cl)

După cum vedeți, răspunsul nostru este mai bun decât ne-am fi dorit. Cu toate acestea, nu suntem întotdeauna la fel de
norocoși și, de obicei, trebuie să ne jucăm cu câștigul și poziția polilor și / sau a zerourilor pentru a ne atinge cerințele de
proiectare.
Stabilitate cu buclă închisă din diagrama Nyquist
Luați în considerare sistemul de feedback negativ:
Nu uitați de criteriul Cauchy că numărul ( N ) ori că graficul incercuieste -1 + j.0 este egal cu numărul ( Z ) de
zerouri ale încercuită de conturul frecvenței minus numărul ( P ) de poli închise după
conturul frecvenței (N = Z - P) . Urmărind cu atenție funcțiile de transfer cu buclă deschisă și închisă, precum și
numeratorii și numitorii, ar trebui să vă convingeți că:
 Cero-urile sunt poli ai funcției de transfer cu buclă închisă.
 Polii din sunt poli ai funcției de transfer cu buclă deschisă.
Pe baza definițiilor de mai sus:
 P = numărul de poli de buclă deschisă (instabilă) de .
 N = numărul de ori în care diagrama Nyquist încercuiește -1.
 Încercuiri în sensul acelor de ceasornic de -1 contează ca cercuri pozitive.
 în sens invers acelor de ceasornic de -1 număr ca încercuiri negative.
 Z = numărul de poli pe jumătatea dreaptă (pozitivi, reali) ai sistemului cu buclă închisă.
Criteriul de stabilitate Nyquist care se referă la aceste trei cantități este atunci:
(7)
Notă: Aceasta este o singură convenție pentru criteriul Nyquist. O altă convenție afirmă că un N pozitiv contează
înclinările în sens invers acelor de ceasornic sau în sensul acelor de ceasornic al lui -1. Cele P și Z Variabilele
rămân aceleași. În acest caz , ecuația devine Z = P - N . De-a lungul acestor tutoriale, vom folosi un semn
pozitiv pentru încercuiri în sensul acelor de ceasornic.
Este foarte important (și oarecum complicat) să înveți cum să numeri numărul de ori pe care-l încercuiește diagrama
Nyquist -1. Prin urmare, vom intra în unele detalii pentru a vă ajuta să vizualizați acest lucru. O abordare este să-ți
imaginezi că stai deasupra punctului -1 și urmărești diagrama de la început până la sfârșit. Acum întrebați-vă: de câte ori
mi-am întors capul cu 360 de grade complete? Din nou, dacă mișcarea a fost în sensul acelor de ceasornic, N este
pozitivă, iar dacă mișcarea este în sens invers acelor de ceasornic, N este negativă.
Cunoscând numărul de poli de la jumătatea dreaptă (instabili) ai buclei deschise ( P ) și numărul de cercuri de -1
realizate de diagrama Nyquist ( N ), putem determina stabilitatea cu buclă închisă a sistemului. Dacă Z = P + N este
un număr pozitiv, zero, sistemul cu buclă închisă este instabil.
Putem utiliza, de asemenea, diagrama Nyquist pentru a găsi gama de câștiguri pentru ca un sistem de feedback de
unitate cu buclă închisă să fie stabil. Sistemul pe care îl vom testa arată astfel:

Unde:

(8)
Acest sistem are un câștig care poate fi modificat pentru a modifica răspunsul sistemului cu buclă închisă. Cu toate
acestea, vom vedea că putem varia acest câștig în anumite limite, deoarece trebuie să ne asigurăm că sistemul nostru
cu buclă închisă va fi stabil. Aceasta este ceea ce vom căuta: gama de câștiguri care vor face acest sistem stabil în
buclă închisă.
Primul lucru pe care trebuie să-l facem este să găsim numărul de poli reali pozitivi în funcția noastră de transfer în buclă
deschisă:

rădăcini ([1 -8 15])

ans =
5
3
Polii funcției de transfer cu buclă deschisă sunt ambii pozitivi. Prin urmare, avem nevoie de două cercuri în sens invers
acelor de ceasornic ( N = -2 ) ale diagramei Nyquist pentru a avea un sistem stabil cu buclă închisă ( Z = P +
N ). Dacă numărul de cercuri este mai mic de două sau încercuirile nu sunt în sensul acelor de ceasornic, sistemul nostru
va fi instabil.
Să ne uităm la diagrama noastră Nyquist pentru un câștig de 1:

G = (s ^ 2 + 10 * s + 24) / (s ^ 2 - 8 * s + 15);
Nyquist (G)

Există două cercuri în sens invers acelor de ceasornic de -1. Prin urmare, sistemul este stabil pentru un câștig de 1.
Acum vom vedea cum se comportă sistemul dacă creștem câștigul la 20:

Nyquist (20 * G)

Diagrama s-a extins. Prin urmare, știm că sistemul cu buclă închisă va fi stabil, indiferent cât de mult vom crește
câștigul. Cu toate acestea, dacă diminuăm câștigul, diagrama se va contracta și sistemul ar putea deveni instabil. Să
vedem ce se întâmplă pentru un câștig de 0,5:

Nyquist (0,5 * G)
Sistemul este acum instabil. Prin încercare și eroare, descoperim că acest sistem va deveni instabil pentru câștiguri mai
mici de 0,80. Putem verifica răspunsurile noastre prin mărirea graficelor Nyquist, precum și prin examinarea
răspunsurilor în pas cu buclă închisă pentru câștiguri de 0,79, 0,80 și 0,81.
Câștig de marjă
Am definit deja marja de câștig ca modificarea câștigului în buclă deschisă exprimată în decibeli (dB), necesară la -180
de grade de schimbare a fazei pentru ca magnitudinea buclelor deschise să fie egală cu 0 dB. Acum vom afla de unde
vine asta. În primul rând, să spunem că avem un sistem care este stabil dacă nu există cercuri Nyquist de -1, cum ar fi:

(9)
Privind rădăcinile, descoperim că nu avem poli cu buclă deschisă în planul jumătății drepte. Prin urmare, nu există poli cu
buclă închisă în planul jumătății drepte, dacă nu există cercuri Nyquist de -1. Acum, cât putem varia câștigul înainte ca
acest sistem să devină instabil în buclă închisă? Să ne uităm la următoarea cifră:

Sistemul cu buclă deschisă reprezentat de acest complot va deveni instabil în buclă închisă dacă câștigul este mărit
peste o anumită graniță. Aria reală negativă a zonei între -1 / a (definită ca punctul în care bucla deschisă are -180
grad de fază, adică unde diagrama traversează axa reală) și -1 reprezintă cantitatea de creștere a câștigului care poate fi
tolerat înainte de instabilitatea cu buclă închisă.
Dacă ne gândim la asta, ne dăm seama că dacă câștigul adăugat este egal cu a , diagrama va atinge punctul -1:

(10)
sau
(11)
Prin urmare, spunem că marja de câștig este o unitate. Cu toate acestea, am menționat anterior că marja de câștig este
de obicei măsurată în decibeli. Prin urmare, marja de câștig este:
(12)
Vom găsi acum marja de câștig a funcției de transfer stabil, cu buclă deschisă, pe care am văzut-o anterior. Reamintim
că funcția este:

(13)
și că diagrama Nyquist poate fi vizualizată tastând:

G = 50 / (s ^ 3 + 9 * s ^ 2 + 30 * s + 20);
Nyquist (G)
Așa cum am discutat anterior, tot ce trebuie să facem pentru a găsi marja de câștig este găsirea a , așa cum este
definită în figura precedentă. Pentru a face acest lucru, trebuie să găsim punctul în care există exact -180 de grade de
schimbare a fazelor. Aceasta înseamnă că funcția de transfer în acest moment este reală (nu are o parte
imaginară). Numerotatorul este deja real, așa că trebuie doar să ne uităm la numitor. Când , singurii termeni din
numitor care vor avea părți imaginare sunt cei care sunt puteri ciudate ale lui s . Prin urmare, pentru a fi reali,
trebuie să avem:
(14)
ceea ce înseamnă (acesta este cel mai bun punct din diagrama Nyquist) sau . Putem găsi apoi
valoarea în acest moment folosind polyval :

w = sqrt (30);
polivalent (50, j * w) / polivalent ([1 9 30 40], j * w)

ans =
-0.2174
Răspunsul este: -0.2174 + 0i . Partea imaginară este zero, deci știm că răspunsul nostru este corect. De asemenea,
putem verifica acest lucru analizând din nou complotul Nyquist. Partea reală are, de asemenea, sens. Acum putem
continua să găsim marja de câștig.
Am constatat că schimbarea de fază -180 grade are loc la -0.2174 + 0i . Acest punct a fost definit anterior ca -1 /
a . Prin urmare, avem acum o , care este marja de câștig. Cu toate acestea, trebuie să exprimăm marja de câștig în
decibeli:

(15)
(16)
(17)
Acum avem marja de câștig. Să vedem cât de precis este folosind un câștig de a = 4.6 și mărirea graficului pe
complotul Nyquist:

a = 4,6;
Nyquist (a sys *)
Parcela pare să treacă chiar prin punctul -1. Acum vom verifica acuratețea rezultatelor noastre vizualizând diagramele
Nyquist cu zoom și răspunsuri în pas cu buclă închisă pentru câștiguri de 4,5, 4.6 și 4.7.
Marja de fază
Am discutat deja despre importanța marjei de fază. Prin urmare, vom vorbi doar de unde vine acest concept. Am definit
marja de fază ca modificarea schimbării de fază în buclă deschisă necesară la câștigul unității pentru a face un sistem cu
buclă închisă să fie instabilă. Să ne uităm la următoarea definiție grafică a acestui concept pentru a avea o idee mai
bună despre ce vorbim.

Să analizăm argumentul anterior și să ne gândim la ce se întâmplă. Din exemplul nostru anterior știm că acest sistem
special va fi instabil în buclă închisă dacă diagrama Nyquist încercuiește punctul -1. Cu toate acestea, trebuie să ne dăm
seama și că, dacă diagrama este schimbată de thetagrade, apoi va atinge punctul -1 la axa reală negativă, ceea ce
face ca sistemul să fie marginal stabil în buclă închisă. Prin urmare, unghiul necesar pentru a face acest sistem marginal
stabil în buclă închisă se numește marjă de fază (măsurată în grade). Pentru a găsi punctul din care măsurăm acest
unghi, desenăm un cerc cu raza de 1, găsim punctul în diagrama Nyquist cu o magnitudine de 1 (câștig de 0 dB) și
măsurăm deplasarea de fază necesară pentru acest punct fiți la un unghi de -180 de grade.

Introducere: Metode de spațiu-stat pentru proiectarea controlerului

În această secțiune, vom arăta cum să proiectăm controlerele și observatorii folosind metode spațiu-stat (sau domeniu-
timp).
Comenzi MATLAB cheie utilizate în acest tutorial sunt: EIG , ss , lsim , loc , Acker
uprins
 Modelare
 Stabilitate
 Controlabilitate și observabilitate
 Proiectarea controlului folosind amplasarea stâlpilor
 Introducerea intrării de referință
 Proiectare observator
Modelare
Există mai multe moduri diferite de a descrie un sistem de ecuații diferențiale liniare. Reprezentarea stării-spațiu a fost
introdusă în secțiunea Introducere: Modelare sistem . Pentru un sistem SISO LTI, formularul spațiu-stare este prezentat
mai jos:

(1)
(2)
unde este un vector n cu 1 care reprezintă variabilele de stare ale sistemului, este un scalar reprezentând intrarea
și este un scalar reprezentând ieșirea. Matricele (n cu n), (n cu 1) și (1 cu n) determină relațiile dintre variabilele
de stare și de intrare și ieșire. Rețineți că există n ecuații diferențiale de prim ordin. O reprezentare spațiu de stat poate fi
de asemenea folosită pentru sisteme cu mai multe intrări și ieșiri multiple (MIMO), dar ne vom concentra în primul rând
pe sisteme cu o singură intrare, cu o singură ieșire (SISO) din aceste tutoriale.
Pentru a introduce metoda de proiectare a controlului stării spațiale, vom folosi ca exemplu mingea suspendată
magnetic. Curentul prin spire induce o forță magnetică care poate echilibra forța de gravitație și face ca mingea (care
este fabricată dintr-un material magnetic) să fie suspendată în aerul din mijloc. Modelarea acestui sistem a fost stabilită
în numeroase cărți de control (inclusiv sisteme de control automat de BC Kuo, a șaptea ediție).

Ecuațiile pentru sistem sunt date de:

(3)

(4)
unde este poziția verticală a bilei, este curentul prin electromagnet, este tensiunea aplicată, este masa bilei, este
accelerația datorată gravitației, este inductanța, este rezistența și este un coeficient care determină forța
magnetică exercitată pe minge. Pentru simplitate, vom alege valori = 0,05 kg, = 0,0001, = 0,01 H, = 1 Ohm, =
9,81 m / s ^ 2. Sistemul este în echilibru (mingea este suspendată în aerul de fiecare dată) ori = (în ce
punct = 0). Linearizăm ecuațiile despre punct = 0,01 m (unde curentul nominal este de aproximativ 7 Amperi) și
obțineți ecuațiile liniare de spațiu-stare:

(5)
(6)
Unde:

(7)
este setul de variabile de stare pentru sistem (un vector 3x1), este abaterea tensiunii de intrare de la valoarea sa de
echilibru ( ), iar (ieșirea) este abaterea înălțimii bilei de la poziția sa de echilibru ( ). Introduceți matricile
sistemului într-un fișier m .

A = [0 1 0
980 0 -2,8
0 0 -100];

B = [0
0
100];

C = [1 0 0];

Stabilitate
Unul dintre primele lucruri pe care vrem să le facem este să analizăm dacă sistemul cu buclă deschisă (fără niciun
control) este stabil. După cum s-a discutat în secțiunea Introducere: Analiză de sistem , valorile proprii ale matricei de
sistem ,, (egală cu polii funcției de transfer) determină stabilitatea. Valorile proprii ale matricei sunt valorile care sunt
soluții ale .

stâlpi = eig (A)

stâlpi =
31.3050
-31.3050
-100.0000
Din inspecție, se poate observa că unul dintre poli se află în planul jumătății drepte (adică are o parte reală pozitivă),
ceea ce înseamnă că sistemul cu buclă deschisă este instabil.
Pentru a observa ce se întâmplă cu acest sistem instabil când există o condiție inițială non-zero, adăugați următoarele
linii în fișierul dvs. m și rulați-l din nou:

t = 0: 0,01: 2;
u = zerouri (mărimea (t));
x0 = [0,01 0 0];

sys = ss (A, B, C, 0);

[y, t, x] = lsim (sys, u, t, x0);


plot (t, y)
title ( „Răspuns în buclă deschisă la condiția inițială non-zero” )
xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )

Se pare că distanța dintre bilă și electromagnet va merge la infinit, dar probabil mingea lovește mai întâi masa sau
podeaua (și probabil, de asemenea, iese din raza în care este valabilă liniaritatea noastră).
Controlabilitate și observabilitate
Un sistem este controlabil dacă există întotdeauna o intrare de control , care transferă orice stare a sistemului în
orice altă stare în timp finit. Se poate arăta că un sistem LTI este controlabil dacă și numai dacă matricea sa de
controlabilitate , are rang complet (adică dacă rank ( ) = n unde n este numărul de variabile de stări). Rangul matricei
de controlabilitate a unui model LTI poate fi determinat în MATLAB utilizând comenzile rank (ctrb (A,
B)) sau rank (ctrb (sys)) .
(8)
Toate variabilele de stare ale unui sistem nu pot fi direct măsurabile, de exemplu, dacă componenta se află într-o locație
inaccesibilă. În aceste cazuri, este necesar să se estimeze valorile variabilelor de stare internă necunoscute folosind
doar ieșirile disponibile ale sistemului. Un sistem poate fi observat dacă starea inițială , poate fi determinată pe
baza cunoștințelor de intrare a sistemului , și de ieșirea sistemului , pe un interval de timp finit
. Pentru sistemele LTI, sistemul poate fi observat dacă și numai dacă matricea de observabilitate , are rang complet
(adică dacă rank ( ) = n unde n este numărul de variabile de stare). Observabilitatea unui model LTI poate fi
determinată în MATLAB folosind comanda rang (obsv (A, C)) sau rang (obsv (sys)) .
(9)
Controlabilitatea și observabilitatea sunt concepte duale . Un sistem ( , ) este controlabil dacă și numai dacă un
sistem ( , ) este observabil. Acest fapt va fi util atunci când proiectăm un observator, așa cum vom vedea mai jos.
Proiectarea controlului folosind amplasarea stâlpilor
Să construim un controler pentru acest sistem folosind o abordare de plasare a polului. Schema unui sistem de feedback
complet este prezentată mai jos. Prin statul complet, înseamnă că toate variabilele de stat sunt cunoscute controlorului
în orice moment. Pentru acest sistem, am avea nevoie de un senzor care măsoară poziția mingii, altul care măsoară
viteza mingii și un al treilea care măsoară curentul în electromagnet.

Pentru simplitate, să presupunem că referința este zero, = 0. Intrarea este atunci


(10)
Ecuațiile spațiu-stat pentru sistemul de feedback cu buclă închisă sunt, prin urmare,
(11)
(12)
Stabilitatea și performanța domeniului de timp a sistemului de feedback cu buclă închisă sunt determinate în principal de
localizarea valorilor proprii ale matricei ( ), care sunt egale cu poli cu buclă închisă. Deoarece matricile
și sunt ambele 3x3, vor exista 3 poli pentru sistem. Alegând o matrice adecvată de câștig de feedback , putem
plasa acești poli cu buclă închisă oriunde am dori (pentru că sistemul este controlabil). Putem utiliza locul funcției
MATLAB pentru a găsi câștigul de feedback de stare , care va oferi poli dorit cu buclă închisă.
Înainte de a încerca această metodă, trebuie să decidem unde dorim să plasăm poli cu buclă închisă. Să presupunem că
criteriile pentru controler erau reglarea timpului <0,5 sec și depășirea <5%, atunci am putea încerca să plasăm cei doi
poli dominanți la -10 +/- 10i (la = 0,7 sau 45 grade cu = 10> 4,6 * 2) . Al treilea pol pe care l-am putea plasa la -50 să
înceapă (astfel încât să fie suficient de rapid încât să nu aibă prea mult efect asupra răspunsului) și îl putem schimba
ulterior în funcție de comportamentul cu buclă închisă. Îndepărtați comanda lsim din fișierul dvs. m și tot ce este
după acesta, apoi adăugați următoarele linii în fișierul dvs. m :

p1 = -10 + 10i;
p2 = -10 - 10i;
p3 = -50;

K = loc (A, B, [p1 p2 p3]);


sys_cl = ss (AB * K, B, C, 0);

lsim (sys_cl, u, t, x0);


xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )
Din inspecție, putem vedea că depășirea este prea mare (există, de asemenea, zerouri în funcția de transfer care pot
crește depășirea; nu vedeți în mod explicit zerourile din formularea spațiu-stare). Încercați să așezați stâlpii mai spre
stânga pentru a vedea dacă răspunsul tranzitor se îmbunătățește (acest lucru ar trebui să facă și răspunsul mai rapid).

p1 = -20 + 20i;
p2 = -20 - 20i;
p3 = -100;

K = loc (A, B, [p1 p2 p3]);


sys_cl = ss (AB * K, B, C, 0);

lsim (sys_cl, u, t, x0);


xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )

De data aceasta depășirea este mai mică. Consultați manualul dvs. pentru sugestii suplimentare cu privire la alegerea
stâlpilor cu buclă închisă dorită.
Comparați efortul de control necesar ( ) în ambele cazuri. În general, cu cât deplasați mai mult stâlpii spre stânga, este
necesar un efort de control mai mare.
Notă: Dacă doriți să plasați doi sau mai mulți poli în aceeași poziție, locul nu va funcționa. Puteți utiliza o funcție
numită acker care atinge același obiectiv (dar poate fi mai puțin condiționată din punct de vedere numeric):
K = acker (A, B, [p1 p2 p3])
Introducerea intrării de referință
Acum, vom lua sistemul de control așa cum este definit mai sus și vom aplica o intrare de pas (alegem o valoare mică
pentru pas, deci rămânem în regiunea în care linearizarea noastră este
valabilă). Înlocuiți t , u și lsim în fișierul dvs. m cu următoarele:
t = 0: 0,01: 2;
u = 0,001 * cele (mărimea (t));

sys_cl = ss (AB * K, B, C, 0);

lsim (sys_cl, u, t);


xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )
axa ([0 2 -4E-6 0])

Sistemul nu urmărește deloc bine pasul; nu numai că amploarea nu este una, dar este negativă în loc de pozitivă!
Reamintim schema de mai sus, nu comparăm ieșirea cu referința; în schimb, măsurăm toate stările, înmulțim cu vectorul
câștig și apoi scădem acest rezultat din referință. Nu există niciun motiv să ne așteptăm ca acesta să fie egal cu
producția dorită. Pentru a elimina această problemă, putem scala intrarea de referință pentru a o face egală cu cea
în stare constantă. Factorul de scară este prezentat în următoarea schemă:

Putem calcula în MATLAB folosind funcția rscale (așezați următoarea linie de cod după K = ...).

Nbar = rscale (sys, K)

Nbar =
-285.7143
Rețineți că această funcție nu este standard în MATLAB. Va trebui să îl descărcați aici, rscale.m și să îl salvați în spațiul
de lucru curent. Acum, dacă dorim să găsim răspunsul sistemului sub feedbackul de la stat, cu această scalare a
referinței, observăm pur și simplu faptul că intrarea este înmulțită cu acest nou factor :

lsim (sys_cl, nbar * u, t)


title ( „Rezultate de simulare liniară (cu Nbar)” )
xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )
axa ([0 2 0 1,2 * 10 ^ -3])
și acum un pas poate fi urmărit rezonabil de bine. Notă, calculul factorului de scalare necesită o bună cunoaștere a
sistemului. Dacă modelul nostru este în eroare, atunci vom scala intrarea pe o sumă incorectă. O alternativă, similară cu
cea introdusă cu controlul PID, este adăugarea unei variabile de stare pentru integrala erorii de ieșire. Acest lucru are
efectul de a adăuga un termen integral controlerului nostru, care este cunoscut pentru a reduce erorile în stare
constantă.
Proiectare observator
Când nu putem măsura toate variabilele de stare (adesea cazul în practică), putem construi un observator care să le
estimeze, măsurând doar ieșirea . Pentru exemplul cu bilă magnetică, vom adăuga trei noi variabile de stat
estimate ( ) la sistem. Schema este următoarea:

Observatorul este practic o copie a plantei; are aceeași intrare și aproape aceeași ecuație diferențială. Un termen
suplimentar compară producția măsurată reală cu producția estimată ; acest lucru va ajuta la corectarea stării
estimate și va determina abordarea valorilor stării reale (dacă măsurarea are o eroare minimă).
(13)
(14)
Dinamica de eroare a observatorului este dată de poli .
(15)
În primul rând, trebuie să alegem câștigul observatorului . Întrucât dorim ca dinamica observatorului să fie mult mai
rapidă decât sistemul în sine, trebuie să plasăm poli de cel puțin cinci ori mai mult spre stânga decât poli dominanți ai
sistemului. Dacă dorim să folosim locul , trebuie să punem cei trei poli de observare în locații diferite.
op1 = -100;
op2 = -101;
op3 = -102;

Datorită dualității dintre controlabilitate și observabilitate, putem utiliza aceeași tehnică folosită pentru a găsi matricea de
control înlocuind matricea cu matricea și luând transpunerea fiecărei matrice:

L = loc (A ', C', [op1 op2 op3]) ';

Ecuațiile din diagrama bloc de mai sus sunt date pentru estimare . Este convențional să scrie ecuațiile combinate
pentru sistemul plus observatorul folosind ecuațiile de stat originale plus eroarea de estimare: . Utilizăm
starea estimată pentru feedback , deoarece nu toate variabilele de stare sunt neapărat măsurate. După un
pic de algebră (consultați manualul pentru mai multe detalii), ajungem la ecuațiile de stare și eroare combinate pentru
feedback-ul complet cu un observator.

At = [AB * KB * K
zerouri (mărime (A)) AL * C];

Bt = [B * Nbar
zerouri (mărime (B))];

Ct = [C zerouri (mărime (C))];

Pentru a vedea cum apare răspunsul la o condiție inițială diferită de zero fără o intrare de referință, adăugați următoarele
linii în fișierul dvs. m . Aici vom presupune că observatorul începe cu o estimare inițială egală cu zero, astfel încât
eroarea de estimare inițială este egală cu vectorul de stare inițial ,.

sys = ss (At, Bt, Ct, 0);


lsim (sys, zerouri (size (t)), t, [x0 x0]);

title ( „Rezultate de simulare liniară (cu observator)” )


xlabel ( 'Ora (sec)' )
ylabel ( „Poziția bilei (m)” )

Răspunsurile tuturor variabilelor de stare sunt prezentate mai jos. Reamintim că ne oferă lsim și ; pentru a obține ,
trebuie să calculăm .

t = 0: 1E-6: 0,1;
x0 = [0,01 0,5 -5];
[y, t, x] = lsim (sys, zerouri (mărimea (t)), t, [x0 x0]);

n = 3;
e = x (:, n + 1: sfârșit);
x = x (:, 1: n);
x_est = x - e;
% Salvați variabilele de stat în mod explicit pentru a ajuta la complot
h = x (:, 1); h_dot = x (:, 2); i = x (:, 3);
h_est = x_est (:, 1); h_dot_est = x_est (:, 2); i_est = x_est (:, 3);

complot (t, h, '-r' , t, h_est, ': r' , t, h_dot, '-b' , t, h_dot_est, ': b' , t, i, '-g'
, t, i_est , ': g' )
legenda ( 'h' , 'h_ {est}' , 'hdot' , 'hdot_ {est}' , 'i' , 'i_ {est}' )
xlabel ( 'Ora (sec)' )

Din cele de mai sus, putem observa că estimările observatorului converg rapid la variabilele reale de stare și urmează
bine variabilele de stare în stare constantă.

Introducere: Proiectare digitală a controlerului

În această secțiune, vom discuta despre convertirea modelelor în timp continuu în modele cu timp discret (sau ecuație
de diferență). Vom introduce, de asemenea, transformarea z și vom arăta cum să o utilizăm pentru a analiza și proiecta
controlerele pentru sisteme cu timp discret.
Comenzile cheie MATLAB utilizate în acest tutorial sunt: c2d , pzmap , zgrid , step , rlocus
cuprins
 Introducere
 Echivalență zero
 Conversie folosind c2d
 Exemplu: Amortizor-masă-primăvară
 Stabilitate și răspuns tranzitoriu
 Locus rădăcină discret
Introducere
Figura de mai jos arată sistemul tipic de feedback continuu pe care l-am avut în vedere până acum în acest
tutorial. Aproape toate regulatoarele cu timp continuu pot fi implementate folosind electronice analogice.

Regulatorul continuu, închis în dreptunghiul umbrit, poate fi înlocuit cu un controler digital, prezentat mai jos, care
îndeplinește aceeași sarcină de control ca și controlerul continuu. Diferența de bază între aceste controlere este că
sistemul digital funcționează pe semnale discrete (mostre ale semnalelor sesizate) și nu pe semnale continue. O astfel
de modificare poate fi necesară dacă dorim să implementăm algoritmul nostru de control în software pe un computer
digital, care este în mod frecvent cazul.

Diferitele semnale ale schematicii sistemului digital de mai sus pot fi reprezentate de următoarele comploturi.

Scopul acestui tutorial digital de control este de a demonstra modul de utilizare a MATLAB pentru a lucra cu funcții
discrete, fie în funcție de transfer, fie în formă de spațiu de stat, pentru a proiecta sisteme de control digital.
Echivalență zero
În schema de mai sus a sistemului de control digital, vedem că sistemul conține atât porți discrete cât și continue. De
obicei, sistemul controlat se află în lumea fizică și generează și răspunde la semnale în timp continuu, în timp ce
algoritmul de control poate fi implementat pe un computer digital. Atunci când proiectăm un sistem de control digital,
trebuie mai întâi să găsim echivalentul discret al porțiunii continue a sistemului.
Pentru această tehnică, vom lua în considerare următoarea porțiune a sistemului de control digital și rearanja după cum
urmează.
Ceasul conectat la D / A și A / D convertoare consumabile un impuls la fiecare secunde si fiecare D / A și A / D
trimite un semnal numai atunci când sosește pulsul. Scopul de a avea acest impuls este de a cere că
acționează numai pe probe de intrare periodică și produce ieșiri periodice numai la intervale de timp
discrete; astfel, poate fi realizat ca o funcție discretă.
Filosofia designului este următoarea. Vrem să găsim o funcție discretă, astfel încât pentru o intrare constantă
bucată în sistemul continuu , ieșirea eșantionată a sistemului continuu să fie egală cu ieșirea discretă. Să
presupunem că semnalul reprezintă un eșantion al semnalului de intrare. Există tehnici pentru prelevarea acestui
eșantion și pentru menținerea acestuia pentru a produce un semnal continuu . Schița de mai jos arată un
exemplu în care semnalul continuu este menținut constant la fiecare probă pe intervalul de la
. Această operație de menținere constantă pe perioada eșantionului se numește reținere de ordin zero .

Semnalul reținut este apoi transmis și A / D produce ieșirea care va fi același semnal pe bucată ca și
cum semnalul discret ar fi fost trecut pentru a produce ieșirea discretă .

Acum vom reproiecta schema, înlocuind porțiunea continuă a sistemului cu .


Acum putem proiecta un sistem de control digital care se ocupă doar de funcții discrete.
Notă: Există anumite cazuri în care răspunsul discret nu se potrivește cu răspunsul continuu generat de un circuit de
reținere implementat într-un sistem de control digital. Pentru mai multe informații, consultați pagina Efectul de luare
asociat cu o reținere .
Conversie folosind c2d
Există o funcție MATLAB c2d care transformă un anumit sistem continuu (fie în funcție de transfer, fie în formă de spațiu
de stare) într-un sistem discret folosind operația de reținere a ordinii zero explicată mai sus. Sintaxa de bază pentru
aceasta în MATLAB este sys_d = c2d (sys, Ts, 'zoh')
Timpul de prelevare ( Ts în sec / eșantion) ar trebui să fie mai mic decât 1 / (30BW), unde BW este frecvența de lățime
de bandă a sistemului cu buclă închisă.
Exemplu: Amortizor-masă-primăvară
Funcție de transfer
Să presupunem că aveți următorul model de funcție de transfer continuu:

(1)
Presupunând că frecvența lățimii de bandă cu buclă închisă este mai mare de 1 rad / sec, vom alege timpul de
eșantionare ( Ts ) egal cu 1/100 sec. Acum, creați un nou fișier m și introduceți următoarele comenzi.

m = 1;
b = 10;
k = 20;

s = tf ( 's' );
sys = 1 / (m * s ^ 2 + b * s + k);

Ts = 1/100;
sys_d = c2d (sys, Ts, 'zoh' )

sys_d =

4.837e-05 z + 4.678e-05
-----------------------
z ^ 2 - 1,903 z + 0,9048

Timp de probă: 0,01 secunde


Funcție de transfer în timp discret.

Spațiu de stat-
Un model de spațiu de stat continuu al acestui sistem este următorul:

(2)

(3)
Toate constantele sunt la fel ca înainte. Următorul fișier m convertește modelul de spațiu de stat continuu de mai sus
într-un model de spațiu de timp discret.

A = [0 1;
-k / m -b / m];

B = [0;
1 / m];

C = [1 0];
D = [0];

Ts = 1/100;

sys = ss (A, B, C, D);


sys_d = c2d (sys, Ts, 'zoh' )

sys_d =

A =
x1 x2
x1 0.999 0.009513
x2 -0.1903 0.9039

B =
u1
x1 4.837e-05
x2 0,009513

C =
x1 x2
y1 1 0

D =
u1
y1 0

Timp de probă: 0,01 secunde


Model de spațiu discret în timp discret.

Din aceste matrice, spațiul discret de stare poate fi scris ca

(4)

(5)
Acum avem modelul de spațiu discret de timp discret.
Stabilitate și răspuns tranzitoriu
Pentru sistemele continue, știm că anumite comportamente rezultă din diferite locații ale polului din planul s. De
exemplu, un sistem este instabil atunci când orice pol este situat în dreapta axei imaginare. Pentru sisteme discrete,
putem analiza comportamentele sistemului din diferite locații pol din planul z. Caracteristicile din planul z pot fi corelate
cu cele din planul s prin următoarea expresie.
(6)
 T = timpul de prelevare (sec / eșantion)
 s = locația în planul s
 z = locația în planul z
Figura de mai jos arată cartografierea liniilor cu raportul de amortizare constant ( ) și frecvența naturală ( ) de la
planul s la planul z folosind expresia prezentată mai sus.
Poate ați observat că în planul z limita de stabilitate nu mai este axa imaginară, ci mai degrabă este cercul razei unul
centrat la origine, | z | = 1, denumit cerc de unitate . Un sistem discret este stabil când toți poli sunt situați în interiorul
cercului unitar și instabili atunci când orice pol este situat în afara cercului.
Pentru analiza răspunsului tranzitoriu din locațiile pol din planul z, următoarele trei ecuații utilizate în proiectările continue
ale sistemului sunt încă aplicabile.

(7)

(8)

(9)
Unde,
 = raportul de amortizare
 = frecvență naturală (rad / sec)
 = 1% timp de decontare
 = 10-90% timp de creștere
 = depășire maximă
Important : Frecvența naturală ( ) în planul z are unități de rad / probă, dar atunci când utilizați ecuațiile prezentate
mai sus, trebuie să fie reprezentată în unități de rad / sec.
Să presupunem că avem următoarea funcție de transfer discret

(10)
Creați un nou fișier m și introduceți următoarele comenzi. Rularea acestui fișier m în fereastra de comandă vă oferă
următoarea diagramă cu liniile de raport de amortizare constantă și frecvență naturală.

numDz = 1;
denDz = [1 -0,3 0,5];
sys = tf (numDz, denDz, -1); % -1 indica faptul ca timpul probei nu este determinat

pzmap (sys)
axa ([- 1 1 -1 1])
zgrid
Din acest complot, vedem că poli sunt situați aproximativ la o frecvență naturală de (rad / probă) și un raport de
amortizare de 0,25. Presupunând că avem un timp de eșantionare de 1/20 sec (ceea ce duce la = 28,2 rad / sec) și
folosind cele trei ecuații prezentate mai sus, putem determina că acest sistem ar trebui să aibă un timp de creștere de
0,06 sec, un timp de decantare de 0,65 sec, și o depășire maximă de procente de 45% (de 0,45 ori mai mult decât
valoarea de echilibru). Să obținem răspunsul pas și să vedem dacă acestea sunt corecte. Adăugați următoarele comenzi
la fișierul m de mai sus și rulați-l în fereastra de comandă. Ar trebui să obțineți următorul răspuns în pas.

sys = tf (numDz, denDz, 1/20);


pas (sys, 2.5);
După cum se poate observa din complot, timpul de creștere, timpul de decontare și depășirea au ieșit a fi ceea ce ne
așteptam. Acest lucru demonstrează modul în care putem folosi locațiile poli și cele trei ecuații de mai sus pentru a
analiza răspunsul tranzitoriu al unui sistem discret.
Locus rădăcină discret
Rădăcina-locus este locusul punctelor în care rădăcinile ecuației caracteristice pot fi găsite, deoarece un singur
parametru este variat de la zero la infinit. Ecuația caracteristică a sistemului nostru de feedback-unitate cu câștig
proporțional simplu , este:
(11)
unde se află controlerul digital și este funcția de transfer a instalației în domeniul z (obținută prin
implementarea unei reținere de ordine zero).
Mecanica desenării rădăcinilor-loci este exact aceeași în planul z ca în planul s. Reamintim din tutorialul Root-
Locus continuu , am folosit funcția MATLAB sgrid pentru a găsi regiunea root-locus care dă un câștig acceptabil (
). Pentru analiza discreta root-locus, vom folosi funcția zgrid , care are aceeași funcție ca sgrid. Sintaxa zgrid (zeta,
Wn) trasează linii cu raportul de amortizare constant (zeta) și frecvența naturală (Wn).
Să presupunem că avem următoarea funcție de transfer discret

(12)
iar cerințele sunt un raport de amortizare mai mare de 0,6 și o frecvență naturală mai mare de 0,4 rad / probă (acestea
pot fi găsite din cerințele de proiectare, perioada de prelevare (sec / eșantion) și cele trei ecuații prezentate în secțiunea
anterioară). Următoarele comenzi desenează rădăcina-locus cu liniile de raport de amortizare constantă și frecvență
naturală. Creați un nou fișier m și introduceți următoarele comenzi. Rularea acestui fișier m ar trebui să genereze
următorul complot root-locus.

numDz = [1 -0,3];
denDz = [1 -1,6 0,7];
sys = tf (numDz, denDz, -1);

rlocus (sys)
axa ([- 1 1 -1 1])

zeta = 0,4;
Wn = 0,3;
zgrid (zeta, Wn)

Din această diagramă, putem vedea că sistemul este stabil pentru unele valori, deoarece există porțiuni de locusul
rădăcină unde ambele ramuri sunt situate în interiorul cercului unitar. De asemenea, putem observa două linii punctate
care reprezintă raportul de amortizare constant și frecvența naturală. Frecvența naturală este mai mare de 0,3 în afara
liniei constante-Wn, iar raportul de amortizare este mai mare de 0,4 în interiorul liniei zeta constantă. În acest exemplu,
porțiuni de rădăcină-locus generate sunt în regiunea dorită. Prin urmare, un câștig ( ) ales pentru a plasa cei doi poli
cu buclă închisă pe loci în regiunea dorită ar trebui să ne ofere un răspuns care să satisfacă cerințele de proiectare date.

S-ar putea să vă placă și