Neurocontrol ( ing. Neurocontrol ) este un caz special de control inteligent care folosește rețele neuronale artificiale pentru a rezolva problemele de control al obiectelor dinamice. Neurocontrolul se află la intersecția unor discipline precum inteligența artificială , neurofiziologia , teoria controlului automat , robotica . Rețele neuronaleau o serie de proprietăți unice care le fac un instrument puternic pentru crearea sistemelor de control: capacitatea de a învăța din exemple și de a generaliza datele, capacitatea de a se adapta la schimbările în proprietățile obiectului de control și ale mediului, adecvarea pentru sinteza neliniare. controlere, rezistență ridicată la deteriorarea elementelor lor datorită inerente inițiale arhitecturii rețelei neuronale a paralelismului. Termenul „neurofeedback” a fost folosit pentru prima dată de unul dintre autorii metodei de backpropagation, Paul J. Verbos, în 1976 [1] [2] . Există numeroase exemple de aplicare practică a rețelelor neuronale pentru rezolvarea problemelor de control a unei aeronave [3] [4] , a unui elicopter [5] , a unei mașini robotizate [6] , a turației axului motorului [7] , a unui motor de mașină hibrid [8] , un cuptor electric [9] , turbogenerator [10] , aparat de sudura [11] , cilindru pneumatic [12] , sistem de control al armamentului pentru vehicule usor blindate [13] , model cu pendul inversat [14] .
În funcție de modul în care sunt utilizate rețelele neuronale, metodele de neurocontrol sunt împărțite în directe și indirecte . În metodele directe , rețeaua neuronală este antrenată să genereze direct acțiuni de control asupra obiectului, în metodele indirecte , rețeaua neuronală este antrenată să îndeplinească funcții auxiliare: identificarea obiectului de control , suprimarea zgomotului , reglarea operațională a coeficienților controlerului PID . În funcție de numărul de rețele neuronale care alcătuiesc neurocontrolerul, sistemele de neurocontrol sunt împărțite în modul unic și multimodule . Sistemele de neurocontrol care sunt utilizate împreună cu regulatoarele tradiționale sunt numite hibride .
În domeniul controlului, sistemele neuronale artificiale (ANS) sunt utilizate în sarcinile de identificare a obiectelor, în algoritmi de predicție și diagnosticare, precum și pentru sinteza sistemelor optime de control automat (ACS) . Pentru a implementa ACP bazat pe ANN, producția de neurocipuri și neurocontrolere (NC) este în prezent dezvoltată intens .
Într-un anumit sens, ANN-ul este un imitator al creierului, care are capacitatea de a învăța și de a naviga în condiții de incertitudine. O rețea neuronală artificială este similară cu creierul în două aspecte. Rețeaua dobândește cunoștințe în procesul de învățare, iar pentru a stoca cunoștințe, folosește nu obiectele în sine, ci conexiunile acestora - valorile coeficienților conexiunilor interneuronale, numite greutăți sinaptice sau coeficienți sinaptici [15] .
În sarcinile de neurocontrol, un model cutie neagră este utilizat pentru a reprezenta obiectul de control, în care valorile curente de intrare și ieșire sunt observabile. Starea obiectului este considerată inaccesibilă pentru observația externă, deși dimensiunea vectorului de stare este de obicei considerată fixă. Dinamica comportamentului obiectului de control poate fi reprezentată într-o formă discretă:
unde: este starea obiectului de control al comenzii pe ciclu ; este valoarea vectorului de control -dimensional pe ciclu , este valoarea ieșirii -dimensionale a obiectului de control pe ciclu .
Pentru a estima starea curentă a obiectului de control , poate fi utilizat modelul NARX, care constă din pozițiile anterioare ale obiectului și semnalele de control întârziate :
Vectorul de estimare a stării poate fi reprezentat și fără utilizarea semnalelor întârziate:
De asemenea, este posibil să se reprezinte starea unui obiect ca un instantaneu al traiectoriei sale de fază:
Neurocontrol imitativ [16] [17] [18] (Învățare Neurocontrol bazată pe imitație, modelare controler, învățare supravegheată folosind un controler existent) acoperă sisteme de neurocontrol în care neurocontrolerul este antrenat pe exemple de dinamică a unui controler de feedback convențional construit, pentru de exemplu, pe baza schemei convenționale de control PID . După antrenament, rețeaua neuronală reproduce exact funcțiile controlerului original. Înregistrarea comportamentului unui operator uman poate fi folosită ca exemple de dinamică a controlerului. Un controler de feedback convențional (sau un operator uman) controlează obiectul de control în modul normal. Se înregistrează valorile la intrarea și la ieșirea controlerului și, pe baza protocolului, se formează un eșantion de antrenament pentru rețeaua neuronală, care conține perechi de valori de intrare și reacții așteptate ale rețelei neuronale:
După antrenament cu, de exemplu , backpropagation , rețeaua neuronală este conectată în locul controlerului original. Neurocontrolerul rezultat poate înlocui o persoană în gestionarea dispozitivului și, de asemenea, poate fi mai rentabil decât controlerul original.
În schema de neurocontrol invers generalizat (neurocontrol invers direct, control invers adaptiv) [19] [20] , un model neuronal de dinamică inversă a obiectului de control, numit neuroemulator invers, este utilizat ca controler . Un neuroemulator invers este o rețea neuronală antrenată offline pentru a simula dinamica inversă a unui obiect de control pe baza traiectoriilor înregistrate ale comportamentului unui obiect dinamic. Pentru a obține astfel de traiectorii, un proces aleatoriu este transmis obiectului de control ca semnal de control. Se înregistrează valorile semnalelor de control și răspunsurile obiectului și, pe această bază, se formează un eșantion de antrenament :
În timpul antrenamentului, rețeaua neuronală trebuie să prindă și să-și amintească dependența valorilor semnalului de control de valoarea ulterioară a reacției obiectului de control , care a fost anterior în stare . La controlul unui obiect, un neuroemulator invers este conectat ca controler, în timp ce primește la intrare valorile punctului de referință (o anumită valoare sau parametru, la atingerea căruia se schimbă starea sistemului) și starea obiectului de control care trece prin canalul de feedback :
Se presupune că modelul invers al obiectului de control format în timpul antrenamentului este adecvat, prin urmare, semnalul de control emis de rețeaua neuronală va asigura trecerea obiectului în poziția specificată de setare.
Neurocontrolul invers specializat [19] [20] folosește metoda de antrenare online a neurocontrolerului folosind eroarea curentă a abaterii poziției obiectului de la punctul de referință . Schema de conectare a neurocontrolerului este aceeași ca și în metoda de neurocontrol invers generalizat . Vectorul este alimentat la intrarea rețelei :
Rețeaua neuronală generează un vector de control care mută obiectul de control în poziție . În continuare, se calculează eroarea curentă a neurocontrolerului
Se calculează gradientul modificării greutății
Apoi, greutățile neurocontrollerului sunt corectate folosind metoda de coborâre cea mai abruptă sau altă metodă de gradient .
Derivata este jacobianul obiectului de control, a cărui valoare este stabilită analitic conform modelului matematic dat al obiectului de control. Cu toate acestea, în practică, pentru a obține o calitate acceptabilă a controlului, este adesea suficient să se calculeze doar semnul jacobianului. Iterațiile de corectare a valorilor coeficienților continuă până când se obține o calitate acceptabilă a controlului.
Propagarea inversă în timp, controlul adaptiv al modelului de referință, metoda de control al modelului intern [8] [21] [22] [23] se bazează pe ideea utilizării unui tandem de două rețele neuronale , dintre care una acționează ca un controler , iar al doilea este modelul obiectului de control , care se numește neuroemulator direct . Neuroemulatorul direct este utilizat pentru a calcula gradientul de eroare al neurocontrolerului în timpul antrenamentului și nu este utilizat în continuare. Se poate spune că neurocontrolerul și neuroemulatorul reprezintă o singură rețea neuronală, iar atunci când neurocontrolerul este antrenat, greutățile neuroemulatorului direct sunt „înghețate”. Neuroemulatorul direct este antrenat mai întâi. Pentru a face acest lucru, un semnal de control aleator este aplicat la intrarea obiectului de control , schimbând poziția obiectului de control și se formează un eșantion de antrenament :
Antrenamentul neuroemulatorului direct se efectuează offline. Un neuroemulator direct este considerat antrenat dacă, cu aceleași valori la intrările neuroemulatorului și ale obiectului real, diferența dintre valorile ieșirilor lor devine nesemnificativă. După ce antrenamentul neuroemulatorului direct este finalizat, neurocontrolerul este antrenat. Antrenamentul se desfășoară online după aceeași schemă ca și în cazul neurofeedback-ului invers specializat . Mai întâi (pe ciclu ) poziția dorită a obiectului de control pentru următorul ciclu este primită la intrarea neurocontrolerului . Neurocontrolerul generează un semnal de control , care este alimentat la intrările obiectului de control și ale neuroemulatorului. Ca rezultat, obiectul controlat se deplasează în poziția , iar neuroemulatorul generează reacția . În continuare, eroarea de control este calculată și trecută în direcția opusă conform regulii de retropropagare. Coeficienții de greutate ai conexiunilor neuroemulator nu sunt corectați în acest caz. Mecanismul de eroare inversă care trece prin neuroemulator direct implementează un model invers local în punctul curent din spațiul de stare al obiectului de control. După trecerea prin neuroemulator, eroarea se propagă în continuare prin neurocontroler, dar acum trecerea sa este însoțită de o corecție a coeficienților de greutate ai neurocontrollerului. În acest caz, neuroemulatorul direct îndeplinește funcțiile straturilor suplimentare ale rețelei neuronale a neurocontrolerului, în care greutățile conexiunii nu sunt corectate.
Metoda de neurocontrol cu un model de referință (model de control adaptiv de referință, control adaptiv neural) [23] [24] [25] este o variantă de neurocontrol prin metoda de salt invers al erorii printr-un neuroemulator direct cu un model de referință suplimentar (de referință). model) al unui sistem dinamic încorporat în circuit, pentru a simula comportamentul căruia este antrenat de neurocontroler. Acest lucru se face pentru a îmbunătăți calitatea procesului de tranziție: în cazul în care tranziția obiectului la poziția țintă într-un ciclu este imposibilă, traiectoria mișcării și timpul procesului de tranziție devin valori slab previzibile și poate duce la instabilitatea procesului de tranziție. Pentru a reduce această incertitudine, se introduce un model de referință, care, de regulă, este un sistem dinamic liniar stabil de ordinul întâi sau al doilea. În cursul antrenamentului, modelul de referință primește un punct de referință la intrare și generează o traiectorie de referință , care este comparată cu poziția obiectului de control pentru a obține o eroare de control , pentru a minimiza care este antrenat neurocontrolerul.
Metoda de filtrare a rețelei neuronale a perturbațiilor externe (control invers adaptiv bazat pe filtrare adaptivă liniară și neliniară, control model intern) [26] servește la îmbunătățirea calității controlerului în circuitul de control. Inițial, această schemă a fost propusă de B. Widrow pentru utilizare împreună cu neurocontrolere antrenate prin metoda neurocontrolului invers generalizat [27] . Într-o lucrare ulterioară [28] , el a folosit neurocontrolere antrenate prin metoda propagării înapoi a erorii printr-un neuroemulator direct . În principiu, filtrarea erorilor de rețea neuronală poate fi utilizată pentru a îmbunătăți performanța oricărui tip de controler, nu neapărat unul de rețea neuronală . Această schemă folosește două rețele neuronale preantrenate: un neuroemulator invers antrenat în același mod în care se face în metoda de neurocontrol invers generalizat și un neuroemulator direct antrenat în același mod în care se face în metoda de backpropagation printr-un neuroemulator direct . Lăsați semnalul de control să ajungă la obiectul de control , care este rezultatul însumării semnalului controlerului și al semnalului corector al sistemului extern de filtrare a perturbațiilor , calculat la pasul anterior. Semnalul este trimis către neuroemulatorul direct al obiectului de control, iar reacția neuroemulatorului direct este comparată cu starea reală a sistemului . Diferența dintre aceste valori este interpretată ca o abatere nedorită a sistemului cauzată de o perturbare externă. Pentru a suprima efectul nedorit, semnalul este trimis neuroemulatorului invers, care calculează semnalul corector pentru a corecta semnalul de control al neurocontrolerului la următorul ciclu.
Pentru a utiliza această metodă, obiectul de control trebuie să aibă dinamică reversibilă și este, de asemenea, necesar să existe un model matematic sau de simulare adecvat al obiectului de control pentru antrenarea neuroemulatorilor direcți și inversi.
Neurocontrolul modelului predictiv (controlul predictiv NN, controlul predictiv model, controlul predictiv generalizat neuronal) [29] [30] minimizează costul erorii integrale funcționale , prezise pentru , cicluri înainte:
Aici , este eroarea de ieșire a sistemului, este contribuția modificării semnalului de control la costul funcțional general . Pentru a prezice comportamentul viitor al sistemului și a calcula erorile, se folosește un neuroemulator direct, antrenat în același mod ca și în metoda de retropropagare a erorilor printr-un neuroemulator direct . Particularitatea metodei luate în considerare este că nu are un neurocontroler antrenabil. Locul lui este luat de un modul de optimizare în timp real , în care, de exemplu, poate fi utilizată metoda simplex [31] sau algoritmul cvasi-newtonian [32] .
Modulul de optimizare primește traiectoria țintă pentru ciclurile înainte pe un ciclu, iar dacă nu este acolo, atunci dublează valoarea punctului de referință curent și o folosește ca traiectorie țintă. În plus, pentru a selecta acțiunea optimă de control, calculele au loc în bucla interioară a sistemului de neurocontrol (iterațiile sale sunt notate ca ). În timpul unui ciclu de control, modulul de optimizare alimentează o serie de acțiuni diferite la intrarea neuroemulatorului , unde este adâncimea de predicție , primește diferite opțiuni pentru comportamentul sistemului, calculează funcția de cost pentru acestea și determină cea mai bună strategie de control . Ca rezultat, un semnal de control este aplicat obiectului . În următorul ciclu, strategia este recalculată.
Metodele de neurofeedback bazate pe critici adaptive , cunoscute și sub denumirea de programare dinamică aproximativă ( ADP ) , au fost foarte populare în ultimii ani [33] [34] [35] [36] . Sistemele de critică adaptivă aleg un semnal de control bazat pe minimizarea funcționalității estimărilor viitoare de eroare cu un orizont infinit:
Aici este factorul de uitare, , este abaterea traiectoriei obiectului de control de la valoarea de referință, calculată la fiecare ciclu al sistemului. Sistemul include două module neuronale: un neurocontroler și un modul de critică ( critic ). Modulul de critică realizează o aproximare a valorilor costului funcțional , neurocontrolerul este antrenat pentru a minimiza costul funcțional .
În modul de control al obiectului, intrarea neurocontrolerului primește un vector care provoacă apariția unui semnal de control la ieșirea sa , în urma căruia obiectul de control se deplasează în poziția . În continuare, se calculează valoarea erorii de control curent . Modulul de critică, primind un vector ca intrare , evaluează funcția de cost . La următorul ciclu, procesul se repetă: valori noi și sunt calculate . Antrenarea sistemului de neurocontrol se desfășoară online și constă în două etape: antrenamentul modulului de critică și antrenamentul neurocontrolerului. În primul rând, se calculează eroarea de diferență de timp . Apoi, conform metodei celei mai abrupte coborâri , greutatea legăturilor pentru modulul de critică este corectată :
Valoarea gradientului este calculată folosind metoda de retropropagare . Corectarea greutății conexiunilor neurocontrolerului se realizează în același mod:
Valoarea derivată este găsită prin propagarea inversă a valorii prin modulul de critică, iar valoarea gradientului este găsită prin propagarea inversă a erorii prin modulul controler. Corecția greutății continuă până când sistemul atinge nivelul necesar de calitate a controlului. Astfel, la fiecare pas, legea controlului este îmbunătățită prin antrenamentul neurocontrolerului (iterație pe strategii, iterație politică), iar capacitatea sistemului de a evalua situația este sporită și prin antrenamentul criticului (iterație după valori, iterare a valorii). Schema specifică pentru construirea unui sistem de critică adaptivă poate diferi de cea descrisă mai sus , care se numește programare dinamică euristică ( HDP ) . În metoda de programare euristică duală ( DHP ) , modulul critic calculează derivata funcționalului de cost global , iar în metoda de programare euristică duală globală ( GHDP ) , atât funcționala de cost în sine, cât și derivata sa sunt calculate de către critic . Sunt cunoscute modificări ale metodei, în care modulul de critică ia decizii exclusiv pe baza unui semnal de control. Abrevierile lor în limba engleză au prefixul AD ( dependent de acțiune ): ADHDP , ADDHP , ADGDHP . În unele versiuni ale criticii adaptive, modulul de critică constă din două părți: modulul de critică în sine și neuroemulatorul direct. Acesta din urmă oferă predicții ale comportamentului obiectului de control, pe baza cărora criticul formează o estimare a funcției de cost . Astfel de versiuni se numesc bazate pe model .
Controlul neuro-PID hibrid (auto-tuning NNPID, auto-tuning PID neuromorf) [37] [38] permite auto-ajustarea online a controlerului PID folosind rețele neuronale . Controlerul PID este reglat online, în funcție de eroarea curentă de control . Pe un ciclu , rețeaua neuronală primește valoarea de referință și generează coeficienții de control al controlerului PID (proporțional), (integral), (diferențial), care sunt alimentați controlerului PID împreună cu valoarea erorii de feedback curent . În timpul funcționării, controlerul PID calculează semnalul de control curent conform formulei recursive:
folosit pentru controlere PID discrete și îl alimentează obiectului de control.
Rețeaua neuronală este antrenată în timp real prin eroare de feedback, folosind cea mai abruptă metodă de coborâre .
Aici , este vectorul de ieșire al rețelei neuronale alimentat controlerului PID.
Gradienții sunt calculati folosind metoda de retropropagare . Jacobianul obiectului de control, indiferent dacă semnul acestuia este găsit analitic, pe baza modelului matematic al obiectului de control.
Metodele de neurocontrol hibrid paralel (neurocontrol paralel, control adaptiv direct stabil, control aditiv feedforward) [26] [29] prevăd utilizarea în paralel a neurocontrolerelor și controlerelor convenționale pentru a controla obiectele dinamice. În acest caz, neurocontrolerul și controlerul convențional, care este, de exemplu, controlerul PID , primesc aceleași valori de referință. Sunt posibile următoarele opțiuni pentru conectarea în comun a unui controler convențional și a unui neurocontroler:
În acest caz, un controler convențional este calculat pentru a controla un obiect în afara acestei regiuni a spațiului de stare. Când ambele controlere funcționează în paralel, semnalul de control ajunge la obiect fie de la neurocontroler, dacă starea curentă a sistemului este în regiunea , fie, în caz contrar, de la un controler convențional. Neurocontrolul hibrid paralel reprezintă o soluție de compromis pentru introducerea neurocontrolului în industrie și tranziția de la controlere convenționale la rețele neuronale.