Ce sunt strategii bune pentru reglarea buclelor PID?

Voi încerca să dezvolt puțin din experiența mea pentru cei care ar putea fi interesați. Cred că problema este că avem o mulțime de teorie de control care este oarecum inaccesibilă (și uneori nu este utilă) și apoi avem reguli empirice care fac presupuneri despre sisteme care sunt adesea inexacte.

Stabilitate

Să vorbim mai întâi despre motivul pentru care buclele de control devin instabile. Pentru această discuție voi presupune un sistem liniar. În mod informal, acest lucru înseamnă că dacă semnalul de control este o undă sinusoidală la o anumită frecvență, atunci ieșirea observată este la aceeași frecvență și dacă modificați amplitudinea sistemului de control, ieșirea răspunde la același raport. Această ipoteză este o bună aproximare pentru multe sisteme din lumea reală și ne permite să analizăm diferite frecvențe în mod izolat.

Dacă vă uitați la calea de control, aveți un punct de setare, controlerul PID, sistemul dumneavoastră (cunoscut și ca „Instalație”) și apoi senzorul dumneavoastră. Imaginați-vă un punct de setare fix și o undă sinusoidală de la senzorul dvs. (aceasta este egală cu o perturbație din lumea reală la nivelul senzorului, realimentată). Într-un sistem instabil, feedback-ul dvs. face ca bucla de control să amplifice eroarea în loc să o reducă, astfel încât, pe măsură ce timpul crește, amplitudinea crește. Motivul pentru care se întâmplă acest lucru se datorează unei întârzieri sau, pentru această frecvență specifică, unei defazaje între intrare și ieșire. Pentru o anumită frecvență, ne putem uita la această deplasare în buclă deschisă (adică fără reacție) și la amplitudinea ieșirii, iar când desenăm toate acestea pe un grafic, obținem ceva de genul unui grafic Bode. Dacă avem o situație în acest grafic al buclei deschise în care eroarea continuă să se amplifice, atunci avem un sistem instabil. Dacă întârzierea este mai mică de 1/2 din lungimea de undă sau dacă câștigul este mai mic de x1, sistemul va fi stabil. În practică, ne dorim o anumită marjă față de acel punct (marja de câștig și marja de fază), motiv pentru care veți vedea acest „backing off” în multe dintre metodele manuale/heuristice.

Principala problemă cu aceste metode manuale este că zburați orbește și este aproape garantat că veți obține un sistem de control slab.

Rețineți, de asemenea, că semnificația P, I și D este legată de ceea ce măsoară senzorul dvs. și de controlul pe care îl aplicați. O greșeală frecventă în cazul controlorilor construiți acasă este ca oamenii să creadă că aplică P când de fapt nu o fac. Controlerele de motor au adesea o buclă de poziție, care trece peste o buclă de viteză care trece peste o buclă de cuplu. (O cascadă)

OK, dar cum ne ajută acest lucru?

Primul punct pe care aș dori să îl subliniez este că, dacă vă construiți propriul controler PID, ar trebui să construiți și o modalitate de măsurare a răspunsului în buclă deschisă. Faceți un sweep de frecvență la intrarea în controlerul dvs. și măsurați ieșirea senzorului cu feedback-ul deconectat. Apoi puteți trasa graficul Bode în buclă deschisă și să vedeți de ce sistemul dvs. este stabil și să puteți face schimburi între diferitele controale. De asemenea, este util să măsurați răspunsul în buclă închisă și puteți face acest lucru cu orice sistem, efectuând o scanare de frecvență a punctului de reglare în timp ce bucla este închisă. Ambele nu sunt atât de dificile și nu necesită multe cunoștințe teoretice.

Dacă pur și simplu modificați comenzile fără să înțelegeți ce se întâmplă sub capotă, nu veți putea să vă optimizați sistemul. Construirea unor intuiții despre aceste sisteme nu este atât de greu. De exemplu, câștigul proporțional nu are niciun efect asupra fazei, ci crește pur și simplu câștigul în buclă deschisă pe toate frecvențele. Așadar, ceea ce faci atunci când mărești câștigul proporțional în toate aceste metode de reglare manuală este să găsești frecvența la care faza ajunge la -180. Vedeți acest lucru pentru a vă face o idee mai clară despre impactul diferitelor controale asupra răspunsului în frecvență.

Destul de des, obținerea celei mai bune performanțe în buclă închisă implică reglarea sistemului și nu doar a câștigurilor controlorilor. Ceea ce doriți este să faceți sistemul cât mai „rigid” posibil. Acest lucru vă va permite să măriți parametrii de control și să obțineți cea mai bună lățime de bandă în buclă deschisă și închisă. Din experiența mea în aplicațiile de control al motoarelor, câștigul proporțional este cel care ar trebui să facă cea mai mare parte a „muncii”, iar integratorul „restul”. Nu cred că aveți nevoie deloc de un termen D. A avea un filtru low pass și un filtru notch ajută foarte mult în situațiile în care este posibil să aveți o rezonanță mecanică, dar setarea lor fără un grafic Bode este foarte dificilă (frecvența de oscilație pe care o observați în buclă închisă poate fi diferită de cea din buclă deschisă).

Dacă siguranța este o preocupare (motoare foarte puternice sau un sistem care ar putea fi distrus de motorul care scapă de sub control) trebuie să puneți niște limite înainte de a începe reglajul (de exemplu, limita de curent, eroarea maximă de poziție) pentru a proteja sistemul. Apoi, trebuie să obțineți un fel de senzație pentru gama de parametri. Dacă feedback-ul dvs. are 40 de numărători pe rotație sau 4000 de numărători pe rotație, parametrii dvs. vor fi de un factor de 100 pentru un anumit sistem. Abordarea mea ar fi să găsiți mai întâi un interval în care aveți o controlabilitate slabă și apoi să creșteți de acolo începând cu P și apoi I (deși, din nou, zburați în orb). Retragerea creează această marjă de stabilitate.

Peste bucla închisă

Bucla închisă încearcă să elimine eroarea din sistem. Întotdeauna va avea o performanță oarecum limitată. Ceea ce doriți să faceți este să minimizați eroarea pe care o vede controlerul dvs. în buclă închisă și o modalitate de a face acest lucru este printr-o tehnică numită feed forward. În feed-forward se ocolește controlerul și se transmite o comandă direct către sistem. Un exemplu în acest sens ar fi alimentarea cu accelerare. Dacă știți constanta de cuplu a motorului și cunoașteți sarcina, vă puteți da seama cam cât curent trebuie să conduceți pentru a obține o anumită accelerație a sarcinii. Pur și simplu luați accelerația de intrare a comenzii, înmulțiți-o cu o constantă și adăugați-o la comanda de acționare a controlerului. Practic, faci ceea ce ar fi necesar pentru a acționa sistemul dacă nu ar exista un controler și cu cât te apropii mai mult, cu atât mai puține erori trebuie să elimine bucla ta și cu atât mai bine va funcționa sistemul tău. Aceasta face o diferență uriașă în practică.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *