Les xarxes neuronals són una eina molt útil per a regular la temperatura en diferents aplicacions, des de sistemes de climatització fins a processos industrials.
Una xarxa neuronal pot ser entrenada per a aprendre la relació entre les variables d'entrada (com la temperatura actual, la humitat, etc) i la variable de sortida (la temperatura desitjada). Una vegada entrenada, la xarxa pot predir la temperatura desitjada en funció de les condicions actuals i ajustar els controls del sistema per a aconseguir aquesta temperatura.
Els avantatges de les xarxes neuronals són múltiples ja que són capaces d'aprendre relacions no lineals i complexes, la qual cosa les fa adequades per a sistemes amb comportaments dinàmics i, una vegada entrenades, les xarxes neuronals poden realitzar prediccions ràpidament, la qual cosa permet un control en temps real.
El Departament Tècnic de ACE Automatisme i Contro, Elèctric ha realitzat un detallat estudi sobre la Regulació de la temperatura a partir de xarxes neuronals per a la implementació d’un control de temperatura amb un PLC que s'exposa a continuació.
Objectius de l’estudi
Atès que la regulació de la temperatura a la indústria és un element d'ús molt comú però que ens pot complicar en funció dels sistemes, creiem útil la creació d'un objecte programari que pugui auto aprendre.
D’aquesta manera es minimitzaria el temps per a regular els paràmetres del PID i els possibles canvis ambientals que afectin al sistema.
L’objectiu d’aquest estudi és crear una xarxa neuronal artificial per a la implementació d’un control de temperatura amb un PLC. Aquesta xarxa estarà integrada a un bloc de funcions que sigui escalable a altres dispositius.
Dades
Les proves es faran amb un simulador que compte amb una sonda i una resistència calefactora. D’aquesta manera, extraurem les dades de temperatura de la sonda i actuarem sobre la resistència calefactora.
Xarxes neuronals artificials
Les xarxes neuronals consisteixen en una simulació de les propietats observades en els sistemes neuronals biològics a través de models matemàtics recreats mitjançant mecanismes artificials.
El funcionament d’una neurona, consisteix en multiplicar els valors d’entrada (x1, x2, x3...) pels seus respectius pesos (w1, w2, w3...) i sumar-los. Aquest resultat es multiplica per una funció d’activació que dependrà del tipus de resultat que necessitem.
Una xarxa neuronal artificial té tres capes en la seva forma més bàsica. La informació flueix d’una capa a una altra com ho faria el nostre cervell. Les diferents capes són:
Capa d’entrada: és el punt d’entrada de les dades del nostre sistema. N’hi haurà tantes com entrades es tingui d’informació.
Capa oculta: són les capes on es processa la informació. Com a més complexa la xarxa, més capes i més neurones hi ha a aquesta capa.
Capa de sortida: és la capa on s’obté el resultat de sortida de tots els càlculs.
Les neurones es van connectant entre elles i van formant una xarxa com la de la figura 2:
Modes d’aprenentatge del sistema
El desenvolupament de l’aprenentatge automàtic es centra en tres categories principals: aprenentatge supervisat, aprenentatge no supervisat i aprenentatge profund. Pel nostre treball ens fixarem en el primer i l’últim.
Aprenentatge supervisat
Aquest procés de generació de coneixement es realitza amb un grup d’exemples o dades etiquetades en els que els resultats són coneguts prèviament. Aquest tipus de model aprèn d’aquests resultats i incorpora ajustos en els paràmetres interiors per poder adaptar-se a dades noves que s’introdueixen al sistema.
Mitjançant aquest aprenentatge s’alimenta un conjunt de resultats que permet realitzar prediccions adequades del comportament de les dades noves que encara no han estat processades.
Aprenentatge reforçat
Té com a finalitat construir models que augmenten el rendiment aprés com a base d’un resultat o la recompensa que es genera a partir de cada iteració realitzada. Aquest model utilitza la recompensa com a paràmetre d’ajustament per a accions futures, de tal forma que la nova acció compleixi amb l’acció correcte. D’aquesta manera, per cada procés que realitza es pot veure si ha millorat o no en funció del procés anterior i tenir en compte aquesta dada.
Inici del procés
Es proposa en iniciar amb un aprenentatge reforçat. Aquest pot ser el més adient ja que tenim accés a l’error actual que hi ha entre la temperatura de consigna i la temperatura actual. D’aquesta manera es poden fer els càlculs de l’error proporcional, integral i derivatiu.
Obtenció de los dades
El treball començarà amb una xarxa neuronal artificial de tres neurones d’entrada (Ep, Ei i Ed), tres neurones ocultes i una de sortida.
Les primeres dades que tindrem del procés serà la temperatura de consigna i la temperatura actual. Treballant amb aquestes dades obtindrem l’error proporcional, l’error integral i l’error derivatiu. Aquestes tres dades seran les entrades de la nostra xarxa neuronal.
Error proporcional (Ep)
L’obtindrem de la resta entre els valors de la consigna i la temperatura
Error integral (Ei)
Per obtenir l’error integral, sumarem els valors de l’error proporcional dels últims 5 segons.
Error derivatiu (Ed)
Calcularem el valor de la pendent que hi ha durant un segon. Per a fer-ho restarem a l’error proporcional actual, el valor de l’error proporcional de fa un segon.
Processament de càlculs neuronals
El càlcul de la xarxa neuronal seguirà el procediment mostrat a la figura:
Seguint amb els objectius anteriors, es vol crear un programa d’autoaprenentatge per a fer un control de temperatura semblant a un PID. D’aquesta manera reduir el temps per a trobar els paràmetres adequats i fer que variïn en funció de variacions de l’entorn que envolta la màquina.
Es buscarà crear una xarxa neuronal artificial per a la implementació d’un control de temperatura amb un PLC. Aquesta xarxa estarà integrada a un bloc de funcions que sigui escalable a altres dispositius.
En aquest estudi seguirem els següents passos per a la implementació d’un controlador PID utilitzant tècniques d’aprenentatge automàtic.
1. Recopilació de dades
Aquest primer assaig es farà amb un kit de temperatura que consta d’una resistència calefactora i una sonda de temperatura PT100. Les dades i els càlculs s’obtindran a partir d’un PLC.
Les dades que obtindrem en aquesta prova, son la temperatura actual (temperatura_act) i la temperatura a la que es vol arribar (consigna). A partir d’aquestes dades processarem els càlculs corresponents per trobar els errors proporcional, integral i derivatiu per a que siguin l’entrada de la nostra xarxa neuronal.
2. Processament de dades
Es farà els càlculs per a poder obtenir la informació de l’error proporciona, integral i derivatiu del sistema.
Error proporcional
Obtindrem el valor de l’error proporcional a partir de la diferència d’entre la temperatura a la que volem arribar i la temperatura actual.
u(t)=e(t)
Ep=consigna-temperatura_act
Error integral
L’error integral és el sumatori de l’error proporcional. Nosaltres farem un sumatori del valor actual de l’error proporcional i dels últims 4. Aquests es prendran en intervals de 1 segon
u(t)=∫_0^t e(τ) dτ
Ei=∑ Ep_act + Ep_(act-1) + Ep_(act-2) + Ep_(act-3) + Ep_(act-4)
Error derivatiu
L’error derivatiu és la pendent que genera l’error proporcional en funció del temps. Nosaltres calcularem aquesta pendent restant l’error proporcional actual, el valor de l’error proporcional és la mitjana de la diferència d’error dels últims 5 segons.
u(t)=(de(t))/dt
Ed=(Ep_act-Ep_(-4))/5
Tenint ja les dades d’entrada a la xarxa neuronal, cal començar a desenvolupar el càlcul de la sortida. La següent imatge mostra el desenvolupament de la xarxa. Aquesta només tindrà una capa oculta i només de 3 neurones degut a que el càlcul de la xarxa creix de forma exponencial per cada capa oculta i per cada neurona que s’afegeix. Les properes proves es faran amb més capes i més neurones. La sortida serà el percentatge de sortida del PID. L’autoaprenentatge d’aquest estudi serà semi-manual. Això vol dir que durant la primera regulació, li mostrarem al sistema quin és el percentatge de sortida que esperem en diferents punt del procés. D’aquesta manera durant aquest procés, el sistema anirà fent els càlculs per fer l’autoaprenentatge de cada moment en funció de l’entrada del sistema.
Per obtenir el càlcul de la sortida en funció de l’entrada, primer hem de calcular els passos entremitjos h1, h2 i h3. Es calcula de la següent manera:
h1=Ep*w1+Ei*w4+Ed*w7
h2=Ep*w2+Ei*w5+Ed*w8
h3=Ep*w3+Ei*w6+Ed*w9
De la mateixa manera obtindrem la sortida Y.
Y=h1*w10+h2*w11+h3*w12
El valor de les variables w1-12 serà definit a l’inici del càlcul amb un valor aleatori d’entre 0 i 1 per a donar un número aleatori a la sortida.
L’error de la sortida Y (predicció) en funció del valor esperat (actual) es calcularà amb la funció de l’error mig quadràtic. Amb la següent fórmula:
Error=1/2 (predicció-actual)^2
La retropropagació, ens ajuda a modificar les variables w_x per adequar-les a l’error de la sortida a partir del descens del gradient i fer així que la xarxa neuronal evolucioni i aprengui de l’error de la sortida.
El descens del gradient és un algoritme per a trobar el mínim en una funció i això ens permet minimitzar l’error que tenim a la sortida. Per trobar el mínim d’una funció utilitzarem la fórmula:
*w〗_x=w_x-a(∂Error/(∂w_x ))
Per exemple, al actualitzar w_12, prenem la branca w_12 i restem la derivada parcial de l’error en funció de w_12. Aquesta estarà multiplicar per la variable a (tassa d’aprenentatge) Aquesta variable farà que el procés d’aprenentatge sigui més ràpid o més lent.
*w_12=w_12-a(∂Error/(∂w_12 ))
La derivació de la funció de l’error es calcula fent servir la regla de la cadena d’aquesta manera:
∂Error/(∂w_12 )=(∂ 1/2 (predicció-actual)^2)/∂predicció*∂predicció/∂w12
∂Error/(∂w_18 )=(predicció-actual)*(∂h1*w10+h2*w11+h3*w12)/∂w12
∂Error/(∂w_12 )=(predicció-actual)*h3
De la mateixa manera trobarem els valors de w_11 i w_10
*w_12=w_12-a(predicció-actual)*h3
*w_11=w_11-a(predicció-actual)*h2
*w_10=w_10-a(predicció-actual)*h1
Però, al retrocedir per actualitzar w_(1-9) la regla de la cadena quedarà així:
∂Error/(∂w_9 )=(∂ 1/2 (predicció-actual)^2)/∂predicció*∂predicció/∂h3*∂h3/(∂w_9 )
∂Error/(∂w_9 )=(predicció-actual)*w_12*Ed
*w_9=w_9-a(predicció-actual)*w_12*Ed
*w_8=w_8-a(predicció-actual)*w_11*Ed
*w_7=w_7-a(predicció-actual)*w_10*Ed
*w_6=w_6-a(predicció-actual)*w_12*Ei
*w_5=w_5-a(predicció-actual)*w_11*Ei
*w_4=w_4-a(predicció-actual)*w_10*Ei
*w_3=w_3-a(predicció-actual)*w_12*Ep
*w_2=w_2-a(predicció-actual)*w_11*Ep
*w_1=w_1-a(predicció-actual)*w_10*Ep
A ACE Automatisme I Control Elèctric comptem amb un equip tècnic, format per professionals qualificats i en formació contínua, que soluciona els requeriments dels projectes dels nostres clients donant-los suport en el disseny, programació, integració i supervisió dels mateixos. Un servei tècnic d'assessoria i consultoria durant tot el procés de l'oferta.
Descarregar l'article complert en PDF a continuació: