Control Híbrid Difús-Lliscant d’un Motor CC
AUTOR: David Solé Saperas DIRECTOR: Enric Vidal i Idiarte
DATA: Setembre/2001
1
Agraïments: En primer lloc, m’agradaria dedicar aquest projecte a la meva família pel suport que m’han donat durant tota la carrera, animant-me en tot moment a seguir endavant. Vull agrair la tasca duta a terme pel director del projecte, per facilitar-me informació, orientar-me en les diferents decisions de disseny i, en general, per haver-nos enfrontat plegats al les diferents problemàtiques del projecte. També agraeixo la col· laboració del personal del laboratori de I+D del departament Enginyeria Elèctrica Electrònica i Automàtica, per ajudar-me a resoldre dubtes, a utilitzar els equips de laboratori i per participar en la implementació pràctica del sistema de control.
2
Estructura del document
El present projecte consta de les següents parts:
- Índex - Memòria Descriptiva - Memòria de Càlcul - Plànols - Pressupost - Plec de Condicions - Annexes
La Memòria Descriptiva engloba casi la totalitat del document. En la Memòria de Càlcul només hi apareixen els càlculs relatius a la implementació pràctica de la placa de control (càlcul i elecció dels components), el desenvolupament matemàtic del sistema s’inclou en la Memòria Descriptiva.
3
ÍNDEX
MEMÒRIA DESCRIPTIVA........................................................6
1 Introducció General ...................................................................7
1.1 Resum................................................................................................. 7 1.2 Antecedents ........................................................................................ 7 1.3 Objectius ............................................................................................ 8
2 Fonaments Teòrics .....................................................................9
2.1 Introducció ......................................................................................... 9 2.2 Sistemes de Topologia Variable......................................................... 9 2.3 Control en Mode de lliscament.......................................................... 9
2.3.1 Introducció........................................................................................9 2.3.2 Anàlisis Sistemàtic........................................................................... 11
2.4 La Lògica Difusa.............................................................................. 12 2.4.1 Introducció...................................................................................... 12 2.4.2 Definició ......................................................................................... 12 2.4.3 Una Perspectiva: de la Lògica Combinacional a la Lògica Difusa.... 13 2.4.4 El Controlador Difús (Procediment) ................................................ 15
3 Estudi Teòric del Controlador .................................................17
3.1 Model de la planta ........................................................................... 17 3.1.1 Introducció...................................................................................... 17 3.1.2 Planta Utilitzada ............................................................................. 17 3.1.3 Estudi Teòric del Motor .................................................................. 19 3.1.4 Obtenció Experimental dels Paràmetres........................................... 23 3.1.5 Ajust i Validació del Model............................................................. 27
3.2 Control Híbrid Difús-Lliscant ......................................................... 31 3.2.1 Dinàmica en Mode de Lliscament.................................................... 31 3.2.2 Control amb Lògica Difusa ............................................................. 39 3.2.3 Model del Sistema........................................................................... 41 3.2.4 Simulacions .................................................................................... 42
4 Disseny pràctic del controlador................................................43
4.1 Visió General ................................................................................... 43 4.2 Placa de control................................................................................ 44
4.2.1 El Microcontrolador ........................................................................ 46 4.2.2 Comparador amb Histèresis............................................................. 48 4.2.3 Filtre Antisolapament...................................................................... 48 4.2.4 Sensat dels Senyals.......................................................................... 49 4.2.5 Convertidor D/A ............................................................................. 50 4.2.6 Tractament del Senyal d’Activació .................................................. 51 4.2.7 Mòdul Visualitzador LCD............................................................... 54
4
4.2.8 Possibilitats de Connexió de la Placa de Control.............................. 55 4.2.9 Configuració Bàsica Utilitzada en els Assaigs.................................. 58 4.2.10 Procés d’Ajust de la Placa de Control.......................................... 59
4.3 Pont Inversor i Sensor de Corrent................................................... 60 4.4 Estudi Previ del Programari............................................................ 61
4.4.1 Introducció...................................................................................... 61 4.4.2 Consideracions Sobre el Microcontrolador PIC16F87(3/6) .............. 61 4.4.3 Base de Temps i Adquisició de Dades ............................................. 64 4.4.4 Algorisme DIFÚS ........................................................................... 65 4.4.5 Diagrames de Flux Generals............................................................ 74
4.5 Implementació del Programari........................................................ 76 4.5.1 Introducció...................................................................................... 76 4.5.2 Estructura general del llistat del programa ...................................... 77 4.5.3 Programa Principal ......................................................................... 78 4.5.4 Sistema d’Interrupcions................................................................... 78 4.5.5 Algorisme Difús.............................................................................. 80 4.5.6 Implementació d’Altres Rutines Utilitzades..................................... 81
5 Assaigs del Sistema...................................................................83
5.1 Introducció ....................................................................................... 83 5.2 Assaigs amb control PID-LISCANT................................................ 83 5.3 Assaigs amb Control PID-PWM...................................................... 90 5.4 Assaigs amb Control Difús-Lliscant ................................................ 92 5.5 Conclusions....................................................................................... 93
6 Referències................................................................................94
MEMÒRIA DE CÀLCUL ..........................................................95
7 Càlcul de l’amplificador regulable de sensat ...........................96
7.1 Etapa Diferencial ............................................................................. 96 7.2 Amplificador Regulable................................................................... 97 7.3 Selecció dels components ................................................................. 98
8 Càlcul del Comparador amb Histèresis .................................100
9 Càlcul de filtres.......................................................................103
10 Etapa de sortida del convertidor D/A ................................106
11 Càlcul pel tractament del senyal d’activació......................108
12 Càlcul de pistes....................................................................110
5
PLÀNOLS ....................................................................................112
13 Esquema Elèctric....................................................................113
14 Situació de Components .....................................................114
15 Placa, Cara de Components ...............................................115
16 Placa, Cara de Soldatge......................................................116
PRESSUPOST .............................................................................117
17 Cost de Producció...............................................................118
18 Cost de disseny....................................................................120
19 Resum del Pressupost .........................................................120
PLEC DE CONDICIONS .........................................................121
20 Condicions generals ............................................................122
20.1 Condicions Generals de Caire Facultatiu...................................... 122 20.2 Condicions Generals de Caire Econòmic ...................................... 123 20.3 Condicions Generals de Caire Legal ............................................. 123
21 Condicions tècniques ..........................................................125
ANNEXES....................................................................................126
22 Llistat del Programa...........................................................127
22.1 Llistat Principal ............................................................................. 127 22.2 Rutines d’inicialització .................................................................. 142 22.3 Rutines per la representació en el mòdul visualitzador ................ 146 22.4 Taules de fuzzyficació .................................................................... 149 22.5 Taula de multiplicar ...................................................................... 152
23 ALTRES DOCUMENTS ...................................................157
6
Control Híbrid Difús Lliscant d’un Motor CC
MEMÒRIA DESCRIPTIVA
PFC- Control híbrid difús-lliscant memòria descriptiva
7
1 Introducció General
1.1 Resum
En aquest projecte es realitza l’estudi i es posa en pràctica un controlador
híbrid difús-lliscant per la regulació de velocitat en motors de corrent contínua. El motor és controlat en mode de lliscament, i s’utilitza la lògica difusa per determinar la superfície de lliscament.
Un microcontrolador s’encarrega de realitzar l’algorisme difús de control a partir del sensat de velocitat i calcula la intensitat de referència adequada pel motor en cada moment. El lliscament es realitza comparant analògicament la intensitat del motor amb la calculada pel microcontrolador. La implementació del maquinari permet alternar entre diferents tipus de control sobre la mateixa planta: en mode de lliscament o utilitzant PWM i permet modificar fàcilment l’algorisme de control. D’aquesta manera, es du a terme una comparativa entre els diferents comportaments de la planta, observant els avantatges i desavantatges de cada tipus de control.
1.2 Antecedents
Els dies 15 a 18 de Setembre de 1997 es va dur a terme a Tarragona el VII
Congrés Espanyol Sobre Tecnologies i Lògica Fuzzy. Entre els treballs publicats es troben dos estudis teòrics realitzats pel departament d’Enginyeria Electrònica Elèctrica i Automàtica de l’Escola Tècnica Superior d’Enginyeria (URV) (veure annex). Els dos treballs tracten el control en mode de lliscament utilitzant la lògica difusa. Els treballs es titulen: “Controlador híbrid difús-lliscant” i “ Control adaptatiu en mode de lliscament d’un motor de continua utilitzant lògica difusa”. Tot seguit se n’inclou el resum tal com apareix en el mateix article.
“CONTROLADOR HÍBRID DIFÚS-LLISCANT” En aquest treball es presenta un controlador híbrid difús-lliscant pel control de velocitat en motors de contínua. El sistema difús decideix quina és la millor consigna d’intensitat que ha de seguir la superfície lliscant de control.
PFC- Control híbrid difús-lliscant memòria descriptiva
8
D’aquesta manera s’obté un control robust a pertorbacions en la càrrega i en l’alimentació d’entrada.
“CONTROL ADAPTATIU EN MODE DE LLISCAMENT D’UN MOTOR DE CONTINUA UTILITZANT LÒGICA DIFUSA.”
Aquest treball presenta un controlador robust en mode de lliscament, llur superfície de commutació és adaptada utilitzant lògica difusa. El controlador està dissenyat per regular la velocitat d’un motor de contínua. Els resultats de simulació mostren que l’esquema de control proposat és robust a variacions de la càrrega i a pertorbacions en l’alimentació. El control és també independent de la inèrcia del rotor. La diferència principal entre els dos controladors està en que en el primer “Control híbrid difús-lliscant” l’algorisme difús calcula directament una intensitat de referència adequada pel motor, mentre que en el segon “Control adaptatiu en mode de lliscament utilitzant lògica difusa” la intensitat es calcula a partir d’una funció que depèn de l’error de velocitat i d’uns paràmetres que l’algorisme difús s’encarrega d’adaptar. En els dos casos l’algorisme difús utilitza dues variables d’entrada: l’error i el canvi en l’error de la velocitat.
1.3 Objectius
El plantejament d’aquest projecte consisteix en dissenyar i dur a la pràctica
un controlador híbrid difús-lliscant aplicat a una planta real, contrastar els resultats experimentals amb els obtinguts per simulació i amb altres mètodes de control i verificar la viabilitat d’aquest tipus de control.
Per dur a terme l’objectiu principal es realitzarà, en primer lloc, un estudi teòric del controlador i, per tal de poder contrastar els resultats teòrics amb els experimentals, es modelarà per computadora el sistema motor-controlador i es duran a terme diferents simulacions de comportament, similars a les publicades en els treballs mencionats en el punt anterior.
PFC- Control híbrid difús-lliscant memòria descriptiva
9
2 Fonaments Teòrics
2.1 Introducció
En aquest apartat es descriuen breument els conceptes teòrics necessaris per
comprendre el funcionament tant dels sistemes basats en el mode de lliscament, com de la lògica difusa, enfocant sempre les explicacions al sistema de control objecte d’aquest projecte.
2.2 Sistemes de Topologia Variable
Els sistemes de topologia variable es caracteritzen per disposar
d’interruptors que permeten commutar entre diverses topologies en un mateix sistema i per tant, modificar el seu comportament dinàmic. En cada commutació el sistema passa a evolucionar d’una forma diferent a la de la topologia anterior, però partint d’unes condicions inicials resultats del període anterior. En altres paraules, les variables d’estat del sistema evolucionen segons marca la topologia en cada moment, en les commutacions aquestes variables no es modifiquen però passen a evolucionar segons la nova topologia.
Controlant adequadament els intervals en que el sistema correspon a una o altra topologia poden conduir-se les variables d’estat del sistema al valor desitjat, dins de les limitacions que imposi cada sistema en concret.
2.3 Control en Mode de lliscament
2.3.1 Introducció
En sistemes de topologia variable (tenint en compte tant sols els de doble topologia) podem trobar dues modalitats principals de control: utilitzant un sistema PWM, o fent el control en mode de lliscament. En ambdós sistemes es defineix un senyal de control “u” amb dos possibles valors: 0 i 1, que, actuant sobre els interruptors, determina quina és la topologia del sistema en cada moment. - Control PWM:
En els sistemes PWM (modulació per amplada de pols) es parteix d’un període fix format per dos intervals diferenciats que normalment s’anomenen “ton” i “toff”. Cada un d’aquests intervals correspon a una de les topologies del sistema.
t
u
1
0
ton
T
toff
Figura 2-1. Accionament PWM
PFC- Control híbrid difús-lliscant memòria descriptiva
10
Es defineix la variable ‘cicle de treball’ com: T
TonD =
El cicle de treball D és considera la variable d’entrada del sistema i pot prendre valors entre zero i la unitat. - Control Lliscant: En els sistemes en mode de lliscament, per determinar les commutacions del sistema, es defineix una superfície anomenada superfície de lliscament. Aquesta, correspon a una combinació de les variables del sistema i determina el límit entre una topologia i l’altre, és a dir, la topologia del sistema està en funció del costat de la superfície en que aquest es trobi.
Amb un comparador es determina el senyal de control “u”, comparant l’estat del sistema amb la superfície de lliscament definida. Per evitar commutacions molt ràpides i un conseqüent augment de la potència dissipada pels interruptors, en el comparador es defineix una histèresis centrada en la superfície. A diferència dels sistemes PWM en que el període és fix, en mode de lliscament el període de commutació és variable i depèn de múltiples factors com: la histèresis del comparador i la dinàmica del sistema en els diferents punts de funcionament. Un avantatge important dels sistemes en mode de lliscament respecte als PWM és la ràpida resposta en front a pertorbacions, ja que des del mateix moment en que el sistema s’allunya de la superfície de lliscament aquest passa a estar totalment en la topologia que ha de portar el sistema a la superfície. Com veurem més endavant, el sistema pot ser immune a certs tipus de pertorbacions.
y
x Superfície de lliscament Histèresi
Evolució del sistema
Figura 2-1. Accionament lliscant
PFC- Control híbrid difús-lliscant memòria descriptiva
11
2.3.2 Anàlisis Sistemàtic
Per analitzar un sistema controlat en mode de lliscament s’aplicarà el
procediment sistemàtic per a convertidors commutats, que es descriu en els apunts de l’assignatura “Enginyeria de Control I” [1] d’Enginyeria en Automàtica i Electrònica Industrial. A continuació s’anomenen els passos d’aquest procediment:
En primer lloc cal descriure el sistema segons l’equació bilineal general:
uã)(Bxä)(Axx +++=& (f 1)
A continuació es procedeix amb l’anàlisi sistemàtic que consisteix en els
següents punts:
(i) Anàlisis de la condició de transversalitat
(ii) Obtenció de Ueq
(iii) Definició de les regions de lliscament
(iv) Estudi de la dinàmica ideal de lliscament
(v) Obtenció dels punts d’equilibri del sistema corresponents a la dinàmica ideal de lliscament
(vi) Anàlisis d’estabilitat dels punts d’equilibri
(vii) Implementació del control
En l’apartat “Estudi Teòric del Controlador” es desenvolupa aquest procediment aplicat al control del motor.
Per obtenir informació més genèrica i detallada, consultar els apunts de que s’ha fet referència [1], concretament el tema: “Metodologia per l’anàlisi de convertidors controlats en mode de lliscament”.
PFC- Control híbrid difús-lliscant memòria descriptiva
12
2.4 La Lògica Difusa
2.4.1 Introducció
La teoria clàssica de control ha estat fins al moment la opció més utilitzada per tractar la majoria de sistemes de control. Cal destacar l’àmplia utilització del controlador PID, sent el més popular en l’entorn industrial. En els darrers anys però, s’ha incrementat notablement la utilització de tècniques de control alternatives gràcies, en part, a les millores tecnològiques i a la necessitat de controlar sistemes més complexes (en molts casos no lineals, variants en el temps i difícils de modelar). Entre aquestes tècniques modernes de control podem trobar: les xarxes neurals, els algorismes genètics i la lògica difusa (fuzzy logic). Per aconseguir dissenyar acuradament un controlador clàssic, és molt important modelitzar la planta amb precisió. En alguns sistemes la modelització pot ser molt difícil, ja sigui per la complexitat de la planta (no lineal, variant en el temps,...) com perquè aquesta no es pot conèixer suficientment. Aquestes tècniques modernes presenten avantatges importants respecte als controladors analítics, com poden ser: l’adaptabilitat a variacions en la planta i la no necessitat d’un model matemàtic precís del sistema. Això és possible gràcies a que aquests controladors utilitzen dades heurístiques i coneixements empírics obtinguts pel propi controlador o que aporta el dissenyador. La lògica difusa és una tècnica cada cop més utilitzada en el control de processos, entre altres motius, per respondre a un procés de control molt intuïtiu i fàcil d’aplicar. Fou formulada pel professor Zadeh a partir de finals dels anys seixanta.
2.4.2 Definició
Molts autors plantegen la lògica difusa com una interpretació numèrica del llenguatge i la lògica parlada. Posem per exemple la següent frase: “SI la temperatura és moderadament alta I la humitat és molt alta LLAVORS s’ha d’accionar a un nivell moderadament alt el sistema de ventilació” La frase representa una condició lògica en que la temperatura i la humitat són les variables lingüístiques d’entrada, el nivell d’accionament del sistema de ventilació és la variable de sortida i l’operador lògic és I. Observem però, que les variables d’entrada no corresponen a una lògica booleana (cert o fals) sinó que estan acompanyades de valors lingüístics (alta, baixa,
PFC- Control híbrid difús-lliscant memòria descriptiva
13
temperada,...) i de modificadors (molt, moderadament, poc,...). El mateix passa amb la variable de sortida. La lògica difusa consisteix en operar condicions lògiques utilitzant tècniques que permetin tractar amb variables (tant d’entrada com de sortida) no booleanes, sinó difuses, és a dir, amb variables que poden prendre diferents valors dins un rang determinat.
2.4.3 Una Perspectiva: de la Lògica Combinacional a la Lògica Difusa
Si es tenen coneixements previs de lògica combinacional, una forma fàcil
d’entendre la lògica difusa és extrapolant les estructures de variables booleanes a estructures anàlogues en que les variables, tant d’entrada com de sortida, puguin prendre diferents valors dins un rang determinat , és a dir, siguin variables difuses. Considerem la següent estructura típica d’un sistema combinacional. En termes lingüístics, la condició lògica corresponent a aquesta estructura és: “Si (A i B són certs) o (C i D són certs) o (E i F són certs) llavors Y és cert”. Tant les variables d’entrada (A,B,..,F) com la de sortida (Y) són booleanes, és a dir, poden prendre dos valors: cert o fals (en termes lingüístics) equivalents en la representació binària a ‘1’ o ‘0’. Certes combinacions de les variables d’entrada impliquen un ‘1’ a la sortida, i la resta de combinacions, un ’0’. Aquestes estructures, de fàcil implementació, són molt utilitzades en els sistemes digitals. Mantenint la mateixa estructura es pot realitzar un sistema que permeti operar amb variables d’entrada difuses que, per exemple, puguin prendre valors dins el rang [0,1]. De la mateixa manera la sortida assolirà un valor difús determinat que estarà en funció del valor de les entrades. Tindrem ara un sistema de lògica difusa.
Y
A B C D
E F
Figura 2-2. Estructura Combinacional típica
PFC- Control híbrid difús-lliscant memòria descriptiva
14
Tornant a l’exemple de l’apartat anterior, podríem definir una funció
booleana de la següent manera: SV= TE & HE On TE i HE són variables binàries que representen una Temperatura Elevada i una Humitat Elevada respectivament. SV és la sortida i representa el sistema de ventilació que pot estar activat o desactivat. L’expressió lingüística corresponent a la funció és: “SI la temperatura és elevada I la humitat és elevada LLAVORS activar el sistema de ventilació” En aquest procediment s’utilitzen en tot moment conjunts booleans, és a dir, o tot o res. Per exemple, la temperatura es considera elevada a partir d’un valor determinat, i no elevada per sota d’aquest. De la mateixa manera la sortida és “tot o res”. En la següent figura es mostra el grau de pertinença corresponent al conjunt booleà TE. Si analitzem la variable TE, observem que tan sols necessita la unitat mínima d’informació (un bit), però que la informació aportada és igualment mínima. Per exemple, suposem que la temperatura límit (Tª límit) és de 20ºC, una temperatura de 19,9ºC es consideraria com a no elevada, mentre que de 20ºC com a elevada. Si comparem ara una temperatura de 0ºC amb una de 19ºC observem que la variable TE no indica cap canvi.
Tª
TE
1
0
Tª límit
Tª Elevada Tª No Elevada
Figura 2-3. Conjunt d’una variable booleana
PFC- Control híbrid difús-lliscant memòria descriptiva
15
Si definim el mateix exemple amb la mateixa condició, però utilitzant lògica difusa, les variables d’entrada poden prendre diferents valors tal com es mostra en la següent figura. La metodologia per operar amb variables difuses es descriu en el següent apartat, on s’explica el procediment que es segueix.
2.4.4 El Controlador Difús (Procediment)
La lògica difusa obre tot un ventall de possibilitats en el camp del control
molt diferents al que contempla la teoria clàssica de control. El fet de treballar amb valors difusos permet exercir controls progressius, introduint, d’una forma senzilla i estructurada, les pautes de funcionament del controlador a partir de coneixements empírics del dissenyador. El control difús contempla aquells sistemes de control que utilitzen la lògica difusa per dur a terme la seva tasca. Les funcions bàsiques que realitza un controlador difús són normalment les següents: a) Fuzzyficació
És el procés que assigna, per cada variable, un grau de pertinença a una sèrie de conjunts definits en el rang de la variable en qüestió. Per exemple, donada la variable ‘error’ d’un hipotètic control de posició, podrien definir-se tres conjunts com es mostra en el següent gràfic:
Tª
TE
1
0 Tª Elevada Tª No Elevada
Figura 2-4. Conjunt d’una variable difusa
error
1
0
0 10 -10
Z Pos Neg
-30 30
Figura 2-5. Graus de pertinença
PFC- Control híbrid difús-lliscant memòria descriptiva
16
El grau de pertinença per a cada un dels tres conjunts ‘Neg’, ‘Z’ i ‘Pos’ està acotat entre 0 i 1. Llur valor depèn de la variable ‘error’. En l’exemple cada conjunt està format per trams rectes, però poden definir-se amb altres formes. També es poden definir tants conjunts com el dissenyador cregui convenients. b) Regles d’inferència
Són un conjunt de funcions lògiques que determinen, per una banda, una sèrie de regles de control i, per altra, en quines condicions cal que el sistema es regeixi per cada una d’aquestes regles. Aquestes funcions, que constitueixen gran part de la base de coneixements aportada pel dissenyador, són del tipus:
“If (error es Pos) and (cerror is P) then (sortida = màxim)”
On ‘error’ i ‘cerror’ són variables d’entrada i ‘Pos’ i ‘P’ són conjunts de pertinença d’aquestes. Com que es tracta amb valors difusos, és normal que, en un moment donat, més d’una regla de control sigui vàlida (en més o menys grau). La condició lògica determina en quin grau la regla de control és la adequada. Hi ha múltiples mètodes per operar les condicions lògiques (veure [2] Using Fuzzy Logic). Per exemple, l’operador ‘and’ pot implementar-se prenent com a sortida el menor dels dos operands, fent-ne el producte o seguint algun procediment basat en mètodes gràfics. c) Defuzzyficació
És el procés que converteix l’acció de control obtinguda per les regles d’inferència en el valor de control requerit pel sistema. També hi ha una gran varietat de mètodes i van molt lligats a com s’han operat les regles d’inferència. Per posar un exemple, en el mètode difús Takagi-Sugeno s’utilitza la mitja algebraica del resultat de les diferents regles d’inferència o, dit d’una altra forma, es fa la mitja ponderada (pel valor de les condicions lògiques) de les diferents regles de control.
PFC- Control híbrid difús-lliscant memòria descriptiva
17
3 Estudi Teòric del Controlador
3.1 Model de la planta
3.1.1 Introducció
Amb l’objectiu de realitzar simulacions del sistema, poder ajustar el control
correctament i contrastar els resultats teòrics amb els experimentals, és necessari obtenir un model fiable de la planta a controlar. Aparentment, el model de la planta pot aproximar-se al d’un motor CC. Però es pot caure en l’error de negligir l’efecte del sensat, del tractament del senyal i de la pròpia resposta de la font d’alimentació, essent aquests efectes de gran influència en la dinàmica del sistema. Precisament, i com veurem més endavant, en la planta utilitzada la resposta del sensor de velocitat és més lenta que la del propi motor. Aquest fet (poc habitual) implica una complexitat elevada a l’hora de controlar la velocitat. En els següents punts es realitza un estudi teòric de la planta i es descriu l’obtenció experimental del paràmetres d’aquesta. Un cop obtingut el primer model aproximat, es contrastaran les respostes simulades i experimentals per tal d’ajustar els paràmetres i validar el model.
3.1.2 Planta Utilitzada
La implementació del sistema de control s’ha realitzat utilitzant una
bancada de test de ELWE per a màquines de 300 W. Sobre aquesta bancada podem col· locar simultàniament tres màquines rotatives amb els eixos units. Aquestes són:
• Un motor de corrent continu ELWE de 300 W sobre el que es realitzarà el control.
• Un motor d’inducció trifàsic que només s’utilitzarà per provocar certs tipus de pertorbacions de parell.
• Una màquina pendular de 300 W que, juntament amb una unitat de control, permet fer treballar les altres màquines mencionades en els quatre quadrants, i mostrar informació tant de la velocitat com del parell exercit per aquestes.
Figura 3-1. Motor d’Inducció, Màquina Pendular i Motor CC
PFC- Control híbrid difús-lliscant memòria descriptiva
18
Connectada a la màquina pendular hi ha la unitat de control (ref. 67 10 608)
que permet, per una banda, actuar sobre la planta fent treballar la màquina sota test (motor CC, motor d’inducció, ...) en les condicions que es desitgi i, per altra banda, mostrar informació sobre la velocitat i el parell exercit per la màquina a testejar. En la següent figura es mostra la cara frontal de la unitat de control. No s’utilitzarà l’equip de test amb la màquina pendular únicament per testejar el motor de corrent continu, sinó que l’utilitzarem com a transductor de velocitat, per introduir certes pertorbacions i per visualitzar en tot moment informació sobre el funcionament del motor. La unitat de control disposa d’una sortida en tensió proporcional a la velocitat corresponent a 1V/1000rpm. Cal destacar que aquest equip està dissenyat principalment per portar el motor a un punt de funcionament i obtenir els paràmetres de velocitat i de parell un cop el sistema es troba en un punt estacionari (Per exemple, per obtenir la corba característica de parell en funció de la velocitat). El que es pretén fer constar és que el transductor no és l’ideal per realitzar un control de velocitat ja que, si bé en regim estacionari la lectura és correcta, en els transitoris aporta un retard considerable que s’estudia més endavant.
Figura 3-2. Equip de test, unitat de control de la màquina pendular
PFC- Control híbrid difús-lliscant memòria descriptiva
19
3.1.3 Estudi Teòric del Motor
Un possible model elèctric del motor de corrent continu és el representat en la següent figura. Es mostra directament el circuit transformat al domini de Laplace. On:
Paràmetre Descripció Unitats Va Tensió d’armadura V Ra Resistència d’armadura Ω La Inductància d’armadura mH Ia Intensitat d’armadura A Bi Fregament viscós (N· m)/(rad/
s) Ji Moment d’inèrcia del rotor kg· m2
Tr Parell resistent N· m W Velocitat angular del rotor rad/seg Kt Constant mecànica N· m/A Ke Constant elèctrica V/(rad/seg)
S’ha utilitzat un motor de corrent continu ELWE de 300 W. Aquest motor a diferència dels d’imants permanents, disposa d’un debanat d’excitació i per tant, els paràmetres Kt i Ke no son constants, sinó que depenen de l’excitació. No obstant, com que s’utilitza una configuració amb excitació independent a una tensió fixa, podrà considerar-se, a tots els efectes, com un motor d’imants permanents amb els corresponents paràmetres Kt i Ke constants. Al no disposar d’informació detallada del motor, tots els paràmetres s’obtindran experimentalment. Alguns dels paràmetres han estat mesurats al laboratori pel professor Lluïs Guasch, però tenint en compte l’excitació independent i considerant tant sols el moment d’inèrcia del propi motor. Tot seguit, partint del
+ Ke· W(s)
s· La Ra
+
-
Va(s)
Ia(s)
+
W(s)s· Ji
Kt· Ia(s) + Tr(s)
Bi
Figura 3-3. Model elèctric d’un motor DC
PFC- Control híbrid difús-lliscant memòria descriptiva
20
model proposat, s’obtindrà la funció de transferència W(s)/Vi(s) per poder obtenir els paràmetres a partir de la resposta del motor. Obtenció de la funció de transferència
En primer lloc considerem nul el parell resistent, doncs els assaigs per obtenir el model es faran en buit. Obtenim directament les següents relacions corresponents a les dues malles del model.
LasRa
sWkesVasIa
⋅+⋅−
=)()(
)( (f 2)
JisBi
sIaktsW
⋅+⋅
=)(
)( (f 3)
Combinant les equacions tenim:
( )( ) ( )LasRaJisBi
sWkesVaktsW
··
)()()(
++⋅−
= (f 4)
Agrupem els factors de W(s) ⇒
( ) ( ) ( ) ( )LasRaJisBi
sVakt
LasRaJisBi
kektsW
··
)(·
··
·1)(
++=
++
+ (f 5)
Finalment obtenim la funció de transferència desitjada: (f 6)
( ) ( ) ( ) ( )( ) ( ) kektLasRaJisBi
kt
LasRaJisBi
kektLasRaJisBi
kt
sVa
sW
···
··
·1··
)(
)(
+++=
++
+++
=
Expressant-ho de la següent manera podem distingir fàcilment la constant de temps mecànica (tm) i la constant de temps elèctrica (te).
RaBi
kekts
Ra
Las
Bi
Ji
RaBi
kt
sVa
sW
·
·11
·
)(
)(
+
+
+
= (f 7)
PFC- Control híbrid difús-lliscant memòria descriptiva
21
⇒⇒ Bi
Jitm = ; (f 8)
Ra
Late = ; (f 9)
Aproximació a un sistema de 1er ordre:
Considerant que la constant de temps elèctrica és molt més petita que la mecànica (podrà comprovar-se que és més de tres ordres de magnitud inferior) podem aproximar el sistema de segon ordre per un de primer.
tmte << ⇒⇒ 0≈Ra
La ⇒⇒ ( ) kektRaJisBi
kt
sVa
sW
··)(
)(
++= (f 10)
Expressem el resultat en forma normalitzada:
++
=++
=
Ra
kektBi
Jis
RaJi
kr
Ra
kektJisBi
Ra
kt
sVa
sW
·1
··
·)(
)( ⇒
⇒⇒
Ra
kektBi
Ji·
+=τ (f 11)
Hem identificat la constant de temps (τ) del model aproximat de 1er ordre. Aquest valor pot obtenir-se experimentalment de la resposta a l’esglaó com es mostra en la següent figura.
Figura 3-4. Resposta de 1er ordre
τ
w(t)
t
63,2%
100%
PFC- Control híbrid difús-lliscant memòria descriptiva
22
Com veurem en el següent punt els paràmetres kt, ke i Ra poden obtenir-se
amb certa facilitat però, un cop coneguts, en l’equació de τ seguim tenint dues incògnites: Ji i Bi. En regim estacionari però, desapareix l’efecte de la inèrcia del rotor. Aplicant el teorema del valor final obtindrem una nova equació que ens permetrà resoldre el sistema.
El teorema del valor final permet conèixer el valor que pren una funció de temps en règim estacionari (quan t→∞) coneixent-ne la funció en el domini de Laplace. En el cas que ens ocupa la funció és W(s), llavors:
W(s)s
0slimw(t)
t →=
∞→ (f 12)
La funció W(s) depèn de l’entrada Va(s) que cal substituir per la
transformada de Laplace de la funció d’entrada corresponent. Apliquem doncs, el teorema del valor final per una entrada esglaó (Va(s)=Va/s).
( ) kektRaJisBi
ktsVasW
··
·)()(
++= ⇒
⇒ ( ) KeKtRaBi
KtVa
KeKtRaJisBi
Kts
Va
ssttw
··
·
··0lim)(
+=
++→=∞→
KeKtRaBi
KtVaw
··
·)(
+=∞ (f 13)
En aquesta equació no apareix el moment d’inèrcia del motor, per tant, coneguts la resta de paràmetres podrem obtenir el fregament viscós Bi. Posteriorment, a partir de l’equació de τ obtindrem el moment d’inèrcia Ji.
PFC- Control híbrid difús-lliscant memòria descriptiva
23
3.1.4 Obtenció Experimental dels Paràmetres
Mesura de Ra i La:
Alguns dels paràmetres del motor poden mesurar-se directament utilitzant els aparells de mesura adequats. Aquest és el cas de la resistència i la inductància d’armadura (Ra i La).
Tot i que s’ha negligit l’efecte de la inductància en la resposta a l’esglaó del motor, és essencial tenir-la en compte en el model, ja que determina l’evolució de la intensitat i ens n’assegura la continuïtat. Precisament, i com es veurà en detall més endavant, és a partir de la intensitat d’armadura que es determina la superfície lliscant de control. Utilitzant un polímetre mesurem la resistència i la inductància entre els terminals d’armadura. Després de repetir les mesures emprant altres polímetres i mètodes alternatius, estimem que : Ù6,7Ra = mH155La =
Obtenció de Ke i Kt: Considerant el motor de corrent contínua com una màquina ideal, capaç de convertir l’energia elèctrica en mecànica sense pèrdues, a partir del model, sense considerar l’energia dissipada en la resistència d’armadura, i tenint en compte que la potència elèctrica entregada ha de ser igual a la potència mecànica desarrollada pel motor, podem deduir que:
wiaKtiawKe ·)·(·)·( = (f 14)
Recordem que la potència elèctrica és: tensió (Ke· w) per intensitat (ia), i que la potència mecànica en un eix rodant és parell (Kt· ia) per velocitat angular (w). Deduïm de l’equació que:
KtKe = (f 15) En el laboratori s’ha obtingut experimentalment Ke. Per fer-ho hem utilitzat la màquina pendular ELWE de 300W que, connectada mecànicament al motor de corrent contínua, ens permet forçar la velocitat d’aquest a un valor conegut i constant. Mesurant la tensió en els terminals d’armadura del motor (que actua com a
PFC- Control híbrid difús-lliscant memòria descriptiva
24
generador) podem obtenir la relació entre la velocitat angular i la tensió generada, és a dir, la constant elèctrica Ke. Com s’ha comentat aquesta constant depèn de l’excitació. S’han realitzat diferents assaigs modificant tant la tensió d’excitació com la velocitat del motor.
Taula 3-1: Assaigs sobre el motor CC per la obtenció de Ke
Ve [V] Ie [A] n [rpm] Va [V] w
=n· 2ππ/60 [rad/seg]
Ke = Va/w [V/(rad/seg)]
Valor mig de Ke
500 19 52,4 0,3626 1000 39,2 104,7 0,3744 1500 57,8 157,1 0,3679
50 0,13
2000 78,3 209,4 0,3739
0,3697
500 32 52,4 0,6107 1000 64 104,7 0,6113 1500 95,7 157,1 0,6092
100 0,26
2000 128,8 209,4 0,6151
0,611
500 34,5 52,4 0,6584 1000 69,8 104,7 0,6667 1500 103 157,1 0,6556
125 0,31
2000 140 209,4 0,6686
0,6623
500 37,7 52,4 0,7195 1000 76,1 104,7 0,7268 1500 109,8 157,1 0,6989
150 0,37
2000 149 209,4 0,7116
0,7142
Si s’observa l’evolució de la constant elèctrica Ke en funció de la intensitat d’excitació pot comprovar-se que hi ha una tendència a la saturació a partir de 0,3 A.
00,10,20,30,40,50,60,70,8
0 0,1 0,2 0,3 0,4
Ie
Ke
Figura 3-5. Evolució de Ke en funció de l’excitació
PFC- Control híbrid difús-lliscant memòria descriptiva
25
Per considerar el motor d’excitació independent com un d’imants permanents s’ha determinar que la opció més adequada és fixar una tensió de 100 V en el debanat d’excitació, ja que correspon a una intensitat de 0,26 A i no es satura l’excitació. La constant elèctrica corresponent Ke és de 0,611 V/(rad/seg). Tenim ara:
segrad
V0,611KeKt == (f 16)
Obtenció de Bi i Ji: De la funció (3.11), obtinguda a partir del teorema del valor final, pot deduir-se’n ara el fregament viscós Bi.
Ke·KtRa·Bi
Kt·Va)w(
+=∞ ⇒⇒
Ra
KeKt
wRa
KtVaBi
⋅−
∞⋅⋅
=)(
(f 17)
Fixant una tensió d’armadura Va a 100 V, deixem accelerar el motor fins
que assoleix el règim estacionari. Llavors mesurem una velocitat de 1500 rpm corresponent a 157 rad/seg.
segrad
mNBi
⋅⋅=−
⋅⋅
= −32
1037.27,6
611,0
7,6157
611,0100 (f 18)
Conegut el fregament viscós podem obtenir el moment d’inèrcia del motor a partir de la resposta a un esglaó de la tensió d’entrada utilitzant la funció (f 11). Com que el sistema és lineal, independentment de la magnitud de l’esglaó, la constant de temps τ serà la mateixa.
Ra
ke·ktBi
Jiô
+= ⇒⇒
⋅+=
Ra
KeKtBiôJi (f 19)
PFC- Control híbrid difús-lliscant memòria descriptiva
26
Provoquem una arrancada directe del motor amb una tensió d’armadura de 100 V. Obtenim la següent resposta: S’observa en primer lloc que la forma de la resposta és molt semblant a l’esperada, aproximadament de primer ordre. La velocitat en règim estacionari és d’unes 1500 rpm (157 rad/seg). La constant de temps τ serà el valor corresponent a una velocitat de: rpmrpm 9481500632,0 =⋅
De la resposta s’obté un valor corresponent τ = 0,22 seg. Llavors:
23
23 1078,12
6,7
611,01037,222,0
Ra
KeKtBiôJi
m
Kg−− ⋅=
+⋅=
⋅+= (f 20)
Resposta del motor
-0,1
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1,1
1,2
1,3
1,4
1,5
1,6
-0,1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 1,1 1,2 1,3 1,4 1,5
t[seg]
n[x
1000
rpm
]
Figura 3-6. Resposta mesurada a l’esglaó
PFC- Control híbrid difús-lliscant memòria descriptiva
27
Paràmetres resultants Per una tensió d’excitació de 100V els paràmetres obtinguts són: Ra = 6,7 Ω Bi = 2,37 · 10-3 Nm/(rad/seg) La = 155 mH Ji = 12,78 · 10-3 kg/m2
Kt = Ke = 0,611 Per la forma com s’han obtingut, alguns d’aquests valors són molt fiables (com Ra, La, Kt i Ke). Els altres, només es poden prendre com a valors orientatius ja que per calcular-los s’han negligit molts efectes secundaris.
Per exemple, el valor de Ji s’ha obtingut a partir d’una arrancada directa del motor a 100 V suposant que el sistema era de primer ordre. El problema principal no és que s’hagi fet aquesta aproximació, sinó que en l’assaig s’han considerat, tant la font de tensió com el sensat de velocitat, elements ideals. En la resposta a l’esglaó és sobreposen tres dinàmiques de la mateixa naturalesa: la de la font de tensió, la del motor i la del sensat de velocitat, i és difícil distingir l’aportació de cada element en la resposta. En el següent apartat es descriu com s’acaba d’ajustar el model ajudats amb simulacions per computadora.
3.1.5 Ajust i Validació del Model
Per tal de realitzar les simulacions del sistema per computadora s’ha
utilitzat el programari SIMULINK que funciona sobre MATLAB. Els diagrames de blocs i les simulacions d’aquest projecte s’han realitzat en aquest entorn.
Per ajustar i validar el model de la planta s’ha implementat, en primer lloc el model del motor en l’entorn SIMULINK.
Figura 3-7. Diagrama de blocs del motor
PFC- Control híbrid difús-lliscant memòria descriptiva
28
Per tal de contrastar adequadament els resultats que s’obtenen del motor real amb els del model s’han considerat els següents punts:
Per eliminar diferències degudes a efectes no ideals de la font de tensió, se n’ha mesurat l’esglaó provocat i s’ha utilitzat en la simulació com a tensió d’entrada del motor.
Com que la resposta mesurada és l’obtinguda pel sensor de velocitat, cal
introduir el model d’aquest el sistema. S’ha comprovat que el sensor es comporta com un filtre de 1er ordre amb una constant de temps τ de 0,1 s aproximadament.
S’ha introduït la resposta mesurada del motor en la simulació, adaptant els
valors per poder comparar els resultats en una mateixa gràfica.
El diagrama de blocs de SIMULINK utilitzat és el següent:
Figura 3-8. Diagrama de blocs per l’ajust i la validació del model
Les variables d’entrada Tek200000 i Tek200001 corresponen a taules de valors obtingudes amb un oscil· loscopi digital. Consten de dues columnes: una de temps (idèntica en ambdues) i l’altra amb els valors mesurats corresponents (tensió de la font i velocitat del motor respectivament). Cada taula està formada per 5000 mostres.
PFC- Control híbrid difús-lliscant memòria descriptiva
29
Tenim bàsicament tres variables a modificar per ajustar el sistema modelat al real: el fregament viscós Bi, el moment d’inèrcia del rotor Ji i la constant de temps del filtre de primer ordre que modela l’efecte del sensat. El principal problema és que el sensor de velocitat i el moment d’inèrcia del motor provoquen un efecte molt similar en la resposta.
Observem en primer lloc, que la resposta simulada del model s’aproxima força a la obtinguda experimentalment. La simulació s’ha realitzat considerant un esglaó ideal en la tensió d’armadura i no s’ha tingut en compte el sensor de velocitat. Els valors dels que s’ha partit en el model matemàtic coincideixen perfectament: La velocitat en règim estacionari i la constant de temps τ (considerant l’aproximació a un sistema de primer ordre). Si introduïm ara l’efecte del sensat de velocitat i la resposta real de la font d’alimentació, caldrà modificar alguns paràmetres del model per ajustar-ne la resposta. S’ha hagut de reduir considerablement el moment d’inèrcia del motor, ja que tant el sensat de velocitat com la resposta de la font aporten retard al sistema i, en el model inicial, s’havien agrupat tots aquests efectes en el motor. Després d’un tediós procés consistent en realitzar múltiples assaigs, comparant la resposta real amb la obtinguda per simulació i ajustant els paràmetres del model, s’ha arribat al següents resultats:
Figura 3-9. Resposta mesurada vs resposta del model
PFC- Control híbrid difús-lliscant memòria descriptiva
30
Paràmetres del motor: Ra = 6,7 Ω Bi = 2 · 10-3 Nm/(rad/seg) La = 155 mH Ji = 2,5 · 10-3 kg/m2
Kt = Ke = 0,61
Constant de temps de la resposta de primer ordre del sensor de velocitat: τ = 0,06 seg Un dels resultats obtinguts finalment és mostra en la següent figura:
Figura 3-10. Resposta mesurada vs resposta del model
Figura 3-11. Tensió d’armadura en l’assaig
PFC- Control híbrid difús-lliscant memòria descriptiva
31
3.2 Control Híbrid Difús-Lliscant
3.2.1 Dinàmica en Mode de Lliscament
Com es menciona en l’apartat 2. fonaments teòrics, seguirem l’anàlisi
sistemàtic per sistemes controlats en mode de lliscament. Aquest procediment, descrit en els apunts de l’assignatura “Enginyeria de Control I” d’Enginyeria en Automàtica i Electrònica Industrial, dissenyada pel catedràtic Luis Martínez Salamero, esta pensat per l’anàlisi de convertidors commutats. Un cop obtingut el model matemàtic del motor i definida la variable a controlar, el procediment d’anàlisi no difereix al d’un convertidor commutat. Observem a més, que la forma com es fa treballar el motor, és molt semblant a la d’un convertidor Buck. Model del sistema
Es realitzarà el model del sistema segons la descripció bilinial general de que parteix l’anàlisi sistematic:
uã)(Bxä)(Axx +++=& (f 21)
S’analitzarà per separat el model per u=1 i per u=0, després s’agruparan les
expressions per obtenir la descripció (f 21) Igual que en l’apartat “3.1.3 Estudi Teòric del Motor”, es consideren iguals les constants elèctrica (Ke) i mecànica (Kt), ja que no es contemplen pèrdues en la
+ Ke·w
La Ra
Vg
ia
+
w Ji
Kt· ia + Tr
Bi
Vg
u=0
u=1
Figura 3-12. Model elèctric del sistema
PFC- Control híbrid difús-lliscant memòria descriptiva
32
transformació d’energia elèctrica en mecànica. D’aquí en endavant s’utilitzarà (Ke) per fer referència indistintament a la constant elèctrica o mecànica.
1u = 11Ax Bx +=&
−+
−
−−=
JiTr
LaVg
w
ia
JiBi
JiKe
LaKe
LaRa
w
ai
&
& (f 22)
0u = 22Ax Bx +=&
−
−+
−
−−=
JiTr
LaVg
w
ia
JiBi
JiKe
LaKe
LaRa
w
ai
&
& (f 23)
Obtenció de les matrius per la descripció bilineal.
−
−−==
JiBi
JiKe
LaKe
LaRa
2AA (f 24)
−
−==
JiTr
LaVg
2Bä (f 25)
Ο=−= 21 AAB (f 26)
==
0
2B-B 21 La
Vgγ (f 27)
Finalment obtenim l’expressió:
u0La
Vg2
JiTr
LaVg
w
ia
JiBi
JiKe
LaKe
LaRa
w
ai
+
−
−+
−
−−=
&
& (f 28)
PFC- Control híbrid difús-lliscant memòria descriptiva
33
a) Regions de lliscament per velocitat angular constant (w=constant)
Plantegem inicialment el control del motor fixant, com a superfície de lliscament una velocitat constant, per tant:
Superfície de lliscament: S(x) = w-K = 0; K=constant
Gradient: ∇S=(0,1) (i) Condició de transversalitat
0ãBx S, ≠+∇ (f 29)
==+
0
2Bx La
Vgγγ (f 30)
Ο=B
00,2 (0,1), =
La
Vg (f 31)
No es compleix la condició de transversalitat, per tant no es pot realitzar el lliscament per una velocitat angular constant. b) Regions de lliscament per corrent d’armadura constant (ia=constant)
Es fixa ara una intensitat d’armadura com a superfície de lliscament. Tindrem:
Superfície de lliscament: S(x) = ia-K = 0; K=constant
Gradient: ∇S=(1,0)
PFC- Control híbrid difús-lliscant memòria descriptiva
34
(i) Condició de transversalitat
0ãBx S, ≠+∇ (f 32)
==+
0
2Bx La
Vgγγ (f 33)
Ο=B
0La
Vg2,0
La
Vg2 (1,0), ≠=
(f 34)
Es compleix la condició de transversalitat.
A diferència d’utilitzar la variable d’estat ‘w’, és possible realitzar el lliscament sobre ‘ia’. En altres paraules, podem realitzar el control del motor en mode de lliscament si ho fem a partir de la intensitat d’armadura, però no directament a partir de la velocitat angular. Això es deu a que un canvi entre les dues topologies del sistema, no implica directament un canvi de sentit en l’evolució de la velocitat del motor, però si en la de la intensitat d’armadura. (ii) Obtenció de Ueq
ãBxS,
äAxS,Ueq
+∇
+∇−= (f 35)
−−
−−−
=
−
−+
−
−−=
=
−
−+
−
−−=+
Ji
TmBiwKeiaLa
VgKewRaia
JiTr
LaVg
JiBiwJi
KeiaLa
KewLaRaia
JiTr
LaVg
w
ia
JiBi
JiKe
LaKe
LaRa
äAx
(f 36)
Vg2
VgKewRaia
La
Vg2
La
Vg-Kew-Raia-
La
Vg2
Ji
TmBiwKeia,
La
Vg-Kew-Raia-(1,0),
Ueq
++=
=−=
−−
−=
(f 37)
PFC- Control híbrid difús-lliscant memòria descriptiva
35
(iii) Definició de les regions de lliscament
1Ueq0 ⟨⟨ (f 38)
1Vg2
VgKewRaia0 ⟨
++⟨ (f 39)
VgKewRaia2VgVgKewRaia ⟨+⇒⟨++ (f 40)
VgKewRaia0VgKewRaia −⟩+⇒⟩++ (f 41)
VgKewRaiaVg ⟨+⟨− (f 42)
La regió de lliscament anterior era de preveure en el model del motor considerant nul· la la tensió mitja en la inductància. La tensió Vg ens determina els límits de funcionament del sistema. Observem que intervenen dues variables: la velocitat angular del motor i la intensitat d’armadura (que pot relacionar-se directament amb el parell exercit sobre la càrrega). (iv) Estudi de la dinàmica ideal de lliscament
1nordred'
Dinàmica
Kx
uã)(BxäAxx
i
eq
−
=+++=&
(f 43)
En el nostre cas:
ia = K
Ji
TrBiwKeia0u
Ji
Tr
Ji
wBi
Ji
keia
dt
dww eq
−−=⋅+−−==& (f 44)
(v) Obtenció dels punts d’equilibri del sistema corresponents a la dinàmica ideal de lliscament ( )** w,ia .
Kia* =
PFC- Control híbrid difús-lliscant memòria descriptiva
36
Ji
TrBiw-KeK0
* −= ⇒⇒
Bi
TrKeKw * −
= (f 45)
( )
−=
Bi
TrKeKK,*wia*, (f 46)
Si ens fixem en el model elèctric del sistema, considerem la intensitat constant i que la tensió en la bobina Ji és nul· la en règim estacionari, podem deduir fàcilment la velocitat en el punt de treball w*. Observem també, que el punt d’equilibri és independent de la tensió d’entrada Vg i, per tant, la sortida és immune a variacions en la tensió d’entrada, sempre que el sistema es mantingui en la regió de lliscament. (vi) Anàlisis d’estabilitat dels punts d’equilibri Linealitzem les equacions de la dinàmica ideal de lliscament entorn al punt d’equilibri.
Ji
TrwBiKeK
dt
dw(x)g1
−−== (f 47)
)w(wJi
Bi)w(w
dw
(x)dg(x)g(x)g **
xx
1xx11
** −−=−+≈
==
(f 48)
0(x)g *xx1 ==
La dinàmica del sistema linealitzat bé determinada per:
)w(wJidt
dw *−−≈Bi
(f 49)
w~w~Ji
Bi−≈& (f 50)
Ji
Bit
eWw−
= )0(~~ (f 51)
Deduïm doncs, que el punt d’equilibri és estable.
PFC- Control híbrid difús-lliscant memòria descriptiva
37
(vii) Implementació del control La superfície de lliscament implementada és: S(x) = iref-ia
+ K·w
La Ra ia
+
w Ji
K· ia + Tr
Bi
Vg
1 -1
1
0
u
S S(x)
Pont Inversor
u=1 u=0
K (Iref)
u
Figura 3-13. Implementació del control
PFC- Control híbrid difús-lliscant memòria descriptiva
38
La implementació del control en mode de lliscament amb SIMULINK sobre el model del motor es mostra en la següent figura. El sistema de la figura té com a entrada la intensitat de referència ‘Iref’ i el parell de càrrega ‘Tpm’. La sortida és la velocitat angular del motor. Amb aquest sistema pot controlar la intensitat d’armadura del motor, però per regular la velocitat d’aquest necessitem un segon llaç de control. En el següent punt s’estudia la implementació d’aquest llaç, aplicant tècniques modernes de control, concretament, la lògica difusa.
Figura 3-14. Diagrama de blocs del control lliscant amb SIMULINK
PFC- Control híbrid difús-lliscant memòria descriptiva
39
3.2.2 Control amb Lògica Difusa
La idea inicial per realitzar el control de velocitat del motor en mode de
lliscament es centra en utilitzar diferents superfícies: Unes que assegurin un funcionament correcte en regim estacionari i unes altres que permetin una ràpida resposta en els transitoris (arrancada i frenada a intensitat màxima).
En el treball [3] “Controlador Híbrid Difús-Lliscant de Motors de Contínua” publicat en el “VII Congrés Espanyol Sobre Tecnologies i Lògica Fuzzy” es proposen tres superfícies:
S(x) = imax-ia (f 52) S(x) = K1*(wref-wm)-ia (f 53) S(x) = -imax-ia (f 54)
La primera (f52) assegura un arranc o acceleració a intensitat màxima, la (f54) una frenada o desacceleració a intensitat màxima i la (f53) determina la dinàmica en règim estacionari. La superfície lliscant de control implementada és:
S(x) = iref –ia (f 55) Modificant adequadament la intensitat de referència iref podem implementar les superfícies mencionades (f52), (f53) i (f54). Si es realitza una transició brusca entre les superfícies, poden aparèixer sobrepics d’intensitat no desitjats. Per fer una transició suau entre les diferents superfícies de lliscament s’utilitza el mètode difús Takagi-Sugeno, ja que les regles d’aquest tipus de sistema difús poden ser combinacions lineals de les variables d’entrada (com l’error de velocitat wref-wm). Observem que la superfície (f53) implica un error en règim estacionari. Per eliminar-lo introduirem un terme integral en l’algorisme difús. Aquest terme s’introdueix incrementant, en cada interval, la intensitat de referència amb un valor proporcional a l’error. També interessa considerar un terme derivatiu per millorar la resposta davant pertorbacions i per estabilitzar el sistema. En un controlador PID la resposta a l’esglaó pot presentar un sobrepic considerable degut a que el terme integral ha anat acumulant error durant tot l’interval de pujada. Utilitzant el controlador difús podem eliminar efectes d’aquest tipus, ja que pot definir-se, per exemple, en quines condicions ha d’actuar el terme integral.
PFC- Control híbrid difús-lliscant memòria descriptiva
40
El controlador difús proposat consta d’una sortida: la intensitat de referència ‘iref’, i de tres entrades: l’error (‘error’), el canvi en l’error, (‘cerror’) i la intensitat de referència anterior (‘i’). La intensitat de referència calculada pel controlador estarà en funció de diferents regles establertes (combinacions lineals de les variables d’entrada). Per determinar en cada moment la regla més adequada s’utilitzen condicions lògiques a partir de les variables ‘error’ i ‘cerror’ fuzzyficades, tal com es mostra a continuació. Regles d’inferència:
If (error is Pos) then (iref = imax) (f 56) If (error is PS) and (cerror is P) then (iref = imax) (f 57) If (error is PS) and (cerror is N) then (iref = K1*error) (f 58) If (error is PS) and (cerror is Z) then (iref = i + δ*error) (f 59) If (error is NS) and (cerror is N) then (iref = -imax) (f 60) If (error is NS) and (cerror is P) then (iref = K1*error) (f 61) If (error is NS) and (cerror is Z) then (iref = i + δ*error) (f 62)
If (error is Neg) then (iref = -imax) (f 63)
If (error is Ze) and (cerror is Z) then (iref = i + δ*error) (f 64) If (error is Ze) and (cerror is N) then (iref = i + γ*cerror) (f 65)
iref
error
cerror
i
Figura 3-15. Controlador lògic difús
Figura 3-16. Conjunts de pertinença per ‘error’ i ‘cerror’
-3 -2 -1 0 1 2 3
0
0.2
0.4
0.6
0.8
1
error
Deg
ree
of m
embe
rshi
p
Neg NS Ze PS Pos
-0.1 -0.05 0 0.05 0.1
0
0.2
0.4
0.6
0.8
1
cerror
Deg
ree
of m
embe
rshi
p
N Z P
PFC- Control híbrid difús-lliscant memòria descriptiva
41
If (error is Ze) and (cerror is P) then (iref = i + γ*cerror) (f 66) Cal recordar que, en un controlador d’aquest tipus, l’aportació empírica del dissenyador, pel que fa referència a les regles d’inferència i als conjunts de pertinença, és vital per aconseguir un funcionament òptim. Això implica que el disseny ha de ser flexible, que permeti múltiples modificacions per tal d’ajustar el sistema, tant en les simulacions per computadora com en la implementació pràctica. En la present memòria es descriu el sistema segons les regles d’inferència i els conjunts de pertinença establerts de partida però, tant en les simulacions com en els assaigs pràctics, s’han realitzat moltes modificacions que, si bé s’indiquen, no se’n descriu extensament la implementació.
3.2.3 Model del Sistema
El següent diagrama de blocs mostra el sistema de control complert del motor.
Figura 3-17. Diagrama de blocs del sistema
Poden distingir-se dos blocs principals que engloben altres subsistemes: a) El sistema lliscant, que conté el motor i que ja s’ha tractat anteriorment. b) El sistema microcontrolador que, a més de dur a terme l’algorisme difús, s’hi inclouen els convertidors A/D i D/A. També es mostren en el diagrama dos filtres intercalats en el llaç de control: un, de primer ordre, que correspon al sensat de velocitat i l’altre, un filtre anti-aliasing de segon ordre.
PFC- Control híbrid difús-lliscant memòria descriptiva
42
El diagrama següent mostra el contingut del bloc que modela el sistema microcontrolador.
Figura 3-18. Diagrama de blocs del Sistema Microcontrolador
3.2.4 Simulacions
Les simulacions del sistema es realitzaran conjuntament amb els assaigs.
D’aquesta manera es podran comparar millor els resultats i obtenir-ne les conclusions oportunes. Veure apartat “5 Assaigs del Sistema”.
PFC- Control híbrid difús-lliscant memòria descriptiva
43
4 Disseny pràctic del controlador
4.1 Visió General
Des del punt de vista de la implementació el sistema està dividit, tant
funcionalment com físicament, en quatre blocs:
a) La bancada amb el motor de corrent continua a controlar que va unit mecànicament a una màquina pendular.
b) L’equip de test i mesura que, a partir de la màquina pendular, permet fer
mesures de parell i velocitat i pot provocar pertorbacions sobre el motor.
c) La placa de control. Sistema microcontrolador amb el tractament dels senyals incorporat que, a partir d’un valor de consigna, la velocitat mesurada del motor i la intensitat d’armadura, ha d’accionar el pont inversor de la forma adequada per controlar el motor en mode de lliscament i portar-lo a la velocitat de consigna.
d) La placa de potència amb el pont inversor. Conté els drivers de disparo
corresponents i un transductor de corrent.
La següent figura mostra esquemàticament els quatre blocs esmentats, indicant-se, amb fletxes, com interactuen entre ells.
Figura 4-1. Blocs funcionals
Placa de Control
Pont inversor +
sensat de corrent
Equip de test i mesura
sensat de velocitat
Bancada amb el Motor CC a controlar
Isen
Acc. Pont
Acc. Motor Wsen
W, TL
Pertorb.
Ref
PFC- Control híbrid difús-lliscant memòria descriptiva
44
4.2 Placa de control
La finalitat del muntatge és portar a la pràctica diferents assaigs simulats prèviament per ordinador. En una simulació podem modificar lliurement els paràmetres de control, de la planta i del tractament dels senyals, sense cap cost considerable. El que no es pot pretendre és muntar un prototipus diferent per cada simulació. La placa prototipus de control doncs, ha de permetre una gran flexibilitat. El seu disseny està basat en un microcontrolador i el tractament dels diferents senyals es realitza amb amplificadors regulables i amb múltiples possibilitats de connexió.
La placa de control realitza dues funcions principals:
a) El control lliscant del motor a partir d’una intensitat de referència. Per dur a terme aquesta tasca es requereix un sensat de corrent (que ens el facilita el pont inversor), un comparador amb histèresis per seguir la superfície de lliscament i un posterior tractament del senyal per tal d’accionar de manera correcta el pont inversor.
Figura 4-2. Fotografia de la placa de control
PFC- Control híbrid difús-lliscant memòria descriptiva
45
b) L’obtenció d’una intensitat de referència a partir de l’error de
velocitat. L’algorisme difús que realitza aquesta tasca està implementat en un microcontroladaor. Hi ha dues possibilitats per obtenir l’error de velocitat: calculant-lo en el micro (a partir de la velocitat sensada i la de referència) o sensant-lo directament (opció que permet una major resolució). En ambdós casos s’incorpora un filtre antisolapament previ al convertidor A/D del micro. Amb un convertidor D/A i un tractament posterior del senyal s’obté la intensitat de referència adequada per ser utilitzada en el control lliscant del motor.
S’incorpora també un mòdul visualitzador que ens permet saber l’estat del
microcontrolador i observar l’evolució d’alguns paràmetres del sistema. També es preveu la possibilitat de controlar el motor directament des a través d’una sortida PWM del microcontrolador, això possibilita experimentar amb altres tipus de control. En la següent figura es mostra un esquema amb els blocs principals de la placa de control. El microcontrolador PIC16F873 funciona amb una alimentació de 5V. Com a condició de disseny s’ha establert alimentar tota la placa de control a la mateixa tensió.
Figura 4-3. Esquema de blocs de la placa de control
Filtre anti-solapament
Mòdul LCD
Convertidor D/A
Tractament del senyal
ADC CH0
ADC CH1
PWM
Sensat de
corrent
Sensat de
velocitat
Referència en tensió
µ-controlador PIC 16F873
Comparador amb histèresis
Amplificador Regulable 1
Amplificador Regulable 2
Al pont inversor
Amplificador
Isen
Iref
PIC
CMP
+ -
+ -
PFC- Control híbrid difús-lliscant memòria descriptiva
46
4.2.1 El Microcontrolador
El disseny de la placa de control està basat en el microcontrolador
PIC16F876/873. Aquest dispositiu incorpora, en un encapsulat de 28 pins, una sèrie de prestacions que ens faciliten el disseny i ens permet reduir considerablement el número de components necessaris. Les prestacions perifèriques més destacables, des del punt de vista del disseny del maquinari, són:
• Dues sortides PWM programables. • Fins a 5 canals d’entrada amb un convertidor A/D intern. • Múltiples ports digitals d’entrada/sortida programable.
La següent figura mostra el microcontrolador (en el context de la placa) amb part de la circuiteria perifèrica, on es poden observar les connexions que se’n utilitzen. L’esquema del PIC16F873 mostra tots els pins de que aquest disposa, alguns poden adoptar diferents funcions segons convingui (consultar les especificacions del micro [10]). S’han especificat només els pins que s’utilitzen i amb el nom corresponent a la seva funció.
Al display LCD
Al convertidor D/A
Sortida PWM
Del filtre antisolapament
Figura 4-4. Microcontrolador PIC 16F873 i Circuiteria Perifèrica
PFC- Control híbrid difús-lliscant memòria descriptiva
47
Tot seguit es descriu la funció dels pins utilitzats: Vss,Vdd: Pins d’alimentació. Van connectats a massa i a 5V respectivament. OSC1, OSC2: Pins per la connexió del cristall de quars extern. S’hi connecta un cristall de 20MHz i dos condensadors de 20pf tal com es mostra en la figura. /MCLR: Pin de reset. Simplement està connectat a un resistència de pull-up i a un polsador. AN0: Canal 0 del convertidor A/D intern. S’utilitza com a entrada de referència. El valor d’entrada pot ser ajustat a través d’un potenciòmetre en la mateixa placa o amb una referència externa de tensió. Aquesta entrada pot tenir diferents utilitats: Com a consigna de velocitat (si el càlcul de l’error es realitza internament en el PIC), com a cicle de treball de la sortida PWM o com a entrada de qualsevol tipus de control alternatiu que es vulgui provar en la mateixa placa. AN1: Canal 1 del convertidor A/D intern. En principi, és l’entrada d’error que s’utilitza en l’algorisme difús, però també pot prendre un valor proporcional a la velocitat (si es calcula l’error internament). Està connectat a la sortida d’un filtre de segon ordre antisolapament. CCP1: Sortida PWM. No és d’utilitat en el sistema de control estudiat en aquest projecte, però pot servir per testejar el sistema d’actuació o fer proves amb el motor (en llaç obert o utilitzant altres tipus de control). RB7:RB0: Bus de dades. Son vuit sortides digitals utilitzades per escriure en el convertidor D/A i en el display visualitzador. RC3: Sortida digital. Línia d’escriptura (/WR) del convertidor D/A. RC4: Sortida digital. Línia de control (RS) del display visualitzador. Diferencia entre escriptures de dades i d’instruccions. RC5: Sortida digital. Línia d’habilitació (E) del display visualitzador. S’utilitza per efectuar l’escriptura.
PFC- Control híbrid difús-lliscant memòria descriptiva
48
4.2.2 Comparador amb Histèresis
La finalitat d’aquest comparador és obtenir el senyal de control ‘u’ a partir de la intensitat d’armadura mesurada i la intensitat de referència ‘Iref’ calculada pel microcontrolador. Per evitar commutacions molt ràpides i un conseqüent augment de la potència dissipada pels interruptors, cal que el comparador tingui una histèresis determinada.
4.2.3 Filtre Antisolapament
Per reduir el soroll produït en la pròpia planta i evitar problemes d’aliasing en l’adquisició de dades, es col· loca un filtre passa-baixos amb una freqüència de tall menor a la meitat de la freqüència d’adquisició per tal de complir amb el criteri de Nyquist.
S’utilitza un filtre Butterwoth passa-baixos de segon ordre. Aquest filtre es caracteritza per una resposta plana en la banda de transició.
Figura 4-6. Filtre antisolapament
Va
5V
0V
Vo
Vb (Iref)
Vo Va
Vb
Vcc/2
Figura 4-5. Comparador amb histèresis
PFC- Control híbrid difús-lliscant memòria descriptiva
49
4.2.4 Sensat dels Senyals
Per donar flexibilitat al disseny l’entrada de senyals a la placa de control es
realitzarà mitjançant un amplificador diferencial seguit d’un amplificador de guany regulable.
( )VbVaG2
VccVr 1 −+= (f 67)
VrGVo 2 ⋅= (f 68)
La primera etapa permet introduir el senyal de múltiples maneres:
a) Connectant Vb a massa i introduint en Va un senyal referit a massa. b) Connectant Va a massa i introduint en Vb un senyal referit a massa. c) Introduint un senyal flotant entre Va i Vb. d) Introduint dos senyals diferents referits a massa per fer-ne la resta.
Per poder mesurar un senyal no flotant i no referit a la mateixa massa,
caldria incorporar a l’entrada un amplificador diferencial d’instrumentació amb un alt factor de rebuig al mode comú (CMRR).
La segona etapa permet ajustar el guany G2 actuant sobre el potenciòmetre. El guany G1 és fix i està en funció del valor de les resistències utilitzades.
En la placa de control s’utilitzen dos amplificadors d’aquest tipus: pel sensat de corrent i pel sensat de velocitat. En el sensat de corrent s’ha optat per connectar Vb a massa i fer la lectura referint, també a massa, el senyal del sensor. En el sensat de velocitat, per obtenir una major resolució, s’ha optat per fer la resta entre la velocitat real i la consignada i així, tractar només amb l’error. S’ha connectat a Vb el senyal de consigna i a Vb el senyal procedent del sensor de velocitat (ambdós senyals referits a massa).
Figura 4-7. Amplificador diferencial i ajustable
Va
Vb
Vr Vo
Vcc/2
PFC- Control híbrid difús-lliscant memòria descriptiva
50
4.2.5 Convertidor D/A
Tot i que no és la forma habitual de funcionar, és possible que el convertidor
AD7528 operi en mode de tensió. Cal fixar el terminal de sortida de corrent ‘OUT’ a una tensió fixa, i llavors s’obté una tensió de sortida en el terminal de referència (veure característiques del convertidor en l’annex). Això és molt útil per poder treballar amb una alimentació simple de +5V, ja que en el mode normal de funcionament del convertidor és necessari, per obtenir un senyal en tensió, incloure un amplificador operacional amb alimentació simètrica a la sortida del convertidor.
Cal tenir en compte que en aquest mode de funcionament la impedància de sortida és força elevada. El convertidor doncs, ha d’anar seguit d’una etapa amb una impedància d’entrada gran (de l’ordre de 100 kΩ).
En la figura es mostra la configuració del convertidor D/A i l’etapa amplificadora posterior. El microcontrolador escriu en el convertidor utilitzant el bus de dades i amb la línia de control d’escriptura (/WR). El chip select (/CS) està sempre activat i la línia (/DACA DACB) està a massa seleccionant el canal A. El convertidor és capaç de donar una tensió de sortida compresa entre 0 V i 2,4 V, seguint la funció:
Vo = Vi (D/256) (f 69) On ‘D’ és el valor, en decimal, escrit en el convertidor.
Figura 4-8. Conversió D/A
Vo
Vi
PFC- Control híbrid difús-lliscant memòria descriptiva
51
L’etapa amplificadora posterior té la finalitat d’ajustar el rang entre 0,5 V i 4,5 V. No s’ajusta entre 0 i 5 V per evitar la saturació dels operacionals i perquè, donada una intensitat de referència màxima o mínima, el comparador disposi d’un marge suficient per poder operar correctament (sense aquest marge la intensitat podria incrementar-se sense control fora dels límits permesos). Amb el potenciòmetre P1 s’ajusta l’offset de sortida perquè, donada una intensitat de referència zero (corresponent al valor 128 en el convertidor), la tensió de sortida sigui 2,5 V.
4.2.6 Tractament del Senyal d’Activació
El senyal de control ‘u’ (que prové del comparador o de la sortida PWM del
microcontrolador) pot prendre dos valors: ‘1’ o ‘0’, que corresponen a senyals digitals en tecnologia de 5 V. El pont inversor utilitzat, funciona amb una alimentació simètrica de ±15 V i els drivers dels interruptors treballen amb senyals digitals de 15 V. A més, requereix senyals d’activació independents per activar el pont en un sentit o en l’altre. a) Adaptació de tecnologies. Per adaptar la tecnologia digital de 5 V a la tensió en que funciona la placa del pont inversor (15 V en la placa utilitzada), s’utilitzen dos optoacopladors adaptadors de lògica 740L6010. El pont inversor funciona commutant bruscament i de forma contínua amb una intensitat d’alguns pocs ampers i a una tensió de l’ordre de 100 V. Això provoca un nivell de soroll i interferències molt elevat que es transmet tant a través de la font d’alimentació, com per inducció electromagnètica, com a través de capacitats paràsites. És important doncs, separar les fonts
‘a’
‘b’
Figura 4-9. Tractament del senyal d’activació
PFC- Control híbrid difús-lliscant memòria descriptiva
52
d’alimentació de la placa de control i del pont inversor optoacoplant els senyals d’actuació.
PFC- Control híbrid difús-lliscant memòria descriptiva
53
b) Generació dels senyals de disparo. L’esquema bàsic del pont inversor es mostra en la següent figura. Quan els interruptors SW1 i SW4 estan tancats, el motor queda alimentat en una polaritat i quan ho estan els altres dos interruptors, s’alimenta el motor en la polaritat inversa. Si en algun instant es troben tancats simultàniament SW1 i SW2 o SW3 i SW4, es produeix un curtcircuit que destrueix els interruptors. La placa amb el pont inversor utilitzada disposa dels drivers corresponents d’activació dels interruptors. Podem actuar sobre el pont a partir de dues línies de control: ‘a’ i ‘b’. La línia ‘a’ tanca els interruptors SW1 i SW4, la ‘b’ tanca SW2 i SW3. Aquestes dues línies s’activen independentment, amb el conseqüent perill que això comporta. És necessària una circuiteria que ens generi els senyals per ‘a’ i per ‘b’ a partir del senyal de control ‘u’, amb un sistema antiblanking per assegurar que en cap cas podran estar en conducció els dos interruptors d’una mateixa rama. Cal generar els senyals ‘a’ i ‘b’ com es mostra en el següent cronograma.
M
SW
SW SW
SW
Vg
Isen
Figura 4-10. Esquema bàsic del pont inversor
t
u
t
t
(SW2 i SW3 b
tAB tAB
tAB tAB
“0” “1” “1” “0”
(SW1 i SW4 a
Figura 4-11. Generació dels senyals ‘a’ i ‘b’
PFC- Control híbrid difús-lliscant memòria descriptiva
54
És necessari introduir un retard tAB (antiblanking) en l’activació per donar un marge de seguretat, ja que els interruptors necessiten un temps per quedar totalment oberts. En la figura 4.10 es pot veure que amb quatre portes NOR s’obtenen els senyals adequats. Per aconseguir el retard tAB s’utilitza un filtre RC en una entrada de la porta NOR tal com mostra la figura.
Quan l’entrada IN passa a valer ‘1’ la sortida OUT cau immediatament a ‘0’ (sols amb el retard característic de la porta lògica) el condensador es carrega a través de la resistència sense que això impliqui un canvi en la sortida. Quan l’entrada IN baixa a ‘0’ el condensador comença a descarregar-se. La sortida OUT no passa a valer ‘1’ fins que la tensió en el condensador arriba al valor llindar que en l’entrada de porta es considera un ‘0’. És convenient que les portes lògiques utilitzades siguin disparadors de Schmitt per evitar oscil· lacions en el valor de sortida i perquè tenen els llindars lògics més definits.
4.2.7 Mòdul Visualitzador LCD
Al tractant-se d’un prototipus dissenyat per l’experimentació, s’ha inclòs,
en la placa de control, un display visualitzador connectat al microcontrolador. Aquest mòdul, que és superflu al control, ens permet visualitzar informació sobre l’estat del programa en curs i conèixer el valor d’algunes de les variables internes del micro: l’error (error), el canvi en l’error (cerror), la intensitat de referència calculada (Iref) i totes les variables que es cregui oportú visualitzar. En el desenvolupament i posada en marxa del prototipus, ha servit principalment per detectar errors (tant de programari com de maquinari) i per ajustar alguns elements del sistema (els amplificadors regulables, l’offset en la referència d’intensitat,...).
S’ha utilitzat un visualitzador alfanumèric de dues línies, 2x16 caracters,
del tipus PC1602. La placa també permet la connexió (mitjançant un segon zocal) de visualitzadors tipus LM016.
Figura 4-12. Sistema de retard antiblanking
IN OUT
PFC- Control híbrid difús-lliscant memòria descriptiva
55
Per accedir al display des del microcontrolador s’utilitza el bus de dades DB7:DB0 i les línies de control RS i E (veure les característiques de programació del mòdul en l’annex). A part de l’alimentació i la connexió amb el micro, es necessita un potenciòmetre per ajustar el contrast.
4.2.8 Possibilitats de Connexió de la Placa de Control
La següent figura mostra la disposició dels diferents connectors i ponts
(jumpers) en la placa de control. A continuació es descriu la funció de cada un i les diferents possibilitats de connexió.
CN3 CN4
CN
5
J2
J1
CMP PIC
EXT IN
Vm Ia
+ - a b
- + - +
CN1
CN2
5V +
-
E +
-
Figura 4-14. Disposició de connectors i jumpers en la placa
Figura 4-13. Mòdul visualitzador
PFC- Control híbrid difús-lliscant memòria descriptiva
56
Ponts (Jumpers): J1: Selector de referència interna/externa. Situant el jumper en la posició (EXT) es connecta el canal d’entrada analògica AN0 del microcontrolador al connector CN2 (per una referència externa de tensió). En la posició IN, el canal d’entrada queda connectat amb el potenciòmetre P4. J2: Selector de control lliscant/PWM. Aquest Jumper permet connectar el senyal de control a la sortida del comparador (posició CMP) per realitzar el control en mode de lliscament o connectar-lo a la sortida CCP1 del microcontrolador (posició PIC) per realitzar altres tipus de control. Pel funcionament habitual ha de situar-se en la posició CMP. Connectors: CN1: Connector d’alimentació. Cal connectar-se, en la polaritat indicada, a una font de tensió externa de 5V regulada.
EXT
IN
J1
Al connector CN2
A l’entrada AN0 del PIC
Al potenciòmetre P4
Figura 4-15. Jumper 1
PIC
CMP
J2
A la sortida PWM1 del PIC (CCP1)
Senyal de control ‘u’
A la sortida del comparador
Figura 4-16. jumper 2
+
- 5V
Figura 4-17. Connector CN1
PFC- Control híbrid difús-lliscant memòria descriptiva
57
CN2: Referència externa de tensió. Serveix per poder entrar una referència de tensió externa a l’entrada AN0 del microcontrolador, per exemple: utilitzant un generador de funcions. El connector (-) està connectat a massa i l’altre pot variar entre 0 i 5V. CN3 i CN4: Sensat de velocitat i sensat de corrent. Tant pel sensat de corrent com pel de velocitat s’utilitza un sistema que ens permet fer la connexió de múltiples maneres (veure punt 4.2.4 Sensat dels Senyals). Es consideren quatre possibles configuracions:
a) Connectant el terminal (+) a massa i introduint en el terminal (-) un senyal referit a massa.
b) Connectant el terminal (-) a massa i introduint en el terminal (+) un senyal referit a massa.
c) Introduint un senyal flotant entre els terminals (+) i (-). d) Introduint dos senyals diferents referits a massa per fer-ne la resta.
CN5: Connexió amb el pont inversor. Per adaptar els nivells lògics de tensió de la placa del pont, els terminals (+) i (-) han de connectar-se a l’alimentació dels drivers utilitzats. Els terminals (a) i (b) han de connectar-se amb les línies d’activació del pont corresponents.
+
- E Tensió externa entre 0 i 5V
Connectat a massa
Figura 4-18. Connector CN2
-
+ Terminal negatiu
Terminal positiu
Figura 4-19. Connector CN3 i CN4
Alimentació des del pont per adaptar nivells de tensió lògics
Activació pont en sentit a
Activació pont en sentit b
+- a b
Figura 4-20. Connector CN5
PFC- Control híbrid difús-lliscant memòria descriptiva
58
4.2.9 Configuració Bàsica Utilitzada en els Assaigs
A continuació s’indica com s’ha connectat cada jumper i cada connector en
els assaigs realitzats.
Posició dels Jumpers J1: En posició IN. S’utilitza per fixar el cicle de treball del control PWM. En aquesta
posició el cicle de treball es regula a través del potenciòmetre P4. J2: En posició CMP per tal d’accionar el motor en mode lliscant. Pot commutar-se a
la posició PWM per provar el motor en mode PWM. Connectors La font d’alimentació de 5V, els senyals dels transductors (d’intensitat i de velocitat) i la tensió de referència (generador de funcions), s’han referenciat a la mateixa massa. CN1: Alimentació. Connectat, tal com s’indica, a una font d’alimentació regulada i
estabilitzada de 5V. CN2: Referència externa. No utilitzat CN3: Sensat de velocitat. El terminal positiu connectat a la referència de velocitat
(generador de funcions) i el terminal negatiu al transductor de velocitat (equip de mesura i test). D’aquesta manera s’està sensant directament l’error.
CN4: Sensat de corrent. El terminal negatiu connectat a massa, el positiu al
transductor d’intensitat del pont inversor (terminal ‘Isense’). CN5: Els terminals (-) i (+) connectats als nivells lògics de la placa del pont inversor
(entre massa i VDD=+15V). Els terminals (a) i (b) connectats a l’entrada dels respectius drivers del pont inversor (SW1,SW4 i SW2,SW3).
PFC- Control híbrid difús-lliscant memòria descriptiva
59
4.2.10 Procés d’Ajust de la Placa de Control
Un cop definida la configuració dels Jumpers i connectors, abans de posar
en marxa el sistema de control, cal realitzar alguns ajustos en la placa. A continuació es descriu el procés d’ajust a seguir per la configuració esmentada.
a) Ajust de l’offset en la intensitat de referència ‘Iref’.
- Es fixa, des del microcontrolador, una intensitat de referència corresponent al valor decimal 128 (en el mòdul visualitzador apareix el valor de Iref).
- Es mesura la tensió a la sortida de l’operacional OP2:D (corresponent a l’etapa de sortida del convertidor D/A).
- Mitjançant el potenciòmetre P1, s’ajusta aquesta tensió a 2,5V (Vcc/2).
b) Ajust de l’amplificador regulable pel sensat de l’error de velocitat.
A partir de les simulacions s’ha establert un rang per l’error comprès entre -
-30 i +30 rad/seg (valors equivalents a ±286 rpm). Per tal d’ajustar aquest rang en la placa de control, s’ajusta l’amplificador regulable amb el potenciòmetre P3. El procediment utilitzat es descriu tot seguit:
- Es fixa el terminal positiu del connector CN3 a massa. - En l’altre terminal es fixa la tensió que correspon a l’error màxim
de 30 rad/seg o 286 rpm. El transductor utilitzat es caracteritza per: 1V/1000rpm, per tant la tensió adequada és de 0,286 V.
- El mòdul visualitzador mostra el valor de lectura de l’entrada analògica AN1 del microcontrolador. Cal ajustar el potenciòmetre P3 perquè aquest valor sigui el màxim, és a dir, 255 en valor decimal.
- Per corroborar l’ajust realitzat pot realitzar-se la mateixa operació però invertint la polaritat (-0,285V ⇒ lectura = 0).
c) Ajust de l’amplificador regulable pel sensat de corrent.
El valor màxim establert d’intensitat d’armadura és de ±1,8 A. El transductor de corrent dona 0.05V per Amper. La intensitat màxima de referència ‘Iref’ expressada en volts a l’entrada negativa del comparador és de 4,5V. Cal ajustar el sensat de corrent perquè a 1,8 A el valor a l’entrada positiva del coparador també sigui de 4,5V.
PFC- Control híbrid difús-lliscant memòria descriptiva
60
- Es fixa, en el connector CN4, una tensió d’entrada d’uns 0,09V (corresponent a 1,8 A).
- Es mesura amb un voltímetre la tensió a la sortida de l’amplificador regulable.
- Es regula el guany de l’amplificador amb el potenciòmetre P4 fins que la tensió a la sortida és la desitjada (2,5V).
- Aquest ajust pot acabar d’afinar-se (amb molt de compte) un cop el motor està en marxa.
- Si s’observen asimetries poden compensar-se modificant l’offset de la intensitat de referència (Iref) reajustant el potenciòmetre P1.
4.3 Pont Inversor i Sensor de Corrent
La placa de potència per controlar el motor ha estat dissenyada i muntada
en el laboratori de I+D d’Enginyeria en Automàtica i Electrònica Industrial, pel becari David Rodríguez Robles, amb la supervisió del professor Javier Maixé Altés. S’ha dissenyat com a un mòdul independent perquè pugui ser utilitzada en el laboratori per diferents aplicacions (control de motors, inversors de tensió,...).
Consisteix en un trossejador de quatre quadrants amb interruptors de
potència IGBT SGP10N60, activats amb dos drivers IR2113. La placa incorpora díodes en antiparal· lel RHRP860, proteccions de porta i un shunt per absorbir sobretensions que puguin estar provocades per càrregues inductives.
A més, s’inclou el transductor de corrent CSNE 151-005 connectat en sèrie
amb la càrrega. Amb la configuració en que aquest transductor s’ha connectat, s’obté una intensitat de sensat amb la relació 1/200. Utilitzant una resistència de sensat de 100 Ω obtenim una equivalència de 0,5V per Amper.
PFC- Control híbrid difús-lliscant memòria descriptiva
61
4.4 Estudi Previ del Programari
4.4.1 Introducció
En aquest apartat no es pretén descriure el programa de control
exhaustivament entrant en com s’ha escrit el codi ensamblador, sinó que s’intenta justificar el procediment seguit i les tècniques utilitzades per al correcte funcionament. Un cop definits els objectius i les funcions a realitzar pel microcontrolador es procedirà a la implementació del programari.
Les funcions principals a realitzar pel microcontrolador són: - Obtenir l’error i el canvi en l’error de la velocitat del motor. - Executar l’algorisme de control difús. Obtenció de la intensitat de referència (Iref). - Escriure (Iref) en un convertidor D/A per poder realitzar el control lliscant.
4.4.2 Consideracions Sobre el Microcontrolador PIC16F87(3/6)
El microcontrolador utilitzat (el PIC16873) ofereix, en un sol integrat de 28
pins, prestacions molt interessants que permeten simplificar el “hardware” reduint la quantitat de components a utilitzar en una gran varietat d’aplicacions. Lògicament, també hi ha una sèrie de limitacions a considerar. Avantatges:
L’avantatge principal és que en un sol integrat es disposa de la major part de perifèrics necessaris pel funcionament del microcontrolador. A més, al disposar de convertidor AD i de sortides PWM, es facilita molt la interfície amb entorns analògics.
Principals prestacions:
- Memòria de programa Flash - Memòria EEPROM
- Memòria RAM - Convertidor AD (5 canals)
- 2 Sortides PWM
PFC- Control híbrid difús-lliscant memòria descriptiva
62
PFC- Control híbrid difús-lliscant memòria descriptiva
63
Limitacions:
Centrant-nos en l’aplicació que ens ocupa (control híbrid difús-lliscant) s’observen dues limitacions importants: la velocitat del microcontrolador i la manca d’instruccions de càlcul potents.
Al cap i a la fi, la pregunta sempre és la mateixa: Amb quin període es pot realitzar el control? o a l’inrevés, donat un període de control, quantes instruccions es poden executar en cada interval?
En les simulacions prèvies del sistema realitzades en l’article [3]”Control Híbrid Difús-Lliscant de Motors de Continua” s’ha utilitzat una freqüència de mostreig de 50 kHz. La freqüència de rellotge màxima a la que funciona el microcontrolador és de 20MHz i cada cicle d’instrucció necessita quatre cicles de rellotge. Això representa un màxim de 100 cicles d’instrucció per interval. Tenint en compte que les instruccions de salt necessiten dos cicles, el numero possible d’instruccions per realitzar el control queda molt reduït (unes 100 instruccions).
Afegit a això està el fet de que no es disposa d’instruccions de multiplicació ni de divisió. Conclusió:
Serà necessari reduir la freqüència de mostreig del sistema, que dependrà de
la velocitat d’execució de l’algorisme de control. El correcte funcionament però, depèn de que aquesta freqüència sigui suficientment gran. Per tant, es dissenyarà el programa pensant sempre en obtenir una elevada velocitat, donant menys prioritat a la optimització de la memòria. El motor utilitzat en la implementació pràctica del control, té una resposta molt més lenta que la del que es va utilitzar en les simulacions de l’article comentat. La freqüència de mostreig, utilitzada finalment serà molt més petita, restant importància a les limitacions temporals d’execució del codi.
PFC- Control híbrid difús-lliscant memòria descriptiva
64
4.4.3 Base de Temps i Adquisició de Dades
Una base de temps generada per interrupcions marca el ritme d’execució del
programa. A cada interrupció s’inicia una conversió A/D. Tot i que, en l’algorisme de control, sols és necessari adquirir el senyal d’error, en el disseny es contemplen dues entrades analògiques: l’error i una tensió de referència (útil per realitzar controls alternatius o simplement per regular el cicle de treball de la sortida PWM). Per tant, són necessàries dues interrupcions de la base de temps per completar el període de control, ja que en cada interrupció s’inicia la conversió d’una de les entrades analògiques.
S’ha establert una període de mostreig de 5 ms, sent un valor inferior a un
ordres de magnitud per sota de la constant de temps del sistema però no excessivament petit, doncs redueix la resolució en el càlcul del canvi en lerror.
L’algorisme de control s’executa de forma repartida en dues subrutines (controla i controlb). Al final de cada conversió AD se’n crida una.
Els dos valors adquirits són: la tensió de referència (Vref) i l’error de velocitat del motor (error) (ambdues conversions amb 10 bits de resolució). També es disposa de la variable emmagatzemada: error anterior (erran).
L’algorisme difús fuzzyfica les variables ‘error’ i ‘cerror’ (canvi en l’error). En aquest procés es considera suficient utilitzar una taula de 64 valors. Per tant, s’utilitzen els sis bits de més pes de la variable, obtenint una representació entre 0h i 40h. Sent el valor 20h la representació d’un error (o canvi en l’error) nul.
0
30
40h 20h 0h
-30
error
Representació de l’error
Figura 4. Representació de l’error
PFC- Control híbrid difús-lliscant memòria descriptiva
65
El canvi en l’error es calcula restant directament l’error anterior de l’error actual, utilitzant els deu bits per aconseguir la màxima resolució.
(canvi en l’error) = (error actual) – (error anterior)
La variable ‘cerror’ es representa de la mateixa manera que s’ha vist per la variable ‘error’, és a dir, en el rang de valors [0h, 40h]. En el càlcul, caldrà tenir en compte que el valor 20h ha de correspondre a un canvi en l’error nul. Llavors:
cerror = error + 20h - errora
Si el càlcul dona com a resultat un valor fora del rang representable, es prosseguirà l’algorisme amb els corresponents valors saturats a 40h o 0h segons sigui per excés o per defecte.
4.4.4 Algorisme DIFÚS
Sense ànim d’explicar en aquest punt la teoria de la lògica difusa. Podem
resumir el procés a seguir per un control difús en tres passos: la fuzzyficació, el càlcul de les regles d’inferència i la defuzzyficació. En els següents subapartats s’explica breument en que consisteix cada pas i com és du a terme pel microcontrolador.
4.4.4.1 Fuzzyficació
Donades unes variables d’entrada (en el nostre cas ‘error’ i ‘cerror’) el
procés de fuzzyficació assigna (per cada variable) un grau de pertinença a una sèrie de conjunts definits en el rang de la variable en qüestió. Aquests conjunts, no estan definits pels diferents valors de la variable de forma booleana: “pertany” o “no pertany”, sinó que la pertinença a un conjunt o un altre és realitza de forma gradual. En les següents figures es representen les funcions de pertinença de ‘error’ i ‘cerror’.
Figura 6. Conjunts de pertinença per error
-3 -2 -1 0 1 2 3
0
0.2
0.4
0.6
0.8
1
error
Deg
ree
of m
embe
rshi
p
Neg NS Ze PS Pos
-30 -20 -10 0 10 20 30
PFC- Control híbrid difús-lliscant memòria descriptiva
66
És important remarcar que aquestes funcions estan normalitzades de manera que, per qualsevol valor de la variable d’entrada, la suma dels diferents graus de pertinença resultants és la unitat. Com s’explica més endavant aquesta característica ens permetrà reduir el càlcul en el procés de defuzzyficació. Implementació Un procediment senzill i al mateix temps ràpid és utilitzant una taula amb els valors de pertinença. L’inconvenient és que ocupa força memòria però com que les principals limitacions estan en la velocitat es considera la millor opció. Les variables d’entrada ‘error’ i ‘cerror’ es representen en el rang hexadecimal [00h, 40h] (un total de 64 valors representables) Pel grau de pertinença (comprès entre 0 i 1) s’utilitzarà una representació en coma fixa amb quatre bits de part fraccionària, és a dir, que la unitat equivaldrà a 10h (0001000b).
-0.1 -0.05 0 0.05 0.1
0
0.2
0.4
0.6
0.8
1
cerror
Deg
ree
of m
embe
rshi
p
N Z P
Figura 7. Conjunts de pertinença per cerror
PFC- Control híbrid difús-lliscant memòria descriptiva
67
A continuació es mostra la taula representativa del conjunt Z (de la variable ‘cerror’) juntament amb un gràfic explicatiu. considerant però, una representació de 32 valors (un rang de [00h, 20h]).
TaulaZ= [0,0,0,0,0,0,0,0,0,2,4,6,8,A,C,E,10,E,C,A,8,6,4,2,0,0,0,0,0,0,0,0,0] A partir del valor de Z, és fàcil obtenir el de N i P calculant el complement a 1 (a 10h en hexadecimal) de Z i tenint en compte si ‘cerror’ és superior o inferior a 10h. En resum, a partir d’una sola taula de 33 bytes obtenim els graus de pertinença de N, Z i P per la variable ‘cerror’. Seguint un procediment similar, a partir d’una segona taula, podem obtenir els valors de Neg, NS, Ze, PS i Pos per la variable ‘error’.
cerror
Figura 7. Representació de la taula de pertinença al conjunt Z
PFC- Control híbrid difús-lliscant memòria descriptiva
68
4.4.4.2 Regles d’Inferència
Una sèrie de regles determinen la sortida adient del sistema en funció de les
variables fuzzyficades, és a dir, en funció dels graus de pertinença a cada conjunt difús.
Aquestes regles són del tipus “if (error is Pos) and (cerror is P) then (Iref=imax)”. En el mètode difús utilitzat, tipus Takagi-Sugeno, les diferents sortides poden estar en funció de les entrades (que en el nostre cas són: ‘i’, ‘error’ i ‘cerror’). Cal recordar que no estem tractant amb variables booleanes i que cada regla serà més o menys vàlida en funció de les entrades. El que es calcula és un pes (Wx) per cadascuna de les sortides. En el procés de defuzzyficació utilitzat es realitza una mitja ponderada de les sortides. Hi ha diferents mètodes per realitzar la funció “and”: el “mínim dels dos” o el “producte” són molt utilitzats. Tot i que, per la implementació en un microcontrolador que no disposa de cap instrucció de producte, pot semblar més adient utilitzar el mètode “mínim dels dos”, s’ha optat per fer el producte. Es demostra més endavant que essent les variables difuses normalitzades a 1, fent el producte i contemplant totes les possibles regles d’inferència entre ‘error’ i ‘cerror’, la suma de tots els pesos és la unitat. Això simplifica notablement el procés de defuzzyficació com es veurà més endavant. Per donar la màxima rapidesa a la operació “producte” s’ha realitzat utilitzant una taula de valors.
PFC- Control híbrid difús-lliscant memòria descriptiva
69
Observem a continuació totes les possibles regles d’inferència, com s’han implementat (o com s’han calculat els pesos) i les corresponents sortides. Possibles regles Càlcul de pesos Sortides Wa = Pos & P Wb = Pos & Z ⇒ W1 = Pos · 10h ⇒ Iref = Imax Wc = Pos & N Wd = PS & P W2 = PS · P ⇒ Iref = Imax We = PS & Z ⇒ W3 = PS · Z ⇒ Iref = i + δ· error Wf = PS & N W4 = PS · N ⇒ Iref = k1· error Wg = Ze & P Wh = Ze & Z ⇒ W5 = Ze · 10h ⇒ Iref = i + δ· error Wi = Ze & N Wj = NS & P W6 = NS · P ⇒ Iref = k1· error Wk = NS & Z ⇒ W7 = NS · Z ⇒ Iref = i + δ· error Wl = NS & N W8 = NS · N ⇒ Iref = Imin Wm = Neg & P Wn = Neg & Z ⇒ W9 = Neg · 10h ⇒ Iref = Imin Wo = Neg & N Observem que alguns conjunts de regles es poden simplificar en una de sola. També es demostrarà que el pes d’aquesta regla resultant és la suma dels pesos de les regles de partida. Demostració de que la suma de pesos és la unitat. Es demostrarà a continuació que, si en les regles d’inferència s’utilitza el mètode “producte” i la fuzzyficació està normalitzada a la unitat, la suma de tots els pesos és la unitat, sempre i quan es considerin totes les possibles regles d’inferència. Es parteix d’un exemple més senzill però que pot generalitzar-se.
PFC- Control híbrid difús-lliscant memòria descriptiva
70
Considerem dues variables d’entrada fuzzyficades de la següent manera: El càlcul dels pesos per totes les possibles regles d’inferència és: W1 = Neg · N W3 = Pos · N W2 = Neg · P W4 = Pos · P Llavors, tenint en compte que (Neg + Pos = 1) i que (N + P = 1): W1+W2+W3+W4 = Neg· N + Neg· P + Pos· P + Pos· N = (Neg+Pos) (N+P) = 1 Demostrat això i tornant al problema principal observem que: Wa + Wb + · · · + Wo = 1 Com que alguns grups de regles es condensen en una de sola, com és el cas de: Wa = Pos & P Wb = Pos & Z ⇒ W1 = Pos · 10 h ⇒ Iref = Imax Wc = Pos & N Per afirmar que: W1 + W2 + · · · + W9 = 1 , cal comprovar que: W1 = Wa + Wb + Wc Wa+Wb+Wc = Pos · P + Pos · Z + Pos · N = Pos (P + Z + N) = Pos 10h = W1
P+Z+N=1d = 10h (*)
1
0
Neg Pos 1
0
N P
Variable 1 Variable 2
Neg + Pos = 1 N + P = 1
Figura 4-21. Variables fuzzyficades
PFC- Control híbrid difús-lliscant memòria descriptiva
71
(*) Cal recordar que la unitat s’ha representat en coma flotat com a 10h i que al multiplicar dos valors en coma flotant aquesta queda desplaçada dues vegades, és a dir, que el resultat de la multiplicació serà la unitat quan valgui 100h.
4.4.4.3 Defuzzyficació
El mètode de defuzzyficació utilitzat consisteix simplement en calcular la
mitjana ponderada de les diferents sortides, que s’han definit en les regles d’inferència, en funció dels pesos assignats a cada una.
El rang de la variable de sortida s’estableix en [00h,FFh] corresponent a un rang de la intensitat de referència de [-3,3] Ampers. En el cas que estudiem es consideren quatre funcions de sortida diferents: (Imin) i (Imax) que són constants de valor 00h i FFh respectivament, (k1· error) i (i+δ· cerror) llur valor depèn de les entrades. La següent figura mostra com es distribueixen les diferents regles de control en el rang de la intensitat de sortida (Iref). També s’hi indiquen els pesos assignats a cada regla. La fórmula general per calcular la intensitat de referència, és a dir, la mitja ponderada de les diferents funcions és:
W9W8W7W6W5W4W3W2W1
Imin W9)(W8error)ä(i W7)W5(W3errork1 W6)(W4Imax W2)(W1Iref
++++++++
++⋅++++⋅+++=
(f 70) Aparentment, la quantitat de càlculs a realitzar és elevada, però considerant certes propietats (algunes ja comentades en els punts anteriors) podem simplificar molt aquesta operació.
Figura 4-22. Representació de les regles d’inferència sobre Iref
00h -3A
FFh 3A K1· error i + δ· cerror Imin Imax
W8+W9 W4+W6 W3+W5+W7 W1+W2
Iref 0A
Pes assignat
PFC- Control híbrid difús-lliscant memòria descriptiva
72
En primer lloc, i com ja s’ha demostrat, sabem que el denominador és la unitat i , per tant, no és necessari realitzar la divisió. Tenim ara:
Imin W9)(W8error)ä(i W7)W5(W3errork1 W6)(W4Imax W2)(W1Iref ++⋅++++⋅+++= Sabem que Imin = 00h per lo que l’últim terme serà sempre nul. Això, a més de simplificar aquesta operació final, evita haver de calcular W8 i W9 en les regles d’inferència. També sabem que Imax = FFh, és a dir, aproximadament la unitat 100h, de manera que pot estalviar-se aquest producte. La funció ens queda finalment reduïda a:
error)(i W7)W5W3(errork1 W6)(W4W2)W1(Iref ⋅++++⋅+++= δ (f 71)
Els valors (δ· error) i (k1· error) s’ajusten dins l’interval [00h, FFh]
realitzant desplaçaments a l’esquerra en la representació binària de la variable ‘error’, és a dir, multiplicant-lo per potències de 2 (2,4,8,...).
Tant (W4+W6) com (W3+W5+W7) prendran com a valor màxim la unitat, expressada en coma fixa com 100h al realitzar la multiplicació amb les corresponents sortides (k1· error o δ· error) el resultat de la multiplicació serà de 2 bytes i caldrà utilitzar el byte alt per compensar l’efecte de la coma flotant. Per realitzar aquesta multiplicació entre dos bytes s’utilitzarà la mateixa taula implementada per al càlcul dels pesos en les regles d’inferència, la qual ens permet multiplicar dos semibytes (quatre bits).
4.4.4.4 Resum de l’Algorisme Difús
Fuzzyficació: Partint de les variables ‘error’ i ‘cerror’ i amb l’ajuda d’unes taules s’obtenen els diferents graus de pertinença: Pos, PS, Ze, NS, Neg per la variable ‘error’ i N, Z, P per la variable ‘cerror’. Regles d’inferència: Es calculen els pesos necessaris W1,...W7 utilitzant el mètode “producte” per realitzar la operació “and”. El producte es realitza accedint a una taula en la mateixa memòria de programa. Defuzzyficació: Es calcula la intensitat de referència (Iref) utilitzant la fórmula optimitzada:
PFC- Control híbrid difús-lliscant memòria descriptiva
73
error)(i W7)W5W3(errork1 W6)(W4W2)W1(Iref ⋅++++⋅+++= δ
(f 72)
En aquest últim càlcul també es fa ús de la taula de multiplicar emprada per al càlcul de pesos.
4.4.4.5 Conclusions
S’ha procurat realitzar un algorisme difús que sigui ràpid d’executar i que, al mateix temps, en sigui fàcil la modificació i/o ampliació. S’ha aconseguit reduir el número d’operacions a realitzar, falta concretar el temps necessari per l’execució després dels últims ajustos en el programa. El número de cicles d’instrucció necessàries està al voltant de 200, que significa un període de control mínim de 40µs.
PFC- Control híbrid difús-lliscant memòria descriptiva
74
4.4.5 Diagrames de Flux Generals
El programa està dividit en dos blocs principals:
a) El programa principal, que configura tot el sistema i es queda en un bucle
infinit executant rutines poc prioritàries, com l’actualització del mòdul visualitzador.
b) El sistema de control basat amb interrupcions. Un temporitzador determina
la freqüència de mostreig del convertidor A/D. L’algorisme difús està dividit en dues subrrutines: “controla” i “controlb”, que són cridades alternativament de la mateixa manera que el canal analògic actiu és “AN0” o “AN1”.
Tot seguit es mostren els diagrames de flux generals representatius dels dos blocs indicats. Programa principal:
INICI
RUTINES D’INICIALITZACIÓ
BUCLE PRINCIPAL Actualització LCD
Figura 4-23. Diagrama de flux del programa principal
PFC- Control híbrid difús-lliscant memòria descriptiva
75
Rutina d’atenció a interrupció (algorisme de control):
Figura 4-24. Diagrama de flux d’atenció a interrupció
INT
GUARDA CONTEXT
Actualitza subtemporitzadors Inici de conversió A/D
Font d’interrupció
TMR0 o CAD?
Canal actual AN1 o AN0?
Selecció de canal AN0 Lectura del valor analògic
Actualitza PWM Executa rutina controlb
Actualitza Iref
Selecció de canal AN0 Lectura del valor analògic Executa rutina controla
Font d’interrupció: Temporitzador TMR0
Font d’interrupció: Fi de conversió A/D
AN0
AN1
Rutina: timer
Rutina: cad_1 Rutina: cad_0
RESTAURA CONTEXT
RETFIE
CAD
TMR0
PFC- Control híbrid difús-lliscant memòria descriptiva
76
4.5 Implementació del Programari
4.5.1 Introducció
En els punts anteriors s’ha estudiat, tenint en compte les prestacions del
microcontrolador, quines tasques s’han de realitzar i la metodologia que cal seguir per dur-les a terme (utilitzant taules, interrupcions, etc.) procurant sempre, simplificar al màxim la posterior implementació. El disseny del programari s’ha realitzat en llenguatge ensamblador i, si bé els resultats acostumen a ser més òptims que amb llenguatges d’alt nivell (tant en el temps d’execució com en la memòria de programa necessària), el desenvolupament és costós, requereix més temps i es fa casi imprescindible la utilització d’un entorn de simulació del microcontrolador. En aquest apartat es descriu la implementació del codi, sense explicar a fons totes les rutines, però amb la intenció de donar les explicacions necessàries per poder-lo entendre.
En l’annex A es presenta el codi del programa comentat. Tot i que se n’han
realitzat múltiples versions, no són més que petites modificacions de l’original, mantenint-se l’estructura i la majoria de les funcions. En els següents apartats es fan referències al codi de l’annex A, utilitzant del nom de les rutines i indicant la part del programa en que es troba.
La família de microcontroladors PIC de Microchip utilitza un conjunt de 35 instruccions. Al final de l’Annex A s’incorpora una taula (extreta de les especificacions del PIC16F87X) on es mostren totes les instruccions amb la descripció resumida de cada una. Per poder comprendre perfectament el programa, sobretot pel que fa referència als registres de funció especial, és necessari tenir a mà les especificacions del PIC16F87X (que poden robar-se a la pàgina WEB de Microchip [5]). Els registres de funció especial s’utilitzen principalment per configurar el sistema, accedir als perifèrics del propi microcontrolador i realitzar les funcions bàsiques d’un sistema microcontrolat (comptador de programa, registre de treball, ...) Les diferents parts del codi (programa principal, rutines, taules de valors, ...) estan mapejades en la memòria de programa FLASH. Les variables es troben en la memòria RAM, utilitzant els registres de propòsit general.
PFC- Control híbrid difús-lliscant memòria descriptiva
77
4.5.2 Estructura general del llistat del programa
Per estructurar millor el programa, s’ha distribuït en diferents arxius: un
llistat principal i una sèrie d’arxius adjunts (includes) que contenen rutínes específiques i que, en el procés de compilació, són inclosos en la memòria de programa. Tot seguit s’explica resumidament el contingut dels diferents arxius.
a) Llistat principal: “chdll.asm” Conté: - La definició de variables en els registres de propòsit general.
- L’assignació dels vectors de reset i interrupció. - La inclusió dels altres arxius adjunts, en la posició de memòria adient (instrucció include).
- Les rutines utilitzades en l’algorisme difús. - L’algorisme difús. - El programa principal. - Les rutines d’atenció a interrupció.
b) Rutines d’inicialització: “inici.inc” Conté: - La configuració dels ports d’entrada/sortida.
- La configuració del PWM. - La configuració del timer. - La configuració del convertidor A/D. - La configuració del mòdul visualitzador.
c) Rutines per la representació en el mòdul visualitzador: “func_lcd.inc” Conté: - L’actualització dels valors a representar.
- L’actualització del mòdul visualitzador. d) Taules de fuzzyficació: “taulesf.inc” Conté: - La taula pel conjunt Ze de la variable error.
- La taula pel conjunt Z de la variable cerror. e) Taula de multiplicar: “multi.inc” Conté: - La taula de multiplicar valors de quatre bits.
PFC- Control híbrid difús-lliscant memòria descriptiva
78
4.5.3 Programa Principal
En el vector de reset de la memòria de programa es col· loca una instrucció
de salt al programa principal (salt a rutina inici) de manera que, quan s’inicia o es produeix un reset del sistema, és el primer que s’executa.
En el programa principal es realitzen tres funcions (veure figura 4.22
“diagrama de flux del programa principal”): a) Inicialització del sistema: Es criden les rutines d’inicialització dels
ports d’entrada i sortida (B i C), del sistema PWM, del display visualitzador (LCD), de la base de temps i del convertidor AD.
b) Habilitació de les interrupcions accedint al registre INTCON
c) S’entra en un bucle on s’executen les tasques sense prioritat,
bàsicament, el refresc del display visualitzador.
4.5.4 Sistema d’Interrupcions
El mecanisme de control, des de l’adquisició de dades fins a la generació de la sortida, funciona regit per interrupcions (veure figura 4.23 “Diagrama de flux d’atenció a interrupció”). Es consideren dues possibles fonts d’interrupció:
a) El temporitzador TMR0. Provoca interrupcions periòdicament
marcant la freqüència de mostreig i d’execució de l’algorisme de control.
b) El convertidor AD. Provoca una interrupció sempre que s’acaba el
procés de conversió. Rutina principal d’atenció a interrupció
A diferència d’altres sistemes microprocessadors en que cada font
d’interrupció té assignat un vector a partir del que es salta a la rutina d’atenció corresponent, en la família de microcontroladors PIC només existeix un vector d’interrupció. Llavors, la selecció de la rutina corresponent a cada font d’interrupció, es realitza per programa, en una rutina principal d’atenció a interrupció. En el vector d’interrupció hi ha un salt a la rutina interrupt.
PFC- Control híbrid difús-lliscant memòria descriptiva
79
La rutina principal d’atenció a interrupció realitza les següents funcions: a) Guarda context: Guarda el valor de W i STATUS en registres de
propòsit general reservats per aquesta finalitat. b) Selecciona la subrutina d’atenció a la interrupció: Es consulten els
flags d’interrupció (T0IF i ADIF) per conèixer la font d’interrupció, en conseqüència es crida la subrutina corresponent.
c) Restaura Context: es restauren els valor de STATUS i W.
La instrucció de retorn d’interrupció (retfie) restaura automàticament el
comptador de programa.
Rutina d’atenció a la interrupció del timer0, rutina timer. La rutina timer s’executa periòdicament en funció del TMR0 i realitza els següents passos: a) Recarrega el valor del temporitzador TMR0 amb el valor TBASE
(temps base) perquè es continuï amb la temporització immediatament. b) Conclou una escriptura en el display visualitzador.
c) Desactiva el flag d’interrupció del timer0
d) Decrementa el valor del subtemporitzador ST1. Si arriba a zero es
recarrega el registre ST1 amb el valor original (STEMP1) i s’inicia la conversió A/D.
Rutina d’atenció a la interrupció del convertidor AD, rutina intcad.
Aquesta rutina es cridada cada vegada que es conclou una conversió A/D. El microcontrolador disposa de fins a cinc canals analògics d’entrada seleccionables per un únic convertidor A/D intern. S’utilitzen alternativament dos d’aquests canals. El primer pas de la rutina d’atenció és comprovar per quin canal està actualment seleccionat (AN0 o AN1). En funció d’això el flux d’execució salta a l’etiqueta (cad_0) o la (cad_1). A continuació es descriuen les accions que es realitzen a partir d’aquestes dues etiquetes:
PFC- Control híbrid difús-lliscant memòria descriptiva
80
Salt a cad_1 (canal AN1):
a) En primer lloc es selecciona el canal CAD0 per la pròxima conversió. b) Es llegeix el resultat del convertidor (ADRES H:L) i es guarda en
(ERROR H:L). c) Es crida la rutina de l’algorisme difús (controla). d) Desactiva el flag d’interrupció del convertidor.
Salt a cad_0 (canal AN0): a) En primer lloc es selecciona el canal CAD1 per la pròxima conversió. b) Es llegeix el resultat del convertidor (ADRES H:L) i es guarda en
(VREF H:L). c) Amb els 8 bits de més pes del valor llegit s’actualitza el cicle de treball
del PWM (registre CCPR1L). d) Es crida la rutina de l’algorisme difús (controlb). e) Conclou una escriptura en el display visualitzador. f) Escriu el valor resultant de l’algorisme difús (Iref) al convertidor D/A. g) Desactiva el flag d’interrupció del convertidor.
4.5.5 Algorisme Difús
Com s’ha comentat, l’algorisme difús s’executa amb dues subrutines (controla i controlb) que es criden des de la rutina d’atenció a la interrupció del convertidor AD. Tot seguit es comenten les accions que es realitzen en cada subrutina. Controla: Es du a terme el procés de fuzzyficació i el càlcul de pesos de les regles d’inferència. També realitza els primers passos per la defuzzyficació. Es duen a terme els següents passos:
a) Obtenció de ERR (els sis bits de més pes de la variable ERROR H:L adquirida). El rang queda ajustat a [0h 40h].
b) Fuzzyficació de error. Amb el paràmetre ERR en W, s’accedeix a la taula de pertinença al conjunt Ze (taulae). Després es crida la funció (perte) que assigna els graus de pertinença a les variables EZe, ENeg i EPos. Els dos últims es calculen a partir de Ze, fent el complement a la unitat (10h) i assignant aquest valor a Neg o Pos segons la regió en que es troba la variable ERR.
c) Càlcul de CERROR. Es resta l’error anterior de l’error actual utilitzant la subrutina resta. La operació es realitza amb 10 bits i el resultat queda ajustat entre 0h i 40h.
PFC- Control híbrid difús-lliscant memòria descriptiva
81
d) Fuzzyficació de cerror. Es procedeix igual que amb l’error però utilitzant la taula (taulace) per obtenir Z (variable CEZ) i la funció (pertce) per obtenir N i P (variables CEN i CEP).
e) Actualització de l’error anterior (ERRAN H:L) amb el valor de l’error (ERROR H:L).
f) Es crida la funció (regles) que opera les condicions lògiques de les regles d’inferència obtenint els diferents pesos W1,W2,...W7. Les condicions lògiques AND s’operen accedint a la taula de multiplicar multi.
g) Finalment es sumen els pesos assignats a una mateixa regla de control (veure l’apartat “defuzzyficació” en l’estudi previ del programari).
Controlb: En aquesta subrutina es calculen, en primer lloc, les diferents regles de control (combinacions lineals de les variables Iref, error i cerror). Després es conclou la defuzzyficació obtenint el valor de Iref.
a) Càlcul del factor proporcional. Iref = K1*error b) Càlcul del factor integral. Iref = Iref+δ*error c) Càlcul del factor derivatiu. Iref = Iref+γ*cerror d) Defuzzyficació: Multiplicació de pesos per fer la mitjana. e) Defuzzyficació: Suma total, obtenció de Iref.
4.5.6 Implementació d’Altres Rutines Utilitzades
Accés a taules A les taules de valors s’hi accedeix com una subrutina més. Estan basades en la instrucció (retlw). És un retorn de subrutina que col· loca un valor de 8 bits en el registre de treball W. Aquesta instrucció ocupa una línia en la memòria de programa, incloent el valor que carrega en W. Una taula doncs, s’ha implementat com un conjunt d’instruccions (retlw) en la memòria de programa. Per accedir a la taula es carrega l’índex corresponent en el registre W i es crida la subrutina que conté la taula. Aquesta subrutina executa dues instruccions:
- Amb la instrucció (addwf) Suma el valor de W (índex) al registre PCL (comptador de programa). Conseqüentment el flux del programa salta ala posició indexada.
- Amb la instrucció (retlw) es finalitza la subrutina amb el valor de
la taula en W.
PFC- Control híbrid difús-lliscant memòria descriptiva
82
Rutines de càlcul S’han dissenyat diferents rutines de càlcul específiques per l’algorisme difús. Algunes són simples sumes o restes que poden entendres fàcilment seguint el codi comentat. Cal destacar però, la rutina de càlcul multib que es troba en el llistat principal (arxiu “chdll.asm”) i realitza la multiplicació de dos bytes, retornant tan sols el byte alt del resultat (que en principi és mida word). La operació es realitza a partir de multiplicacions de quatre bits (accedint a la taula multi).
Aquesta rutina (multib) s’utilitza per dues funcions: a) En el procés de defuzzyficació, per multiplicar les diferents regles de
control pel corresponent pes (o grau de validesa) assignat, per tal de calcular posteriorment la mitjana.
b) En el càlcul de les regles de control (proporcional, integral, derivativa,
...) Com que aquestes són combinacions lineals de les entrades, és necessari multiplicar cada entrada per un valor determinat. Això es du a terme a partir de desplaçaments en els registres (per multiplicar o dividir per dos) i de la rutina multib que equival a multiplicar un byte per un valor entre 0 i 1.
Control del mòdul visualitzador Per controlar el mòdul visualitzador, a part de la inicialització, s’utilitzen dues rutines principals: actlcd i actval. En primer lloc, cal explicar que l’escriptura en el mòdul es realitza indirectament. Per simplificar-ne l’accés des de qualsevol rutina del programa, s’ha optat per reservar 32 posicions de la memòria RAM del microcontrolador per escriure-hi els caracters ASCII a representar en el display. És a dir, s’utilitza una imatge en memòria del que es visualitza posteriorment. Concretament s’utilitzen els registres des de l’adreça 0xA0 a la 0xAF pels 16 caràcters de la primera línia del display i de 0xC0 a 0xCF per la segona línia. La rutina actlcd s’encarrega de refrescar de forma cíclica el mòdul visualitzador a partir de la imatge en memòria. En la rutina d’inicialització del mòdul (inilcd) s’escriuen els diferents caràcters en la imatge en memòria del display corresponents als noms de les variables que es representaran. La rutina actlval actualitza els valors de les variables a representar. Llegeix les variables del sistema, les transforma a codi ASCII i les escriu en les posicions adequades de la imatge en memòria.
PFC- Control híbrid difús-lliscant memòria descriptiva
83
5 Assaigs del Sistema
5.1 Introducció
Per tal de comparar el comportament amb diferents controladors, i com que
la placa ens permet realitzar múltiples tipus de control, s’han realitzat assaigs amb tres tipus de control diferents:
- Control PID-Lliscant - Control PID-PWM - Control Híbrid Difús Lliscant
5.2 Assaigs amb control PID-LISCANT
Es tracta de realitzar el control en mode de lliscament però, en lloc de calcular la intensitat de referència segons un algorisme difús, s’ha ajustatat un simple control PID amb l’error com a entrada i la intensitat de referència (Iref) com a sortida. Per tal d’ajustar el PID i validar de nou el model del motor s’ha realitzat prèviament el model i se n’ha simulat la resposta. El model, només difereix de l’original en que el controlador difús s’ha canviat per un controlador PID. En les següents figures es mostren els diagrames corresponents en SIMULINK.
Wsen
W sensada
Wref
W referència
W m
W motor
S u m 1
I re f
Tpm
W m
Sistema l l iscant
(MOTOR)
A/D in D/A out
Sis tema Microcont ro lador
(Controlador PID)
1
0.06s+1
Sensor
Pare l l càr rega
Iref
I referènciaWc^2
s +sqrt(2)*Wc.s+Wc^22
Fi l t re ant ia l ias ing
de segon ordre
Werror
Error
Cons igna
0
Clock
t
Base de temps
Figura 5-1. Model del sistema amb control PID-Lliscant
PFC- Control híbrid difús-lliscant memòria descriptiva
84
1
D/A ou tZero-Order
H o l d 1
Zero-Order
H o l d
Sa tu ra t i on1 Quan t i ze r1 Quan t i ze r
In1 Out1
PID
1
A / D i n
Figura 5-2. Model del sistema microcontrolador (controlador PID)
1
Out1
z
1
Unit Delay2
z
1
Unit Delay1
error
To Workspace5
cerror
To Workspace4
S u m 4
S u m 3S u m 2
Saturat ion1
Saturat ion
T*ki
Ga in2
kd /T
Ga in1
kp
Ga in
1
In1
Figura 5-3. Model del controlador PID
S’ha ajustat empíricament el controlador PID en la simulació per implementar-lo després a la pràctica. En la placa de control ha fet falta modificar lleugerament l’algorisme de control, implementant un controlador PID en lloc d’executar l’algorisme difús, (el codi utilitzat està en l’arxiu “f200pid.asm”). En les següents figures es mostren els resultats mesurats i simulats de la resposta a un esglaó de 400 rpm. Podem observar-hi que la resposta mesurada és molt semblant a la simulada. El motor segueix la consigna amb un error inapreciable, s’observa però, un sobrepic considerable i que durant la pujada es satura la intensitat al valor màxim.
PFC- Control híbrid difús-lliscant memòria descriptiva
85
Resposta a l’esglaó: 0 →→ 400 rpm; Alimentació: Vm=60V
Figura 5-4. Resposta mesurada a un esglaó de 400rpm
0 1 2 3 4 5 6 7 8 9 1 0-10
0
1 0
2 0
3 0
4 0
5 0
t [ s e g ]
w[r
ad/s
eg]
Figura 5-5. Resposta simulada a un esglaó de 400rpm (42 rad/seg)
PFC- Control híbrid difús-lliscant memòria descriptiva
86
La següent resposta mesurada correspon també a un esglaó, però d’una magnitud superior (700rpm). S’observa que, en proporció, el sobrepic és inferior al cas anterior i en magnitud, es manté pràcticament igual. Això és degut a que en la implementació el terme integral es satura a un valor determinat i com que el sobrepic és degut principalment a aquest terme, un com saturat, la magnitud del sobrepic no es veu molt afectada per ser l’esglaó de mes o menys valor. També observem en la següent gràfica que, quan la velocitat del motor s’aproxima a zero, s’observa una oscil· lació considerable. Això és degut al sensat de velocitat, ja que en aquesta regió la precisió és molt dolenta i, a més, es produeixen ràpids canvis de signe en la tensió que proporciona. Resposta a l’esglaó: 0 →→ 700 rpm; Alimentació: Vm=60V
En la següent pàgina observem com el motor segueix consignes canviants: en un cas, entre velocitats diferents però en un mateix sentit, i en l’altre canviant el sentit de gir del motor. Sense tenir en compte alguns sobrepics que apareixen (deguts segurament al transductor de velocitat o a soroll causat dels propis interruptors) observem que les respostes en un sentit i en l’oposat són simètriques, i que en els dos sentits, l’error en regim estacionari és inapreciable. En certa manera això valida el correcte funcionament de la placa de control (no s’aprecien offsets i la resposta és l’esperada).
Figura 5-6. Resposta mesurada a un esglaó de 700rpm
PFC- Control híbrid difús-lliscant memòria descriptiva
87
Canvis de consigna: 200↔↔600 rpm; Alimentació:Vm=50V; Canvis de consigna: -400↔↔400 rpm; Alimentació: Vm=60V;
Figura 5-8. Canvis de consigna de –400 a 400 rpm
Figura 5-7. Canvis de consigna, Vm=50V
PFC- Control híbrid difús-lliscant memòria descriptiva
88
En els assaigs realitzats en mode de lliscament, no s’aprecien canvis en la
velocitat de sortida davant una pertorbació en l’alimentació. S’ha pogut comprovar que la velocitat és immune a canvis en l’alimentació sempre que el sistema es mantingui dins les regions de llicament (determinades en l’estudi de la dinàmica en mode de lliscament, veure en el punt “Estudi Teòric del Controlador”). També es demostra en l’estudi que el punt d’equilibri no depèn de l’alimentació.
Analitzarem-ho ara des d’un punt de vista més intuïtiu: En els controls tradicionals de motors de contínua, en que l’acció de control
actua directament sobre la tensió d’armadura (per exemple amb actuació PWM) un canvi en la tensió d’alimentació provoca (mentre el controlador no reacciona) un canvi en la intensitat d’armadura i per tant, en el parell generat. Això es tradueix en una variació de la velocitat del motor que és corregida per l’acció del control.
En el sistema en mode de lliscament que estem estudiant, el control es
realitza sobre la intensitat d’armadura, obligant-la a mantenir-se en una regió determinada i acotada per una histèresis. Si es produeix un canvi en la tensió d’alimentació la regió en que està confinada no varia, i per tant, el parell del motor no es veu modificat. Llavors, la velocitat no experimenta cap canvi.
El que si es pot apreciar en les següents gràfiques, és que, en funció de
l’alimentació, l’evolució de la intensitat dins la regió de histèresis és diferent. Com és lògic esperar, a més tensió d’alimentació la intensitat evoluciona amb més rapidesa d’un extrem a l’altre dins la regió de histèresis, per tant, la freqüència de commutació és més elevada.
En les següents gràfiques es mostra la velocitat del motor (en verd) la
intensitat (en roig) i l’acció de control ‘u’ (en negre). L’escala de temps és idèntica en les dues i la velocitat del motor també. La diferència entre els dos assaig és la tensió d’alimentació (60 V en la primera gràfica i 40 V en la segona). Pot observar-se que l’únic canvi rellevant que experimenta el sistema està (com s’ha comentat abans) en la freqüència de commutació.
PFC- Control híbrid difús-lliscant memòria descriptiva
89
Comparació del Lliscament davant tensions de línia diferents.
Vm = 60V; Wref ≈ 500rpm;
Vm = 40V; Wref ≈ 500rpm;
Figura 5-9. Detall de l’evolució de la intensitat d’armadura 1
Figura 5-10. Detall de l’evolució de la intensitat d’armadura 2.
PFC- Control híbrid difús-lliscant memòria descriptiva
90
5.3 Assaigs amb Control PID-PWM
Per contrastar millor el control lliscant amb l’actuació en PWM, s’han
realitzat assaigs actuant sobre la mateixa planta amb modulació per amplada de pols (PWM). Els canvis a realitzar, en model per la simulació i en la placa de control, són només:
- La sortida del control que s’assignava a la intensitat de referència, cal assignar-se a la tensió d’armadura del motor o bé al cicle de treball de l’actuació PWM.
- S’ha de canviar la posició del jumper2 de CMP a PWM, per seleccionar aquest tipus de control.
- Cal ajustar de nou el control PID, doncs s’ha modificat considerablement el sistema.
Observem en el següent assaig que la velocitat segueix la consigna marcada,
tot i que d’una forma diferent a com ho feia en el mode de lliscament. També pot observar-se que la intensitat d’armadura no és màxima en els canvis de consigna com podria desitjar-se per una resposta ràpida. A més, amb parells elevats (que no és el cas de l’assaig), podria superar-se la intensitat màxima permesa, sense control, danyant possiblement el motor.
En les següents figures es pot observar l’efecte de les pertorbacions de línia en la velocitat, en el control PWM. En negre es mostra la tensió d’alimentació i en verd, la velocitat del motor.
Figura 5-11. Resposta a canvid de consigna amb activació PWM
PFC- Control híbrid difús-lliscant memòria descriptiva
91
Resposta davant pertorbació de línia: Vm:60V→→ 40V; Wref=500rpm; Resposta davant pertorbació de línia: Vm:40V→→ 60V; Wref=500rpm;
Figura 5-12. Resposta a una caiguda de la tensió de línia
Figura 5-13. Resposta a un increment de la tensió de línia
PFC- Control híbrid difús-lliscant memòria descriptiva
92
5.4 Assaigs amb Control Difús-Lliscant
Comparant els controls PID-Lliscant i PID-PWM, s’han pogut comprovar
els avantatges que aporta un control en mode de lliscament davant un control PWM. El control difús aporta molts més graus de llibertat al dissenyador per controlar el sistema, i per tant la possibilitat de complir amb especificacions difícils d’aconseguir amb els controladors tradicionals.
En la següent gràfica es mostra l’assaig realitzat amb el controlador difús
dissenyat en l’estudi teòric del controlador. L’objectiu principal és eliminar el sobrepic que provoca el paràmetre integral en els canvis de referència, ja que aquest acumula error durant tota la transició. La idea és fer actuar la part integral només quan és necessari, és a dir, quan s’està arribant al règim estacionari. En aquest assaig s’aconsegueix una resposta sense sobrepic i amb un error nul en règim estacionari. La resposta és però, molt millorable. És aquí on, gràcies a la lògica difusa, el dissenyador té llibertat per ajustar el control, amb infinitat de paràmetres i estratègies, perquè compleixi amb unes especificacions determinades.
Figura 5-14. Seguiment a una consigna quadrada
PFC- Control híbrid difús-lliscant memòria descriptiva
93
5.5 Conclusions
En el present projecte, no tan sols s’ha estudiat un controlador híbrid
difús-lliscant, sinó que s’ha dut a terme una comparativa entre diferents tipus de control de velocitat d’un motor de continua. Per una banda s’ha comparat el sistema d’actuació per modulació d’amplada de pols (PWM) amb el sistema en mode de lliscament. Per altra banda s’ha comparat un controlador clàssic, el PID, amb una relativa nova tècnica de control, el controlador difús. Les conclusions que se n’ha pogut treure són:
El control del motor en mode de lliscament és molt superior al sistema
PWM, ja que proporciona una resposta immune a pertorbacions en l’alimentació i permet controlar fàcilment la intensitat del motor, evitant que superi el valor màxim admissible. La implementació pot donar alguns problemes per ser una forma de treballar poc coneguda fins al moment, però està guanyant terreny respecte a controls PWM.
La lògica difusa permet molta flexibilitat en el control, oferint al
dissenyador molts graus de llibertat perquè es pugui ajustar un controlador segons unes especificacions estrictes. En contrapartida, s’ha pogut comprovar que, tant l’ajust del controlador com la seva implementació són molt més costosos que utilitzant un controlador PID (amb només tres paràmetres a ajustar i seguint un procediment sistemàtic).
Com a conclusió podem dir, que el tipus de controlador més adient depèn
del sistema a controlar i de les especificacions que ha de complir. Un controlador PID serà preferible, per la seva simplicitat, en aquells sistemes que no requereixin un comportament molt específic i que no siguin extremadament complexes. La utilització d’un controlador difús es justifica per els sistemes complexes, amb unes especificacions molt concretes o que, per les seves característiques, siguin difícils de tractar amb un controlador clàssic (PID o similar).
PFC- Control híbrid difús-lliscant memòria descriptiva
94
6 Referències [1] Apunts d’assignatura: Luis Martínez Salamero, “Enginyeria de Control I” assignatura
d’Enginyeria en Automàtica i Electrònica Industrial, 1999. [2] Llibre: Jun Yan, Michael Ryan, James Power, “USING FUZZY LOGIC”, Prentice
Hall, 1994. [3] Article: E.Vidal-Idiarte, J.Calvente, R.Giral, R.Leyva i L.Martínez, “Controlador
Híbrido Difuso-Deslizante de Motores de Contínua” (veure en l’annex “altres documents”).
[4] Llibre: J.-S. Roger Jang, Ned Gulley, “FUZZY LOGIC TOOLBOX”, The Math Works
Inc., 1995. [5] Pàgina Web: HTTP://www.microchip.com.
95
Control Híbrid Difús Lliscant d’un Motor CC
MEMÒRIA DE CÀLCUL
PFC- Control híbrid difús-lliscant memòria de Càlcul
96
7 Càlcul de l’amplificador regulable de sensat
Per aconseguir un amplificador de guany regulable, entrada diferencial i sortida en mode comú, s’utilitzen dues etapes consecutives: un circuit diferencial i un amplificador regulable.
7.1 Etapa Diferencial
Com es demostra a continuació, perquè Vo = Va-Vb cal complir-se que:
R1 = R3; i R2 = R4. El node de referència per la tensió Vo és Vcc/2. Aplicant superposició (calculant per separat la sortida en funció de Va i en
funció de Vb) podem trobar Vr en funció de les dues entrades:
+
++−= 1
R1R2
R4R3R4
VbR1R2
VaVo (f 73)
Perquè l’amplificador sigui d’entrada diferencial s’ha de complir que:
( )VbVaGVo 1 −= (f 74)
On G1 és una constant que correspon al guany. Llavors, per poder treure factor comú a –Va i Vb, s’ha de complir que:
+
+= 1
R1R2
R4R3R4
R1R2
(f 75)
Figura 7-1. Etapa Diferencial
-
+
R2
R3 Vo
R1
R4
Va
Vb
+ Vin
+5V
Vcc/2
PFC- Control híbrid difús-lliscant memòria de Càlcul
97
Operant:
( )( ) ( ) ( )R1R2R4R1R4R3R1R2
R4R3R1R1R2R4
R1R2
+⋅=+⋅⇒++
= (f 76)
Finalment deduïm que:
R3R1 = R4R2 = R1
R2G1 −=
7.2 Amplificador Regulable
Simplement es tracta d’una etapa amb un amplificador operacional amb la
configuració típica d’un amplificador inversor.
Si es consideren totes les tensions referides a Vcc/2 pot deduir-se directament la relació entrada/sortida:
ViR1
R2Vo −= (f 77)
Per corroborar els resultats realitzarem els càlculs referint tots els senyals a massa i considerant dues entrades: Vcc/2 i Vi.
-
+
Vo
R1 Vi
R2
+5V
Vcc/2
Figura 7-2. Amplificador regulable
PFC- Control híbrid difús-lliscant memòria de Càlcul
98
Aplicant superposició obtenim:
R1
R2ViVo
0Vcc/2−=
=
1
2
22Vo
0 R
RVccVccVi
+==
Agrupant:
1
2
22 R
RVi
VccVccVo
−+=
(f 78)
Si considerem ara que tant la tensió d’entrada com la de sortida estan referides a Vcc/2, podem definir com a senyals d’entrada i sortida:
2
VccViVentrada −=
2
VccVoVsortida −=
Substituint en la funció (f16) obtenim:
VentradaR
RVsortida
1
2−= (f 79)
S’obté el mateix resultat de la funció (f 16) Per modificar el guany d’aquesta etapa amplificadora, la resistència R2 serà un
potenciòmetre regulable.
7.3 Selecció dels components
Operacionals.
S’ha utilitzat l’integrat TLC2274IN (encapsulat de 14 pins amb quatre amplificadors operacionals). Aquests permeten una alimentació asimètrica de 5V i la tensió de sortida pot variar des de 0.01V fins a 4,99V, aprofitant al màxim el rang de tensió en que ens podem moure. Resistències. En l’etapa diferencial el més important és que R1 = R3 i R2 = R4. S’utilitzaran resistències de tolerància 1%. La relació entre aquestes resistències no és de tanta importància ja que en l’etapa posterior, el guany és regulable. Interessa que el valor de R1 i R3 sigui prou elevat per aconseguir una impedància d’entrada gran.
PFC- Control híbrid difús-lliscant memòria de Càlcul
99
També és convenient que aquesta etapa amplifiqui lleugerament el senyal tot i que en la següent etapa pugui atenuar-se. Per reduir el soroll que pugui introduir-se en el propi circuit, sempre és millor que atenuar primer per amplificar després.
Utilitzar resistències massa elevades implica introduir fonts de soroll més
grans, no és convenient que el valor d’aquestes superi alguns centenars de quilo Ohms.
Finalment s’escull, per l’etapa diferencial, els valors: R1 = R3 = 100 kΩ i R2 = R4 = 300 kΩ Que correspon a un guany de:
31
21 ==
R
RG (f 80)
Per l’etapa amplificadora s’ha estimat que el guany pugui variar des de pràcticament 0 fins a -10. El guany és:
1
22 R
RG −= (f 81)
S’escull, per R2 un potenciòmetre de 100 kΩ i per R1 una resistència de 10 kΩ.
En la placa de control s’utilitzen dos amplificadors regulables de sensat exactament iguals: pel sensat de velocitat i el de corrent. Es poden observar en el plànol “Esquema de la Placa de Control”. Identificant les resistències calculades amb les de l’esquema general obtenim:
Nomenclatura Descripció Valor R5 Resistència de carbó, 1% 1/4W 100 kΩ R6 Resistència de carbó, 1% 1/4W 100 kΩ R7 Resistència de carbó, 1% 1/4W 300 kΩ R8 Resistència de carbó, 1% 1/4W 300 kΩ R9 Resistència de carbó, 5% 1/4W 10 kΩ P3 Potenciòmetre multivolta 100 kΩ
R15 Resistència de carbó, 1% 1/4W 100 kΩ R16 Resistència de carbó, 1% 1/4W 100 kΩ R17 Resistència de carbó, 1% 1/4W 300 kΩ R18 Resistència de carbó, 1% 1/4W 300 kΩ R19 Resistència de carbó, 5% 1/4W 10 kΩ P4 Potenciòmetre multivolta 100 kΩ
PFC- Control híbrid difús-lliscant memòria de Càlcul
100
8 Càlcul del Comparador amb Histèresis
S’ha utilitzat un comparador amb histèresis utilitzant un amplificador operacional amb la topologia que es mostra a continuació. Observem que la realimentació és positiva, això implica que l’operacional estigui saturat a +5V o a 0V. Per conèixer en quines circumstàncies la tensió de sortida commuta d’una tensió a l’altra o a l’inrevés, estudiarem el sistema en les dues situacions, quan la sortida està a 0V i quan està pràcticament a Vcc. En ambdós casos el comparador commuta quan s’igualen les tensions en els terminals d’entrada de l’amplificador operacional (Va = Vb). Realitzarem l’estudi considerant: R1 = R20 = R21; i R2 = R22 = R23 Tindrem:
12
121
21
1
21
21
R
VoRR
RRVo
R
RV
+=+
+ 82)
12
21
1
1
1
2 22 RR
RV
R
R
R
RVb Vcc
++
=+
++
= (f 83)
La commutació es produeix quan Va=Vb, llavors:
2221 2 RRVRVoRVVbVa Vcc++⇒ (f )
-
Vo
V1+5V
V2
Vcc/2
R22
Figura 8 1. r amb histèresis
Vb
PFC- -lliscant memòria de Càlcul
101
⇒ 122121 2 RRVRVccRV Vcc+=+ ⇒
⇒ 22121 2 RVRRV Vcc =+ ⇒
⇒ 22
11 2 V
R
RV Vcc =+ ⇒
Punt de commutació:
2
112 2 R
RVV Vcc+= (f 85)
Si Vo=0:
⇒ 12221 2 RRVRV Vcc+= ⇒
⇒ 22121 2 RVRRV Vcc =− ⇒
⇒ 22
11 2 V
R
RV Vcc =− ⇒
Punt de commutació:
2
112 2 R
RVV Vcc−= (f 86)
La histèresis és de 2
12 R
RVcc± respecte la tensió V1, tot i que respecte a V2
el resultat és el mateix. En la següent figura es mostra la gràfica característica del comparador.
Vo
V1
Vcc
Vcc/2
0
2
11 2 R
RV Vcc+ 2
11 2 R
RV Vcc−
V2
Figura 0-1. Característica del comparador
PFC- Control híbrid difús-lliscant memòria de Càlcul
102
El rang de tensió comprès entre ±2 V respecte a Vcc/2 correspon al rang de corrent comprès entre ±1,8 A. Establim una histèresis de ±0,05 A que en tensió correspon a:
VVVA
AVh 06,0055,02
8,1
05,0≈==
2
106,0 2 R
RVcc=
Fixem el valor de R1 a 10 kΩ, llavors:
Ω≈Ω=Ω
== KKV
KV
V
RR Vcc 3907,416
06,0
105,2
055,0
12 2
Identificant les resistències calculades amb les corresponents a l’esquema general (R1 = R20 = R21; R2 = R22 = R23) obtenim:
Nomenclatura
Descripció Valor
R20 Resistència de carbó, 5% 1/4W 10 kΩ R21 Resistència de carbó, 5% 1/4W 10 kΩ R22 Resistència de carbó, 5% 1/4W 390 kΩ R23 Resistència de carbó, 5% 1/4W 390 kΩ
PFC- Control híbrid difús-lliscant memòria de Càlcul
103
9 Càlcul de filtres
En el canal d’entrada AN1 del convertidor A/D intern en el microcontrolador, hi arriba un senyal d’error que prové de la planta. Per tant, aquest senyal pot tenir un nivell de soroll molt elevat. Per reduir el soroll i evitar problemes de solapament, prèviament a l’entrada AN1 s’intercala un filtre passa-baixos de segon ordre.
Seguint el criteri de Nyquist la freqüència de tall del filtre per evitar
aliassing ha de ser menor que la meitat que la de mostreig del convertidor. Com s’ha establert, el convertidor adquireix a 200 Hz, per tant, la freqüència de tall serà de 100 Hz. Interessa que la resposta del filtre en la banda de transició sigui el màxim de plana possible. Per això s’utilitzarà un “filtre de resposta màximament plana” o “filtre de Butterworth”, realitzat amb un amplificador operacional com es mostra en la següent figura. Per fer l’anàlisi sistemàtic utilitzant el mètode de tensions de nodes, es fa un canvi en la topologia per transformar la font de tensió en una d’intensitat (transformació Thevenin ⇒ Northon). Es treballarà a partir d’aquí amb el circuit transformat en el domini de Laplace.
-
Vi
+
C1
C2
R1 R2 Vo
+
-
R1
Vi(s)
+
sC1
1 ⋅
R1
R2 Vo(s)
sC1
2 ⋅
Va(s) Vb(s)
Figura 9-1. Filtre passa-baixos de 2on ordre
Figura 9-2. Circuit transformat
PFC- Control híbrid difús-lliscant memòria de Càlcul
104
Les equacions de nodes representades en forma matricial són:
⋅
+−−−++
=
Vo(s)
Vb(s)
Va(s)
XXX
0sC
sCsC
X
0 2R21
R21
1R21
1R21
R11
R1Vi(s)
(f 87)
La realimentació negativa assegura que Vo(s)=Vb(s), llavors:
⋅
+−−−++
=
Vo(s)
Va(s)
sC
sCC
0 2R21
R21
1R21
1R21
R11
R1Vi(s)
(f 88)
D’on podem obtenir sistemàticament:
ÄÄ
0
C
Vo(s) R2R1Vi(s)
R21
R1Vi(s)
1R21
R11
⋅=−
++
= (f 89)
Operant els determinants i simplificant l’expressió obtenim:
1)21(21
)()(
22
21 +++=
sCRRsCCRR
sVisVo (f 90)
La funció de transferència és:
211
21
CCR2R11
CR2R1R2R12
CCR2R11
ssVi(s)
Vo(s)
++=
+ (f 91)
on: l freqüència de tall (Wo) i el guany a baixa freqüència (K) són:
2121
1CCRR
Wo = 1=K (f 92)
PFC- Control híbrid difús-lliscant memòria de Càlcul
105
Un filtre de Butterworth de segon ordre es caracteritza per:
22
2
WosWo2s
WoH(s)
++= (f 93)
Observem que si R=R1=R2 i C=C2=C1/2 es circuit estudiat correspon a l’equació (f22).
22
2
CR21
CR12
CR21
Wos2s
Wo
ssVi(s)
Vo(s)
22
22
++=
++=
⋅⋅
⋅⋅ (f 94)
On la freqüència de tall és:
CR2
1Wo = (f 95)
Considerant la freqüència de tall a 100 Hz tindrem:
segrad628100Hz2ðWo ==
(f 96) Escollim un valor pel condensador de 220nf. La resistència serà doncs:
kÙ5,122CWo
1R == (f 97)
Finalment assignem valors als diferents components. Veure plano 1:“Esquema de la Placa de Control”.
Nomenclatura
Descripció Valor
R10 Resistència de carbó, 5% 1/4W 5,2 kΩ R11 Resistència de carbó, 1% 1/4W 5,2 kΩ R12 Resistència de carbó, 1% 1/4W 1,2 kΩ C4 2 Condensadors ceràmics en
paral· lel 440 nF
C5 Condensador ceràmic 220 nF
PFC- Control híbrid difús-lliscant memòria de Càlcul
106
10 Etapa de sortida del convertidor D/A
La finalitat d’aquesta etapa és adaptar un senyal de tensió comprès entre 0 i 2,4V a un rang comprès entre 0,5V i 4,5V. També ha d’oferir una elevada impedància d’entrada per interferir el mínim possible amb la tensió de sortida del convertidor D/A. Pot deduir-se fàcilment que:
13
141
R
RVcVpVo += (f 98)
Per ajustar el rang de Vc (2,4V) al de Vo (4V=4,5-0,5) és necessari un guany de:
667,14,2
4
13
14===
R
RG (f 99)
Que aproximem utilitzant valors estàndard de resistències.
511,1450
680=
ΩΩ
≈K
KG (f 100)
Ω= kR 68014 Ω= kR 45013
Figura 10-1. Convertidor D/A i etapa de sortida
Vc
Vi
Vo
Vp1
PFC- Control híbrid difús-lliscant memòria de Càlcul
107
S’ha escollit R13 suficientment gran perquè l’efecte sobre la tensió de sortida del convertidor (Vc) sigui mínim. La tensió Vp1 s’ajusta amb un potenciòmetre (P1) de 100 kΩ. Hi ha la possibilitat d’afegir un condensador en paral· lel amb la resistència R14 per tal de que l’etapa es comporti com un filtre passa-baixes i elimini l’escalonat típic a la sortida d’un convertidor D/A. S’ha preferit no incloure’l per no introduir més retards en el sistema. Tensió de referència El convertidor D/A pot funcionar en mode de tensió alimentat a +5V, però la sortida no pot superar els 2,5V (veure característiques del convertidor). Per això es fixa una tensió de referència de 2,4V. Per aconseguir aquesta tensió s’utilitza un díode zener. La polarització d’aquest díode es realitza mitjançant una resistència que assegura una intensitat en inversa d’aproximadament 4,5 mA.
Ω≈Ω=−
=−
= 5608,5770045,0
4,251
Ip
VdVccR
PFC- Control híbrid difús-lliscant memòria de Càlcul
108
11 Càlcul pel tractament del senyal d’activació
Com es pot veure en l’esquema de la placa de control el tractament del senyal d’activació es basa en un circuit combinacional implementat amb portes NOR. A partir d’una entrada de control ‘u’ s’obtenen dues sortides d’activació pel pont ‘a’ i ‘b’, sent una la negada de l’altre. Hi ha però, una particularitat: l’última porta, tant pel senyal ‘a’ com pel ‘b’ s’utilitza per introduir un retard a la connexió. Com s’ha explicat en la memòria descriptiva aquest retard és necessari per evitar el blanking: assegurar que, quan es tanca un interruptor d’una branca, l’altre es troba completament obert (en cas contrari poden destruir-se els interruptors.
El circuit de retard a la connexió, basat en una porta NOR, és el següent:
• Quan l’entrada ‘IN’ passa a nivell alt ‘1’ la sortida passa (en un temps mínim) a nivell baix ‘0’, ja que un ‘1’ en l’entrada ‘A’ de la porta implica un ‘0’ a la sortida.
• El condensador ‘C’ es carrega a través de la resistència ‘R’.
• Quan L’entrada ‘IN’ passa a ‘0’ la sortida no puja immediatament, ja que el
condensador està carregat forçant un ‘1’ a l’entrada ‘B’ de la porta.
• El condensador es descarrega fins a superar el llindar que la porta interpreta com a un ‘0’, moment en que la sortida pren el valor lògic alt. El retard a la connexió bé determinat per la descàrrega del condensador a
través de la resistència i pel llindar de tendència negativa de la porta. S’han utilitzat portes lògiques NOR amb histèresis (Schmitt-triggers) tipus
74232 per evitar oscil· lacions en la sortida. El llindar de tendència negativa per aquestes portes és de 0,9V a temperatura ambient. Suposem que quan l’entrada ‘IN’
IN OUT
R
C
Figura 11-1. Circuit de retard
PFC- Control híbrid difús-lliscant memòria de Càlcul
109
passa de ‘1’ (5 V) a ‘0’ (0 V) el condensador es troba totalment carregat a 5 V. La descàrrega d’aquest condensador segueix la funció exponencial següent.
( )
RCt
eVc−
⋅= 5 (f 101) Donada la tensió llindar Vc=0,9 V, podem calcular el temps que es tarda en assolir-se en funció de ‘R’ i ‘C’.
Aïllem la variable t:
−=
5ln
VcRCt (f 102)
Considerant el temps d’obertura dels interruptors IGBT (350 ns), el retard de les portes lògiques utilitzades en el pitjor dels casos (44 ns), es determina un temps necessari de 400 ns. Per donar cert marge, i considerant que, en algunes circumstàncies (per exemple: a freqüències de commutació molt elevades), el condensador pot no quedar totalment carregat, es realitzaran els càlculs per un marge de temps de 1,5 µs. S’escull un condensador de 10 nf. Es calcula ara el valor de R necessari.
Ω=
=
−= 5,87
5
9.0ln10
5,1
5ln n
VcC
tR
µ (f 103)
Arrodonim la resistència obtinguda a 100 Ω, donant encara més marge de seguretat. Finalment els valors escollits són: C=10 nf i R=100 Ω. Identificant aquests components en l’esquema general tenim:
Nomenclatura
Descripció Valor
R24 Resistència de carbó, 5% 1/4W 100 Ω R25 Resistència de carbó, 1% 1/4W 100 Ω C7 Condensador ceràmic 10 nF C8 Condensador ceràmic 10 nF
PFC- Control híbrid difús-lliscant memòria de Càlcul
110
12 Càlcul de pistes
Per fer el càlcul de les pistes utilitzarem, per una banda, la fórmula:
ma
R Ω=5,0
(f 104)
que determina la resistència per metre lineal d’una pista en funció de la seva amplada ‘a’ en [mm]. S’ha obtingut sabent que la resistivitat del coure és de 17,5 [mΩ· mm2/m] i que el seu gruix en la placa de circuit imprès és de 35 µm.
Per altra banda utilitzarem la fórmula:
27
3Ia = (f 105)
per calcular l’amplada de la pista en mm a partir de la intensitat màxima que ha de circular-hi. Aquesta fórmula reflexa la densitat màxima de corrent que pot passar pel coure.
Estimació de corrents màxims:
Línia Càrregues Corrent consumida Alimentació
PIC16F873 20/5P 200 mA AD7528 JN 2 mA
2xTLC2247IN 2x50 mA PC1602M-1 10 mA
74LS232 30 mA 2x740L6010 2x14 mA
D1 4,6 mA LED 10 mA
Potenciòmetres i resistències alimentades
1 mA
Vcc i massa
Total 385,6 mA Línies de senyals digitals
Totes Entrades digitals i resistències
4 mA
Línies de senyals analògics Totes Entrades digitals, AO i
resistències 50 mA
PFC- Control híbrid difús-lliscant memòria de Càlcul
111
Per cada línia es calcularà l’amplada mínima necessària per no superar la densitat màxima de corrent i per tal de que la caiguda de tensió no superi el 2%. Per la intensitat màxima de corrent s’utilitza:
27
3Ia = (f 106)
Per la caiguda de tensió:
máxR
la
·5,0= (f 107)
On la resistència màxima ‘Rmax’ es calcula (per una caiguda del 2%)
I
VccRmàx
02,0⋅= (f 108)
I el valor ‘l’ (longitud de la pista) es considera, per les dimensions de la placa, de 0,1 m com a màxim. La següent taula mostra el càlcul d’amplada pels diferents tipus de pistes.
Línia Intensitat màxima estimada
Amplada segons:
27
3Ia =
Amplada per una caiguda de tensió
del 2% Vcc i massa 385,6 mA 46,1 µm 193 µm
Senyals digitals 4 mA 0,05 µm 2 µm Senyals
analògics 50 mA 2,15 µm 25 µm
Els valors mínims resultants són molt petits, la pròpia tecnologia utilitzada per la fabricació de la placa, ens obliga a dissenyar-les de més amplada. S’utilitzarà una amplada, per totes les pistes de senyal, de 0,75 mm.
112
Control Híbrid Difús Lliscant d’un Motor CC
PLÀNOLS
113
13 E
squema E
lèctric
114
14 Situació de Components
115
15 Placa, Cara de Components
116
16 Placa, Cara de Soldatge
117
Control Híbrid Difús Lliscant d’un Motor CC
PRESSUPOST
PFC- Control híbrid difús-lliscant Pressupost
118
17 Cost de Producció Components i material: Unit. Descripció i Nomenclatura Preu/unit.
(pts) Total (pts)
CIRCUITS INTEGRATS, COMPONENTS ACTIUS
1 Microcontrolador PIC16F873-20/SP 2.205 2.205 1 Convertidor DA de 8 bits AD7528JN 1.253 1.253 2 Quàdruple Amplificador Operacional TLC2247IN 494 988 1 Mòdul visualitzador LCD 2x16 1602M-1 2.634 2.634 2 Optoacobladors 74OL6010 d’alta velocitat per
acoblament de lògiques diferents 512 1024
1 Quàdruple porta NOR 74LS02N 63 63
COMPONENTS PASSIUS 1 Interruptor d’acció momentània Normalment Obert
per PCB 171 171
1 Díode Zener BZX79C2V4 de 2.4V 9 9 1 Díode LED Difusor Estàndard Roig de 3mm 46 46 2 Condensador de pel· lícula ceràmica de 20 pf 18 36 4 Condensador de pel· lícula de polipropilè de 10 nf 61 244 6 Condensador de pel· lícula de polipropilè de 100 nf 87 522 3 Condensador de pel· lícula de polipropilè de 220 nf 213 639 2 Condensador electrolític de 10 µf 10 20 1 Cristall de Quars CMACKD 20.000 kHz 94 94 2 Resistència pel· lícula de Carbó de 100 Ω, ¼ w i 5% 7 14 3 Resistència pel· lícula de Carbó de 470 Ω, ¼ w i 5% 7 21 1 Resistència pel· lícula de Carbó de 560 Ω, ¼ w i 5% 7 7 1 Resistència pel· lícula de Carbó de 1,5 kΩ, ¼ w i 5% 7 7 2 Resistència pel· lícula de Carbó de 2,7 kΩ, ¼ w i 5% 7 14 1 Resistència pel· lícula de Carbó de 5,2 kΩ, ¼ w i 5% 7 7 6 Resistència pel· lícula de Carbó de 10 kΩ, ¼ w i 5% 7 42 2 Resistència pel· lícula Carbó de 390 kΩ, ¼ w i 5% 7 14 1 Resistència pel· lícula Carbó de 450 kΩ, ¼ w i 5% 7 7 1 Resistència pel· lícula Carbó de 680 kΩ, ¼ w i 5% 7 7 2 Resistència pel· lícula de Carbó de 20 kΩ, ¼ w i 1% 13 26 4 Resistència pel· lícula Carbó de 100 kΩ, ¼ w i 1% 13 52 4 Resistència pel· lícula Carbó de 300 kΩ, ¼ w i 1% 13 52 4 Potenciòmetre multivolta 3296Y de 100 kΩ 267 1.068 1 Potenciòmetre de carbó d’una volta, 50 kΩ 45 45
PFC- Control híbrid difús-lliscant Pressupost
119
CONNECTORS, ZOCALS I MATERIALS DIVERSOS 6 Terminal doble amb cargol per PCB de pas 5 mm 79 474 6 Pius per Jumpers 11 66 2 Ponts per Jumpers 11 22 4 Zocal de 14 pins tornejats 63 252 1 Zocal de 16 pins 19 19 2 Zocal de 20 pins 24 48 1 Zocal de 28 pins 37 37 1 Tira de 14 pins tornejats 63 63 1 Placa de fibra de vidre laminada amb coure a doble
cara impregnada amb resina fotosensible de 100 x 160 mm
1.069 1.069
4 Separadors de 1cm M.4 per PCB (amb femella) 10 30
Cost total dels components i el material usats en la placa 13.412 Mecanitzat de la placa: Unit. Descripció i Nomenclatura Preu unitari
(PTS) Total (PTS)
HONORÀRIS
0.5 h Procés fotolitogràfic 1.500 750 2 h Foradat de la placa 1.500 3.000 3 h Col· locació i soldatge dels components 1.500 4.500 8 h Verificació del funcionament 1.500 12.000
MAQUINARIA I GASTOS GENERALS
1 Despeses generals en el procés fotolitogràfic 500 500
Cost total del mecanitzat i verificació de la placa 20.250
COST DE PRODUCCIÓ DEL PROTOTIPUS 33.662
PFC- Control híbrid difús-lliscant Pressupost
120
18 Cost de disseny Unit. Tipus de treball Preu
(PTS) Total (PTS)
HONORÀRIS
200 h Disseny: determinació de les prestacions, disseny funcional, elecció dels components.
1.500 pts/h 300.000
24 h Disseny de la placa PCB 1.500 pts/h 36.000
40 h Comprovació i reparació d’errors 1.500 pts/h 60.000 120 h Documentació, recerca d’informació, ... 1.500 pts/h 180.000
COST DE DISSENY 576.000
PRESSUPOST DEL PROTOTIPUS (Disseny+Producció)
609.662
19 Resum del Pressupost
Cost de producció de la placa 33.662 pts. Cost de disseny del prototipus 576.000 pts.
+
PRESSUPOST D’EXECUCIÓ MATERIAL 609.662 pts. GASTOS GENERALS (amortització del maquinari , el programari i els instruments de laboratori utilitzats en el disseny) : 13%
79.256 pts.
BENEFICI INDUSTRIAL : 6% 36.579,72 pts.
+ PRESSUPOST D’EXECUCIÓ PER CONTRATA 725.497,72 pts.
121
Control Híbrid Difús Lliscant d’un Motor CC
PLEC DE CONDICIONS
PFC- Control híbrid difús-lliscant Plec de Condicions
122
20 Condicions generals
20.1 Condicions Generals de Caire Facultatiu
Per dur a terme la implementació pràctica de la placa serà necessari assignar
un director encarregat de fer la interpretació tècnica dels documents del projecte i coordinar les diferents etapes del muntatge. El director haurà de ser com a mínim llicenciat en electrònica o en enginyeria industrial.
El director coordinarà i supervisarà totes les tasques de muntatge i
verificació, que són:
-Adquisició dels components. -Determinació del mètode més adient per la implementació del circuit imprès (mètode de transferència d’imatge, mètode de soldatge,...) -Implementació de la placa amb el mètode escollit. -Verificació dels resultats. -Comprovació del funcionament.
Adquisició dels components: El director s’ha d’encarregar de realitzar, o comprovar que una empresa subcontractada pel muntatge de les plaques realitzi, la comanda dels components amb suficient antelació per evitar retards en el procés de muntatge. En cas de dificultats en l’obtenció dels components, per no trobar-se fàcilment en el mercat o per ser (a criteri del director) excessivament cars, el director té la obligació de cercar equivalents que compleixin les especificacions mínimes (de patillatge i prestacions) per substituir l’element o elements en qüestió. Determinació del mètode d’implementació: Segons la qualitat, el nombre d’unitats i el termini en que s’ha de realitzar la placa; el director determinarà quin és el mètode més adient per la seva implementació, contemplant tant la possibilitat de realitzar-ho per mètodes propis com de subcontractar una empresa dedicada a la implementació de circuits impresos. Implementació de la placa: El director s’ha d’assegurar que el procés de fabricació és el correcte i que es compleixen els requisits especificats en el punt “2. Condicions tècniques” d’aquest plec. Verificació dels resultats: Un cop la placa acabada, el director farà un estudi visual i/o utilitzarà qualsevol altre mètode, per determinar si els resultats són els correctes (continuïtat de pistes, soldadures en bon estat, ...)
PFC- Control híbrid difús-lliscant Plec de Condicions
123
Comprovació del funcionament: No es donarà per vàlida una placa fins que s’hagi provat el seu funcionament. La comprovació del funcionament pot dur-se a terme subdividint el muntatge en blocs funcionals. Per exemple, pot provar-se per separat el sistema d’activació del motor utilitzant la sortida PWM del microcontrolador i pot provar-se el sistema en mode de lliscament introduint la intensitat de referència (Iref) externament (veure manual d’usuari). En cas de mal funcionament del muntatge es procedirà a determinar la causa seguint el procediment que el director cregui oportú, fent assaigs i proves amb els components individualment. Si algun component falla es comprovarà si el procés seguit en la manufacturació l'ha pogut malmetre, si és així, s’eliminarà la causa i es reemplaçarà el component. Si no es determina la causa de la fallada, igualment es reemplaçarà el component. Si l’error persisteix o bé es repeteix en altres unitats es comunicarà al proveïdor i, si e s determina que s’han proveït components defectuosos s’hauran de substituir a costa d’aquest.
20.2 Condicions Generals de Caire Econòmic
Forma de pagament: El pagament tant al proveïdor com a la possible
empresa que dugui a terme la manufacturació de la placa es farà efectiu un cop obtinguts els components o les plaques en cada cas, preferiblement s’abonarà el mateix dia i sempre en un termini màxim de 15 dies. Penalitzacions: si no es compleixen els terminis establerts en el contracte per part del proveïdor o per l’empresa de muntatge es compliran les indemnitzacions estipulades en el contracte pertinent. Si no s’ha especificat, es reduirà un 5% del cost total per cada dia laborable de retard.
Revisió de preus: El mercat de l’electrònica està en continua expansió i els preus dels component i del procés de muntatge són molt variants. El director té el dret de fer una revisió de preus sempre que ho desitgi i la obligació de fer-ho sempre que ho sol· liciti el propietari.
20.3 Condicions Generals de Caire Legal
Contracte: El contracte amb el proveïdor i amb l’empresa de fabricació, si
es dona el cas, es formalitzarà mitjançant document privat, en general, que podrà elevar-se a escriptura pública a petició de qualsevol de les parts.
PFC- Control híbrid difús-lliscant Plec de Condicions
124
La totalitat del present Plec de Condicions Generals i Tècniques, així com plànols y altres documents del projecte (que el director consideri necessari), hauran de ser incorporats íntegrament al contracte. Tant el propietari com el Constructor i el proveïdor, hauran de firmar al peu del p resent plec i en la resta de documents del projecte en testimoni de que els coneixen i accepten.
No es podrà modificar cap condició general o tècnica sense l'aprovació de la Direcció.
Responsabilitats: La placa de control és una tarja prototipus dissenyada per
funcionar en un laboratori de proves. No s’ha sotmès a cap homologació ni s’ha dissenyat per que compleixi cap normativa vigent. Per tant, la seva utilització en un entorn industrial no és acceptable ni ho és la producció en sèrie i comercialització. El seu ús és exclusivament per laboratori. La responsabilitat per qualsevol dany o perjudici que es pugui causar per un mal funcionament de la tarja no recau sobre el dissenyador sinó sobre la persona o entitat que la utilitzi.
Rescissió del contracte: Es consideren causes suficients de rescissió del contracte:
1ª. La mort o incapacitació del Constructor o Proveïdor. 2ª. La fallida del Constructor o Proveïdor. 3ª. Incompliment de les condicions del contracte quan impliqui descuit o mala fe. 4ª. Sobrepassar excessivament (a criteri del Director) el termini d’entrega. 5ª. Distribuir la totalitat o part del treball a tercers sense l'autorització del Director.
En cas que en el moment de rescindir el contracte s’hagi fet part de la feina (en el cas del Constructor) o s’hagin entregat part dels components (en el cas del proveïdor) es procedirà a liquidar la part realitzada. Si la causa de rescissió és una de les indicades com a 3ª, 4ª i 5ª, el director es reserva el dret d’abonar o no la part realitzada. Altres qüestions: El disseny pot utilitzar-se com a mostra per a altres sistemes de control, però la utilització del disseny o part d’aquest per dur a terme un dispositiu comercial s’ha de comunicar amb el dissenyador per pactar els drets sobre el projecte.
PFC- Control híbrid difús-lliscant Plec de Condicions
125
21 Condicions tècniques
Fabricació de les plaques: La fabricació de la placa pot dur-se a terme per qualsevol procediment
partint dels fotolits inclosos en els plànols. És important no modificar els fotolits ja què la mida de les pistes i la distribució dels components és crític per al correcte funcionament.
Les plaques han de ser de fibra de vidre o de qualsevol material de
característiques superiors. Es descarta la utilització de Baquelita. Muntatge dels components: Si el soldatge es fa manual, tots els circuits integrats han de muntar-se en
zòcals, per evitar danys en els components deguts a un sobrecalentament. En qualsevol cas, el microcontrolador PIC16F873 s’ha de muntar en zòcal no tornejat, ja que ha de poder ser extret amb freqüència per ser reprogramat les vegades que faci falta. Per la resta d’integrats, és preferible utilitzar zocals tornejats per facilitar el soldatge a dues cares.
Manipulació dels components (precaucions): La manipulació dels components en el muntatge i també de les plaques (un
cop duen algun component muntat) ha de fer-se tenint en compte que hi ha components sensibles a descàrregues electrostàtiques (ESD). Cal manipular els components preferiblement amb pinces evitant tocar les patilles amb els dits. La placa muntada cal ser subjectada pels extrems, evitant el contacte amb les pistes de senyal.
La millor manera d’impedir danys en els components per descàrregues electrostàtiques és manipulant-los en un centre de treball protegit contra ESDs. Com més precaucions es prenguin per evitar ESDs millor serà la fiabilitat dels components.
126
Control Híbrid Difús Lliscant d’un Motor CC
ANNEXES
PFC- Control híbrid difús-lliscant Annexes
127
22 Llistat del Programa
22.1 Llistat Principal
Archiu: chdll.asm ;************************************************************* ;* arxiu chdll.asm * ;************************************************************* ;* Microchip Technology Incorporated * ;* 16 December 1998 * ;* Assembled with MPASM V2.20 * ;************************************************************* ;* Algorisme FUZZY * ;* Aquest programa calcula la sortida 'Iref' a partir de * ;* error, cerror i Ia * ;************************************************************* list p=16f873 ;Dispositiu utilitzat ;Assignació de registres de funció especial include "p16f873.inc" ;*************************** CONSTANTS *********************** TBASE EQU 0X06 ;Valor base del timer0 T0=0,8ms TLCD EQU 0X50 ;Valor base de PASI (retard LCD) STEMP1 EQU 0x19 ;Subtemporitzador T0x25=20ms ;*********** Assignació de Registres de proposit general ***** ;********************** (Variables globals) ****************** ; Variables generals VREFH EQU 0X20 ;V referència part alta VREFL EQU 0X21 ;V referència part baixa (RST) ERRORH EQU 0x22 ;error, part alta ERRORL EQU 0X23 ;error, part baixa ERRANH EQU 0x24 ;error anterior, part alta ERRANL EQU 0X25 ;error anterior, part baixa IREFH EQU 0X26 ;I referència, part alta IREFL EQU 0X27 ;I referència, part baixa ST1 EQU 0x28 ;Sub-Temporitzador 1 PASI EQU 0X29 ;Index del PAS de LCD CONLCD EQU 0X2A ;Registre de Control per LCD CARACT EQU 0X2B ;Index a caracter per LCD ; Variables de partida en la fuzzyficació ERR EQU 0X2C ;Error [0,40]h CERROR EQU 0X2D ;Canvi en l'error [0,40]h
PFC- Control híbrid difús-lliscant Annexes
128
; Variables de sortida de la fuzzyficació CEN EQU 0X2E ;Pertinença a cerror Negatiu CEZ EQU 0X2F ;Pertinença a cerror Zero CEP EQU 0X30 ;Pertinença a cerror Positiu ENeg EQU 0X31 ;Pertinença a error Negatiu EZe EQU 0X32 ;Pertinença a error Zero EPos EQU 0X33 ;Pertinença a error Positiu ; Resultats de les regles d'inferència W1 EQU 0X34 ;Ponderació regla 1 W2 EQU 0X35 ;Ponderació regla 2 W3 EQU 0X36 ;Ponderació regla 3 W4 EQU 0X37 ;Ponderació regla 4 W5 EQU 0X38 ;Ponderació regla 5 W6 EQU 0X39 ;Ponderació regla 6 W7 EQU 0X3A ;Ponderació regla 7 ; Variables de control K1ERROR EQU 0x3B ;Factor Proporcional INTEGA EQU 0X3C ;Integal anterior (part baixa) INTEG EQU 0x3D ;Integral actual (part baixa) SUMINT EQU 0x3E ;Increment del factor Integral INTEGRA EQU 0x3F ;Factor Integral (Iref+SUMINT) SUMDER EQU 0x40 ;Increment del Factor Derivatiu DERIVA EQU 0x41 ;Factor Derivatiu (Iref+SUMDER) ; Variables intermitges per la defuzzificació SUM1 EQU 0X42 ;Suma defuzzy 1 SUM2 EQU 0X43 ;Suma defuzzy 2 SUM3 EQU 0X44 ;Suma defuzzy 3 ; Registres per guardar i restaurar context en interrupció GUARDW EQU 0x7F ;W en 0x7F o 0xFF segons STATUS GUARST EQU 0X45 ;Registre STATUS ; Paràmetres per l'accés a subrutines PARAM1 EQU 0x46 ;Paràmetre a funció PARAM2 EQU 0x47 ;Paràmetre a funció PARAM3 EQU 0x48 ;Paràmetre a funció PARAM4 EQU 0x49 ;Paràmetre a funció PARAM5 EQU 0x4A ;Paràmetre a funció PARAM6 EQU 0x4B ;Paràmetre a funció PARAM7 EQU 0x4C ;Paràmetre a funció
PFC- Control híbrid difús-lliscant Annexes
129
PARAM8 EQU 0x4D ;Paràmetre a funció ; Registres reservats per la visualització en LCD ; De 0xA0 a 0xAF -> Línia 1 LCD ; De 0xC0 a 0xCF -> Línia 2 LCD ;******* Assignació de vectors de reset i d'interrupció ******** org 0 ;Vector de reset goto inici ;Salt a inici org 4 ;Vector d'interrupció goto interrupt ;Salt a rutina d'atenció ;************************************************************* ;****************** RUTINES D'INICIALITZACIÓ ***************** ;************************************************************* org 300 include "inici.inc" ; rutina: inilcd (Inicialització de LCD ) ; rutina: inipb (Inicialització del port B) ; rutina: inipc (Inicialització del port C) ; rutina: inipwm (Inicialització del PWM) ; rutina: initem (Inicialització timer) ; rutina: inicad (Inicialització Convertidor A/D) ;**************************** TAULES ************************* ; Taules per fuzzyficar. Pas de paràmetres pel registre W ; Paràmetre d'entrada: W [0,40h] = (ERR o CERROR) ; Valor de sortida: W (màxim 10h) org 400h include "taulesf.inc" ;Rutina: taulae (taula Ze Per la variable error) ;Rutina: taulace (taula Z Per la variable cerror)
PFC- Control híbrid difús-lliscant Annexes
130
; Taula de multiplicar: W=W*PARAM1 ; Paràmetres d'entrada: W (màxim 10h); PARAM1 (màxim 10h); ; Valor de sortida: W (màxim ffh) org 500h include "multi.inc" ;Rutina: multi (taula de multiplicar) ;************************ RUTINES **************************** ;Rutines per la representació en el mòdul visualitzador ;Rutina (actval): Actualitza valors a representar en display ;Rutina (heas): Conversió de Hexadecimal a ASCII decimal ;Rutina (actlcd): Actualització del display LCD org 5 ;Inici de programa include "func_lcd.inc" ;********** RUTINES UTILITZADES EN L'ALGORISME DIFÚS********** ;Rutines utilitzades en la fuzzyficació ;Resta, per la obtenció de (cerror) resta movlw 0x10 ;Suma 16 al valor de partida addwf PARAM2,1 ; btfsc STATUS,C ; incf PARAM1,1 ; movf PARAM4,0 ;Resta part baixa subwf PARAM2,1 ; btfss STATUS,C ;Comprova si resultat negatiu incf PARAM3,1 ; movf PARAM3,0 ;Resta part alta subwf PARAM1,1 ; btfss STATUS,C ;Comprova si resultat negatiu retlw 0x00 ;En cas de resultat negatiu miramax btfss STATUS,Z ;Comprova si és superior a 0x20 retlw 0x20 ; movf PARAM2,0 ; sublw 0x20 ; btfss STATUS,C ; retlw 0x20 ; movf PARAM2,0 ;Retorna el resultat return ; ;Conjunts de pertinença a la variable (error) ;De la taula de (Ze) n'obtenim també (Pos) i (Neg)
PFC- Control híbrid difús-lliscant Annexes
131
perte movlw 0x20 subwf ERR,0 btfss STATUS,C ;Si ERR < 0x20 -> tram1 goto tram1 tram2 movf PARAM1,0 movwf EZe ;Pertinença a Error Ze sublw 0x10 movwf EPos ;Pertinença a Error Pos clrf ENeg return tram1 movf PARAM1,0 movwf EZe ;Pertinença a Error Ze sublw 0x10 movwf ENeg ;Pertinença a Error Neg clrf EPos return ;Conjunts de pertinença a la variable (cerror) ;De la taula de (Z) n'obtenim també (P) i (N) pertce movlw 0x20 subwf CERROR,0 btfss STATUS,C ;Si CERROR < 0x20 -> trama goto trama tramb movf PARAM1,0 movwf CEZ ;Pertinença a CError Z sublw 0x10 movwf CEP ;Pertinença a CError P clrf CEN return trama movf PARAM1,0 ; andlw 0x0f movwf CEZ ;Pertinença a CError Z sublw 0x10 movwf CEN ;Pertinença a CError N clrf CEP return ;Regles d'inferència. Mètode AND utilitzat: producte ;Representació amb coma fixa: ;En els valors fuzzyficats: unitat = (10h) ;En el valor resultant: unitat = (100h) s'aproxima amb (ffh) regles movlw 0x05 ;Taula "multi" en direcció 500h movwf PCLATH func1 ;If(cerror is Z) movf CEZ,0 movwf PARAM1 movlw 0x10 call multi movwf W1 func2 ;If(error is Pos)&(cerror is N)
PFC- Control híbrid difús-lliscant Annexes
132
movf EPos,0 movwf PARAM1 movf CEN,0 call multi movwf W2 func3 ;If(error is Pos)&(cerror is P) movf EPos,0 movwf PARAM1 movf CEP,0 call multi movwf W3 func4 ;If(error is EZe)&(cerror is N) movf EZe,0 movwf PARAM1 movf CEN,0 call multi movwf W4 func5 ;If(error is Eze)&(cerror is P) movf EZe,0 movwf PARAM1 movf CEP,0 call multi movwf W5 func6 ;If(error is Neg)&(cerror is N) movf ENeg,0 movwf PARAM1 movf CEN,0 call multi movwf W6 func7 ;If(error is Neg)&(cerror is P) movf ENeg,0 movwf PARAM1 movf CEP,0 call multi movwf W7 fifun clrf PCLATH return ;Defuzzyficació suma2 movf W2,0 addwf W4,0 btfsc STATUS,C retlw 0xff addwf W5,0 btfsc STATUS,C retlw 0xff addwf W7,0 btfsc STATUS,C retlw 0xff return ;sumax ; movf W4,0
PFC- Control híbrid difús-lliscant Annexes
133
; addwf W5,0 ; btfsc STATUS,C ; retlw 0xff ; return ;Multiplicació de bytes W=PARAM3xPARAM4/100h ;Paràmetres d'entrada: PARAM3 i PARAM4 (tamany byte) ;Valor de sortida: W (tamany byte), sols part alta ;Equival a multiplicar en coma fixa: unitat=100h -> ffh(aprox) multib incfsz PARAM4,0 ;Si PARAM4=ffh retorna PARAM3 goto calcula movf PARAM3,0 return calcula ;S'opera amb xifres de 4 bits movlw 0x05 ;Taula "multi" en direcció 500h movwf PCLATH movf PARAM4,0 andlw 0x0f movwf PARAM1 ;1a xifra multiplicador movf PARAM3,0 andlw 0x0f ;1a xifra multiplicand call multi movwf PARAM5 ;Resultat A swapf PARAM3,0 andlw 0x0f ;2a xifra multiplicand call multi movwf PARAM6 ;Resultat B swapF PARAM4,0 andlw 0x0f movwf PARAM1 ;2a xifra multiplicador movf PARAM3,0 andlw 0x0f ;1a xifra multiplicand call multi movwf PARAM7 ;Resultat C swapf PARAM3,0 andlw 0x0f ;2a xifra multiplicand call multi movwf PARAM8 ;Resultat D swapf PARAM5,0 ;Suma de resultats andlw 0x0f addwf PARAM6,0 addwf PARAM7,0 movwf PARAM5 btfss STATUS,C ;Si es desborda inc. PARAM8 goto segueix movlw 0x10 addwf PARAM8,1 movf PARAM5,0 segueix addlw 0x09 ;Arrodoniment a la part alta movwf PARAM5 btfss STATUS,C ;Si es desborda inc. PARAM8 goto segueix2
PFC- Control híbrid difús-lliscant Annexes
134
movlw 0x10 addwf PARAM8,1 segueix2 swapf PARAM5,0 andlw 0x0f addwf PARAM8,0 ;Resultat final, byte de més pes clrf PCLATH return ;*********************** ALGORISME DIFÚS ********************* ;Dividit en dues rutines principals: (controla) i (controlb). ;Es criden des d’interrupcions consecutives del convertidor AD ;************************************************************* ;************************************************************* ;(controla):realitza el procés de fuzzyficació i el càlcul de ;pesos de les regles d'inferència. ;També realitza els primers passos per la defuzzyficació. controla movf ERRORL,0 ;Calcula ERR(valor a fuzzyficar) movwf PARAM1 movf ERRORH,0 movwf ERR rlf PARAM1,1 ;Agafem els 6 bits de més pes rlf ERR,1 ; rlf PARAM1,1 ; rlf ERR,1 ; rlf PARAM1,1 ; rlf ERR,1 ; rlf PARAM1,1 ; rlf ERR,1 ; movf ERR,0 ;FUZZYFICACIÓ bsf PCLATH,2 ;Posició de les taules: 400h call taulae ;Taula (pertinença a Ze) bcf PCLATH,2 ; movwf PARAM1 ; call perte ;Pertinença a Neg i Pos movf ERRORH,0 ;Càlcul de CERROR movwf PARAM1 ; movf ERRORL,0 ; movwf PARAM2 ; movf ERRANH,0 ; movwf PARAM3 ; movf ERRANL,0 ; movwf PARAM4 ; call resta ;Retorna cerror entre 0 i 0x20 movwf CERROR ; bcf STATUS,C rlf CERROR,0 ;Ajust entre 0 i 0x40 bsf PCLATH,2 ;FUZZYFICACIÓ
PFC- Control híbrid difús-lliscant Annexes
135
call taulace ;Taula (pertinença a Z) bcf PCLATH,2 ; movwf PARAM1 ; call pertce ;Pertinença a N i P movf ERRORH,0 ;Actualitza ERROR anterior movwf ERRANH ; movf ERRORL,0 ; movwf ERRANL ; call regles ;Càlcul de pesos W1...W7 ;Suma de pesos, primers passos de la defuzzyficació. movf W1,0 ; movwf SUM1 ; call suma2 ; movwf SUM2 ; movf W3,0 ; movwf SUM3 ; return ;************************************************************* ;(controlb): Realitza el càlcul de les regles de control: ;Factors constants, proporcionals, integrals, derivatius,... ;Finalment du a terme la defuzzyficació, obtenint Iref. controlb ;DEFUZZYFICACIÓ ;Factor proporcional, K1ERROR: (I=(ERROR/8+40h)) movf ERRORH,0 ;Càlcul de K1ERROR movwf PARAM1 movf ERRORL,0 movwf K1ERROR bcf STATUS,C rrf PARAM1,1 ;Dividim per 2 rrf K1ERROR,1 rrf PARAM1,1 ;Dividim per 2 (/4) rrf K1ERROR,1 rrf PARAM1,1 ;Dividim per 2 (/8) rrf K1ERROR,1 movlw 0x40 ;Sumem 0x40 addwf K1ERROR,1 ;Factor integral, I=Iant+dERROR integ movf IREFL,0 ;Valor anterior de Iref movwf INTEGRA clrf INTEG movf ERRORH,0 ;error positiu o negatiu? sublw 0x01 btfss STATUS,C
PFC- Control híbrid difús-lliscant Annexes
136
goto sumai ;Si error positiu -> suma restai ;Resta integral movwf PARAM1 decf PARAM1,1 btfsc STATUS,C clrf PARAM1 movf ERRORL,0 ; sublw 0x00 movwf SUMINT comf SUMINT,1 rrf PARAM1,1 ;Desplaçament 1 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 2 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 3 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 4 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 5 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 6 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 7 rrf SUMINT,1 rrf INTEG,1 movf INTEG,0 btfsc STATUS,Z goto noresta subwf INTEGA,1 ;Ho restem de la integral btfss STATUS,C incf SUMINT,1 ;Si desborda noresta movf SUMINT,0 subwf INTEGRA,1 ;Ho restem al valor de Iref btfsc STATUS,C ;Si es desborda goto deriva clrf INTEGRA goto deriva sumai ;Suma integral
PFC- Control híbrid difús-lliscant Annexes
137
sublw 0x00 ;Complement movwf PARAM1 decf PARAM1,1 movf ERRORL,0 movwf SUMINT rrf PARAM1,1 ;Desplaçament 1 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 2 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 3 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 4 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 5 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 6 rrf SUMINT,1 rrf INTEG,1 rrf PARAM1,1 ;Desplaçament 7 rrf SUMINT,1 rrf INTEG,1 movf INTEG,0 addwf INTEGA,1 ;Ho sumem a la integral btfsc STATUS,C incf SUMINT,1 ;Si desborda movf SUMINT,0 addwf INTEGRA,1 ;Ho sumem al valor de Iref btfss STATUS,C ;Si es desborda goto deriva movlw 0xff movwf INTEGRA goto deriva ; Factor derivatiu en la regla "integral" (x1,5) deriva movf CERROR,0 ;cerror positiu o negatiu? sublw 0x10 btfss STATUS,C goto sumada ;Si cerror positiu -> suma restada ;Resta derivativa
PFC- Control híbrid difús-lliscant Annexes
138
movwf SUMDER bcf STATUS,C ;Divideix per 2 rrf SUMDER,0 ;/2 addwf SUMDER,0 ;x3 subwf INTEGRA,1 ;ho restem btfsc STATUS,C ;Si es desborda goto derivb clrf INTEGRA goto derivb sumada ;Suma derivativa sublw 0x00 ;Complement movwf SUMDER bcf STATUS,C ;Divideix per 2 rrf SUMDER,0 ;/2 addwf SUMDER,0 ;x3 addwf INTEGRA,1 ;ho sumem btfss STATUS,C ;Si es desborda goto derivb movlw 0xff movwf INTEGRA goto derivb ;Factor derivatiu, I=Iant+SUMDER derivb movf IREFL,0 movwf DERIVA movf CERROR,0 ;cerror positiu o negatiu? sublw 0x10 btfss STATUS,C goto sumad ;Si cerror positiu -> suma restad ;Resta derivativa movwf SUMDER bcf STATUS,C ;Multiplica per 8 (6,5 abans) rlf SUMDER,1 ;x2 rlf SUMDER,1 ;x2 rlf SUMDER,0 ;x2 ; movwf PARAM4 ; ; movlw 0xd0 ;x0,8125 en coma fixa; ; movwf PARAM3 ; ; call multib subwf DERIVA,1 ;Ho restem a intensitat 0 (80h) btfsc STATUS,C ;Si es desborda goto multa clrf INTEGRA goto multa sumad ;Suma derivativa sublw 0x00 ;Complement movwf SUMDER bcf STATUS,C ;Multiplica per 8 (6,5 abans) rlf SUMDER,1 ;x2 rlf SUMDER,1 ;x2 rlf SUMDER,0 ;x2 ; movwf PARAM4 ;
PFC- Control híbrid difús-lliscant Annexes
139
; movlw 0xd0 ;x0,8125 en coma fixa; ; movwf PARAM3 ; ; call multib addwf DERIVA,1 ;Ho sumem a intensitat 0 (80h) btfss STATUS,C ;Si es desborda goto multa movlw 0xff movwf DERIVA goto multa ;Procés de DEFUZZYFICACIÓ ;Multiplicació de pesos per fer la mitjana multa movf K1ERROR,0 ;K1ERROR (part proporcional) movwf PARAM3 movf SUM2,0 movwf PARAM4 call multib movwf SUM2 multb movf INTEGRA,0 ;I+dERR (part integral) ; movf K1ERROR,0 movwf PARAM3 movf SUM1,0 movwf PARAM4 call multib movwf SUM1 ;Suma total, obtenció de IREF total addwf SUM2,0 btfsc STATUS,C goto imax addwf SUM3,0 btfsc STATUS,C goto imax ;Si es desborda: Iref=ffh movwf IREFL return imax movlw 0xff movwf IREFL return ;************************************************************* ;********************* PROGRAMA PRINCIPAL ******************** ;************************************************************* inici call inipb ;Inicialització port B call inipc ;Inicialització port C call inipwm ;Inicialització PWM call inilcd ;Inicialització LCD call initem ;Inicialització Base temps call inicad ;Inicialització CAD
PFC- Control híbrid difús-lliscant Annexes
140
; Habilitació d'interrupcions bcf STATUS,RP0 ;bank 0 bcf STATUS,RP1 bsf INTCON,T0IE ;Habilita int. timer0 bsf INTCON,GIE ;Habilita interrupcions bsf CONLCD,3 ;Flag (actualitzar LCD) ON bucle bcf STATUS,RP0 ;bank 0 btfsc CONLCD,3 ;Si actualitzar LCD -> actval call actval ;Actualitza valors LCD bcf STATUS,RP0 ;bank 0 btfsc CONLCD,3 ;Si actualitzar LCD -> actlcd call actlcd ;Actualitza LCD bsf STATUS,RP0 ;bank 1 incf 0xCF,1 ;Varia Caràcter en LCD goto bucle ;************************************************************* ;*************** RUTINES D'ATENCIÓ A INTERRUPCIÓ ************* ;************************************************************* ;Rutina d'atenció a la interrupció del timer 0 timer movlw TBASE movwf TMR0 ;Càrrega del temporitzador bcf STATUS,RP0 ;bank 0 bcf PORTC,5 ;Clear E (LCD) bcf CONLCD,1 ;Fi espera1 en rutina writed bcf INTCON,T0IF ;Desactiva flag int. TMR0 decfsz ST1,1 ;Decrementa subtemporitzador 1 return bsf ADCON0,GO ;Inici conversió A/D movlw STEMP1 movwf ST1 return ;Rutina d'atenció a la interrupció del convertidor AD intcad bcf STATUS,RP0 ;bank 0 bcf STATUS,RP1 btfsc ADCON0,3 ;Comprovació de canal actiu goto cad_1 ;Si canal actiu AN1 -> cad_1 cad_0 bsf ADCON0,3 ;Selecció de canal AN1
PFC- Control híbrid difús-lliscant Annexes
141
movf ADRESH,0 ;Resultat CAD part alta movwf VREFH movwf PARAM2 bsf STATUS,RP0 ;bank 1 movf ADRESL,0 ;Resultat CAD part baixa bcf STATUS,RP0 ;bank 0 movwf VREFL movwf PARAM1 ;Actualitza PWM rrf PARAM2,1 ;Desplaçament a la dreta1 rrf PARAM1,1 ; rrf PARAM2,1 ;Desplaçament a la dreta2 rrf PARAM1,0 ; movwf CCPR1L ;els 8 bits alts -> duty cycle bcf PORTC,6 ;Sortida per mirar la freqüència call controlb ;Algorisme fuzzy b bcf PORTC,5 ;Clear línia E en LCD bcf CONLCD,1 ;Fi d'espera1 en rutina (writed) bcf PORTC,3 ;Clear línia /WR en C D/A nop nop movf IREFL,0 ;Actualitza Iref en C D/A movwf PORTB ;Data nop nop nop bsf PORTC,3 ;Set línia /WR en C D/A bcf PIR1,ADIF ;Desactiva flag int. C A/D return cad_1 bcf ADCON0,3 ;Selecció de canal AN0 movf ADRESH,0 movwf ERRORH bsf STATUS,RP0 ;bank 1 movf ADRESL,0 bcf STATUS,RP0 ;bank 0 movwf ERRORL bsf PORTC,6 ;Sortida per mirar la freqüència call controla bcf PIR1,ADIF ;Desactiva flag int. C A/D return ;Rutina principal d'atenció a interrupció interrupt
PFC- Control híbrid difús-lliscant Annexes
142
;Guarda context movwf GUARDW ;Guarda W a 0x7F o 0xFF movf STATUS,0 bcf STATUS,RP0 ;bank 0 movwf GUARST ;Guarda STATUS a GUARST ;Selecció de subrrutina btfsc INTCON,T0IF call timer ;Font d'interrupció TMR0 btfsc PIR1,ADIF call intcad ;Font d'interrupció CAD ;Restaura context movf GUARST,0 movwf STATUS ;Restaura STATUS movf GUARDW,0 ;Restaura W des de 0x7F o 0xFF retfie end
22.2 Rutines d’inicialització
Arxiu “inici.inc”
; Inicialització del port B inipb bcf STATUS,RP0 ;bank 0 clrf PORTB bsf STATUS,RP0 ;bank 1 movlw 0x00 ;Totes les línies de sortida movwf TRISB bcf STATUS,RP0 ;bank 0 movlw 0x00 movwf PORTB return ; Inicialització del port C inipc bcf STATUS,RP0 ;bank 0 clrf PORTC bsf STATUS,RP0 ;bank 1 movlw 0x81 ;línies RC6:RC1 de sortida movwf TRISC bcf STATUS,RP0 ;bank 0 movlw 0x00 movwf PORTC return
PFC- Control híbrid difús-lliscant Annexes
143
; Inicialització del PWM inipwm bsf STATUS,RP0 ;bank 1 movlw 0xff movwf PR2 ;Període bcf STATUS,RP0 ;bank 0 movlw 0x07 movwf T2CON ;TMR2->ON, Prescaler 16 movlw 0x80 movwf CCPR1L ;Duty cycle 1 MSb movlw 0xfe movwf CCPR2L ;Duty cycle 2 MSb movlw 0x0c movwf CCP1CON ;PWM mode 1, LSb movwf CCP2CON ;PWM mode 2, LSb return ; Inicialització timer initem bsf STATUS,RP0 ;bank 1 clrwdt movlw 0x80 ;Prescaler 1:2 movwf OPTION_REG bcf STATUS,RP0 ;bank 0 movlw TBASE ;Temporització base movwf TMR0 movlw STEMP1 ;Temporització 1 movwf ST1 return ; Inicialització Convertidor A/D inicad bsf STATUS,RP0 ;bank 1 bcf STATUS,RP1 movlw 0x03 ;Config. com entrada AN0 i AN1 movwf TRISA movlw 0x84 ;Config. valor just. a esquerra movwf ADCON1 bsf PIE1,ADIE ;Habilita interrupcions A/D bcf STATUS,RP0 ;bank 0 movlw 0x81 ;Fosc/32, A/D on, Canal 0 movwf ADCON0 bcf PIR1,ADIF ;Clear flag d'interrupció bsf INTCON,PEIE ;Habilita inter. perifèriques return ; Inicialització de LCD retard
PFC- Control híbrid difús-lliscant Annexes
144
decfsz PASI,1 goto retard movlw TLCD movwf PASI return write bcf STATUS,RP0 ;bank 0 ; bcf PORTC,6 ;R/W -> Write call retard bsf PORTC,5 ;set E movf CARACT,0 movwf PORTB ;data call retard bcf PORTC,5 ;clear E call retard return inilcd bcf STATUS,RP0 ;bank 0 bcf CONLCD,0 movlw TLCD movwf PASI bcf PORTC,4 ;RS = 0 movlw 0x38 movwf CARACT call write movlw 0x38 movwf CARACT call write movlw 0x06 movwf CARACT call write movlw 0x0E movwf CARACT call write movlw 0x01 movwf CARACT call write movlw 0x80 movwf CARACT call write call retard call retard
PFC- Control híbrid difús-lliscant Annexes
145
call retard call retard ; De 0xA0 a 0xAF -> Línia 1 LCD ; De 0xC0 a 0xCF -> Línia 2 LCD bsf STATUS,RP0 ;bank 1 movlw 'I' movwf 0xA0 movlw '=' movwf 0xA1 movlw '0' movwf 0xA2 movlw '0' movwf 0xA3 movlw '0' movwf 0xA4 movlw ' ' movwf 0xA5 movlw 'c' movwf 0xA6 movlw 'e' movwf 0xA7 movlw '=' movwf 0xA8 movlw '0' movwf 0xA9 movlw '0' movwf 0xAA movlw ' ' movwf 0xAB movlw 'e' movwf 0xAC movlw '=' movwf 0xAD movlw '0' movwf 0xAE movlw '0' movwf 0xAF movlw 'W' movwf 0xC0 movlw 'r' movwf 0xC1 movlw '=' movwf 0xC2 movlw '0' movwf 0xC3 movlw '0' movwf 0xC4 movlw '0' movwf 0xC5 movlw ' ' movwf 0xC6
movlw ' '
PFC- Control híbrid difús-lliscant Annexes
146
movwf 0xC7 movlw 'e' movwf 0xC8 movlw 'r' movwf 0xC9 movlw '=' movwf 0xCA movlw '0' movwf 0xCB movlw '0' movwf 0xCC movlw '0' movwf 0xCD movlw ' ' movwf 0xCE movlw ' ' movwf 0xCF bcf STATUS,RP0 ;bank 0 return
22.3 Rutines per la representació en el mòdul visualitzador
Arxiu “func_lcd.inc”
; Registres utilitzats en el bank 1 PARAMA EQU 0xB0 ;Paràmetre a funció PARAMB EQU 0xB1 ;Paràmetre a funció VALORA EQU 0xB2 ;Retorn de funció VALORB EQU 0xB3 ;Retorn de funció VALORC EQU 0xB4 ;Retorn de funció ; De 0xA0 a 0xAF -> Línia 1 LCD ; De 0xC0 a 0xCF -> Línia 2 LCD ;Actualització del LCD writed bcf STATUS,RP0 ;bank 0 bsf CONLCD,1 espera1 btfsc CONLCD,1 ;espera interrupció CAD goto espera1 movf CARACT,0 movwf PORTB ;data bsf PORTC,5 ;set E espera2 btfsc PORTC,5 ;espera un clear de E en goto espera2 ;el programa principal return
PFC- Control híbrid difús-lliscant Annexes
147
actlcd bcf STATUS,RP0 ;bank 0 bcf PORTC,4 ;RS = 0 movlw 0x80 ;Direcció inicial línia 1 btfsc CONLCD,4 ;Comprova línia movlw 0xC0 ;Direcció inicial línia 2 movwf CARACT call writed call retard call retard call retard bsf PORTC,4 ;RS=1 movlw 0xA0 ;Inici Cadena de caracters L1 btfsc CONLCD,4 ;Comprova línia movlw 0xC0 ;Inici Cadena de caracters L2 movwf FSR conti bsf STATUS,RP0 ;bank 1 movf INDF,0 ;Lectura indirecte de caràcter bcf STATUS,RP0 ;bank 0 movwf CARACT call writed incf FSR,1 ;Següent caràcter btfss FSR,4 ;Si no fi cadena -> continua goto conti btfsc CONLCD,4 ;Comprova línia goto surt bsf CONLCD,4 ;Selecció línia 2 goto actlcd surt bcf CONLCD,4 ;Selecció línia 1 ; bcf CONLCD,3 ;Display actualitzat return ;Conversió de Hexadecimal a ASCII decimal heas
bsf STATUS,RP0 ;bank 1 movlw '0' movwf VALORA ;Centenes movwf VALORB ;Desenes movwf VALORC ;Unitats incf PARAMB,1 centen movlw 0x64 subwf PARAMA,0 btfss STATUS,C ;Si PARAMA<100 -> desenes o no? goto deseno nodes movwf PARAMA incf VALORA,1 goto centen
PFC- Control híbrid difús-lliscant Annexes
148
deseno decfsz PARAMB,1 ;Si PARAMB=0 -> desenes goto nodes ;Si PARAMB>=0 -> continua amb centenes desen movlw 0x0A subwf PARAMA,0 btfss STATUS,C ;Si PARAMA<10 -> unitats goto unitat movwf PARAMA incf VALORB,1 goto desen unitat movf PARAMA,0 addwf VALORC,1 return ;Actualitza valors a representar en display actval bcf STATUS,RP0 ;bank 0 movf ERR,0 bsf STATUS,RP0 ;bank 1 movwf PARAMA clrf PARAMB call heas movf VALORB,0 movwf 0xAE movf VALORC,0 movwf 0xAF bcf STATUS,RP0 ;bank 0 movf CERROR,0 bsf STATUS,RP0 ;bank 1 movwf PARAMA clrf PARAMB call heas movf VALORB,0 movwf 0xA9 movf VALORC,0 movwf 0xAA bcf STATUS,RP0 ;bank 0 movf IREFL,0 bsf STATUS,RP0 ;bank 1 movwf PARAMA clrf PARAMB call heas movf VALORA,0 movwf 0xA2 movf VALORB,0 movwf 0xA3 movf VALORC,0 movwf 0xA4
PFC- Control híbrid difús-lliscant Annexes
149
bcf STATUS,RP0 ;bank 0 movf VREFL,0 bsf STATUS,RP0 ;bank 1 movwf PARAMA bcf STATUS,RP0 ;bank 0 movf VREFH,0 bsf STATUS,RP0 ;bank 1 movwf PARAMB call heas movf VALORA,0 movwf 0xC3 movf VALORB,0 movwf 0xC4 movf VALORC,0 movwf 0xC5 bcf STATUS,RP0 ;bank 0 movf ERRORL,0 bsf STATUS,RP0 ;bank 1 movwf PARAMA bcf STATUS,RP0 ;bank 0 movf ERRORH,0 bsf STATUS,RP0 ;bank 1 movwf PARAMB call heas movf VALORA,0 movwf 0xCB movf VALORB,0 movwf 0xCC movf VALORC,0 movwf 0xCD return
22.4 Taules de fuzzyficació
Arxiu “taules.inc”
;Taula per la variable error taulae addwf PCL,1 retlw 0x00 ;0 retlw 0x00 ;1 retlw 0x00 ;2 retlw 0x00 ;3 retlw 0x00 ;4 retlw 0x00 ;5 retlw 0x00 ;6 retlw 0x00 ;7 retlw 0x00 ;8 retlw 0x00 ;9 retlw 0x00 ;10 retlw 0x00 ;11
PFC- Control híbrid difús-lliscant Annexes
150
retlw 0x00 ;12 retlw 0x00 ;13 retlw 0x00 ;14 retlw 0x00 ;15 retlw 0x01 ;16 retlw 0x02 ;17 retlw 0x03 ;18 retlw 0x04 ;19 retlw 0x05 ;20 retlw 0x06 ;21 retlw 0x07 ;22 retlw 0x08 ;23 retlw 0x09 ;24 retlw 0x0A ;25 retlw 0x0B ;26 retlw 0x0C ;27 retlw 0x0D ;28 retlw 0x0E ;29 retlw 0x0F ;30 retlw 0x10 ;31 retlw 0x10 ;32 retlw 0x10 ;33 retlw 0x0F ;34 retlw 0x0E ;35 retlw 0x0D ;36 retlw 0x0C ;37 retlw 0x0B ;38 retlw 0x0A ;39 retlw 0x09 ;40 retlw 0x08 ;41 retlw 0x07 ;42 retlw 0x06 ;43 retlw 0x05 ;44 retlw 0x04 ;45 retlw 0x03 ;46 retlw 0x02 ;47 retlw 0x01 ;48 retlw 0x00 ;49 retlw 0x00 ;50 retlw 0x00 ;51 retlw 0x00 ;52 retlw 0x00 ;53 retlw 0x00 ;54 retlw 0x00 ;55 retlw 0x00 ;56 retlw 0x00 ;57 retlw 0x00 ;58 retlw 0x00 ;59 retlw 0x00 ;60 retlw 0x00 ;61 retlw 0x00 ;62 retlw 0x00 ;63 retlw 0x00 ;superior ;Taula per la variable cerror
PFC- Control híbrid difús-lliscant Annexes
151
taulace addwf PCL,1 retlw 0x00 ;0 retlw 0x00 ;1 retlw 0x00 ;2 retlw 0x00 ;3 retlw 0x00 ;4 retlw 0x00 ;5 retlw 0x00 ;6 retlw 0x01 ;7 retlw 0x01 ;8 retlw 0x02 ;9 retlw 0x03 ;10 retlw 0x03 ;11 retlw 0x04 ;12 retlw 0x05 ;13 retlw 0x05 ;14 retlw 0x06 ;15 retlw 0x07 ;16 retlw 0x07 ;17 retlw 0x08 ;18 retlw 0x09 ;19 retlw 0x09 ;20 retlw 0x0A ;21 retlw 0x0B ;22 retlw 0x0B ;23 retlw 0x0C ;24 retlw 0x0D ;25 retlw 0x0D ;26 retlw 0x0E ;27 retlw 0x0F ;28 retlw 0x0F ;29 retlw 0x10 ;30 retlw 0x10 ;31 retlw 0x10 ;32 retlw 0x10 ;33 retlw 0x10 ;34 retlw 0x0F ;35 retlw 0x0F ;36 retlw 0x0E ;37 retlw 0x0D ;38 retlw 0x0D ;39 retlw 0x0C ;40 retlw 0x0B ;41 retlw 0x0B ;42 retlw 0x0A ;43 retlw 0x09 ;44 retlw 0x09 ;45 retlw 0x08 ;46 retlw 0x07 ;47 retlw 0x07 ;48 retlw 0x06 ;49 retlw 0x05 ;50 retlw 0x05 ;51 retlw 0x04 ;52
PFC- Control híbrid difús-lliscant Annexes
152
retlw 0x03 ;53 retlw 0x03 ;54 retlw 0x02 ;55 retlw 0x01 ;56 retlw 0x01 ;57 retlw 0x00 ;58 retlw 0x00 ;59 retlw 0x00 ;60 retlw 0x00 ;61 retlw 0x00 ;62 retlw 0x00 ;63 retlw 0x00 ;superior
22.5 Taula de multiplicar
Arxiu “multi.inc”
col1 movfw PARAM1 return col2 rlf PARAM1,0 return col3 movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x03 ;1 retlw 0x06 ;2 retlw 0x09 ;3 retlw 0x0c ;4 retlw 0x0f ;5 retlw 0x12 ;6 retlw 0x15 ;7 retlw 0x18 ;8 retlw 0x1b ;9 retlw 0x1e ;a retlw 0x21 ;b retlw 0x24 ;c retlw 0x27 ;d retlw 0x2a ;e retlw 0x2d ;f retlw 0x30 ;10 col4 rlf PARAM1,0 movwf PARAM2 ;Evitem modificar PARAM1 rlf PARAM2,0 return col5 movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x05 ;1 retlw 0x0a ;2
PFC- Control híbrid difús-lliscant Annexes
153
retlw 0x0f ;3 retlw 0x14 ;4 retlw 0x19 ;5 retlw 0x1e ;6 retlw 0x23 ;7 retlw 0x28 ;8 retlw 0x2d ;9 retlw 0x32 ;a retlw 0x37 ;b retlw 0x3c ;c retlw 0x41 ;d retlw 0x46 ;e retlw 0x4b ;f retlw 0x50 ;10 col6 movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x06 ;1 retlw 0x0c ;2 retlw 0x12 ;3 retlw 0x18 ;4 retlw 0x1e ;5 retlw 0x24 ;6 retlw 0x2a ;7 retlw 0x30 ;8 retlw 0x36 ;9 retlw 0x3c ;a retlw 0x42 ;b retlw 0x48 ;c retlw 0x4e ;d retlw 0x54 ;e retlw 0x5a ;f retlw 0x60 ;10 col7 movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x07 ;1 retlw 0x0e ;2 retlw 0x15 ;3 retlw 0x1c ;4 retlw 0x23 ;5 retlw 0x2a ;6 retlw 0x31 ;7 retlw 0x38 ;8 retlw 0x3f ;9 retlw 0x46 ;a retlw 0x4d ;b retlw 0x54 ;c retlw 0x5b ;d retlw 0x62 ;e retlw 0x69 ;f retlw 0x70 ;10 col8 rlf PARAM1,0
PFC- Control híbrid difús-lliscant Annexes
154
movwf PARAM2 ;Evitem modificar PARAM1 rlf PARAM2,1 rlf PARAM2,0 return col9 movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x09 ;1 retlw 0x12 ;2 retlw 0x1b ;3 retlw 0x24 ;4 retlw 0x2d ;5 retlw 0x36 ;6 retlw 0x3f ;7 retlw 0x48 ;8 retlw 0x51 ;9 retlw 0x5a ;a retlw 0x63 ;b retlw 0x6c ;c retlw 0x75 ;d retlw 0x7e ;e retlw 0x87 ;f retlw 0x90 ;10 colA movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0a ;1 retlw 0x14 ;2 retlw 0x1e ;3 retlw 0x28 ;4 retlw 0x32 ;5 retlw 0x3c ;6 retlw 0x46 ;7 retlw 0x50 ;8 retlw 0x5a ;9 retlw 0x64 ;a retlw 0x6e ;b retlw 0x78 ;c retlw 0x82 ;d retlw 0x8c ;e retlw 0x96 ;f retlw 0xa0 ;10 colB movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0b ;1 retlw 0x16 ;2 retlw 0x21 ;3 retlw 0x2c ;4 retlw 0x37 ;5 retlw 0x42 ;6 retlw 0x4d ;7 retlw 0x58 ;8
PFC- Control híbrid difús-lliscant Annexes
155
retlw 0x63 ;9 retlw 0x6e ;a retlw 0x79 ;b retlw 0x84 ;c retlw 0x8f ;d retlw 0x9a ;e retlw 0xa5 ;f retlw 0xb0 ;10 colC movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0c ;1 retlw 0x18 ;2 retlw 0x24 ;3 retlw 0x30 ;4 retlw 0x3c ;5 retlw 0x48 ;6 retlw 0x54 ;7 retlw 0x60 ;8 retlw 0x6c ;9 retlw 0x78 ;a retlw 0x84 ;b retlw 0x90 ;c retlw 0x9c ;d retlw 0xa8 ;e retlw 0xb4 ;f retlw 0xc0 ;10 colD movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0d ;1 retlw 0x1a ;2 retlw 0x27 ;3 retlw 0x34 ;4 retlw 0x41 ;5 retlw 0x4e ;6 retlw 0x56 ;7 retlw 0x68 ;8 retlw 0x75 ;9 retlw 0x82 ;a retlw 0x8f ;b retlw 0x9c ;c retlw 0xa9 ;d retlw 0xb6 ;e retlw 0xc3 ;f retlw 0xd0 ;10 colE movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0e ;1 retlw 0x1c ;2 retlw 0x2a ;3 retlw 0x38 ;4
PFC- Control híbrid difús-lliscant Annexes
156
retlw 0x46 ;5 retlw 0x54 ;6 retlw 0x62 ;7 retlw 0x70 ;8 retlw 0x7e ;9 retlw 0x8c ;a retlw 0x9a ;b retlw 0xa8 ;c retlw 0xb6 ;d retlw 0xc4 ;e retlw 0xd2 ;f retlw 0xe0 ;10 colF movfw PARAM1 addwf PCL,1 retlw 0x00 ;0 retlw 0x0f ;1 retlw 0x1e ;2 retlw 0x2d ;3 retlw 0x3c ;4 retlw 0x4b ;5 retlw 0x5a ;6 retlw 0x69 ;7 retlw 0x78 ;8 retlw 0x87 ;9 retlw 0x96 ;a retlw 0xa5 ;b retlw 0xb4 ;c retlw 0xc3 ;d retlw 0xd2 ;e retlw 0xe1 ;f retlw 0xf0 ;10 multi addwf PCL,1 retlw 0x00 goto col1 goto col2 goto col3 goto col4 goto col5 goto col6 goto col7 goto col8 goto col9 goto colA goto colB goto colC goto colD goto colE goto colF swapf PARAM1,0 btfsc PARAM1,4 retlw 0xFF return
PFC- Control híbrid difús-lliscant Annexes
157
23 ALTRES DOCUMENTS