controlador adaptativo robusto por modelo de ... - unam

188
Maestrando Francisco R. Gentile Controlador Adaptativo Robusto por Modelo de Referencia en Eje Cero Aplicado al Control de Desbalance de Tensiones de Fase en Generadores de Inducción Autoexcitados Aislados. Tesis de Maestría presentada para obtener el título de “Magíster en Ingeniería ElectrónicaDirector Dr. Robinson Figueiredo de Camargo Co-Director Mgter. Víctor Hugo Kurtz Posadas, 2020 Esta obra está licenciado bajo Licencia Creative Commons (CC) Atribución-NoComercial- CompartirIgual 4.0 Internacional. https://creativecommons.org/licenses/by-nc-sa/4.0/ Universidad Nacional de Misiones. Facultad de Ingeniería. Secretaría de Investigación y Postgrado. Maestría en Ingeniería Electrónica.

Upload: others

Post on 29-Apr-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Maestrando Francisco R. Gentile

Controlador Adaptativo Robusto por Modelo de Referencia en Eje Cero Aplicado al Control de Desbalance de Tensiones de

Fase en Generadores de Inducción Autoexcitados Aislados.

Tesis de Maestría presentada para obtener el título de “Magíster en Ingeniería Electrónica”

Director Dr. Robinson Figueiredo de Camargo

Co-Director Mgter. Víctor Hugo Kurtz

Posadas, 2020

Esta obra está licenciado bajo Licencia Creative Commons (CC) Atribución-NoComercial-

CompartirIgual 4.0 Internacional. https://creativecommons.org/licenses/by-nc-sa/4.0/

Universidad Nacional de Misiones. Facultad de Ingeniería. Secretaría de Investigación y Postgrado. Maestría en Ingeniería Electrónica.

Page 2: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Tesis de Maestría

Controlador Adaptativo Robusto por Modelo de Referencia enEje Cero Aplicado al Control de Desbalance de Tensiones de Fase

en Generadores de Inducción Autoexcitados Aislados

Ing. Francisco R. GENTILE

Facultad de IngenieríaUniversidad Nacional de Misiones

Oberá, Misiones, Argentina

GEPOC - Centro de TecnologiaUniversidade Federal de Santa Maria

Santa Maria, RS, Brasil

2020

Page 3: Controlador Adaptativo Robusto por Modelo de ... - UNaM

-

UNIVERSIDAD NACIONAL DE MISIONES

FACULTAD DE INGENIERIA

S EcRETARfA DE PosGRAoo

La Mesa Examinadora, abajo firmante,

Aprueba la presenlc Tesis de Maeslrfn en Ingenierfa Electr6nica

Conlrolador Adaptativo Robusto por Modelo de Referenda en Eje Cero

Aplicado al Control de Dcsbahince de Tensiones de Fase en Generadores de

Inducci6n Auloexcilados Aislados

Elaborada por

Ing. Francisco R. GENTILE

Como requisito parcial para la obtenci6n del grado de

Magfstcr en lotgenieri'a Electr6nica

COMISION EXAl\llINADORA:

.'

Dr. Ing. Mazzoletti

Obera, 27 de Febrero de 2020

I

Escaneado r.on CamScanner

Page 4: Controlador Adaptativo Robusto por Modelo de ... - UNaM
Page 5: Controlador Adaptativo Robusto por Modelo de ... - UNaM

II

Page 6: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Controlador Adaptativo Robusto por Modelo deReferência no Eixo Zero Aplicado ao Controle de

Desbalanço de Tensões de Fase em Geradores de InduçãoAutoexcitados Isolados

por

Eng. Francisco R. GENTILE

Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Elétrica,Área de Concentração em Processamento de Energia, da Universidade Federal de

Santa Maria (UFSM, RS), como requisito parcial para obtenção do grau deMestre em Engenharia Elétrica.

Orientador: Prof. Dr. Robinson Figueiredo de CamargoCo-orientador: Prof. M. Victor Hugo Kurtz

Santa Maria, RS, Brasil2020

III

Page 7: Controlador Adaptativo Robusto por Modelo de ... - UNaM

IV

Page 8: Controlador Adaptativo Robusto por Modelo de ... - UNaM

UNilvERSIDADE FEDERAL DE SANTA MARIA

:1 CENTRO DE TENCOLOGIA

PROGRAMA DE P6s-GRADUA~Ao EM ENGENHARIA ELETRJCA

A Comissao Examinadora, abaixo assinada,

aprova a Disserta~ao de Mestrado

CoNTROLADOR ADAPTATIVO RoousTo POR MODELO DF. REFERENCIA ~o E1xo

ZERO APLICADO AO CONTROLE DE DESBALAN~O DE TENSOES DE FASE EM

GERADORES DE INnm;.:\o AuTOEXCITAoos IsoLADOS

elaborada por:

Francisco R. GENTILE

coma requisito parcial para obtenc;ao do grau de

Mestre cm Engenharia Eletrica

COMISSAO EXAMINADORA:

Robinson Figueiredo de Camargo, Dr. (UFSM) I

I (Presidente/Orientador Brasileiro)

' I . Lucas Giuliani Scherer, Dr. (UFSIVI)

Manuel~

Victor H

(Or cntador Argentina)

Ohcra, 27 de Fcvcrciro de 2020

v

Escaneado con CamScanner

Page 9: Controlador Adaptativo Robusto por Modelo de ... - UNaM

VI

Page 10: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Dedico éste logro a mis familiares y amigos.Sobre todo a mis padres Antonio Francisco y Gladys

por el apoyo y por ayudarme a crecer.-

VII

Page 11: Controlador Adaptativo Robusto por Modelo de ... - UNaM

VIII

Page 12: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Agradecimientos

Quiero agradecer a mis orientadores que me ayudaron a llegar al final de ésta primer etapa:Robinson, que además de guiarme en la parte académica también hizo de administrativo para lascuestiones burocráticas referidas a la doble titulación, también a Victor Hugo por compartir conmigosus conocimientos y apoyarme, y también a Lucas por guiarme y ayudarme a dar los primeros pasosen la parte experimental. Al director de la maestría, Fernando, por estar siempre dispuesto a cualquierhora y solucionar los problemas que surgieron.

A mi pareja Yamila por el apoyo e incentivo. Nuevamente a mis padres. A mis hermanas Caroy Naty.

A mis amigos Diego y Gustavo, de mi trabajo profesional, que me dieron el tiempo y espaciopara poder viajar y tomar las clases.

A mis amigos los Claudios, Carlos, Orlando, Adolfo, Miguel y Roxana que siempre estáncuando los necesito. Y a mis compañeros de la maestría.

Y claro, no puedo dejar demencionar a laUniversidadNacional deMisiones y a laUniversidadeFederal de Santa Maria por brindarme la posibilidad de especializarme y obtener la doble titulación.

Espero no haberme olvidado de alguien, muchas gracias a todos.

IX

Page 13: Controlador Adaptativo Robusto por Modelo de ... - UNaM

X

Page 14: Controlador Adaptativo Robusto por Modelo de ... - UNaM

ResumenTesis de Maestría

Maestría en Ingeneniería ElectrónicaFacultad de Ingeniería – Universidad Nacional de Misiones

Controlador Adaptativo Robusto por Modelo de Referencia en Eje Cero Aplicado al Controlde Desbalance de Tensiones de Fase en Generadores de Inducción Autoexcitados Aislados

Autor: Ing. Francisco R. GENTILEDirector: Dr. Ing. Robinson Figueiredo de Camargo

Codirector: Mgter. Ing. Víctor Hugo Kurtz

Oberá, 27 de Febrero de 2020

En el presente trabajo se implementó un sistema de regulación de tensión y frecuencia paraun emprendimiento de microgeneración de energía eléctrica utilizando un generador a inducción enforma aislada o no conectado a una red comercial de distribución. La selección del generador deinducción se debe a que para bajas potencias presenta ventajas comparado a un generador síncrono dela misma potencia. El sistema de microgeneración estudiado cuenta con un motor primario que simulaser una turbina no controlada y que entrega potencia relativamente constante, acoplado al generador,banco de capacitores de excitación, el DSTATCOM y las cargas de consumo.

El desarrollo consistió en generar los lazos de control adecuados para un dispositivo decompensación de potencia reactiva, conocido como DSTATCOM, que es el arreglo que realiza lacompensación de tensión y frecuencia mediante el manejo de flujo de potencia reactiva y activarespectivamente. Dichos lazos de control fueron implementados en un procesador digital de señales,en coordenadas dq0 síncronas, lo que permite usar compensadores PI clásicos de ganancia fija, para elcontrol de las variables de interés, salvo para el caso de la regulación del desbalance de las tensionesde fase donde se utilizó un controlador adaptativo por modelo de referencia (RMRAC), con el objetivode comprobar si es factible su utilización.

La presente tesis de maestría tiene como objetivo presentar el diseño de un controlador robustoadaptativo por modelo de referencia usado en la malla de tensión del eje cero del referencial síncronorotativo para efectuar el control de desbalance de tensiones de fase, como así también compensaciónde armónicos de corriente.

Los resultados simulados y experimentales obtenidos demuestran la factibilidad de la idea parala compensación de desbalance de tensiones. Pero sobre todo, se abre camino para continuar con elestudio y mejora de este proyecto.

Palabras clave: Control Adaptativo, Control Frecuencia, Desbalance de Tensiones, DSTATCOM,ELC, Generador Inducción, Regulación, RMRAC.

XI

Page 15: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XII

Page 16: Controlador Adaptativo Robusto por Modelo de ... - UNaM

ResumoDissertação de Mestrado

Mestrado em Engenharia ElétricaCentro de Tecnología – Universidade Federal de Santa Maria

Controlador Adaptativo Robusto por Modelo de Referência no Eixo Zero Aplicado ao Controlede Desbalanço de Tensões de Fase em Geradores de Indução Autoexcitados Isolados

Autor: Eng. Francisco R. GENTILEOrientador: Prof. Eng. Robinson Figueiredo de Camargo

Co-orientador: Prof. Eng. Victor Hugo Kurtz

Oberá, 27 de Fevereiro de 2020

Neste trabalho de mestrado implementou-se um sistema de regulação de tensão e frequênciapara um empreendimento de microgeração de energia elétrica mediante o uso de um gerador a induçãooperando de forma isolada ou não conectado à rede de distribuição comercial. A escolha do geradora indução deve-se ao fato que para potências baixas apresenta vantagens em relação a um geradorsíncrono da mesma potência. O sistema de microgeração estudado conta com um motor primáriopara simular uma turbina não controlada e que fornece potência relativamente constante, acoplado aogerador, banco de capacitores de excitação, o DSTATCOM e as cargas de consumo.

O trabalho consistiu em gerar as malhas de controle adequadas para o dispositivo de compen-sação de potência reativa, conhecido como DSTATCOM, que é o arranjo que realiza a compensaçãode tensão e frequência através do controle dos fluxos de potência reativa e ativa respetivamente. Asmalhas de controle foram implementadas num processador digital de sinais, em coordenadas giratóriasdq0, que permite o uso de compensadores PI clássicos de ganhos fixos para o controle das variáveisde interesse, exceto para o caso da regulação de desbalanço de tensões de fase onde foi utilizado umControlador Adaptativo Robusto por Modelo de Referência (RMRAC), a fim de comprovar se a suautilização é factível.

Esta dissertação tem como objetivo apresentar o projeto de um controlador RMRAC usado namalha de tensão do eixo zero do referencial giratório síncrono para efetuar o controle de desequilíbriode tensões de fase, bem como a compensação de harmônicos de corrente.

Resultados de simulação e experimentais comprovam a viabilidade da ideia para fazer acompensação de desequilíbrio de tensões de fase.

Palavras chave: Controle Adaptativo, Controle de Frequência, Desequilíbrio de Tensões, DSTAT-COM, ELC, Gerador de Indução, Regulação, RMRAC.

XIII

Page 17: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XIV

Page 18: Controlador Adaptativo Robusto por Modelo de ... - UNaM

AbstractMaster’s Degree Thesis

Master’s Degree in Electronic EngineeringEngineering Faculty – Universidad Nacional de Misiones

Reference Model Robust Adaptive Controller in Zero Axis applied to control unbalanced phasevoltages using Standalone Self-Excited Induction Generators

Author: Eng. Francisco R. GENTILEDirector: Prof. Eng. Robinson Figueiredo de Camargo

Co-director: Prof. Eng. Victor Hugo Kurtz

Oberá, February 27th, 2020

In this work, a voltage and frequency regulation system was implemented for a micro hidro-power generation plant using an induction generator operating in standalone mode or not connectedto a commercial energy distribution network. The selection of the induction generator is since for lowpowers it presents advantages compared to a synchronous generator of the same power. The studiedmicro-generation system has a primary engine that simulates an uncontrolled turbine and deliversrelatively constant power, coupled to the generator, bank of excitation capacitors, the DSTATCOMand the consumption loads.

The development consisted in generating the appropriate control loops for a reactive powercompensation device, known as DSTATCOM, which is the arrangement that performs the voltage andfrequency compensation by handling the flow of reactive and active power respectively. These controlloops were implemented in a digital signal processor, in synchronous dq0 coordinates, which allowsthe use of classic fixed-gain PI compensators, for the control of the variables of interest, except for thecase of phase voltage unbalance regulation where an Reference Model Robust Adaptive Controller(RMRAC) was used, in order to check if its use is feasible.

This work aims to present the design of a RMRAC used in the zero axis voltage loop of therotating synchronous reference frame to perform the control of phase voltage unbalance, as well ascurrent harmonic compensation.

Simulated and experimental results obtained demonstrate the feasibility of the idea for voltageunbalance compensation. But above all, it opens the way to continue with the study and improvementof this project.

Keywords: Adaptive Control, Frequency Control, Voltage Unbalance, DSTATCOM, ELC, InductionGenerator, Regulation, RMRAC.

XV

Page 19: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XVI

Page 20: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Índice general

Agradecimientos IX

Resumen XI

Resumo XIII

Abstract XV

Lista de Figuras XXIII

Lista de Sub-Figuras XXIII

Lista de Tablas XXV

Acrónimos y Símbolos XXVII

1. Introducción 11.1. Motivación y Presentación del Problema . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3. Revisión bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1. Máquina de inducción tipo jaula de ardilla . . . . . . . . . . . . . . . . . . . 51.3.2. Circuito Equivalente del Motor de inducción . . . . . . . . . . . . . . . . . 71.3.3. Auto-exitación del Generador de inducción . . . . . . . . . . . . . . . . . . 121.3.4. Esquemas de Regulación de Tensión en un GIAE . . . . . . . . . . . . . . . 131.3.5. DSTATCOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Modelado del Sistema 192.1. Configuración del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2. Modelo del sistema en variables de estados . . . . . . . . . . . . . . . . . . . . . . 202.3. Modelado del Bus CC del DSTACOM . . . . . . . . . . . . . . . . . . . . . . . . . 272.4. Ecuaciones de Transferencia en referencial dq0 . . . . . . . . . . . . . . . . . . . . 282.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

XVII

Page 21: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3. Control Adaptativo 373.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2. Controlador Adaptativo Robusto por Modelo de Referencia (RMRAC) . . . . . . . . 38

3.2.1. La Planta G(s) y las Incertidumbres en su Modelo . . . . . . . . . . . . . . 393.2.2. Aumento de la Robustez del Controlador Adaptativo . . . . . . . . . . . . . 413.2.3. Modelo de Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.4. Ley de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2.5. Rechazo Adaptativo de Disturbios Periódicos . . . . . . . . . . . . . . . . . 433.2.6. Ley de Adaptación de los Parámetros Tipo Gradiente Normalizada . . . . . . 45

3.3. Procedimiento para el diseño del controlador RMRAC . . . . . . . . . . . . . . . . 463.4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4. Estructura de Control 494.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2. Bloque de Sincronismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.3. Sistema de Control del DSTATCOM . . . . . . . . . . . . . . . . . . . . . . . . . . 544.4. Controlador de Frecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.5. Controladores para Mallas Internas de Corriente . . . . . . . . . . . . . . . . . . . . 594.6. Controladores para las Mallas Externas de Tensión . . . . . . . . . . . . . . . . . . 60

4.6.1. Malla de Control de Tensión del Bus CC del DSTATCOM . . . . . . . . . . 624.6.2. Malla de Control de Tensión del Bus CA en el PCC . . . . . . . . . . . . . . 624.6.3. Malla de Control de Desbalance de Tensiones . . . . . . . . . . . . . . . . . 64

4.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5. Resultados 695.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2. Simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.2.1. Script de Prueba de Concepto . . . . . . . . . . . . . . . . . . . . . . . . . 695.2.2. Diagrama de Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.3. Experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.4. Comparación entre Controlador PI y RMRAC . . . . . . . . . . . . . . . . . . . . . 795.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6. Conclusión 816.1. Consideraciones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.2. Sugerencia para Futuros Trabajos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.3. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

A. Obtención del modelo de la Planta en elreferencial síncrono 89A.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89A.2. Normalización de las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

XVIII

Page 22: Controlador Adaptativo Robusto por Modelo de ... - UNaM

A.3. Ecuaciones de estado en coordenadas giratorias dq0 . . . . . . . . . . . . . . . . . . 91A.4. Otra forma de la matriz de transformacion Tdq0 . . . . . . . . . . . . . . . . . . . . 94A.5. Ecuaciones de estado en coordenadas estacionarias αβ0 . . . . . . . . . . . . . . . . 94

B. Obtención de las Funciones de Transferencia a partir del Modelo de Estados 97B.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97B.2. FTs a partir del MEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97B.3. Matriz de FTs - Sistema MIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

C. Descripción y Parámetros del Prototipode Laboratorio 103C.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103C.2. Parámetros del Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103C.3. Fotos del Banco de Ensayo - Bancada . . . . . . . . . . . . . . . . . . . . . . . . . 106

D. Código Fuente del Script dePrueba de Concepto 107D.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107D.2. Código Fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

E. Código Fuente para Modelo de Simulink 119E.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119E.2. Archivo Controle.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119E.3. Archivo MG_4wire.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131E.4. Archivo Fator_Desbalanco.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132E.5. Archivo Script plotagem.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

F. Código Fuente utilizado experimentalmente 141F.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141F.2. Archivo Controle.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

XIX

Page 23: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XX

Page 24: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Índice de figuras

1.1. Matriz Energética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Matriz Energética Argentina 2016 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Corte del modelo de un Motor de Inducción tipo Jaula de Ardilla . . . . . . . . . . . 61.4. Circuito eléctrico equivalente de un Motor de Inducción (MI) para una fase usando

un transformador ideal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5. Circuito eléctrico equivalente de un MI para una fase usando un transformador ideal

con resistencia de rotor descompuesta . . . . . . . . . . . . . . . . . . . . . . . . . 91.6. Circuito eléctrico equivalente por fase del MI referido al estátor . . . . . . . . . . . 101.7. Circuito eléctrico de Thevening equivalente por fase del MI referido al estátor . . . . 101.8. Curva Torque-Velocidad de un MI . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.9. Tensión en Bornes - Cálculo del Capacitor de Excitación . . . . . . . . . . . . . . . 131.10. Tipos de DSTATCOM según su Fuente . . . . . . . . . . . . . . . . . . . . . . . . 161.11. Topologias DSTATCOM con neutro . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1. Estructura del Sistema Propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2. Circuito Equivalente del Sistema de Microgeneración . . . . . . . . . . . . . . . . . 212.3. Respuesta en Frecuencia de las FT’s de corriente de los ejes dq. En azul términos

dominantes, en rojo términos de acoplamiento cruzado. . . . . . . . . . . . . . . . . 262.4. Respuesta en frecuencia a lazo abierto de las FTs de las plantas internas de corrientes

en tiempo contínuo Gidq (s) y tiempo discreto con el atraso de transporte Gidq (z). . . . 292.5. Respuesta en frecuencia a lazo abierto de la planta interna de corriente en tiempo

contínuo Gi0(s) y tiempo discreto con el atraso de transporte Gi0(z). . . . . . . . . . 302.6. Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo

contínuo Gvd (s) y tiempo discreto Gvd (z). . . . . . . . . . . . . . . . . . . . . . . . 302.7. Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo

contínuo Gv0(s) y tiempo discreto Gv0(z). . . . . . . . . . . . . . . . . . . . . . . . 312.8. Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo

contínuo GVcc (s) y tiempo discreto GVcc (z). . . . . . . . . . . . . . . . . . . . . . . 31

XXI

Page 25: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.9. Respuesta en frecuencia a lazo abierto de la planta interna de corriente Gi0(s) convariación paramétrica de la carga del sistema Zl . . . . . . . . . . . . . . . . . . . . . 32

2.10. Respuesta en frecuencia a lazo abierto de la planta externa de tensión Gv0(s) convariación paramétrica de la carga del sistema Zl . . . . . . . . . . . . . . . . . . . . . 33

2.11. Respuesta en frecuencia a lazo abierto de la planta interna de corriente Gi0(s) convariación paramétrica de la carga del sistema Cexc. . . . . . . . . . . . . . . . . . . 33

2.12. Respuesta en frecuencia a lazo abierto de la planta externa de tensión Gv0(s) convariación paramétrica de la carga del sistema Cexc. . . . . . . . . . . . . . . . . . . 34

3.1. Diagrama de Bloques de un Sistema Adaptativo. . . . . . . . . . . . . . . . . . . . . 373.2. Diagrama de Bloques de un Sistema Adaptativo RMRAC. . . . . . . . . . . . . . . . 393.3. Diagrama de Bloques del RMRAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.1. Estructura del Sistema del Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.2. Diagrama de Bloques del Generador de Sincronismo . . . . . . . . . . . . . . . . . 524.3. Estructura en Cascada de las mallas de control . . . . . . . . . . . . . . . . . . . . . 554.4. Ejemplo de formas de onda de corrientes de carga con desbalance. . . . . . . . . . . 564.5. Ejemplo de formas de onda de corrientes de carga balanceadas. . . . . . . . . . . . . 564.6. Ejemplo de formas de onda de corrientes de carga con séptimo armónico. . . . . . . 574.7. Respuesta en Frecuencia de las Mallas Internas d y q. Controlador PI y Planta de

Corriente a Lazo Abierto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.8. Respuesta en Frecuencia de la Malla Interna 0. Controlador PI y Planta de Corriente

a Lazo Abierto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.9. Respuesta en Frecuencia de las Mallas Internas d y q. Controlador PI y Planta de

Corriente a Lazo Cerrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.10. Respuesta en Frecuencia de la Malla Interna 0. Controlador PI y Planta de Corriente

a Lazo Cerrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.11. Respuesta en Frecuencia de la Malla Externa Vcc. Controlador PI y Planta a Lazo

Abierto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.12. Respuesta en Frecuencia de la Malla Externa Vcc. Controlador PI y Planta a Lazo

Cerrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.13. Respuesta en Frecuencia de la Malla ExternaVd . Controlador PI y Planta a Lazo Abierto. 644.14. Respuesta en Frecuencia de laMalla ExternaVd . Controlador PI y Planta a Lazo Cerrado. 644.15. Respuesta en Frecuencia de los filtros auxiliares dados por el par F,q . . . . . . . . . 664.16. Respuesta en Frecuencia de la Malla Externa V0 y del Modelo de Referencia Wm . . . 66

5.1. Resultados Obtenidos de la simulación con Script - Salida . . . . . . . . . . . . . . 705.2. Detalle de Resultados Obtenidos de la simulación con Script - Salida . . . . . . . . . 705.3. Resultados Obtenidos de la simulación con Script - Parámetros . . . . . . . . . . . . 715.4. Diagrama de Simulink - Parte de Potencia. . . . . . . . . . . . . . . . . . . . . . . . 715.5. Parte de Simulink - Parte de Control. . . . . . . . . . . . . . . . . . . . . . . . . . . 71

XXII

Page 26: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.6. Resultados de Simulación en un momento donde no se encuentra activo ni el controlde frecuencia, ni el control de desbalance de tensiones con una carga resistiva de 1700W. 73

5.7. Resultados de Simulación en un momento donde no se encuentra totalmente activo elsistema de control con una carga resistiva de 3400W. . . . . . . . . . . . . . . . . . 73

5.8. Resultados de Simulación en un momento donde no se encuentra totalmente activo elsistema de control y una carga inductiva no lineal junto con una resistiva de 1700W. . 74

5.9. Resultados de Simulación mostrando formas de onda de la Frecuencia Eléctrica en elPCC y la Distorsión Armónica Total. . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.10. Resultados de Simulación - Parámetros. . . . . . . . . . . . . . . . . . . . . . . . . 755.11. Resultados de Simulación - Error Extendido y Norma de los Parámetros. . . . . . . . 765.12. Pantalla de Osciloscópio antes de activar control de desbalance de tensiones. . . . . . 775.13. Pantalla de Osciloscópio en el momento de activar control de desbalance de tensiones. 775.14. Pantalla de Osciloscópio tiempo después de activado el control de desbalance de

tensiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.15. Tensiones de Fase RMS con carga nominal resistiva conectada a la Fase b . . . . . . 785.16. Factor de Desbalance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.17. Comparación de Tensiones de Fase RMS . . . . . . . . . . . . . . . . . . . . . . . . 795.18. Comparación de Factor de Desbalance . . . . . . . . . . . . . . . . . . . . . . . . . 80

A.1. Transformación de coordenadas estacionarias abc a giratorias dq0. . . . . . . . . . . 92

C.1. Vista General de los elementos del Banco de Ensayo . . . . . . . . . . . . . . . . . 106C.2. Detalle del par Motor-Generador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

XXIII

Page 27: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XXIV

Page 28: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Índice de tablas

1.1. Esquemas de Regulación de Tensión. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

C.1. Parámetros del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104C.2. Datos de la Máquina Primaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104C.3. Datos del Generador de Inducción . . . . . . . . . . . . . . . . . . . . . . . . . . . 105C.4. Datos del DSTATCOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105C.5. Datos del ELC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

XXV

Page 29: Controlador Adaptativo Robusto por Modelo de ... - UNaM

XXVI

Page 30: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Símbolos y Abreviaturas

CA Corriente Alterna

CAMR Controlador Adaptativo por Modelo de Referencia

CARMR Controlador Adaptativo Robusto por Modelo de Referencia

CC Corriente Contínua

CEC Control Electrónico de Carga

CER Compensador Estático de Reactivos

DSP Digital Signal Processor

DSTATCOM Distribution Static VAR Compensator

ELC Electronic Load Control

FEM Fuerza Electro Motriz

FMM Fuerza Magneto Motriz

FT Función de Transferencia

GEPOC Grupo de Eletrónica de Potência e Controle

GI Generador de Inducción

GIAE Generador de Inducción Auto-Excitado

IFC Inversor Fuente de Tensión

IFT Inversor Fuetne de Corriente

MAP Modulación de Ancho del Pulso

MEE Modelo en Espacio de Estados

XXVII

Page 31: Controlador Adaptativo Robusto por Modelo de ... - UNaM

MMF Magneto Motive Force

MI Motor de Inducción

MIMO Multiple Input - Multiple Output

MEMS Multiples Entradas - Multiples Salidas

PCC Punto Común de Conexión

PCH Pequeñas Centrales Hidroeléctricas

PDS Procesador Digital de Señales

PI Proporcional Integral

PID Proporcional Integral Derivativo

PR Proporcional Resonante

PWM Pulse Width Modulation

RMAC Reference Model Adaptive Controller

RMRAC Reference Model Robust Adaptive Controller

RPM Revoluciones por Minuto

SEIG Self-Excited Induction Generator

SISO Single Input - Single Output

ZOH Zero Order Holder

XXVIII

Page 32: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 1

Introducción

“ Lo que sabemos es una gota de agua;lo que ignoramos es el océano ”

Isaac Newton

1.1. Motivación y Presentación del Problema

La energía eléctrica es un bien esencial en estos días, poder producirla y utilizarla es fundamental parael crecimiento y desarrollo humano. La generación de la misma en forma distribuida es una buenamanera, y a veces la única, de abastecer regiones o lugares donde no es posible llegar con líneas dedistribución comerciales convencionales. Además, la generación distribuida viene cobrando cada vezmás importancia debido al cuidado de la salud del planeta y de los seres vivos que lo habitamos, yaque tiene asociado el concepto de generación ecológica, generación verde, generación sustentable ogeneración con fuentes renovables.

La cuestión medioambiental no debe ser tomada a la ligera. La Organización Mundial de la Salud(OMS) en el año 2018, advirtió que la contaminación ambiental había alcanzado proporciones alar-mantes, donde nueve de cada diez personas respiran aire tóxico y siete millones mueren cada año porla polución ambiental y doméstica.

En la figura 1.1 se pueden ver las matrices energéticas de algunos países, año 2017, según datos delMinisterio de Energía de la Nación. Y la figura 1.2 muestra datos específicos de la Argentina. Enambas gráficas se puede apreciar claramente que la mayor parte de las matrices energéticas estándominadas por combustibles fósiles.

El Banco Mundial proyectaba que para el año 2016, tanto la Argentina como Brasil tendrían el 100%

1

Page 33: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2 CAPÍTULO 1. INTRODUCCIÓN

Figura 1.1: Matriz EnergéticaFuente: Ministerio de Energía de la Nación - Autor: Rubén Caligari

Figura 1.2: Matriz Energética Argentina 2016Fuente: Ministerio de Energía de la Nación - Autor: Rubén Caligari

Page 34: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.1. MOTIVACIÓN Y PRESENTACIÓN DEL PROBLEMA 3

de la población con acceso a la energía eléctrica. Y según el Ministerio de Energía de la Nación, condatos hasta el 2016, la Argentina cuenta con un alto porcentaje de electrificación (95%), pero unaproporción importante de su población rural (30%) carece de servicio eléctrico.

La proyección del Banco Mundial no se ha cumplido aún, entonces es un buen momento para utilizarenergías renovables para continuar la tarea de electrificación total, además de ir cambiando la matrizenergética para fuentes que sean ecológicamente amigables. Actualmente, en el ámbito de las energíasrenovables se tienen, entre otras: fotovoltáica, hidroeléctrica, eólica, biodiesel, biogas.

Tanto Argentina como Brasil, topográficamente hablando, disponen de una gran cantidad de lugaresdonde pueden ser construidos pequeños aprovechamientos eléctricos, como por ejemplo, hidroeléc-tricos o eólicos.

La utilización de motores asincrónicos como Generador de Inducción (GI) en Pequeñas Centrales Hi-droeléctricas (PCH), constituye una interesante solución, tanto técnica como económica. La máquinade inducción tipo jaula de ardilla usada para tal fin, conocida como Generador de Inducción Auto-Excitado (GIAE) o en inglés Self-Excited Induction Generator (SEIG), presenta ventajas comparadascon un generador síncrono convencional de la misma potencia para sistemas de micro-generaciónaislados. Fácil adquisición, no presenta mayores problemas de embalamiento, tiene robustez, pro-tección intrínseca al corto circuito, ausencia de bobinado excitación de campo son algunas ventajasdistintivas, [1–3]. Aunque ésta última característica, la ausencia de campo de excitación regulable,dificulta el control de la tensión generada [4].

Cuando el GIAE se encuentra operando en forma aislada y es sometido a cargas variables, es necesarioun método que se encuentre activo permanentemente para la regulación de la amplitud de las tensionesy de la frecuencia de las mismas. La regulación de estas variables (tensión y frecuencia) dependeúnicamente de la compensación de la potencia reactiva y activa del sistema respectivamente. Esdecir, para mantener regulada la tensión en bornes del generador, se debe garantizar el equilibrioentre la potencia reactiva requerida por el generador junto con las cargas de consumo y la potenciareactiva provistas por fuentes externas. Para mantener regulada la frecuencia de las tensiones se debegarantizar el equilibrio entre la potencia activa generada por el GI y la potencia activa consumida porlas cargas. Se debe dar especial cuidado al método de regulación de frecuencia que se use, ya queafecta directamente el comportamiento del generador y por lo tanto también afecta en la definición ycaracterísticas de operación del sistema de regulación de tensión usado.

La forma más simple de regulación de tensión consiste en la compensación de potencia reactivamediante la conexión en paralelo con los bornes del generador de bancos de capacitores. La desventajasde éste método es que no permite la regulación exacta de la amplitud de las tensiones, ya quetendría pasos fijos debido a los capacitores, como así tampoco permite compensar desequilibrios oarmónicos de corriente provenientes de la carga [5], [6]. Los Compensadores Estáticos de Reactivos(DSTATCOM en inglés) pueden ser usados como compensadores de reactivos variable, es decir, sepuede comportar como un inductor o capacitor variable. Esta técnica garantiza la regulación de lastensiones en todas las condiciones de carga, ya que compensa la potencia reactiva dependiendo de

Page 35: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4 CAPÍTULO 1. INTRODUCCIÓN

la demanda. Además permite controlar amplitud, fase y forma de onda de las corrientes por fase, loque posibilita la compensación de desequilibrios y armónicos de las corrientes de carga. En el ámbitode la generación trifásica aislada, cuando la carga tiene un perfil residencial, donde predominan lascargas monofásicas y actualmente también se encuentran cargas no lineales, esto trae aparejado unproblema de desequilibrio de tensiones y corrientes y problemas de armónicos. El desequilibrio, comoasí también la distorsión armónica, son perjudiciales tanto para las cargas de consumo como para elgenerador. Para el caso del generador, el desequilibrio de tensiones y la distorsión armónica afecta lapotencia, el torque y vibraciones de la máquina, produciendo calentamiento desigual de los bobinados,aumento en las pérdidas de energía, torque pulsante y por lo tanto, disminuye la vida útil del generadory/o acelera el proceso de mantenimiento [7]. Inclusive el efecto combinado a niveles aceptablesde desequilibrio de tensiones y distorsión armónica, lleva a niveles inaceptables de vibraciones enla máquina de inducción [8]. Por lo tanto es importante que el generador tenga en sus terminalestensiones y corrientes equilibradas.

Entonces, el problema se reduce a diseñar un sistema de control para el DSTATCOM, que lleve a cabolas tareas mencionadas en el párrafo anterior. Dicho sistema de control se compone de múltiples mallasde control en cascada, combinadas de manera tal que cada una lleve a cabo una acción particular.Utilizar compensadores PI clásicos de ganancias fijas en las mallas de control puede llevar a tenerproblemas de desempeño, ya que los mismos son ajustados a un punto determinado de operación, ycomo el sistema está constantemente sujeto principalmente a variaciones de carga, que representanvariaciones paramétricas en el modelo matemático del sistema, puede suceder que la compensaciónobtenida sea insuficiente. Aquí es donde el uso de técnicas adaptativas puede hacer la diferencia, ya quelos controladores adaptativos tienen una franja de operación y son capaces de lidiar con variacionesparamétricas e inclusive dinámicas no modeladas. El uso del controladores adaptativos es una de lasmotivaciones de la presente tesis de maestría.

Entonces; finalmente, las motivaciones del autor para llevar a cabo éste trabajo de tesis de maestríason:

1. Contribuir en soluciones en el área de generación de energía ecológicas, que tengan un bajoimpacto ambiental y ayuden el desarrollo humano.

2. Contribuir práctica y académicamente con el estudio y prueba de técnicas de control modernasaprovechando la tecnología actual para el problema del control de desbalance de tensiones defase.

1.2. Objetivos

El objetivo general es realizar el control de un dispositivo de compensación de la frecuencia yamplitud de la tensión de un sistema de microgeneración que utiliza un generador de induccióntrifásico autoexcitado aislado, y que además compense desequilibrios de corrientes y de tensiones de

Page 36: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 5

fase del sistema.

Dicho dispositivo está formado por un compensador estático de reactivos, con un inversor fuente detensión a cuatro brazos para regular tensión del bus CA y un controlador electrónico de carga pararegular la frecuencia.

El objetivo específico del trabajo, es comprobar la posibilidad de utilizar un controlador adap-tativo por modelo de referencia en la malla externa de tensión del eje 0 del referencial síncronopara realizar la compensación del desequilibrio.

Se considera éste objetivo como aporte principal de éste trabajo.

1.3. Revisión bibliográfica

1.3.1. Máquina de inducción tipo jaula de ardilla

La máquina de inducción es una máquina rotativa que cuenta con una parte fija, conocida como estátory una móvil, conocida como rotor. Se llama máquina de inducción debido a que las tensiones del rotor(las cuales producen las corrientes y los campos magnéticos del rotor) son inducidas en los devanadosdel mismo en lugar de ser aplicadas directamente por cables [9].

Se las clasifica dependiendo de la forma constructiva del rotor. Si tiene devanados al igual que elestátor, se la denomina de tipo de rotor bobinado, pero si dichas bobinas son reemplazadas por barrasy además se las cortocircuita, la construcción se asemeja a una jaula de un hamster, de ahí viene elnombre de tipo de jaula de ardilla. En la figura 1.3 se muestra el corte del modelo de un MI tipo jaulade ardilla trifásico.

UnMI trifásico cuenta en el estátor, con un juego de bobinas para cada fase de la fuente de alimentación.Normalmente éstas bobinas se conectan a una fuente de tensión trifásica balanceada, la cuál generacorrientes trifásicas balanceadas en los devanados del estátor. Los devanados son distribuídos a lolargo de la circunferencia de la carcaza del estátor, buscando generalmente una distribución senoidal.Entonces, debido a la distribución del bobinado y a las corrientes, se genera una Fuerza MagnetoMotriz (FMM) o en inglés Magneto Motive Force (MMF) rotativa de magnitud constante en elentrehierro estátor-rotor, cuya representación matemática tiene forma de ecuación de onda. Másdetalles pueden ser vistos en el capítulo 2 de [10].

La velocidad de rotación de ésta FMM es determinada por la frecuencia eléctrica de las corrientes delestátor y la cantidad de polos de la máquina. Si la velocidad de rotación del rotor es diferente a la de laFMM rotativa, entonces se van a inducir corrientes trifásicas balanceadas en los bobinados del rotor.La frecuencia de las corrientes inducidas dependerá de la diferencia de velocidad entre el rotor y laFMM. Ésta diferencia se conoce como deslizamiento, resbalamiento o slip en inglés, que se definirámatemáticamente más adelante en otra sección.

Page 37: Controlador Adaptativo Robusto por Modelo de ... - UNaM

6 CAPÍTULO 1. INTRODUCCIÓN

Figura 1.3: Corte del modelo de un Motor de Inducción tipo Jaula de ArdillaFuente: Internet.

Las corrientes inducidas en el rotor, a su vez generan una FMM rotativa en el entrehierro que girarelativa a éste. A una velocidad que se corresponde con la frecuencia radián de las corrientes del rotordividido el número de pares de polos. Ésta FMM del rotor superpuesta a la velocidad del propio rotores igual a la FMM del estátor producida por las corrientes balanceadas. Éstas dos FMM’s girando a lapar, interactuando entre sí, generan torque.

Actualmente la máquina de inducción es usada en una gran cantidad de aplicaciones como forma deconversión de energía eléctrica a trabajo mecánico, es decir como MI. Tales aplicaciones incluyenbombas de líquidos, perforadoras, siderúrgicas, tracción de vehículos entre otras. Pero ésto no terminaaquí, ya que también puede funcionar como GI invirtiendo el flujo de energía, donde se entrega trabajomecánico al eje de la máquina y se obtiene energía eléctrica en sus bornes. Cabe mencionar que elproceso de control de tensiones es más complicado que para la máquina síncrona.

Más aún, unamáquina de inducción de tipo jaula de ardilla utilizada como generador, también conocidacomo GIAE o en inglés SEIG, tiene ventajas comparado con un generador sincrono convencional alser utilizada en sistemas de microgeneración (hasta 75kW) aislados (o sin conexión a la red eléctricacomercial convencional). Las ventajas más significativas son: Ausencia de excitación CC, no tieneescobillas o carbones colectores, construcción robusta y protección intrínseca al cortocircuito, [1, 2],no presentamayores inconvenientes de embalamiento. La auto-excitación de lamáquina es un requisitoescencial para que funcione como generador, más detalles en la sección 1.3.3.

La amplitud de las tensiones generadas está asociada al balance de la energía reactiva del sistema,dependiendo estrictamente del factor de potencia y de la potencia de la carga aplicada al generador.Mientras que la frecuencia de las tensiones está asociada con el balance de potencia activa, que dependede la relación entre la potencia mecánica entragada al eje del GI y la potencia eléctrica consumida

Page 38: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 7

por el sistema eléctrico [1, 2]. En éste sentido, el control de las tensiones y la frecuencia puede serimplementada mediante el control de potencia activa y reactiva de manera independiente entre ellas.

1.3.2. Circuito Equivalente del Motor de inducción

Para poder continuar, se definirán algunos conceptos claves. El primero de ellos es que una máquinacon más de dos polos por fase puede ser tratada matemáticamente como una de dos polos, definiendola posición del rotor respecto a los radianes eléctricos. Esta relación viene dada por:

θr =P2θm (1.1)

donde θr es la posición angular eléctrica del rotor, P es la cantidad de polos y θm es la posición angularmecánica, real o física del rotor en radianes. Y para la velocidad angular eléctrica del rotor ωr :

ωr =P2ωm (1.2)

donde ωm es la velocidad angular mecánica real del rotor en radianes por segundo.

Otro concepto importante es la velocidad de sincronismo o velocidad síncrona. Se la define como lavelocidad con que gira el campo magnético generado en el entre-hierro de la máquina, el cuál dependeexclusivamente de la frecuencia de las corrientes del estátor, es decir, de la frecuencia de las corrientescon que se alimenta a la máquina y a la cantidad de polos de la misma. Conociendo la frecuencia ( fe)en Hertz de las corrientes del estátor, se puede definir la velocidad síncrona en radianes por segundocomo:

ωsync =2Pωe =

2P

2π fe

[1s

](1.3)

o expresada en Revoluciones por Minuto (RPM) como:

nsync =30πωsync =

120 feP

[RPM] (1.4)

Se conoce como deslizamiento, resbalamiento o slip (s) en inglés a la diferencia entre la velocidadsíncrona y la velocidad del rotor, en fórmula corresponde a:

s =nsync − nm

nsync=ωsync − ωm

ωsync(1.5)

de ésta última expresión es posible determinar que si el rotor gira a la velocidad síncrona, el desli-zamiento s = 0. Cuando el rotor está parado o bloqueado, el deslizamiento vale s = 1. También conbase en la ecuación (1.5), se puede expresar la velocidad del rotor como función del deslizamiento yde la velocidad síncrona:

nm = (1 − s) nsync (1.6)

Page 39: Controlador Adaptativo Robusto por Modelo de ... - UNaM

8 CAPÍTULO 1. INTRODUCCIÓN

El MI puede ser estudiado como un transformador, pero en lugar de tener un primario y secundariofijos, tiene un primario fijo (el estátor) y un secundario móvil (el rotor). Por lo que se pueden aplicaralgunas consideraciones que se realizan al momento de analizar un transformador.

Como se ha mencionado, el motor de inducción trifásico cuenta en el estátor con tres bobinas (unapor fase), idealmente cada una con Ns espiras, que producen campo magnético rotativo. Estas bobinasse encuentran distribuídas a lo largo de la circunferencia de la carcaza, y presentan una resistenciadistribuída a lo largo de todos los conductores que la conforman. Ésta resistencia (Rs) es la responsablede las pérdidas en el cobre.

Del total de líneas de campo magnético producidas por la corriente que circula en el bobinado delestátor, algunas consiguen atravezar el entrehierro y alcanzar algún bobinado del rotor (éste flujo esconsiderado flujo magnetizante), mientras que otras se cierran a través del aire, conformando lo quese conoce como flujo disperso. Éste efecto puede ser representado mediante una reactancia inductivade dispersión (Xs).

La corriente demagnetización (IM) es proporcional (proporcional siempre y cuando no haya saturaciónen el núcleo) a la tensión aplicada. Además atrasa 90º a la tensión, por lo tanto puede ser modeladacomo una reactancia (XM) conectada a través de la fuente de alimentación. El calentamiento del núcleoes debido a la histéresis y corrientes parásitas de Foucault. Se puede considerar que es producido poruna corriente (IC) que es proporcional a la tensión aplicada al núcleo, y además está en fase con ésta.Por lo tanto, éste efecto puede ser representado por una resistencia (RC) conectada a través de la fuentede alimentación.

La Fuerza ElectroMotriz (FEM) que se induce en el rotor depende de la velocidad del campomagnéticorotativo generado respecto de los conductores o barras del rotor. Cuando el rotor está detenido, lavelocidad relativa del campo magnético respecto del mismo se corresponde con la velocidad síncrona,lo que produce que la tensión tenga el valor máximo Er1. Y la frecuencia es la frecuencia síncrona. Amedida que el rotor adquiere velocidad, el deslizamiento disminuye, por lo que también disminuye laFEM inducida y la frecuencia de las corrientes inducidas, hasta llegar a ser cero en el caso ideal queel rotor alcance la velocidad síncrona. Aceptando que la variación es lineal, entonces se tiene que laFEM inducida en el rotor puede ser expresada como:

Ers = s Er1 (1.7)

Lo mismo pasa con la reactancia de dispersión del rotor, suponemos una relación lineal con respectoal deslizamiento, entonces:

Xrs = s Xr1 (1.8)

donde Xr1 es el máximo valor de la reactancia de disperción (cuando s = 1 o a rotor bloqueado).

Cuando el rotor alcanza la velocidad de régimen, las pérdidas en el hierro del mismo son pequeñas,debido a que la frecuencia de las corrientes inducidas son pequeñas.

Page 40: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 9

La figura 1.4 muestra el circuito eléctrico equivalente, usando un transformador ideal, del MI para unafase. El mismo se repite para cada fase si se supone un motor simétrico.

Figura 1.4: Circuito eléctrico equivalente de un MI para una fase usando un transformador ideal

La ecuación de malla del circuito del rotor es:

s Er1 = Ir (Rr + j s Xr1) (1.9)

Que puede ser escrita como:

Er1 = Ir

(Rr

s+ jXr1

)(1.10)

Lo cual indica que los efectos del deslizamiento puede ser concentrado en una resistencia variable, laque a su vez puede ser descompuesta en una parte constante y otra variable:

Rr

s= Rr +

1 − ss

Rr (1.11)

La figura 1.5 muestra el circuito equivalente teniendose en cuenta las ecuaciones 1.10 y 1.11.

Figura 1.5: Circuito eléctrico equivalente de un MI para una fase usando un transformador idealcon resistencia de rotor descompuesta

El ultimo paso es referir el rotor al estátor, de igual manera que se refiere el secundario de untransformador a su primario. Teniendo en cuenta que la relación de transformación efectiva está dadapor ae f =

Ns

Nr, la tensión inducida en el rotor valdrá:

Es = E′

r1 = ae f Er1 (1.12)

Page 41: Controlador Adaptativo Robusto por Modelo de ... - UNaM

10 CAPÍTULO 1. INTRODUCCIÓN

La corriente en el rotor será:IEs = I

r =Ir

ae f(1.13)

y,

Z′

r = a2e f Zr

= a2e f

[(Rr +

1 − ss

Rr

)+ jXr1

]= a2

e f Rr +1 − s

sa2

e f Rr + ja2e f Xr1

= R′

r +1 − s

sR′

r + jX′

r1

(1.14)

En la figura 1.6 se muestra el circuito equivalente referido final de una fase.

Figura 1.6: Circuito eléctrico equivalente por fase del MI referido al estátor

El torque eléctrico o inducido puede ser calculado mediante:

τind =PEH

ωsync(1.15)

donde PEH es la potencia en el entrehierro. La que puede ser obtenida como la potencia que se disipaen la resistencia variable del rotor:

PEH = 3I′

r2 R

r

s(1.16)

Para conocer cuanto vale la corriente referida del rotor se puede realizar el equivalente de Theveningdel circuito, como se muestra en la figura 1.7. La tensión de Thevening vale:

Figura 1.7: Circuito eléctrico de Thevening equivalente por fase del MI referido al estátor

VTH = VsjXM

Rs + j(Xs + XM)(1.17)

Page 42: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 11

La impedancia de Thevening, compuesta por una resistencia y una reactancia inductiva:

ZTH = RTH + jXTH =jXM(Rs + jXs)

Rs + j(Xs + XM)(1.18)

La corriente I′r del circuito de la figura 1.7 valdrá:

I′

r =VTH

ZTH + Z ′r=

VTH(RTH +

R′

r

s

)+ j

(XTH + X ′r1

) (1.19)

y su módulo:I′

r =VTH√(

RTH +R′

r

s

)2

+ j(XTH + X ′r1

)2(1.20)

Finalmente utilizando (1.15), (1.16) y (1.20) se obtiene la ecuación final para calcular el torqueinducido (τind):

τind =

3V2TH

(R′

r

s

)ωsync

[(RTH +

R′

r

s

)2

+ j(XTH + X ′r1

)2] (1.21)

ωm/ωsync

-1 -0.5 0 0.5 1 1.5 2

Tor

que

Indu

cido

ind) 0

Característica Torque-Velocidad del Motor de Inducción

Torque deRuptura

Freno Motor Generador

Torque deArranque

Figura 1.8: Curva Torque-Velocidad de un MI

Lafigura 1.8muestra la curva del torque inducido de lamáquina en función de la velocidad normalizadaωm

ωsync. Se pueden observar tres regiones de funcionamiento, como freno, comomotor y como generador.

Analizando con cierto detalle dicha gráfica se puede decir:

1. El torque inducido es nulo a la velocidad síncrona. Debido a que en esa condición no se inducetensión, corrientes o flujo en el rotor.

Page 43: Controlador Adaptativo Robusto por Modelo de ... - UNaM

12 CAPÍTULO 1. INTRODUCCIÓN

2. La curva es prácticamente lineal en torno a los puntos de vacío y torque nominal. Dicha región detrabajo es la zona lineal que se encuentra a la derecha del torque máximo, donde el deslizamientoes pequeño.

3. Existe un torque máximo que no puede ser excedido, llamado torque de ruptura o breakdowntorque en inglés, el cuál suele estar entre dos o tres veces el valor del torque nominal del motor.

4. El torque de arranque es ligeramente superior al de plena carga, por lo que el motor comenzarámoviendo cualquier carga que el mismo pueda soportar a carga nominal.

5. Si el rotor del MI es acelerado externamente hasta que su velocidad supera a la velocidadsíncrona, entonces la dirección del torque inducido se invierte y la máquina se vuelve un GI,convirtiendo la energía mecánica en energía eléctrica.

6. Si el motor está girando en dirección contraria a la del campo magnético, el torque inducido va aparar la rotación rápidamente y tratará de hacerla girar en la dirección contraria. Por lo tanto, eneste caso se comporta como un freno. Cambiar la dirección del flujo magnético es muy sencilloen un motor trifásico, simplemente se debe invertir la conexión de dos fases cualquiera.

1.3.3. Auto-exitación del Generador de inducción

Éste fenómeno es de especial interés cuando el GI es utilizado en sistemas de generación aislados [5].Como semencionó, cuando lamáquina se acelera por encima de la velocidad síncrona, el deslizamientose hace negativo. En éstas condiciones, la máquina de inducción consume una corriente que atrasa ala tensión más de 90º. Esto significa que la máquina entrega potencia. Aunque para poder obtener latensión en bornes del generador, es necesario excitarlo de alguna manera. Esta excitación se refiere aalgún método que permita que la máquina de inducción obtenga la potencia reactiva que necesita paragenerar y mantener el campo magnético en su interior. Cómo el GI puede funcionar conectado a unared comercial de energía o de manera aislada, éstos son los dos modos de excitación posible.

En el modo conectado a la red, el GI puede obtener la potencia reactiva de la red eléctrica (aunqueésto coloca una carga a la red) o a través de un banco de capacitores conectados en sus terminales.En modo aislado, generalmente se coloca un banco de capacitores adecuado en sus terminales. Estefenómeno es conocido como Auto-Excitación por Capacitor y el GI es llamado GIAE.

El proceso de generación de tensión del GI es muy parecido al del generador de corriente contínua. Elrotor debe tener suficiente magnetismo residual, porque en caso de ausencia o de un valor insuficiente,no se logrará generar la tensión esperada. Por lo que es deseable un alto valor de magnetismoresidual en el rotor, para que el proceso de autoexcitación sea fácil. Se deben evitar las condicionesde funcionamiento que provocan la desmagnetización del rotor, por ejemplo, el colapso total de latensión bajo cargas resistivas, o el colapso rápido de la tensión debido a un cortocircuito [5].

Cuando el GI comienza a girar, el magnetismo residual en el rotor produce una pequeña tensión. Ésta

Page 44: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 13

pequeña tensión produce un flujo de corriente por los capacitores del banco de excitación, lo queincrementa la tensión, y así sucesivamente hasta alcanzar el valor final. La tensión en bornes, en vacío,es la intersección de la curva de magnetización del generador con la recta de carga del capacitor deexcitación, como puede verse en la figura 1.9.

La curva de magnetización del generador se puede obtener mediante un ensayo consistente en irmidiendo los sucesivos valores de corriente que absorbe el motor cuando es alimentado con unsistema que permita variar la magnitud de la tensión que suministra y mantenga el valor deseadode frecuencia; mientras el rotor es accionado por otra máquina motriz para que gire a la velocidadsíncrona correspondiente. De esta manera se tiene que el deslizamiento es cero y, por lo tanto, lacorriente en el rotor es nula. Con lo que, si se desprecian las pérdidas en el núcleo, la corriente en lainductancia de magnetización es igual a la que se mide en la línea de alimentación del motor [11].

Para poder alcanzar una tensión específica, el banco de capacitores de excitación debe ser capaz desuministrar dicha corriente de magnetización.

tV

( )g

V V

( )m

I AmnlI

1 1tan

C

- æ ö= ç ÷wè ø

rV

1

excC

0

Figura 1.9: Tensión en Bornes - Cálculo del Capacitor de Excitación

Sin embargo, cabe mencionar que de igual manera aunque el rotor no cuente con el suficientemagnetismo remante, es posible hacer que la máquina inicie el proceso de autoexcitación y funcionecomo generador. Una forma es conectando por un momento una fuente de baja tensión contínua (porejemplo una batería de 12V de automóvil), luego se la desconecta y se comienza con el proceso deautoexcitación normal [11], [12].

1.3.4. Esquemas de Regulación de Tensión en un GIAE

En la tabla 1.1 se presenta una clasificación de sistemas de control para la regulación de tensión, todosaplicados al balance de energía reactiva [6]. Se puede observar que la primer clasificación importanteviene dada por la forma de conectar el sistema de regulación, el cuál puede ser en paralelo con losterminales del generador, o en serie. Ambas formas de conexión se subdividen en compensaciónclásica, basada en dispositivos de conmutación y basada en convertidor.

Page 45: Controlador Adaptativo Robusto por Modelo de ... - UNaM

14 CAPÍTULO 1. INTRODUCCIÓN

Clásica Basada en Disp.Conmutación

Basada enConvertidores

CompensaciónParalela

CondensadorSíncrono.Reactor deNúcleoSaturable.

InductorControlado.Condensador deConmutación.Condensador deConmutaciónControlado.CompensadorEstático deReactivos.Controlador deTensión deCiclo Integral.CompensadorFuente deTensión conrecuperación deEnergíaMagnética.

STATCOMFuente deTensión.STATCOMFuente deCorriente.Compensadorde Reactivos enAtraso-Adelanto.

CompensaciónSerie

Transformadorde TensiónConstante.GIAECompensado.

ReactanciaVariable.

CompensadorEstático Serie.

Tabla 1.1: Esquemas de Regulación de Tensión.

Page 46: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 15

Detalles sobre el funcionamiento de cada topología puede ser visto en [6]. Se extraen de [13] algunospuntos generales:

En el esquema de regulación de tensión con compensación paralela basado en el uso del reactorcon núcleo saturable, el banco de capacitores es dimensionado para una condición extrema decompensación de potencia reactiva, es decir, con el generador a plena carga inductiva. El reactorcon núcleo saturable compensa la potencia reactiva capacitiva en condiciones de carga parcialinductiva.

En los esquemas basados en llaves electrónicas, ya sea compensación serie o paralelo, elprincipio de control es el balance de energía reactiva del sistema a partir de la conmutaciónde componentes capacitivos y/o inductivos. Las topologías difieren solamente en el tipo deelemento conmutado y en la tecnología del elemento semiconductor de la llave electrónica.

Las topologías que sugieren la conmutación de cargas reactivas, inductivas o capacitivas, pre-sentan la ventaja que no inyectan componentes de alta frecuencia en el sistema y tienen bajaspérdidas por conmutación, pero el control de la tensión es llevado a cabo mediante pasosdiscretos, lo que perjudica la regulación exacta.

Las topologías que proponen conmutación en alta frecuencia de las llaves electrónicas, ajustandoel ángulo de disparo según la potencia reactiva a ser compensada, ofrecen ajuste periódico y ade-cuado de la tensión en bornes con la desventaja de presentar elevadas pérdidas por conmutacióne inyectar distorsiones de alta frecuencia en el sistema.

Las topologías que hacen uso de compensadores estáticos de reactivos realizan el controlmediante la inyección de corrientes reactivas en el sistema, generadas por un inversor estáticode distribución o del inglés Distribution Static VAR Compensator (DSTATCOM) conectado enparalelo con bus de tensiones.

En la siguiente sección se habla con mas detalle sobre el DSTATCOM

1.3.5. DSTATCOM

El Compensador Estático de Reactivos (CER) de Distribución o DSTATCOM, es una topología condispositivos semiconductores controlados de forma tal de compensar la tensión del sistema mediantela inyección de corriente reactiva. Es decir, el mismo puede ser visto como un capacitor variable y/oinductor variable.

La compensación de reactivos puede ser realizada a partir de un CER fuente de tensión (IFT) o confuente de corriente (IFC). Ambas topologías se pueden apreciar en la figura 1.10 para un sistematrifásico sin neutro.

El IFC es ventajoso en aplicaciones de altas potencias, pero el IFT se volvió predominante, debidoal pequeño tamaño de los capacitores y el menor costo comparado con la estructura del IFC para el

Page 47: Controlador Adaptativo Robusto por Modelo de ... - UNaM

16 CAPÍTULO 1. INTRODUCCIÓN

(a) CER Fuente de Tensión (b) CER Fuente de Corriente

Figura 1.10: Tipos de DSTATCOM según su FuenteFuente: CHAUHAN; JAIN; SINGH, 2010 [6]

segmento de pequeñas y medianas potencias.

En esta tesis de maestría se utilizará el CER fuente de tensión, por tratarse de microgeneración.

La figura 1.11 muestra dos posibles topologías para tener en cuenta el neutro, la configuración dela izquierda utiliza un divisor capacitivo, tiene como ventaja que solamente cuenta con seis llaveselectrónicas por lo que presenta bajas pérdidas por conmutación en comparación con otra, pero comodesventajas se pueden mencionar primeramente que se necesita un circuito adicional o una mallaadicional de control para que la tensión del centro del divisor capacitivo no varíe demasiado o se salgade los márgenes aceptables; en segundo lugar se puede decir que no es posible realizar compensaciónalguna en el conductor del neutro. Mientras que en la configuración de la figura 1.11b se agrega unbrazo para la conexión al neutro, como ventaja es posible compensar corrientes por el neutro.

(a) Tres Brazos y Divisor Capacitivo (b) Cuatro Brazos

Figura 1.11: Topologias DSTATCOM con neutro

El control del DSTATCOM, es decir la forma en que las llaves electrónicas son accionadas, general-mente es implementado mediante múltiples mallas de control [7], una externa en cascada con otrainterna. Las mallas externas se usan para la regulación de la tensión en los buses de Corriente Alter-na (CA) y Corriente Contínua (CC) para el GIAE y el DSTATCOM respectivamente. Estas generanlas referencias para las mallas internas que controlan la corriente que es inyectada al sistema.

Generalmente para las mallas externas de tensión (CA en el GIAE y CC en el DSTATCOM) seproyectan controladores convencionales de tipo Proporcional Integral (PI) cuando se utiliza referencialsíncrono [7], [14]. Con respecto a la malla interna de corriente, en aplicaciones con GIAE se observaque el controlador de corriente por histéresis es el método más utilizado [15–17]. Presenta ventajas

Page 48: Controlador Adaptativo Robusto por Modelo de ... - UNaM

1.3. REVISIÓN BIBLIOGRÁFICA 17

como robustez, buen rastreo de la referencia y capacidad dinámica, pero presenta el inconveniente detener una frecuencia de conmutación variable, lo que dificulta el diseño del filtro, alta ondulación ybaja calidad de corriente [18].

Una alternativa al controlador por histéresis es el uso de controladores que trabajan con técnicas demodulación convencionales para conversores/inversores por Modulación de Ancho del Pulso (MAP) omejor conocido en inglés como PulseWidthModulation (PWM) con fuente de tensión, como ser PWMsenoidal, vector espacial o en inglés Space Vector o modulación geométrica. Estos moduladores tienencomo ventajas que el espectro armónico y el patrón de conmutación están bien definidos, además derealizar un aprovechamiento óptimo del bus CC del DSTATCOM [18]. En este contexto, se utilizacomúnmente un controlador PI en coordenadas síncronas rotativas, el cuál funciona adecuadamenteen sistemas balanceados, pero puede presentar un desempeño inadecuado o insatisfactório en algunasaplicaciones donde las tensiones o corrientes del sistema presentan perturbaciones por armónicos odesequilibrios [19].

Otra alternativa es el controlador Proporcional Resonante (PR) para el control de la corriente delDSTATCOM, como fue propuesto en [20]. Los resultados demuestran que estos controladores puedencompensar adecuadamente los armónicos presentes en las corrientes de la carga. Sin embargo, el usode controladores clásicos como PI o PR en un sistema con un GAIE enfrenta dificultades debido ala complejidad del modelo de la máquina de inducción, ya que el modelo del GAIE no es lineal ytiene un orden elevado (de sexto orden para cargas resistivas puras), como así también para el diseñosistemático del controlador [21].

Con el avance de la tecnología en términos de dispositivos de conmutación y poder de procesamientodel microcontrolador y del Procesador Digital de Señales (PDS) o en inglés Digital Signal Processor(DSP) surge la posibilidad del uso de controladores robustos, que entre otras características, presentatolerancia a dinámicas nomodeladas [22]. En [23] es propuesto un Controlador Adaptativo porModelode Referencia (CAMR) o del inglés Reference Model Adaptive Controller (RMAC), aplicado a la mallade regulación de tensión de un sistema de generación con GAIE.

Se observa en la literatura que el controlador RMAC también se aplica a mallas internas de corriente,como en [24], con plantas con variaciones paramétricas o dinámicas no modeladas, como por ejemploen [25] para convertidores trifásicos conectados a la red con filtro LCL, o en [26], para filtros depotencia activa.

Page 49: Controlador Adaptativo Robusto por Modelo de ... - UNaM

18 CAPÍTULO 1. INTRODUCCIÓN

Page 50: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 2

Modelado del Sistema

“ Si buscas perfección, nunca estarás contento. ”Anna Karenina, de Leo Tolstoy.

2.1. Configuración del Sistema

Se muestra en la figura 2.1 el sistema de generación propuesto. Consiste de un sistema trifásico conneutro, al cuál está conectado el GI, movido por una turbina hidráulica no controlada, un banco decapacitores de excitación, las cargas de consumo aplicadas y el DSTATCOM conectado mediante unfiltro inductivo. Éste sistema puede ser dividido en el subsistema de generación de energía, subsistemade regulación de potencia y subsistema de cargas de consumo.

El subsistema de generación consiste del GI el cuál se encuentra mecánicamente acoplado a unaturbina hidráulica no controlada y un banco de capacitores de excitación. El banco de capacitores deexcitación en configuración Y está conectado en paralelo con los terminales del GI y desde el centroestrella se genera el neutro de la red trifásica, que forma junto con las tres fases del generador el PuntoComún de Conexión (PCC). Como motor primario se considera una turbina de potencia constante sincontrol en tiempo real de la potencia mecánica entregada al eje del generador.

El sistema de regulación está compuesto por un DSTATCOM fuente de tensión con cuatro brazos yun sistema de control dedicado desarrollado con un DSP. El bus de AC del DSTATCOM es conectadoal PCC mediante un filtro inductivo. Desde el bus de CC se encuentra el Control Electrónico deCarga (CEC) o en inglésElectronic LoadControl (ELC). Ésta topología permite al sistema la regulaciónde potencia reactiva y activa, y por consecuencia la tensión y la frecuencia en el PCC respectivamente.

Como cargas de consumo son consideradas cualquier tipo de carga lineal balanceada y/o desbalancea-

19

Page 51: Controlador Adaptativo Robusto por Modelo de ... - UNaM

20 CAPÍTULO 2. MODELADO DEL SISTEMA

da, lo que incluye cargas convencionales monofásicas y trifásicas, flotantes o aterradas, a tres o cuatroconductores, con factor de potencia unitario o no.

excC

GI

DSTATCOM

aiGeneradorInducción

FiltroInductivo

CargasLineales

Balance /adasNo Balanceadas

Turbina HidráulicaNo Controlada

v ,

v ,

va

bc

Sistema de Control - 320F28335DSP TMS

i ,

i ,

ia

bc

v dc

i,i

,ia

lb

lcl

,f fL R

+

-

bi

ci

ali

nlicli

bli

ni

uP

WM

dcC

lR

PCCELC

uC

h

dcR

iga

igb

igc

Figura 2.1: Estructura del Sistema Propuesto

2.2. Modelo del sistema en variables de estados

Obtener un modelo del sistema para controlar las tensiones presenta un reto, ya que el modelo delgenerador de inducción autoexcitado no es lineal y además es de orden elevado (sexta orden paracargas resistivas) [21].

No existe hasta el momento un modelo lineal de orden reducido que tenga en cuenta al generadorde inducción autoexcitado aislado con el banco de capacitores y el DSTATCOM. Aunque se puedenencontrar en la literatura modelos linealizados para el proyecto del controlador de tensión comoen [21], pero este modelo aún no tiene en cuenta el compensador estático de reactivos. Por lo que paraconseguir un modelo de orden reducido se realizan simplificaciones, que se traducen en dinámicas nomodeladas. Esto último da lugar a la utilización de controladores adaptativos, que presentan como unade sus características que pueden hacer frente a dinámicas no modeladas y variaciones paramétricas,manteniendo la performance del control.

Se muestra en la figura 2.2 el circuito equivalente del sistema completo de microgeneración, usadopara obtener el modelo matemático en variables de estado. El circuito, de izquierda a derecha, incluyeel GI, el banco de capacitores de excitación, la carga equivalente de consumo, el filto inductivo y elDSTATCOM.

Para llegar a dicho circuito equivalente se realizaron las siguientes hipótesis simplificadoras:

El generador de inducción es considerado una fuente de corriente ideal, equilibrada y sindistorsión.

El capacitor del bus de CC del DSTATCOM es considerado una fuente de tensión ideal.

Page 52: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.2. MODELO DEL SISTEMA EN VARIABLES DE ESTADOS 21

gai

gbi

gci

Cai

Cbi

Cci

2

3

4

ai

bi

ci

Lav Rav

I

II

1nu

Lbv Rbv

Lcv Rcv

Lnv Rnv ni

III

2nu

3nu

fL

fL

fL

fR

fR

fR

1

ali

av

bv

lZ

cvbli

cli

nlin

GI Capacitancia

Excitación

Cargas del

Sistema

Filtro

Indu tivocDSTATCOM

CExc

Figura 2.2: Circuito Equivalente del Sistema de Microgeneración

Las inductancias del filtro de salida del DSTATCOM son idénticas y del mismo valor.

La impedancia Zl se refiere al equivalente de la carga aplicada.

Como el sistema de generación considera una máquina primária no controlada y con velocidadconstante, el generador de inducción opera en un régimen constante, generando potencia nominal.Considerando que la tensión se encuentra regulada en el punto común de conexión, el generador puedeser considerado una fuente de corriente constante en régimen permanente [11]. Ésta simplificaciónadoptada no considera la dinámica del generador en régimen transitorio, por lo que simplifica elmodelado del sistema como un todo.

Cuando la tensión del capacitor del bus de CC del DSTATCOM es mantenida aproximadamenteconstante en régimen permanente, a los efectos de simplificar el modelado matemático, puede serconsiderado como una fuente de tensión constante.

La potencia consumida en el PCC debe ser mantenida constante e igual a la potencia generada con elobjeto de mantener el balance de potencia activa en el sistema, y en consecuencia la frecuencia de lastensiones generadas.

Aplicando la ley de las tensiones de Kirchhoff en las mallas I, II y III de la figura 2.2 se obtienen lassiguientes ecuaciones:

0 = −u1n + vLa + vRa + va − vb − vRb − vLb + u2n (2.1)

0 = −u2n + vLb + vRb + vb − vc − vRc − vLc + u3n (2.2)

0 = −u3n + vLc + vRc + vc + vRn + vLn (2.3)

Page 53: Controlador Adaptativo Robusto por Modelo de ... - UNaM

22 CAPÍTULO 2. MODELADO DEL SISTEMA

Mediante la ley de las corrientes de Kirchhoff en el nodo 1 se tiene:

ia + ib + ic = in (2.4)

derivando respecto del tiempoo la ecuación anterior, se puede afirmar que:

diadt+

dib

dt+

dicdt=

dindt

(2.5)

Asumiendo que las inductancias y resistencias del filtro de salida del DSTATCOM son idénticas, lacaída de tensión en las mismas vale:

vRa = R f · ia, vRb = R f · ib, vRc = R f · ic, vRn = R f · in (2.6)

vLa = L f ·diadt, vLb = L f ·

dib

dt, vLc = L f ·

dicdt, vLn = L f ·

dindt

(2.7)

Multiplicando ambos miembros de (2.4) por R f y utilizando (2.6) se obtiene:

R f · ia + R f · ib + R f · ic = R f · in

vRa + vRb + vRc = vRn(2.8)

De igual manera, multiplicando ambos miembros de (2.5) por L f y utilizando (2.7) se obtiene:

L f ·diadt+ L f ·

dib

dt+ L f ·

dicdt= L f ·

dindt

vLa + vLb + vLc = vLn

(2.9)

Usando (2.8) y (2.9) en (2.3) y reagrupando convenientemente, las ecuaciones (2.1)-(2.3) pueden serreescritas como:

(u1n − va) − (u2n − vb) = (vRa + vLa) − (vRb + vLb) (2.10)

(u2n − vb) − (u3n − vc) = (vRb + vLb) − (vRc + vLc) (2.11)

(u3n − vc) = (vRa + vLa) + (vRb + vLb) + 2(vRc + vLc) (2.12)

que escribiendo en formato matricial se tiene:

1 −1 00 1 −11 1 2

vRa + vLa

vRb + vLb

vRc + vLc

=

1 −1 00 1 −10 0 1

u1n − va

u2n − vb

u3n − vc

(2.13)

multiplicando a la izquierda ambos miembros por la inversa de la primera matriz de la izquierda se

Page 54: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.2. MODELO DEL SISTEMA EN VARIABLES DE ESTADOS 23

tiene: vRa + vLa

vRb + vLb

vRc + vLc

=

1 −1 00 1 −11 1 2

−1

1 −1 00 1 −10 0 1

u1n − va

u2n − vb

u3n − vc

vRa + vLa

vRb + vLb

vRc + vLc

=14

3 −1 −1−1 3 −1−1 −1 3

u1n − va

u2n − vb

u3n − vc

(2.14)

la cual, usando (2.6) y (2.7) puede ser expandida a:

R f

iaib

ic

+ L f

diadtdibdtdicdt

=14

3 −1 −1−1 3 −1−1 −1 3

u1n − va

u2n − vb

u3n − vc

(2.15)

despejando las derivadas de las corrientes se llega a:

diadtdibdtdicdt

=R f

L f

−1 0 0

0 −1 00 0 −1

iaib

ic

+1

4L f

−3 1 1

1 −3 11 1 −3

va

vb

vc

+1

4L f

3 −1 −1−1 3 −1−1 −1 3

u1n

u2n

u3n

(2.16)

Aplicando la ley de los nodos de Kirchhoff en los nodos 2, 3 y 4 se obtiene respectivamente:

iCa + ial = iga + ia (2.17)

iCb + ibl = igb + ib (2.18)

iCc + icl = igc + ic (2.19)

observando el circuito equivalente de la Figura 2.2 se puede ver que las corrientes por la capacitanciade excitación valen:

iCa = CE xcdva

dt, iCb = CE xc

dvb

dt, iCc = CE xc

dvc

dt(2.20)

y que las corrientes por la carga valen:

ial =va

Zl, ibl =

vb

Zl, icl =

vc

Zl(2.21)

reemplazando las ecuaciones (2.20) y (2.21) en (2.17)-(2.19) se tiene:

CE xcdva

dt+va

Zl= iga + ia (2.22)

CE xcdvb

dt+vb

Zl= igb + ib (2.23)

CE xcdvc

dt+

vc

Zl= igc + ic (2.24)

Page 55: Controlador Adaptativo Robusto por Modelo de ... - UNaM

24 CAPÍTULO 2. MODELADO DEL SISTEMA

despejando las derivadas y escribiendo en formato matricial se llega a:

dvadt

dvbdt

dvcdt

=1

CE xc

1 0 00 1 00 0 1

iaib

ic

−1

CE xcZl

1 0 00 1 00 0 1

va

vb

vc

+1

CE xc

1 0 00 1 00 0 1

iga

igb

igc

(2.25)

Finalmente, a partir de las ecuaciones (2.16) y (2.25) la representación en espacio de estados en elreferencial estacionario abc está dado por:

dx(t)dt= Ûx(t) = Aabcx(t) + Babcu(t) + Fabcw(t) (2.26)

donde:

x(t) =

iaib

icva

vb

vc

; u(t) =

u1n

u2n

u3n

; w(t) =

iga

igb

igc

(2.27)

Aabc =

−Rf

L f0 0 − 3

4L f

14L f

14L f

0 −Rf

L f0 1

4L f− 3

4L f

14L f

0 0 −Rf

L f

14L f

14L f

− 34L f

1CExc

0 0 − 1CExcZl

0 00 1

CExc0 0 − 1

CExcZl0

0 0 1CExc

0 0 − 1CExcZl

(2.28)

Babc =1

4L f

3 −1 −1−1 3 −1−1 −1 3

0 0 00 0 00 0 0

; Fabc =

1CE xc

0 0 00 0 00 0 01 0 00 1 00 0 1

(2.29)

Las corrientes generadas por el DSTATCOM y las tensiones en el PCC son los estados del sistema,los cuales se definen en el vector xabc. Las tensiones del DSTATCOM son las entradas del sistema,definidas en el vector uabc, ya que son las tensiones sobre las que se tiene control y pueden sersintetizadas por el inversor. Y las corrientes del generador son consideradas como disturbios alsistema, definidas en el vector wabc. A los fines prácticos estas corrientes representan dinámicas nomodeladas.

El sistema de control de éste trabajo fué desarrollado en coordenadas giratórias síncronas dq0. Que

Page 56: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.2. MODELO DEL SISTEMA EN VARIABLES DE ESTADOS 25

es una transformación lineal, mediante matrices de transformación, a un nuevo sistema referencial ensincronía con la frecuencia eléctrica del sistema. El detalle de los cálculos necesarios puede verse enel Apéndice A.

Cabe aclarar que las variables fueron normalizadas para una implementación en el DSP más conve-niente. Se presenta a continuación el resultado obtenido:

Ûxdq0(t) = Adq0 xdq0(t) + Bdq0 udq0(t) + Fdq0 wdq0(t) (2.30)

siendo:

xdq0(t) =

id

iqi0vd

vq

v0

; udq0(t) =

ud

uq

u0

; wdq0(t) =

igd

igq

ig0

; (2.31)

Adq0(t) =

−Rf

L fωdq0 0 −

vbaseL f ibase

0 0−ωdq0 −

Rf

L f0 0 −

vbaseL f ibase

00 0 −

Rf

L f0 0 −

vbase4L f ibase

ibaseCExcvbase

0 0 − 1CExcZl

ωdq0 00 ibase

CExcvbase0 −ωdq0 − 1

CExcZl0

0 0 ibaseCExcvbase

0 0 − 1CExcZl

; (2.32)

Bdq0 =vbase

L f ibase

1 0 00 1 00 0 1

40 0 00 0 00 0 0

; Fdq0 =

ibase

CE xcvbase

0 0 00 0 00 0 01 0 00 1 00 0 1

(2.33)

El sistema de control es desarrollado con técnicas de control clásico, por lo que son necesariasfunciones de transferencia que vinculen las variables adecuadas. En el apéndice B se puede ver condetalle el procedimiento seguido para obtenerlas y los coeficientes que no se detallan en ésta sección.Se observa claramente que el sistema es de tipo Multiple Input - Multiple Output (MIMO), dondeexiste un acoplamiento entre las variables del eje d y q. En la figura 2.3 se pueden observar lasrespuestas en frecuencia de las cuatro funciones de transferencia de las plantas de corrientes Id e Iq

con respecto a las entradas Ud y Uq. En rojo se pueden ver los términos de acoplamiento cruzado,comparando los espectros de magnitud con las plantas en azul, se puede observar que éstos últimosson dominantes. Es decir, es un sistema diagonalmente dominante.

Una técnica popular en la industria es seguir el procedimiento del diseño de control para sistemasSingle Input - Single Output (SISO), en la cual los términos del acoplamiento cruzado se consideran

Page 57: Controlador Adaptativo Robusto por Modelo de ... - UNaM

26 CAPÍTULO 2. MODELADO DEL SISTEMA

disturbios en sistemas que son diagonalmente dominantes [27].

-20

0

20

Mag

nitu

de (

dB)

101 102 103 104-90

-45

0

45

Pha

se (

deg)

Respuesta en Frecuencia de GId

_Ud

(s)

Frequency (Hz)

-60

-40

-20

0

Mag

nitu

de (

dB)

101 102 103 104-180

0

180

Pha

se (

deg)

Respuesta en Frecuencia de GId

_Uq

(s)

Frequency (Hz)

-60

-40

-20

0

Mag

nitu

de (

dB)

101 102 103 1040

180

360

Pha

se (

deg)

Respuesta en Frecuencia de GIq

_Ud

(s)

Frequency (Hz)

-20

0

20

Mag

nitu

de (

dB)

101 102 103 104-90

-45

0

45P

hase

(de

g)

Respuesta en Frecuencia de GIq

_Uq

(s)

Frequency (Hz)

Figura 2.3: Respuesta en Frecuencia de las FT’s de corriente de los ejes dq. En azul términos dominantes, en rojotérminos de acoplamiento cruzado.

Entonces, aplicando el principio de superposición y considerando el acoplamiento cruzado comodisturbios, la función de transferencia de la planta de corriente (malla interna de control) de cada ejesolamente dependerá de su acción de control, es decir, Id con Ud , Iq con Uq e I0 con U0 (el eje 0 estárealmente desacoplado). Las mismas se presentan a continuación:

Gid (s)|Uq=0 = GId_Ud(s) =

Id(s)Ud(s)

=vbase

(b3 s3 + b2 s2 + b1 s + b0

)ibase

(a4 s4 + a3 s3 + a2 s2 + a1 s + a0

) (2.34)

Giq (s)|Ud=0 = GIq_Uq (s) =Iq(s)Uq(s)

=vbase

(b3 s3 + b2 s2 + b1 s + b0

)ibase

(a4 s4 + a3 s3 + a2 s2 + a1 s + a0

) (2.35)

Gi0(s) = GI0_U0(s) =I0(s)U0(s)

=vbase (CexcZl s + 1)

ibase[4CexcL f Zl s2 + (4L f + 4CexcR f Zl) s + (4R f + Zl)

] (2.36)

Para mantener la tensión del Bus CA (malla externa de control) se requiere de una FT que relacionela tensión del eje d con la corriente en cuadratura del eje q, ecuación (B.24) del apéndice B, la cual sereplica a continuación:

Gvd (s) = GVd_Iq (s) =Vd(s)Iq(s)

=ibaseCexcZ2

l ω

vbase[C2

excZ2l s2 + 2CexcZl s + (Cexc2Z2

l ω2 + 1)

] (2.37)

El control del desbalance de tensiones de fase está dado por el eje 0, se requiere en este caso una FT

Page 58: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.3. MODELADO DEL BUS CC DEL DSTACOM 27

que relacione la tensión V0 con su corriente I0, ecuación (B.27):

Gv0(s) = GV0_I0(s) =V0(s)I0(s)

=ibase Zl

vbase (CexcZl s + 1)(2.38)

2.3. Modelado del Bus CC del DSTACOM

El control de tensión del Bus de CC del DSTATCOM es realizado mediante el control del flujo deenergía activa del Bus CA para el Bus CC. Por lo tanto se debe encontrar una FT que relacione latensión Vcc sobre el capacitor Ccc con la corriente Id del eje d. Para ello se utiliza el Teorema deTellegen, utilizado en [28, 29], que establece que la suma de potencia instantánea en cualquier partede un circuito es cero.

Entonces, basado en dicho teorema se puede establecer que:

Pcc = −Pca (2.39)

la potencia en el lado CC está dada por la potencia en el capacitor CCC , que es la derivada respecto deltiempo de la energía almacenada en el mismo. La energía almacenada en un capacitor viene dada por:

ECcc (t) =12

CccV2cc(t) (2.40)

por lo tanto, se tiene:

Pcc =dECcc (t)

dt=

12

CccdV2

cc(t)dt

(2.41)

La potencia del lado CA está dada por:

Pca = va(t) ia(t) + vb(t) ib(t) + vc(t) ic(t) = vd(t) id(t) + vq(t) iq(t) + v0(t) i0(t) (2.42)

usando (2.41) y (2.42) en (2.39) se tiene:

12

CccdV2

cc(t)dt

= −[vd(t) id(t) + vq(t) iq(t) + v0(t) i0(t)

](2.43)

Realizando la suposición que el DSTATCOM funciona con factor de potencia unitario, y que lastensiones del sistema están equilibradas y sin armónicos, solamente se tendrá valores de tensión ycorriente en el eje d, y además la tensión vd será un valor practicamente constante. Por lo que laecuación (2.43) se reduce a:

12

CccdV2

cc(t)dt

= −vd id(t) (2.44)

aplicando la transformada de Laplace se tiene:

12

Ccc s V2cc(s) = −vd Id(s) (2.45)

Page 59: Controlador Adaptativo Robusto por Modelo de ... - UNaM

28 CAPÍTULO 2. MODELADO DEL SISTEMA

despejando el cuadrado de la tensión del bus CC V2cc(s) respecto de la corriente Id(s) del eje d se

obtiene la siguiente función de transferencia:

GVcc_Id (s) =V2

cc(s)Id(s)

= −2

Ccc

vd

s(2.46)

el último paso es normalizar la tensión máxima constante vd mediante vdn = vd/vbase. Finalmente, lafunción de transferencia normalizada que controla la transferencia de potencia activa entre el bus CAy CC está dada por:

GVcc (s) =GVcc_Id (s)

vbase= −

2Ccc

vd

vbase

1s= −

2Ccc

vdn

s(2.47)

2.4. Ecuaciones de Transferencia en referencial dq0

Las funciones de transferencia se obtienen reemplazando los símbolos por los valores reales que sepueden ver en el apéndice C. A partir de éstos parámetros, considerando como condición normalde trabajo la plena carga de 3700 W (Zl = 13Ω) y capacitores de excitación de Ccc = 55µF, seobtuvieron las siguientes FT correspondientes a las ecuaciones (2.34), (2.35), (2.36), (2.37), (2.38) y(2.47) respectivamente:

Gid (s) =9677 s3 + 2,769 · 107 s2 + 7,881 · 1010 s + 8,069 · 1013

s4 + 2926 s3 + 1,434 · 107 s2 + 1,784 · 1010 s + 3,41 · 1013 (2.48)

Giq (s) =9677 s3 + 2,769 · 107 s2 + 7,881 · 1010 s + 8,069 · 1013

s4 + 2926 s3 + 1,434 · 107 s2 + 1,784 · 1010 s + 3,41 · 1013 (2.49)

Gi0(s) =2419 s + 3,384 · 106

s2 + 1463 s + 1,557 · 106 (2.50)

Gvd (s) =2,285 · 105

s2 + 2797 s + 2,098 · 106 (2.51)

Gv0(s) =606,1

s + 1399(2.52)

GVcc (s) = −245

s(2.53)

Como el sistema de control será implementado en un DSP es necesario obtener los modelos en tiempodiscreto de las funciones de transferencias presentadas. Se usa un Mantenedor de Orden Cero o másconocido del inglés Zero Order Holder (ZOH) y un período de muestreo igual a la inversa de lafrecuencia de conmutación del DSTATCOM, para éste caso igual a Ts = 0,1 ms.

La acción de control calculada en el instante actual kTs será aplicada recién en el siguiente instante(k + 1)Ts, por lo tanto, los modelos discretos de las mallas internas de corriente deben incluir el atrasode transporte [30]. A continuación se presentan primeramente las mallas de corriente discretas con el

Page 60: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.4. ECUACIONES DE TRANSFERENCIA EN REFERENCIAL DQ0 29

atraso de transporte:

Gid (z) =0,9553 z3 − 2,557 z2 + 2,325 z − 0,7171

z5 − 3,615 z4 + 4,994 z3 − 3,123 z2 + 0,7463 z(2.54)

Giq (z) =0,9553 z3 − 2,557 z2 + 2,325 z − 0,7171

z5 − 3,615 z4 + 4,994 z3 − 3,123 z2 + 0,7463 z(2.55)

Gi0(z) =0,2406 z − 0,2092

z3 − 1,849 z2 + 0,8639 z(2.56)

ahora las mallas externas discretas de tensión:

Gvd (z) =0,001041 z + 0,0009484

z2 − 1,738 z + 0,756(2.57)

Gv0(z) =0,05656

z − 0,8695(2.58)

GVcc (z) = −0,0245z − 1

(2.59)

A continuación se muestran las respuestas en frecuencia a lazo abierto de las plantas de corriente ytensión, en tiempo contínuo y en tiempo discreto, con los valores nominales del sistema y en condiciónde plena carga. Se puede observar en todos los casos, que la discretización de las plantas contínuas esadecuada para bajas frecuencias. Para alta frecuencia el error entre ambas es notorio, sobre todo en elespectro de fase.

Las figuras 2.4 y 2.5 muestran los Diagramas de Bode de las plantas internas de corriente de los ejesd y q y 0 respectivamente. En las figuras 2.6, 2.7 y 2.8 se aprecian las plantas externas para controlarla tensión del sistema en el PCC Gvd , el desbalance de tensiones de fase Gv0 y la tensión del Bus CCdel DSTATCOM GVcc respectivamente.

101 102 103-15

-10

-5

0

5

10

15

20

Mag

nitu

d [d

B]

Diagrama de Bode - Plantas Gid

y Giq

101 102 103

Frecuencia [Hz]

-400

-300

-200

-100

0

100

Fas

e [º

]

Planta Contínua Planta Discreta con atraso

Figura 2.4: Respuesta en frecuencia a lazo abierto de las FTs de las plantas internas de corrientes en tiempocontínuo Gidq

(s) y tiempo discreto con el atraso de transporte Gidq(z).

Page 61: Controlador Adaptativo Robusto por Modelo de ... - UNaM

30 CAPÍTULO 2. MODELADO DEL SISTEMA

101 102 103-25

-20

-15

-10

-5

0

5

10

Mag

nitu

d [d

B]

Diagrama de Bode - Planta Gi0

101 102 103

Frecuencia [Hz]

-400

-300

-200

-100

0

Fas

e [º

]

Planta Contínua Planta Discreta con atraso

Figura 2.5: Respuesta en frecuencia a lazo abierto de la planta interna de corriente en tiempo contínuo Gi0 (s) ytiempo discreto con el atraso de transporte Gi0 (z).

101 102 103-100

-80

-60

-40

-20

Mag

nitu

d [d

B]

Diagrama de Bode - Planta Gvd

101 102 103

Frecuencia [Hz]

-250

-200

-150

-100

-50

0

Fas

e [º

]

Planta Contínua Planta Discreta

Figura 2.6: Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo contínuo Gvd (s) ytiempo discreto Gvd (z).

Page 62: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.4. ECUACIONES DE TRANSFERENCIA EN REFERENCIAL DQ0 31

101 102 103-35

-30

-25

-20

-15

-10

-5M

agni

tud

[dB

]Diagrama de Bode - Planta G

v0

101 102 103

Frecuencia [Hz]

-200

-150

-100

-50

0

Fas

e [º

]

Planta Contínua Planta Discreta

Figura 2.7: Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo contínuo Gv0 (s) ytiempo discreto Gv0 (z).

101 102 103-50

-40

-30

-20

-10

0

10

20

Mag

nitu

d [d

B]

Diagrama de Bode - Planta GV

cc

101 102 103

Frecuencia [Hz]

0

20

40

60

80

100

Fas

e [º

]

Planta Contínua Planta Discreta

Figura 2.8: Respuesta en frecuencia a lazo abierto de la planta externa de tensión en tiempo contínuo GVcc (s) ytiempo discreto GVcc (z).

Page 63: Controlador Adaptativo Robusto por Modelo de ... - UNaM

32 CAPÍTULO 2. MODELADO DEL SISTEMA

Si se consideran constantes e invariantes los valores de los parámetros del sistema con excepción deZl que representa la carga y de Cexc que representa la capacitancia de excitación, se puede apreciarque las funciones de transferencia (con excepción de la planta de tensión GVcc ), son dependientes delos valores de Zl y Cexc, por lo que ésto representaría una variación paramétrica del sistema.

Como ésta tesis de maestría se centra en el control de desbalance de tensiones de fase en el PCC, lasplantas de mayor interés son Gi0 y Gv0 correspondientes al eje 0 del referencial síncrono. Para vercomo afectaría la variación de la carga a las plantas de tensión y corriente del eje 0, se muestran en lasfiguras 2.9 y 2.10 las respuestas en frecuencia de Gi0(s) y Gv0(s) respectivamente, variando solamenteZl y manteniendo constante la capacitancia de excitación en Cexc = 55µF, yendo de la condiciónde plena carga correspondientes a 3700W (Zl = 13Ω), pasando por 75 % correspondientes a 2775W

(Zl = 17Ω), 50 % que representan 1850W (Zl = 26Ω) y 25 % de la potencia nominal que representan925W (Zl = 52Ω), hasta llegar a la condición de vacío (Zl = 1000Ω) correspondiente a 49W querepresenta aproximadamente el 1,3 % de la potencia total. Además, en la figura 2.10 se pueden apreciarque las diferentes respuestas, presentan diferentes frecuencias de corte, lo que implicaría el diseño deun controlador de ganancia fija para cada una de ellas.

En las figuras 2.11 y 2.12 se presentan las respuestas en frecuencia manteniendo constante la cargaen Zl = 13Ω y variando la capacitancia de excitación con los siguientes valores: 40µF, 47µF,55µF, 62µF, 69µF. Se observa que las plantas son menos sensibles a la variación de éste parámetrocomparando con la variación de la carga.

10-1 100 101 102 103 104-40

-30

-20

-10

0

10

20

30

Mag

nitu

d [d

B]

Planta de Corriente Gi0

(s) con Cexc

=55 F y variación paramétrica de Zl

10-1 100 101 102 103 104

Frecuencia [Hz]

-90

-45

0

45

90

Fas

e [º

]

100%(Plena Carga) 75% 50% 25% 1,3%(Vacío)

Figura 2.9: Respuesta en frecuencia a lazo abierto de la planta interna de corrienteGi0 (s) con variación paramétricade la carga del sistema Zl .

Page 64: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.4. ECUACIONES DE TRANSFERENCIA EN REFERENCIAL DQ0 33

10-1 100 101 102 103 104-40

-20

0

20

40M

agni

tud

[dB

]Planta de Corriente G

v0(s) con C

exc=55 F y variación paramétrica de Z

l

100%(Plena Carga) 75% 50% 25% 1,3%(Vacío)

10-1 100 101 102 103 104

Frecuencia [Hz]

-90

-45

0

Fas

e [º

]

Figura 2.10: Respuesta en frecuencia a lazo abierto de la planta externa de tensión Gv0 (s) con variación paramétricade la carga del sistema Zl .

101 102 103 104-30

-20

-10

0

10

Mag

nitu

d [d

B]

Planta de Corriente Gi0

(s) con Zl=13 y variación paramétrica de C

exc

101 102 103 104

Frecuencia [Hz]

-90

-45

0

Fas

e [º

]

40 F 47 F 55 F 62 F 69 F

Figura 2.11:Respuesta en frecuencia a lazo abierto de la planta internade corrienteGi0 (s) con variaciónparamétricade la carga del sistema Cexc .

Page 65: Controlador Adaptativo Robusto por Modelo de ... - UNaM

34 CAPÍTULO 2. MODELADO DEL SISTEMA

10-1 100 101 102 103 104-50

-40

-30

-20

-10

0

Mag

nitu

d [d

B]

Planta de Corriente Gv0

(s) con Zl=13 y variación paramétrica de C

exc

40 F 47 F 55 F 62 F 69 F

10-1 100 101 102 103 104

Frecuencia [Hz]

-90

-45

0

Fas

e [º

]

Figura 2.12: Respuesta en frecuencia a lazo abierto de la planta externa de tensión Gv0 (s) con variación paramétricade la carga del sistema Cexc .

2.5. Resumen

En este capítulo se presentó el modelado matemático del sistema de microgeneración en estudio. Semencionó que el modelado del sistema presenta algunos retos debido a que el modelo del generadorde inducción no es lineal y de orden elevado. Se partió de un circuito eléctrico equivalente del sistematotal, realizando algunas consideraciones que permiten simplificar el modelado, como ser que elgenerador de inducción sea una fuente equilibrada de corriente y que no se considera el transitorio dearranque, sinó ya funcionando en régimen, y que el DSTATCOM se comporte como una fuente detensión constante.

Estas simplificaciones representan dinámicas nomodeladas, lo que da lugar al uso de técnicas de controladaptativo como el controlador adaptativo por modelo de referencia, que entre sus característicaspresenta estabilidad y performance debido a que puede hacer frente a dinámicas no modeladas yvariaciones paramétricas.

A partir del circuito equivalente, se realizó el modelo en variables de estado en coordenadas esta-cionarias abc para luego pasar al referencial síncrono dq0, y finalmente obtener las funciones detransferencia necesarias. También se realizó el modelado del Bus de CC del DSTATCOM.

Se vió el acoplamiento cruzado que existe entre los ejes d y q, pero aplicando el principio desuperposición se redujo el sistema a modelos SISO a los efectos de utilizar técnicas de control clásico.

Respecto a la consideración del generador como fuente de corriente, la misma se justifica al decirque se parte del principio de que el mismo funciona con carga y velocidad relativamente constante,garantizando de esta manera una operación estable en régimen permanente. El hecho de que elgenerador sea considerado un disturbio al sistema, o una dinámica nomodelada, aporta a lomencionado

Page 66: Controlador Adaptativo Robusto por Modelo de ... - UNaM

2.5. RESUMEN 35

respecto a utilizar controladores adaptativos robustos.

Continuando con el desarrollo del capítulo se obtuvieron las funciones de transferencia numéricas entiempo contínuo y luego se las discretizó utilizando un ZOH para poder realizar la implementacióndel sistema de control en el DSP, teniendo en cuenta el atraso de transporte para las mallas internasdiscretas de corriente. Se obtuvieron las respuestas en frecuencia de las plantas contínuas y discretascon el objetivo de compararlas y asegurar la buena aproximación del modelo discreto en la regiónde trabajo del sistema correspondiente a 60 Hz. Se pudo observar que las funciones de transferenciade las plantas de corrientes como las de tensión son muy dependientes de los valores de la carga delsistema, lo cual representa una variación paramétrica para el sistema de control. Se hizo hincapié enmostrar como varía la respuesta en frecuencia para las plantas de tensión y corriente del eje 0.

Al utilizar técnicas clásicas de control, estas variaciones paramétricas pueden representan un problema.Además, el uso de controladores PI de ganancia fija pueden presentar problemas de desempeño ensistemas desbalanceados o con armónicos. He aquí entonces, otromotivo para usar técnicas adaptativasrobustas de control. Es decir, cuando se quiere estabilidad y performance, una solución es utilizarcontroladores adaptativos.

En el capítulo siguiente se presenta con mayor detalle lo referente a control adaptativo y sobre todo alcontrolador que se usa en el desarrollo de este trabajo, el controlador adaptativo robusto por modelode referencia.

Page 67: Controlador Adaptativo Robusto por Modelo de ... - UNaM

36 CAPÍTULO 2. MODELADO DEL SISTEMA

Page 68: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 3

Control Adaptativo

“ Todo es posible. Lo imposible simplemente toma más tiempo. ”Dan Brown

3.1. Introducción

Control Adaptativo puede ser definido como una técnica de control capaz de cambiar su compor-tamiento de acuerdo a las variaciones que puedan sufrir los parámetros del sistema/modelo, por elcambio en la dinámica del proceso o por disturbios que afectan al sistema [31]. Por lo tanto, un con-trolador de parámetros fijos no es un sistema adaptativo. Un controlador adaptativo tiene la capacidadde variar sus parámetros en tiempo real, donde un mecanismo de adaptación actualiza los mismos apartir de la medición de la entrada u (señal de control), salida del sistema y y la señal de referencia r .Esto puede verse en la figura 3.1.

Controlador ( )q PlantaSeñal deControl

SalidaReferencia

Mecanismo deajuste de los

parámetros q

Parámetrosdel Controlador

r

u

y

Figura 3.1: Diagrama de Bloques de un Sistema Adaptativo.Fuente: Traducido de [31].

37

Page 69: Controlador Adaptativo Robusto por Modelo de ... - UNaM

38 CAPÍTULO 3. CONTROL ADAPTATIVO

Robustez es la capacidad de un sistema de control para mantenerse estable aún en presencia dedisturbios o incertidumbres en la planta. De aquí que los controladores adaptativos robustos sonrecomendados para el control de sistemas que presentan variaciones paramétricas o dinámicas nomodeladas.

Las técnicas de control con parámetros fijos, muy utilizados en la industria por su estabilidad ysencillez como el Proporcional Integral Derivativo (PID) clásico, son diseñados para trabajar en unpunto determinado de operación y por ello no pueden garantizar un buen desempeño en sistemas quepresentan variaciones paramétricas o dinámicas no modeladas [16], [32–34].

En el capítulo 2 se mostró el efecto de la variación paramétrica de la carga del sistema en lasplantas, haciendo incapié en las plantas del eje 0. Las dinámicas no modeladas también representan unproblema para el diseño de los controladores de parámetros fijos, porque hacer suposiciones o hipótesissimplificadoras de la planta puede llevar a que el controlador se comporte de manera incorrecta frente adeterminada condición de operación. Este caso de dinámicas no modeladas también puede ser visto enel capítulomencionado, ya que se realizaron hipótesis simplificadoras que tienen que ver esencialmentecon el comportamiento en régimen permanente del sistema, ya que el generador es considerado unafuente constante de corriente debido a que se supone que opera a velocidad y potencia constante y queel sistema se encuentra en régimen permanente. Sin embargo, los transitorios de carga a los cualeses sometido el sistema, resulta en un comportamiento dinámico del generador, que no fué tenido encuenta al momento del modelado matemático. Por lo tanto, el comportamiento del generador durantelos transitorios de carga es considerado por el sistema de control como dinámica no modelada.

El Controlador Adaptativo Robusto por Modelo de Referencia (CARMR) o del inglés ReferenceModel Robust Adaptive Controller (RMRAC) presenta características que garantizan la estabilidad ybuen desempeño a lazo cerrado inclusive con la presencia de variaciones paramétricas (conexión ydesconexión de cargas) y dinámicas nomodeladas (incertidumbres referentes almodelo del generador).Estas afirmaciones pueden ser comprobadas en [34–40]. Entonces, puede ser usado unmodelo de ordenreducido que no tenga en cuenta dinámicas rápidas, facilitando el diseño del controlador [25, 41].

En este capítulo se presenta con mas detalle el controlador RMRAC, que será usado en la malla detensión v0 para el control de desbalance de las tensiones de fase.

3.2. Controlador Adaptativo Robusto por Modelo de Referencia(RMRAC)

En un sistema de control por modelo de referencia, el comportamiento dinámico del sistema a lazocerrado, idealmente, es igual al comportamiento de un modelo de referencia Wm(s) y se busca que lasalida y(t) del sistema real sea igual a la salida ym(t) de dicho modelo. Puede verse esto en la Figura3.2. Es decir, las especificaciones de desempeño del controlador son definidas mediante una funciónde transferenciaWm(s), para una cierta referencia r(t) de entrada. Por tratarse de un enfoque de control

Page 70: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3.2. CONTROLADOR ADAPTATIVO ROBUSTO POR MODELO DE REFERENCIA (RMRAC) 39

clásico, usando funciones de transferencia, a partir de la variable de entrada u(t) y de la salida y(t) dela planta G(s) se calcula un vector de parámetros θ de modo que el error de rastreo e1(t) = y(t) − ym(t)

tienda a cero.

Controlador ( )q PlantaSeñal deControl

SalidaReferencia

Mecanismo deajuste de los

parámetros q

r

u y

Modeloy

m

Parámetrosdel Controlador

Figura 3.2: Diagrama de Bloques de un Sistema Adaptativo RMRAC.Fuente: Adaptado de [31].

A continuación se hablará con más detalle sobre cada bloque del diagrama de la Figura 3.2.

3.2.1. La Planta G(s) y las Incertidumbres en su Modelo

Como se establece en [42], todo sistema físico real, idealmente tiene un modelo matemático no lineal,variante en el tiempo y de orden infinito. Pero para fines de análisis y diseño de controladores, se buscaen modelo matemático de orden finito que sea suficientemente adecuado para el rango de operacióndefinido. Así, normalmente se usan modelos matemáticos de primer, segundo y tercer orden que tieneen cuenta las dinámicas dominantes de la planta.

Sin embargo, la planta está sujeta a variaciones paramétricas o dinámicas no modeladas impredecibleso inciertas, lo que puede desestabilizar el controlador adaptativo. Por lo tanto, se debe analizar silos polos o ceros no dominantes (alta frecuencia) pueden desestabilizar el sistema de control, paraidentificar e incorporar al controlador soluciones para agregar robustez respecto a las respectivasincertidumbres.

Las incertidumbres pueden clasificarse en estructuradas y no estructuradas.

Incertidumbres Estructuradas

Una incertidumbre estructurada se define como el desconocimiento de la posición exacta de los polosy ceros de la planta. Este tipo de incertidumbre se da cuando existen variaciones paramétricas, perose conoce completamente la forma de la planta.

Page 71: Controlador Adaptativo Robusto por Modelo de ... - UNaM

40 CAPÍTULO 3. CONTROL ADAPTATIVO

Incertidumbres No Estructuradas

Una incertidumbre no estructurada es el desconocimiento del comportamiento de la amplitud y de lafase de la planta en ciertas frecuencias. Este tipo de incertidumbres se da cuando existen dinámicasno modeladas, es decir, dinámicas que no se tuvieron en cuenta al momento de realizar el modelomatemático de la planta.

Es posible reducir el orden de una planta, o hallar una planta equivalente que cumpla condicionesde estabilidad mediante el modelado matématico de las incertidumbres no estructuradas que serándesconsideradas. Este procedimiento permite comprobar que las dinámicas que no se tendrán encuenta, cumplen condiciones de estabilidad.

Existen varias formas de modelar la planta y tener en cuenta las dinámicas no modeladas que pre-meditadamente, no se considerarán en la planta a utilizar para el desarrollo del controlador. De entreellas, se presenta a continuación un modelo que tiene en cuenta una dinámica multiplicativa y unaaditiva (otras formas pueden verse en [42]):

G(s) = Gp(s) [1 + µm∆m(s)] + µa∆a(s) (3.1)

donde Gp(s) es la parte modelada y está dada por:

Gp(s) = kpZp(s)Rp(s)

= C (sI − A)−1 B (3.2)

Lo mismo se puede plantear para el modelo discreto de una planta:

G(z) = Gp(z) [1 + µm∆m(z)] + µa∆a(z) (3.3)

donde Gp(z) es la parte modelada dada por:

Gp(z) = kpZp(z)Rp(z)

= C (zI − A)−1 B (3.4)

µm es la ganancia del término multiplicativo, ∆m(z) es la función de transferencia la dinámica mul-tiplicativa, µa es la ganancia del término aditivo, ∆a(z) es la función de transferencia la dinámicaaditiva.

La parte modelada dada por (3.4), está sujeta a las siguientes hipótesis:

H1: Zp(z) y Rp(z) son polinomios mónicos, de grado mp y np respectivamente;

H2: Zp(z) es un polinomio Schur y se conoce el signo de kp [42], [30];

La parte no modelada de la planta, está sujeta a las siguientes hipótesis:

H3: ∆m(z) es una función de transferencia estable;

Page 72: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3.2. CONTROLADOR ADAPTATIVO ROBUSTO POR MODELO DE REFERENCIA (RMRAC) 41

H4: ∆a(z) es una función de transferencia estable;

H5: Se conoce un límite superior δ∗ ∈ (0,1), tal que ∆m(z) y ∆a(z) tienen todos sus polos confinadospor un circulo abierto de radio |z | ≥

√δ∗;

Cabe aclarar aquí, que para el diseño del controlador de la malla externa de tensión v0 de este trabajode tesis no fué necesario utilizar éste método, debido a que la planta sobre la que se realiza el diseñodel controlador ya cumple las hipótesis H1 y H2 además de tener un orden no muy elevado.

El objetivo de mencionar una forma de reducir una planta es dejar en evidencia las ventajas del uso detécnicas de control adaptativo.

3.2.2. Aumento de la Robustez del Controlador Adaptativo

Para volver más robusto un controlador adaptativo en lo referente a las incertidumbres, normalmentese tienen dos caminos, como es mencionado en [42]:

1. Modificar la ley de control: agregando acciones de control robustas, como por ejemplo, unaacción Sliding-Mode.

2. Modificar la ley de adaptación paramétrica: incluyendo, por ejemplo una función σ −

modi f ication para evitar la divergencia de los parámetros del controlador, o también se puedemodificar la ecuación de la señal de normalización (m2) para evitar la divergencia de las señalesinternas o modos internos a lazo cerrado.

3.2.3. Modelo de Referencia

Como se ha mencionado, el propósito del control adaptativo es determinar un vector de parámetrosde forma tal que la salida y(t) del sistema a lazo cerrado siga la salida ym(t) del modelo de referencia,representado por una función de transferencia:

Wm(s) = kmZm(s)Rm(s)

(3.5)

donde generalmente la constante km del modelo se la selecciona de manera que el modelo tengaganancia unitaria en régimen estacionario, esto generalmente se consigue haciendo:

km =Rm(s = 1)Zm(s = 1)

(3.6)

La ecuación (3.5) del modelo debe respetar la siguiente hipótesis:

H6-s: Rm(s) es un polinomio mónico, Hurwitz de igual grado relativo que la planta Gp(s), es decirn∗ = np − mp.

Page 73: Controlador Adaptativo Robusto por Modelo de ... - UNaM

42 CAPÍTULO 3. CONTROL ADAPTATIVO

Lo mismo puede decirse al respecto del modelo de referencia en tiempo discreto. La ecuación (3.5)en su versión discreta es:

Wm(z) = kmZm(z)Rm(z)

(3.7)

y la hipótesis H6-s puede expresarse como:

H6-z: Rm(z) es un polinomio mónico, Schur de igual grado relativo que la planta Gp(z), es decirn∗ = np − mp;

Cabe aclarar que la selección del modelo no es trivial, ya que la planta real debe ser capaz de seguirlo impuesto por el modelo. El criterio utilizado en este trabajo fué simplemente cambiar la gananciaen estado estacionario para que sea unitaria, y de esta manera hacer que la salida sea igual a la señalde referencia.

La ecuación (3.7) es usada para generar la salida ym(k), que es el valor deseado de la salida y(k). En uncaso ideal (µa = 0 y µm = 0) sin dinámicas no modeladas, es posible realizar un seguimiento perfecto.En un caso real, donde µ∗a ≥ µa > 0 y µ∗m ≥ µm > 0 y µ∗a, µ∗m > 0, el controlador debe garantizar laestabilidad del sistema a lazo cerrado y el error de rastreo o seguimiento puede ser limitado en norma.

Las hipótesis H1 y H2 son necesarias para que el controlador que se diseñe sea estable, para unaadecuada selección del modelo de referencia (según H6-s/H6-z) y para la selección de la ganancia dela ley de adaptación paramétrica. Las hipótesis H3 a H5 son necesarias para garantizar la limitaciónde las señales a lazo cerrado y para el diseño de la robustez de la ley de adaptación paramétrica.

3.2.4. Ley de Control

Se usa la siguiente ley de control para vincular el modelo con la planta:

u(t) = θ(t)Tω(t) (3.8)

dondeω =[ωT

1 ;ωT2 ; y; r

]T ,ω1,ω2 ∈ <np−1. El vector de parámetros θ =

[θT

1 ;θT2 ; θy; θr

]T , θ1,θ2 ∈ <

np−1.

Otra ley de control, variante de la ecuación (3.8) es:

θ(t)Tω(t) + r(t) = 0 (3.9)

dondeω =[ωT

1 ;ωT2 ; y; u

]T ,ω1,ω2 ∈ <np−1. El vector de parámetros θ =

[θT

1 ;θT2 ; θy; θu

]T , θ1,θ2 ∈ <

np−1. En este caso, la acción de control u está embebida en el vector regresor.

Page 74: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3.2. CONTROLADOR ADAPTATIVO ROBUSTO POR MODELO DE REFERENCIA (RMRAC) 43

La actualización deω1 yω2 es llevada a cabo mediante:

dω1(t)dt

= F ω1(t) + q u(t) (3.10)

dω2(t)dt

= F ω2(t) + q y(t) (3.11)

dondeω1(0) =ω2(0) = 0. El par (F, q) es controlable, F ∈ <(np−1)x(np−1) y q ∈ <np−1.

El par (F, q) conforma un filtro, con el objetivo de estimar los estados internos de la planta, nonecesariamente ésta reconstrucción o aproximación va a coincidir con los estados verdaderos de laplanta. Generalmente se seleccionan los autovalores de F a una frecuencia superior a los de la planta,además de elegir valores del par de manera de hacer que exista una ganancia unitaria en el rango defrecuencias de operación. En [34] es mencionado que las raíces son seleccionadas teniendo en cuentael ancho de banda que se desea a lazo cerrado.

Uno de los problemas del diseño del controlador es determinar la cantidad de parámetros a adaptar,puede observarse de la ecuación (3.8) que la dimensión del vector regresor tiene que ser la misma queel vector de parámetros.

Se debe resaltar que los valores de ω1 dependen de la entrada de la planta, y los valores de ω2

dependen de la salida de la planta. La cantidad de elementos que tendrá cada vector ω1 y ω2 (ypor consecuencia cada vector θ1 y θ2) será de np − 1, es decir, el orden del denominador de la partemodelada de la planta menos uno.

En el capítulo 4 se verá que para éste trabajo, la planta a utilizar tiene grado relativo dos y el ordendel denominador es tres. Por lo tanto, ω1, ω2, θ1, θ2 cada uno tiene dos elementos. Es decir,ω1 = [ω11 ω12]

T ,ω2 = [ω21 ω22]T , θ1 = [θ11 θ12]

T y θ2 = [θ21 θ22]T .

La implementación digital de (3.10) y (3.11) puede ser realizada utilizando la aproximación de Euler,lo cual dá:

ω1 (k + 1) = (I + FTs) ω1 (k) + qTs u (k) (3.12)

ω2 (k + 1) = (I + FTs) ω2 (k) + qTs y (k) (3.13)

siendoTs el periodo de muestreo, que en este caso es igual a la inversa de la frecuencia de conmutaciónfs.

3.2.5. Rechazo Adaptativo de Disturbios Periódicos

Cuando una planta está sujeta a disturbios periódicos, los mismos pueden ser atenuados mediante sumedición e incorporación en la ley de control [42], [30]. Como generalmente la fase del disturbioes desconocida, se utiliza la descomposición en componentes coseno y seno, es decir, en fase y encuadratura respectivamente.

Page 75: Controlador Adaptativo Robusto por Modelo de ... - UNaM

44 CAPÍTULO 3. CONTROL ADAPTATIVO

Sea un sistema modelado en espacio de estados por:

dx(t)dt= −a x(t) + b u(t) + f d(t) (3.14)

donde a, b y f son constantes reales y d(t) es un disturbio periódico que puede ser expresado en formageneral como:

d(t) =n∑

i=1Adi Sen(ωdi t + φdi) (3.15)

Para éste trabajo de maestría se consideró que el disturbio es senoidal (debido a la aparición de unaseñal senoidal en el eje cero de las tensiones por consecuencia de desequilibrios de carga entre lasfases del sistema), por lo que se modela solamente el armónico fundamental a 60Hz, expresado por:

d(t) = Ad1 Sen(ωd1 t + φd1) (3.16)

donde Ad1 es la amplitud (medible), ωd1 es la frecuencia angular y φd1 es el ángulo de fase.

Usando la identidad trigonométrica dada por la ecuación (A.33), el disturbio puede ser expresadocomo:

d(t) = Ad1 Cos(φd1) Sen(ωd1 t) + Ad1 Sen(φd1) Cos(ωd1 t)

= As Sen(ωd1 t) + Ac Cos(ωd1 t)

= Vs(t) + Vc(t)

(3.17)

Estas señales Vs(t) y Vc(t) pueden ser obtenidas mediante el filtrado de la señal v0.

Entonces, el disturbio dado por la ecuación (3.17) puede ser atenuado mediante la siguiente ley decontrol:

ud(t) = θs(t) Sen(ωd1 t) + θc(t) Cos(ωd1 t) (3.18)

donde θs(t) y θc(t) son los parámetros a ser identificados y la frecuenciaωd1 es un parámetro conocidomediante la medición del disturbio.

Finalmente, la ley de control que tiene en cuenta la atenuación del disturbio es:

utotal(t) = u(t) + ud(t) (3.19)

La implementación del controlador MRAC con rechazo de disturbios senoidales, utilizando la ley decontrol dada por (3.8), tiene entonces como vector regresorω =

[ωT

1 ;ωT2 ; y; r; Vs; Vc

]T , y el vectorde parámetros θ =

[θT

1 ;θT2 ; θy; θr ; θs; θc

]T . Adicionalmente, las señales auxiliares filtradas por elmodelo de referencia valen ζs = Wm(s)Vs y ζc = Wm(s)Vc.

Page 76: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3.2. CONTROLADOR ADAPTATIVO ROBUSTO POR MODELO DE REFERENCIA (RMRAC) 45

3.2.6. Ley de Adaptación de los Parámetros Tipo Gradiente Normalizada

La ley de adaptación paramétrica es la encargada de ajustar los valores de los parámetros para hacerque la salida real del sistema sea igual a la del modelo de referencia. La ley tipo gradiente tienela característica de tener las ganancias de adaptación constantes, además de realizar el ajuste delos parámetros en el sentido negativo de la derivada de una función costo cuadrática respecto a losparámetros. A continuación se presenta la ley utilizada en este trabajo:

dθ(t)dt= −σ(t) Γθ(t) −

Γ ζ (t) ε(t) sign(kp/km)

m2(t)(3.20)

y utilizando la aproximación de Euler se obtiene la implementación digital que se usa:

θ(k + 1) = (I − σ(k)Ts Γ)θ(k) − TsΓ ζ (k)ε(k) sign(kp/km)

m2(k)(3.21)

donde σ es la función σ − modi f ication que se define mas abajo, Γ es una matriz de gananciasconstantes, definida positiva, que ajusta la velocidad de adaptación de los parámetros, Ts es el periodode muestreo, ζ es un vector de regresión, ε es el error aumentado (que es función del error de rastreo ydel error de adaptación de parámetros), sign(.) es la función signo que devuelve 1 cuando su argumentoes mayor o igual a cero y -1 cuando es negativo, y m2 es un normalizador.

La función σ − modi f ication, como se ha mencionado, tiene por objetivo aumentar la robustez dela ley de adaptación paramétrica. Generalmente es usada cuando existe la posibilidad de divergenciade los parámetros debido a la presencia de dinámicas no modeladas. La función utilizada tiene lasiguiente forma:

σ(t) =

0 si ‖θ(t)‖ < Mo

σo

(‖θ(t)‖

Mo− 1

)si Mo ≤ ‖θ(t)‖ ≤ 2Mo

σo si ‖θ(t)‖ > 2Mo

(3.22)

donde σo es el valor máximo de la función σ(t), Mo un limitante superior para la norma euclidiana(norma en base "2") que toma un valor Mo > ‖θ∗‖ y θ∗ es el vector de parametros deseado, perocomo este valor es incierto o no se conoce, generalmente Mo es sobredimensionado. Puede sucederque esta acción sea implementada y no sea usada o activada, en ese caso, el único problema que estorepresentaría es simplemente una sobrecarga de cálculos.

El normalizador m2 se utiliza para evitar la divergencia de la ley adaptativa que suele acontecercuando la referencia tiene gran amplitud o inclusive con la presencia de dinámicas no modeladas.Este problema puede ser resuelto mediante el uso de un normalizador. Existen varias señales denormalización que pueden ser usadas. Se debe tener en cuenta que existe un compromiso entre larobustez y la velocidad de adaptación. Señales de normalización con amplitud elevada vuelven alsistema adaptativo mas robusto, pero pueden tornar el mecanismo de adaptación muy lento [42].

En este trabajo se usará el normalizador dado por la ecuación (3.24) debido a que las señales ζ y la

Page 77: Controlador Adaptativo Robusto por Modelo de ... - UNaM

46 CAPÍTULO 3. CONTROL ADAPTATIVO

ganancia de adaptación aparecen en el numerador, ambas señales juntas dan la mejor robustez:

m2(t) = 1 + ζ (t)T Γ ζ (t) (3.23)

o en su versión discreta:m2(k) = 1 + ζ (k)T Γ ζ (k) (3.24)

cabe aclarar que cuando m2 = 1 no hay normalización como puede deducirse de las ecuaciones (3.20)y/o (3.21).

Además, luego de realizar varias experiencias simuladas, las señales ζ presentan una mejor respuestade adaptación y mayor velocidad de los parámetros comparada con las señales ω.

Finalmente el error aumentado en tiempo continuo vale:

ε(t) = e1(t) + θ(t)Tζ (t) −Wm(s)(θ(t)Tω(t)

)(3.25)

donde e1(t) = y(t) − ym(t), el término Wm(s)(θ(t)Tω(t)

)representa el filtrado de la señal escalar

θ(t)Tω(t) por el modelo de referencia Wm(s) o por Wm(z) en el caso discreto y finalmente ζ (t) =Wm(s) Iω(t).

Para la implementación digital se usa:

ε(k) = e1(k) + θ(k)Tζ (k) −Wm(z)(θ(k)Tω(k)

)(3.26)

donde e1(k) = y(k) − ym(k) y ζ (k) = Wm(z) Iω(k).

La figura 3.3 muestra el diagrama de bloques completo del controlador RMRAC, resumiendo todo loescrito en este capítulo.

3.3. Procedimiento para el diseño del controlador RMRAC

Se presenta la secuencia de pasos obtenida empíricamente utilizada en esta tesis:

1. Obtener modelo de la planta.

2. Comprobar H1.

3. Comprobar H2. De no validar este paso, usar la (3.1) para encontrar una función Gp que seade fase mínima y comprobar las H3, H4 y H5 con la/s funciones de transferencia de la/sincertidumbres.

4. Usar Gp para obtener un modelo de referencia Wm que satisfaga H6-s/z.

5. Determinar la cantidad de parámetros y modos internos a utilizar. Inicializarlos en cero.

Page 78: Controlador Adaptativo Robusto por Modelo de ... - UNaM

3.4. RESUMEN 47

q s G q(k+1) = (I - (k) ) (k) -T Ts s

m (k)2

G z e(k) (k) sign(k /k )p m

Modelo de Referencia

Ley de Adaptación Paramétrica

Controlador

u(k) = (k) (k)q wT

Planta

G(z)=Gp(z)[1+ (z)]+ (z)m D m Dm m a a

+

-e (k)=y(k)-y (k)1 m

y (k)m

y(k)u(k)

y(k)

q(k)

r(k)

r(k)

w1(k)

Filtro

( - )zI F qd d

-1

Filtro

( - )zI F qd d

-1

w2(k)

W (z)=km m

Z (z)m

R (z)m

Figura 3.3: Diagrama de Bloques del RMRAC.

6. Seleccionar valores de las matrices F y q de manera que la frecuencia de corte de los filtros seansuperior a los de la planta. Colocar inicialmente valores aleatorios e ir ajustando.

7. Agregar la función σ-modification y elegir un normalizador.

8. Establecer valores para el resto de los parámetros, comenzar con un valor de ganancia deadaptación pequeño e ir aumentando con las iteraciones.

3.4. Resumen

En este capitulo se presentaron los principales conceptos del control adaptativo, haciendo hincapié enel controlador por modelo de referencia. Se mostraron los conceptos necesarios para el modelado ydiseño del controlador, que será usado en el siguiente capítulo para obtener el controlador numéricoa implementar.

Se destacaron las bondades del controlador adaptativo, como por ejemplo que es capaz de tolerarvariaciones paramétricas y dinámicas no modeladas si se utilizan técnicas robustas en su implementa-ción, como ser la función sigma modification y un normalizador. Esto lo diferencia de un controladorde parámetros fijos, que es diseñado para trabajar en torno a un punto de operación, el controladoradaptativo puede trabajar en un rango mucho mas amplio.

Se introdujo el vector regresor omega, que tiene la función de realizar alguna especie de identificaciónde los parámetros de la planta. Respecto a la identificación en tiempo real de los parámetros, paraidentificar 2n parámetros se requiere una señal de referencia o excitación para la planta que contenga

Page 79: Controlador Adaptativo Robusto por Modelo de ... - UNaM

48 CAPÍTULO 3. CONTROL ADAPTATIVO

por lo menos n frecuencias diferentes y no nulas. Así por ejemplo, para identificar un parámetro essuficiente con una señal constante continua, para identificar dos parámetros es suficiente una señalsenoidal, para identificar cuatro parámetros es suficiente con una señal que contenga la suma de dosseñales senoidales de distinta frecuencia.

Page 80: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 4

Estructura de Control

“ La teoría es asesinada tarde o temprano por la experiencia. ”Albert Einstein

4.1. Introducción

En los capítulos anteriores se expusieron los fundamentos teóricos a utilizar para diseñar el sistemade control, es decir, el sistema de control para el DSTATCOM. En éste se presenta con detalle todoslos bloques constructivos y controladores utilizados.

ElDSTATCOMademás de la compensación directa de potencia reactiva, desempeña otras funciones deinterés cuando se trata de regulación de tensión en sistemas de generación aislados. Mediante técnicasde control adecuadas es posible, por ejemplo, la compensación del desequilibrio de corrientes entrelas fases del sistema, compensación de armónicos debido a cargas no lineales, además del control depotencia activa del sistema a través de técnicas aplicadas a su bus CC (ELC). Estas funciones puedenser incorporadas al sistema de regulación de tensión modificando simplemente el sistema de control.

La figura 4.1 muestra la estructura completa del sistema de control, del lado izquierdo pueden obser-varse las diez magnitudes que son medidas: las tres tensiones de fase va, vb y vc, la tensión del busCC del DSTATCOM vcc, las tres corrientes de la carga ial , ibl e icl y finalmente las tres corrientes delDSTATCOM ia, ib e ic. Del lado derecho se observan las cinco señales de salida del controlador, eneste caso corresponden a las cuatro señales de disparo de los IGBT del DSTATCOM y a la señal dedisparo del IGBT del ELC.

Los bloques constructivos, comenzando de arriba hacia abajo son:

Sincronismo y Transformación: Este bloque se encarga de obtener las señales Seno y Coseno

49

Page 81: Controlador Adaptativo Robusto por Modelo de ... - UNaM

50 CAPÍTULO 4. ESTRUCTURA DE CONTROL

Mod. G

eom

.

Sistema de Control - 320F28335DSP TMS

dli

qli+

-

+-

-

-

PWMu

ua

ub

, ,a b ci i i

*

di

*

qi

+

qli%

+

++

Filtro Pasa Bajos

, ,al bl cli i i

dli%

qli%

0li0li

-

0

*i

0li

++

dli%

0u

vf

sen vf, ,a b cv v v

dv

qv

0v

vf

vw

di

qi

0i

du

qu

0u

Filtro deKalman

Estimadorde Frecuencia

vf

vf

vf

abc

0dq

PI

PI

PI

LPF

LPF

abc

0dq

abc

0dq αβ0

0dq

0v

*

0v

0

*i

0mv0 ( )mW z

w

q1e

+-

Controlador v0

*

0

Ti = q w

Controlador id

Controlador iq

Controlador i0

dv

*

dvControlador vd

+- dev

PI

*

qi

dcv

*

dcvControlador vdc

+- dcev

PI

*

di

sVFiltro deKalman

cV

0v

f

*f *

P+

-

ControladorFrecuencia

ef GeneradorPWM

ChuPI

Figura 4.1: Estructura del Sistema del Control

Page 82: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.2. BLOQUE DE SINCRONISMO 51

de la tensión de fase va con las cuales es posible transformar todas las magnitudes medidasal referencial síncrono dq0, también realiza la estimación de la frecuencia de la tensión va, yfinalmente obtiene otro par Seno y Coseno de la señal v0 para ser usados en el RMRAC de lamalla externa de tensión del eje 0. Esto es debido a que la señal v0 es considerada un disturbiopara el sistema.

Mallas externas de tensión: Tres bloques, cada uno encargado de controlar su tensión asociaday de generar la referencia de corriente para su subsiguiente malla interna.

Filtrado de Corrientes de Carga: Su función es la de obtener las componentes alternas apartir de la fundamental de la corriente de carga, para inyectarlos en las mallas internas parasu compensación. Es decir, este bloque permite realizar la compensación de desequilibrio yarmónicos de corrientes. Y ayuda a la malla de control de desbalance de tensiones.

Mallas internas de corriente: Tres bloques, cada uno encargado de controlar su corrienteasociada y de generar la acción de control correspondiente, las cuales son convertidas delreferencial síncrono dq0 al referencial estacionario αβ0 para ser inyectados en un bloque demodulación geométrica que genera las señales de disparo de los IGBT’s del DSTATCOM.

Malla de Control de Frecuencia: Este bloque es el encargado de mantener la frecuencia de latensión generada constante mediante el uso del ELC.

4.2. Bloque de Sincronismo

Como se mencionó en el capítulo 2, las señales obtenidas de éste bloque son necesarias para realizar latransformación de las magnitudes en el referencial estacionario abc al referencial dq0 o viceversa. Laestimación de la frecuencia es utilizada para alimentar el lazo de control de frecuencia. Por lo tanto,ésta sección del sistema de control es fundamental y para ello se utiliza el Filtro de Kalman.

El filtro de Kalman es una estructura mediante la cual es posible obtener señales de sincronismo conla mejor relación entre respuesta transitoria y rechazo a ruidos de medición. Este filtro es conocidopor su capacidad de respuesta de sistemas lineales alterados por incertidumbres en los estados de laplanta, como así también ruidos en las mediciones [43].

En el método de sincronismo utilizado [43], el filtro de Kalman es aplicado con el propósito de obtenerla componente fundamental de las tensiones en el PCC. Mediante ésta señal de sincronismo generadapor el filtro, la frecuencia angular del sistema es estimada por medio de un algoritmo de identificaciónde frecuencia. Esta estructura de identificación es capaz de obtener en tiempo real la frecuencia angularde las tensiones en el PCC, por más que existan grandes variaciones de frecuencia.

La figura 4.2 muestra el diagrama de bloques de la estructura de generación de señales de sincronismoutilizando el filtro de Kalman y el identificador de frecuencia.

Page 83: Controlador Adaptativo Robusto por Modelo de ... - UNaM

52 CAPÍTULO 4. ESTRUCTURA DE CONTROL

Filtro deKalman

1

1( )A k

1

1( )A k

Identificador deFrecuencia

( )v k

( )1 1ˆ | 1 ( ) (θ ( ))

vx k k A k Sen k- =

( )2 1ˆ | 1 ( ) (θ ( ))

vx k k A k Cos k- =

(θ ( ))v

Sen k

(θ ( ))v

Cos k

Figura 4.2: Diagrama de Bloques del Generador de Sincronismo

Se presenta a continuación, como se obtiene el modelo matemático discreto para utilizar el filtro deKalman. Mayores detalles pueden ser consultados en [43].

Considere una señal de amplitud A1k , frecuencia angular ωvk y fase φvk :

Sk = A1k Sen(ωvk tk + φvk ) (4.1)

Estableciendo:x1k = A1k Sen(ωvk tk + φvk ) (4.2)

yx2k = A1k Cos(ωvk tk + φvk ) (4.3)

Inicialmente, considere que A1k+1 ' A1k , ωvk+1 ' ωvk y φvk+1 ' φvk . En el instante tk+1 = tk + Ts laseñal Sk+1 (que es igual al estado x1k+1) puede ser expresada como:

Sk+1 = x1k+1 = A1k+1 Sen(ωvk+1 tk+1 + φvk+1)

= A1k Sen(ωvk (tk + Ts) + φvk )

= A1k Sen(ωvk tk + φvk + ωvk Ts)

(4.4)

siendo Ts el periodo de muestreo. Seguidamente, utilizando la identidad trigonométrica:

Sen(z + w) = Sen(z)Cos(w) + Cos(z) Sen(w) (4.5)

con z = ωvk tk + φvk y w = ωvk Ts y teniendo en cuenta la (4.2) y la (4.3), la (4.4) puede ser escritacomo:

x1k+1 = A1k Sen(ωvk tk + φvk )Cos(ωvk Ts) + A1k Cos(ωvk tk + φvk ) Sen(ωvk Ts)

= x1kCos(ωTs) + x2k Sen(ωTs)(4.6)

Page 84: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.2. BLOQUE DE SINCRONISMO 53

De igual manera puede encontrarse el valor futuro del estado x2:

x2k+1 = A1k+1 Cos(ωvk+1 tk+1 + φvk+1)

= A1k Cos(ωvk (tk + Ts) + φvk )

= A1k Cos(ωvk tk + φvk + ωvk Ts)

(4.7)

utilizando la siguiente identidad trigonométrica:

Cos(z + w) = Cos(z)Cos(w) − Sen(z) Sen(w) (4.8)

la ecuación (4.7) puede ser escrita como:

x2k+1 = A1k Cos(ωvk tk + φvk )Cos(ωvk Ts) − A1k Sen(ωvk tk + φvk ) Sen(ωvk Ts)

= x2kCos(ωTs) − x1k Sen(ωTs)(4.9)

Para modelar las variaciones de amplitud o fase en la señal, se utiliza un vector de perturbaciones[γ1 γ2]

T . El modelo final es espacio de estados utilizado se obtiene de las ecuaciones (4.6) y (4.9),considerando las perturbaciones, y está expresado como:[

x1

x2

]k+1

=

[Cos(ωTs) Sen(ωTs)

−Sen(ωTs) Cos(ωTs)

] [x1

x2

]k

+

[γ1

γ2

]k

(4.10)

yk =[

1 0] [

x1

x2

]k

+ vk (4.11)

donde vk representa el ruido de la medición.

Con el modelo en espacio de estados definido, es posible aplicar el filtro de Kalman como sigue. Lavariable x(k + 1|k) es la estimación de x(k + 1) basada en las mediciones hasta el instante k, siendola ecuación que la define:

x(k + 1|k) = Φ(k)x(k |k − 1) + K(k) [yv(k) − Fv(k)x(k |k − 1)] (4.12)

donde la ganancia K del filtro de Kalman es:

K(k) = Φ(k)P(k |k − 1)FTv (k)

[Fv(k)P(k |k − 1)FT

v (k) + R(k)]−1 (4.13)

y la matriz de covarianza de los errores estimados del vector x(k + 1), evaluados en el instante k vale:

P(k + 1|k) = Φ(k)P(k |k − 1)ΦT (k) − K(k)Fv(k)P(k |k − 1)ΦT (k) + Γ(k)Q(k)ΓT (k) (4.14)

Page 85: Controlador Adaptativo Robusto por Modelo de ... - UNaM

54 CAPÍTULO 4. ESTRUCTURA DE CONTROL

Entonces, las señales de sincronismo de amplitud unitaria están definidas de la siguiente manera:

Sen (θv(k)) =x1(k |k − 1)

A1(k)(4.15)

y

Cos (θv(k)) =x2(k |k − 1)

A1(k)(4.16)

siendoA1(k) =

√x2

1(k |k − 1) + x22(k |k − 1) (4.17)

Ahora para la identificación de la frecuencia de las tensiones en el PCC se utiliza lo presentado en [43].Se inicia considerando las siguientes ecuaciones en espacio de estado:[

xω1(k + 1)xω2(k + 1)

]=

[0 1−1 2Cos(ωv(k)Ts)

] [xω1(k)

xω2(k)

]+

[0

]eω(k) (4.18)

y

yω(k) =[−1 Cos(ωv(k)Ts)

] [xω1(k)

xω2(k)

]+ Kωeω(k) (4.19)

donde ωv es la velocidad angular, Kω es una ganancia escalar y eω es:

eω(k) = rv(k) − yω(k) =rv(k) + xω1(k) − cos(ωv(k)Ts)xω2(k)

1 + Kω(4.20)

La referencia rv es la señal de sincronismo obtenida en (4.15), por lo tanto:

rv(k) = Sen(θv(k)) (4.21)

La estimación de la frecuencia angular de las tensiones en el PCC está dada por:

ωv(k + 1) = ωv(k) − Kuεω(k) (4.22)

siendo Ku una ganancia escalar y εω(k) es:

εω(k) =KωSen(ωv(k)Ts)xω2(k)eω(k)

[Sen(ωv(k)Ts)xω2(k)]2 + [yω(k)]2(4.23)

4.3. Sistema de Control del DSTATCOM

El DSTATCOM funciona como una fuente de corriente variable, compensando las corrientes delsistema de forma de regular las tensiones, compensar las corrientes desbalanceadas de carga y com-pensar armónicos provenientes de la conexión de cargas no lineales. El sistema de control considera

Page 86: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.3. SISTEMA DE CONTROL DEL DSTATCOM 55

la aplicación de seis controladores: tres externos, dedicados a generar las referencias de corriente endq0, relacionadas con la regulación de las tensiones del sistema; y otros tres controladores internosresponsables de generar las señales de control del DSTATCOM en coordenadas dq0 (ud , uq y u0) apartir del error entre las referencias de corriente de las mallas externas, componentes de las corrientesde carga y corrientes procesadas por el DSTATCOM.

Se puede apreciar en la figura 4.3 de forma general la cascada de las mallas de control.

+-

+-

*

xv

*

xi

Controlador

Corriente

Planta de

Corriente

Planta de

Tensión

xi

xv

Controlador

Tensión

Figura 4.3: Estructura en Cascada de las mallas de control

Para mantener la tensión del Bus CC en un valor constantes por encima del valor de pico de lastensiones de línea del PCC, v2

cc es comparado con el valor de referencia v2∗cc . El error vcce obtenido es

aplicado a la entrada de un controlador PI cuya salida es la referencia de corriente para el eje d y estádefinida por:

i∗d(k) = δi∗d(k − 1) + KPvcc[vcce(k) + vcce(k − 1)] + KIvccvcce(k) (4.24)

siendo:vcce(k) = v2∗

cc (k) − v2cc(k) (4.25)

La salida generada por la (4.24) es necesaria para mantener la tensión del Bus CC regulada en el valorde referencia.

La regulación de las tensiones en el PCC del Bus AC, está dada por la comparación de la tensión vd

con la referencia v∗d . El error obtenido es procesado por un controlador PI cuya salida es la referenciapara la malla de corriente del eje q y está dada por:

i∗q(k) = i∗q(k − 1) + KPvd[vde(k) + vde(k − 1)] + KIvdvde(k) (4.26)

siendo:vde(k) = v∗d(k) − vd(k) (4.27)

Cuando el sistema esté sujeto a cargas monofásicas o trifásicas desbalanceadas, se generará undesequilibrio de corriente entre sus fases y la diferencia de corriente circulará por el conductor delneutro. Este desequilibrio en las corrientes de carga genera una componente alternada en el eje 0 conuna frecuencia igual a la de las tensiones del Bus CA del sistema, ésta señal es una representación dela corriente del neutro. Entonces, como la condición de equilibrio implica que la señal de tensión v0

sea nula todo el tiempo, el controlador debe compensar intentando anular dicha señal. En este caso,se utiliza el RMRAC para dicha compensación, utilizando una señal de referencia nula, con lo que elmodelo genera una referencia nula también, pero se considera la señal alterna causa del desbalance

Page 87: Controlador Adaptativo Robusto por Modelo de ... - UNaM

56 CAPÍTULO 4. ESTRUCTURA DE CONTROL

como un disturbio periódico que tiene que ser neutralizado por la ley de control adaptativa. Mayoresdetalles se darán en la sección correspondiente al diseño del controlador RMRAC de éste mismocapítulo.

Cabe mencionar además, que el desbalance en las corrientes también se nota en las magnitudes delos ejes dq0, ya que aparecen componentes alternas del doble de la frecuencia fundamental de lascorrientes en los ejes estacionarios abc, como puede ser visto en la figura 4.4. No siendo así cuandoel sistema está equilibrado, donde las magnitudes en los ejes dq0 tienen valores continuos como sepuede observar en 4.5.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-30

-20

-10

0

10

20

30

Am

plitu

d [A

]

Corrientes de Carga

ial

ibl

icl

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-10

0

10

20

30

Am

plitu

d [A

]

Corrientes de Carga en dq0

idl

iql

i0l

Figura 4.4: Ejemplo de formas de onda de corrientes de carga con desbalance.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-30

-20

-10

0

10

20

30

Am

plitu

d [A

]

Corrientes de Carga

ial

ibl

icl

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-5

0

5

10

15

20

25

30

Am

plitu

d [A

]

Corrientes de Carga en dq0

idl

iql

i0l

Figura 4.5: Ejemplo de formas de onda de corrientes de carga balanceadas.

Cuando existen componentes armónicos en las señales de tensión o corriente, también se observan

Page 88: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.3. SISTEMA DE CONTROL DEL DSTATCOM 57

componentes alternas en las señales de los ejes d y q, y en el caso de que no sean armónicos desecuencia cero, es decir, armónicos que no sean múltiplos de tres, se tendrán igualmente señalesalternas como sucede en el caso de desbalance/desequilibrio. En la figura 4.6 se puede apreciar unejemplo donde las corrientes de carga además de la fundamental a 60Hz tienen superpuesto el séptimoarmónico.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-30

-20

-10

0

10

20

30

Am

plitu

d [A

]

Corrientes de Carga

ial

ibl

icl

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Tiempo [seg]

-10

0

10

20

30

40

Am

plitu

d [A

]

Corrientes de Carga en dq0

idl

iql

i0l

Figura 4.6: Ejemplo de formas de onda de corrientes de carga con séptimo armónico.

Entonces para compensar cualquier tipo de desequilibrio proveniente de la carga, el sistema de controlconsidera la inyección de las componentes alternas como referencia de los controladores de las mallasinternas en los tres ejes de control. Por lo que el procesamiento de las componentes alternas enlos ejes síncronos dq0 de las corrientes de carga por el DSTATCOM garantiza la corrección de losdesequilibrios de corriente del sistema, consiguiendo así tensiones y corrientes equilibradas para elGI.

Estas componentes alternas de las corrientes de carga idl e iql correspondientes a los ejes d y q

respectivamente son obtenidas mediante el filtrado de las corrientes provenientes de la transformaciónpara el referencial síncrono. Para ello se utilizan filtros pasa bajos de segundo orden, diseñados parafiltrar apenas la componente continua de la señal. Esta señal continua es substraída de la señal originalobteniéndose así las componentes alternasmencionadas. Lametodología de filtrado utilizadamantienela fase de la componente alterna y así de esta manera no perjudica la dinámica de control, manteniendola compensación en fase con las corrientes originales de carga. La corriente de carga en el eje 0 nonecesita filtrado, ya que naturalmente no tiene componente continua. Lo establecido en éste párrafocorresponde al bloque de filtrado de las corrientes de carga mencionado en la introducción.

Los errores de corriente ide, iqe e i0e se obtienen a partir de las componentes alternas de las corrientesde carga (idl , iql e i0l), de las referencias generadas por las mallas externas de tensión (i∗d , i∗q e i∗0)y por la realimentación de las corrientes procesadas por el DSTATCOM (id , iq e i0). Expresados

Page 89: Controlador Adaptativo Robusto por Modelo de ... - UNaM

58 CAPÍTULO 4. ESTRUCTURA DE CONTROL

matemáticamente corresponden a:

ide(k) = i∗d(k) + idl(k) − id(k) (4.28)

iqe(k) = i∗q(k) + iql(k) − iq(k) (4.29)

i0e(k) = i∗0(k) + i0l(k) − i0(k) (4.30)

Los errores obtenidos son aplicados a las entradas de unos controladores PI de las mallas internas,dados por las siguientes ecuaciones:

ud(k) = ud(k − 1) + KPid[ide(k) + ide(k − 1)] + KIidide(k) (4.31)

uq(k) = uq(k − 1) + KPiq[iqe(k) + iqe(k − 1)] + KIiqiqe(k) (4.32)

u0(k) = u0(k − 1) + KPi0[i0e(k) + i0e(k − 1)] + KIi0i0e(k) (4.33)

Estas salidas ud , uq y u0 de los controladores son transformadas para los ejes estacionarios αβ0, paraingresarlas en un modulador que es el encargado de generar las señales de disparo para los IGBT. Lasseñales PWM son generadas utilizando modulación geométrica conforme es presentado en [44].

Algo importante a destacar, de acuerdo con las pruebas realizadas en las simulaciones, es que lainyección de las componentes alternas en las referencias de las mallas internas no es suficiente paracorregir el desequilibrio de las tensiones de fase en el PCC, aunque su aporte para tal efecto esconsiderable. Es decir, solamente agregar estas componentes a las referencias de mallas internas decorriente no alcanza para corregir el desbalance, por lo que es necesario el controlador de la tensiónen eje cero. Lo mismo acontece a la inversa, solamente la malla de control de desbalance de tensionesno es suficiente para realizar la compensación.

Las componentes idl y iql aportan a la corrección de armónicos que no sean de secuencia cero y aportana la corrección de desequilibrio. La inyección de la corriente i0l aporta a la corrección de armónicosde corriente de secuencia cero como así también aporta a la compensación del desequilibrio. Por lotanto, las tres componentes son necesarias.

4.4. Controlador de Frecuencia

La frecuencia de las tensiones en el PCC depende del balance de potencia activa generada y consumida.La potencia generada está dada por la potencia mecánica que la fuente primaria entrega al eje delgenerador. En este trabajo se considera como máquina primaria una turbina hidráulica no regulada, depotencia constante y suficiente para poder generar potencia nominal. Entonces, paramantener reguladala frecuencia, toda la potencia generada debe ser consumida, independientemente de la conexión decargas en el PCC. Para lograr este objetivo, se utilizó una carga auxiliar (carga balasto o carga lastre)conectada al Bus CC del DSTATCOM junto con una llave IGBT (este conjunto de carga auxiliar yllave es el ELC). La potencia de la carga auxiliar debe ser igual o superior a la potencia nominal

Page 90: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.5. CONTROLADORES PARA MALLAS INTERNAS DE CORRIENTE 59

generada, de forma que cuando no exista una carga de consumo conectada, toda la potencia generadase disipe o consuma en dicha carga auxiliar en forma de calor. En una aplicación real, esta potenciapodría ser aprovechada para realizar otras funciones como calentar agua, accionar bombas, etc.

El ELC puede ser conectado en el Bus CA también, en paralelo con la carga de consumo; como lodemuestran la cantidad de trabajos/literatura existente, como por ejemplo en [45] se utiliza una cargaauxiliar conectada al Bus CA y para conseguir que sea variable se cuentan periodos de la alterna. Masliteratura al respecto puede encontrarse en [2], [7], [46].

Para el control del IGBT del ELC, se aplica otro controlador PI cuya variable de control es la frecuenciade las tensiones en el PCC, obtenida del bloque de sincronismo. La frecuencia estimada f es comparadacon la referencia f ∗ y el error de frecuencia resultante fe es aplicado a la entrada del controlador PIdefinido por:

P∗(k) = P∗(k − 1) + KP f [ fe(k) + fe(k − 1)] + KI f fe(k) (4.34)

siendo el error de frecuencia:fe(k) = f ∗(k) − f (k) (4.35)

La salida P∗ del PI es considerada la señal modulante y es comparada con una portadora diente desierra para generar una señal PWM clásica que es aplicada a la compuerta del IGBT para controldel ELC. Como resultado, la diferencia entre la potencia generada y la consumida por las cargas esdisipada en la carga auxiliar, manteniéndose de esta forma el balance de potencia activa del sistema ypor consecuencia la frecuencia de las tensiones en el PCC.

El controlador usado es:C f (z) =

−0,392 z + 0,3919z − 1

(4.36)

4.5. Controladores para Mallas Internas de Corriente

Los controladores de las mallas internas de corriente tienen como objetivo controlar las corrientesprocesadas por los brazos del DSTATCOM. Debido a ésto, las entradas de los controladores sonseñales de corriente provenientes de la malla externa de tensión (referencia), de la realimentación delas corrientes procesadas por el DSTATCOM y de las corrientes de carga.

La referencia de la malla de corriente (i∗x) proviene de la salida de la malla externa de tensión y suvalor es determinado de manera que el error de entrada del controlador de la malla de tensión sea cero.

La medición y realimentación de las corrientes de carga en dq0 (ixl) se debe a que el DSTATCOMes responsable por la compensación del desequilibrio de corriente debido a la conexión de cargasmonofásicas o trifásicas desbalanceadas al PCC.

La realimentación de las corrientes del DSTATCOM en dq0 (ix) garantizan el rastreo y error nuloen régimen permanente de la malla de control, a partir del adecuado diseño de las ganancias de los

Page 91: Controlador Adaptativo Robusto por Modelo de ... - UNaM

60 CAPÍTULO 4. ESTRUCTURA DE CONTROL

controladores PI.

Entonces, para proyectar los controladores PI de cada malla interna de corriente se utilizan lasecuaciones en tiempo discreto (2.54), (2.55) y (2.56). Como criterio de diseño, las ganancias delcontrolador son obtenidas de manera que la frecuencia de cruce por cero de la planta con controladoren malla abierta, sea de hasta una década debajo de la frecuencia de conmutación, es decir, hasta 1kHz.

Los controladores de corriente proyectados son:

Cid(z) =0,2523 z − 0,2316

z − 1(4.37)

Ciq(z) =0,2523 z − 0,2316

z − 1(4.38)

Ci0(z) =1,3491 z − 1,3401

z − 1(4.39)

Las figuras 4.7 y 4.8 muestran las respuestas en frecuencia a lazo abierto, y las figuras 4.9 y 4.10 lasrespuesta en frecuencia a lazo cerrado de las mallas internas de corriente (controlador PI y planta decorriente) de los ejes d y q, y eje 0 respectivamente.

-20

-10

0

10

20

30

40

Mag

nitu

d (d

B)

100 101 102 103 104-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Abierto

Frequencia (Hz)

System: MallaInternadqzPhase Margin (deg): 60.3Delay Margin (samples): 2.79At frequency (Hz): 600Closed loop stable? Yes

System: MallaInternadqzGain Margin (dB): 11.8At frequency (Hz): 1.6e+03Closed loop stable? Yes

Figura 4.7: Respuesta en Frecuencia de las Mallas Internas d y q. Controlador PI y Planta de Corriente a LazoAbierto.

4.6. Controladores para las Mallas Externas de Tensión

Como se ha mencionado, se tienen tres mallas de tensión, una malla de control de la tensión en el PCC(Gvd), una malla de control de la tensión del Bus CC del DSTATCOM (GVcc) y una malla de controlde desbalance de tensiones (Gv0) en la cual se implementó el control adaptativo. A continuación sepresentan con detalle cada una.

Page 92: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.6. CONTROLADORES PARA LAS MALLAS EXTERNAS DE TENSIÓN 61

-20

0

20

40

60

Mag

nitu

d (d

B)

10-1 100 101 102 103 104-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Abierto

Frequencia (Hz)

System: MallaInterna0zGain Margin (dB): 9.66At frequency (Hz): 1.67e+03Closed loop stable? Yes

System: MallaInterna0zPhase Margin (deg): 61.4Delay Margin (samples): 2.96At frequency (Hz): 575Closed loop stable? Yes

Figura 4.8: Respuesta en Frecuencia de la Malla Interna 0. Controlador PI y Planta de Corriente a Lazo Abierto.

-20

-15

-10

-5

0

Mag

nitu

d (d

B)

100 101 102 103 104-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Cerrado

Frequencia (Hz)

Figura 4.9: Respuesta en Frecuencia de las Mallas Internas d y q. Controlador PI y Planta de Corriente a LazoCerrado.

Page 93: Controlador Adaptativo Robusto por Modelo de ... - UNaM

62 CAPÍTULO 4. ESTRUCTURA DE CONTROL

-20

-15

-10

-5

0

Mag

nitu

d (d

B)

100 101 102 103 104-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Cerrado

Frequencia (Hz)

Figura 4.10: Respuesta en Frecuencia de la Malla Interna 0. Controlador PI y Planta de Corriente a Lazo Cerrado.

4.6.1. Malla de Control de Tensión del Bus CC del DSTATCOM

El control de la tensión del Bus CC está relacionado con el balance de potencia activa del sistema.Esta malla tiene por objetivo generar la referencia para la malla de corriente del eje d. Es importanteremarcar que la planta para el controlador es la malla interna de corriente a lazo cerrado más laplanta de tensión dada por la ecuación (2.59). Esta forma de armar la planta compuesta, la cual puedeobservarse remarcada por el rectángulo rojo a trazos de la figura 4.3, vale para las tres mallas detensión.

El controlador PI utilizado está dado por:

CVcc(z) =−1,7000 z + 1,6966

z − 1(4.40)

Como norma de diseño para determinar la ganancia del controlador, se consideró una frecuencia decruce con un valor en torno a una década debajo de la malla de corriente como mínimo. La figura 4.11muestra la respuesta en frecuencia del controlador y la planta a lazo abierto, y la figura 4.12 muestrala respuesta en frecuencia a lazo cerrado.

4.6.2. Malla de Control de Tensión del Bus CA en el PCC

En este caso, el control de la amplitud de la tensión alterna en el PCC está dado por el balance depotencia reactiva del sistema. La salida del controlador PI es la referencia para la malla interna decorriente del eje q (Giq). La ganancia del controlador PI fué calculada para que la frecuencia de crucea lazo abierto de la malla completa sea en torno a dos décadas por debajo de la malla interna decorriente Giq. La planta de tensión está dada por la ecuación (2.57). El controlador proyectado está

Page 94: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.6. CONTROLADORES PARA LAS MALLAS EXTERNAS DE TENSIÓN 63

-60

-40

-20

0

20

40

60

Mag

nitu

d (d

B)

100 101 102 103 104-630

-540

-450

-360

-270

-180

-90

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Externa de Tensión Vcc a Lazo Abierto

Frequencia (Hz)

System: MallaExternaVcczGain Margin (dB): 20.3At frequency (Hz): 681Closed loop stable? Yes

System: MallaExternaVcczPhase Margin (deg): 62.7Delay Margin (samples): 35.3At frequency (Hz): 49.3Closed loop stable? Yes

Figura 4.11: Respuesta en Frecuencia de la Malla Externa Vcc . Controlador PI y Planta a Lazo Abierto.

-60

-50

-40

-30

-20

-10

0

10

Mag

nitu

d (d

B)

100 101 102 103 104-630

-540

-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Externa de Tensión Vcc a Lazo Cerrado

Frequencia (Hz)

Figura 4.12: Respuesta en Frecuencia de la Malla Externa Vcc . Controlador PI y Planta a Lazo Cerrado.

Page 95: Controlador Adaptativo Robusto por Modelo de ... - UNaM

64 CAPÍTULO 4. ESTRUCTURA DE CONTROL

dado por:CVd(z) =

0,5 z − 0,485z − 1

(4.41)

La figura 4.13 muestra la respuesta en frecuencia del controlador y la planta a lazo abierto, y la figura4.14 muestra la respuesta en frecuencia a lazo cerrado.

-120

-100

-80

-60

-40

-20

0

20

Mag

nitu

d (d

B)

100 101 102 103 104-630

-540

-450

-360

-270

-180

-90

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Externa de Tensión Vd a Lazo Abierto

Frequencia (Hz)

System: MallaExternaVdzGain Margin (dB): 41At frequency (Hz): 480Closed loop stable? Yes

System: MallaExternaVdzPhase Margin (deg): 89.9Delay Margin (samples): 960At frequency (Hz): 2.6Closed loop stable? Yes

Figura 4.13: Respuesta en Frecuencia de la Malla Externa Vd . Controlador PI y Planta a Lazo Abierto.

-120

-100

-80

-60

-40

-20

0

Mag

nitu

d (d

B)

10-1 100 101 102 103 104-630

-540

-450

-360

-270

-180

-90

0

Fas

e (d

eg)

Respuesta en Frecuencia de la Malla Externa de Tensión Vd a Lazo Cerrado

Frequencia (Hz)

Figura 4.14: Respuesta en Frecuencia de la Malla Externa Vd . Controlador PI y Planta a Lazo Cerrado.

4.6.3. Malla de Control de Desbalance de Tensiones

Finalmente el control de desbalance de tensiones es llevado a cabo mediante la planta de tensión deleje 0 dada por la ecuación (2.52). En este caso se utiliza un controlador RMRAC, siendo la salida del

Page 96: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.6. CONTROLADORES PARA LAS MALLAS EXTERNAS DE TENSIÓN 65

mismo la referencia para la malla interna de corriente del eje 0. La planta para diseñar el controlador,al igual que con las otras dos mallas anteriores, estará dada por la malla interna a lazo cerrado más laplanta de tensión. Se debe tener en cuenta que para diseñar la cantidad de parámetros se debe utilizarel modelo en tiempo continuo, el cual sigue:

Gp(s) =1,978 · 106 s + 1,32 · 108

s3 + 4727 s2 + 6,339 · 106 s + 3,045 · 108 (4.42)

Se utiliza el rechazo de disturbios periódicos, por lo tanto el vector de parámetros y los auxiliaresestán dados por:

θ =[θ11 θ12 θ21 θ22 θy θr θs θc

]T (4.43)

el vector regresor es:ω = [ω11 ω12 ω21 ω22 y r Vs Vc]

T (4.44)

donde y = v0 y la referencia r = v∗0 = 0. Vs y Vc son las componentes seno y coseno de v0 obtenidasdel bloque de sincronismo.

La ley de control utilizada es la dada por la ecuación (3.8)

u = θTω

= θ11 ω11 + θ12 ω12 + θ21 ω21 + θ22 ω22 + θy v0 + θr v∗0 + θs Vs + θc Vc

(4.45)

siendo u la acción de control, que como se ha mencionado es la referencia de la malla interna decorriente i∗0.

Los valores iniciales de los parámetros fue seleccionado en cero, debido a que se quiere mostrar comose van adaptando los mismos con el transcurso del tiempo. Pero los mismos pueden ser inicializadosen los valores de alguna simulación donde los mismos ya se encuentran adaptatdos y utilizar esosvalores.

El filtro auxiliar conformado por el par (F, q), M0, σ0 y gama elegidos fueron:

F = −20000π

[1 0,21 1

]; q = 20000π

[1,22

]; M0 = 0,7; σ0 = 0,1; Γ = 100

[1 00 1

](4.46)

La selección de esos valores se realizó mediante pruebas iterativas. El valor de M0 es debido a quecon las repetidas pruebas, el módulo de los parámetros no superó 0,6. Un valor menor, hace que losparámetros se ajusten a mayor velocidad, pero el error se mantiene en una franja mayor.

La figura 4.15 muestra la respuesta en frecuencia de los filtros seleccionados, se puede apreciar quepresenta ganancia unitaria y desfasaje prácticamente nulo en toda la franja de operación (por lo menoshasta los 120Hz).

Page 97: Controlador Adaptativo Robusto por Modelo de ... - UNaM

66 CAPÍTULO 4. ESTRUCTURA DE CONTROL

-40

-30

-20

-10

0

10

Mag

nitu

d (d

B)

101 102 103 104 105 106-90

-45

0

Fas

e (d

eg)

Respuesta en Frecuencia de los Filtros Auxiliares - Par F,q

Frequencia (Hz)

Figura 4.15: Respuesta en Frecuencia de los filtros auxiliares dados por el par F,q

El modelo seleccionado es:

Wm(s) =4,591 · 106 s + 3,063 · 108

s3 + 4727 s2 + 6,339 · 106 s + 3,045 · 108 (4.47)

y discretizando se obtiene:

Wm(z) =0,01967 z2 − 0,002701 z − 0,01673

z3 − 2,573 z2 + 2,196 z − 0,6233(4.48)

El criterio de selección del modelo fué no modificar la dinámica, sinó simplemente la ganancia paraque en régimen sea unitaria, como se puede ver en la figura 4.16, que muestra las respuestas enfrecuencia de la planta dada por la ecuación (4.42) y el modelo.

-70

-60

-50

-40

-30

-20

-10

0

10

Mag

nitu

d (d

B)

100 101 102 103 104-270

-225

-180

-135

-90

-45

0

Fas

e (d

eg)

Planta GpModelo

Respuesta en Frecuencia de la Planta Gp y el Modelo en Tiempo Discreto

Frequencia (Hz)

System: ModeloPhase Margin (deg): 177Delay Margin (samples): 3.81e+03At frequency (Hz): 1.29Closed loop stable? Yes

System: ModeloGain Margin (dB): 26.9At frequency (Hz): 1.53e+03Closed loop stable? Yes

System: Planta GpGain Margin (dB): 34.2At frequency (Hz): 1.53e+03Closed loop stable? Yes

Figura 4.16: Respuesta en Frecuencia de la Malla Externa V0 y del Modelo de Referencia Wm

Page 98: Controlador Adaptativo Robusto por Modelo de ... - UNaM

4.7. RESUMEN 67

4.7. Resumen

En este capítulo se presentaron los controladores desarrollados para el desarrollo de una simulación yeventualmente la implementación experimental en el banco de pruebas del GEPOC en la UFSM.

Se adoptó como norma de diseño para los PI internos que la frecuencia de cruce sea de hasta 1kHz(mínimo una década por debajo de la frecuencia de conmutación) con un margen de fase no menor a60º y un margen de ganancia no menor a 10dB. Los PI de las mallas de tensión externas vcc y vd sediseñaron para que su frecuencia de cruce esté como mínimo a una década por debajo del controladorde la respectiva malla de corriente. Los patrones para margen de fase y ganancia se mantuvieron.

Page 99: Controlador Adaptativo Robusto por Modelo de ... - UNaM

68 CAPÍTULO 4. ESTRUCTURA DE CONTROL

Page 100: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 5

Resultados

“ Los únicos límites para mañana son las dudas que tenemos hoy. ”Pittacus Lore

5.1. Introducción

Este capítulo presenta resultados de simulación y experimentales. La simulación fué implementada dedos maneras: la primera, a modo de ensayo exploratorio o de viabilidad, mediante un script de Matlab;y la segunda mediante un diagrama en Simulink, que dá una aproximación bastante más real debidoa que es posible observar interacciones entre mallas de control y otras dinámicas no modeladas en elscript. La parte experimental fué realizada en un banco de ensayo (“Bancada”) a modo de prototipo delaboratorio en el Grupo de Eletrónica de Potência e Controle (GEPOC) de la Universidade Federalde Santa Maria en Santa Maria, Brasil. Se puede observar dicho banco de ensayo en la sección C.3del apéndice C.

5.2. Simulación

5.2.1. Script de Prueba de Concepto

El script fué programado utilizando las plantas del capítulo 2 y los controladores del capítulo 4, seimplementó la ley de control dada por la ecuación (3.8). Lo que se quizo comprobar fué el rechazo adisturbios periódicos, por lo que la referencia del sistema es nula y el disturbio es una señal senoidal

69

Page 101: Controlador Adaptativo Robusto por Modelo de ... - UNaM

70 CAPÍTULO 5. RESULTADOS

con frecuencia de 60Hz que representa un desequilibrio. Es decir, la idea es considerar a la señal dedesbalance de tensiones que aparece en el eje 0 como un disturbio periódico.

En la figura 5.1 pueden verse los resultados obtenidos en cuanto la factibilidad de la propuesta. Seobserva la disminución del disturbio hasta quedar en valores prácticamente nulos. La figura 5.2muestraun detalle de la anterior y la figura 5.3 muestra la evolución de los parámetros.

0 5 10 15

Tiempo [seg]

-0.05

0

0.05

Am

plitu

d

Salida

ReferenciaSalida RealSalida Modelo

0 5 10 15

Tiempo [seg]

-0.05

0

0.05

Am

plitu

d

Error de Rastreo e 1

0 5 10 15

Tiempo [seg]

-0.05

0

0.05

Am

plitu

d

Error Aumentado E 1

0 5 10 15

Tiempo [seg]

-0.2

-0.1

0

0.1

0.2

Am

plitu

d

Acción de Control

0 5 10 15

Tiempo [seg]

0

0.2

0.4

0.6

0.8

Am

plitu

d

Norma de

|| ||M

0

0 5 10 15

Tiempo [seg]

-1

-0.5

0

0.5

1

Am

plitu

d

Sigma Modification

Figura 5.1: Resultados Obtenidos de la simulación con Script - Salida

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

-0.02

-0.01

0

0.01

0.02

Am

plitu

d

Salida

ReferenciaSalida RealSalida Modelo

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

-0.02

-0.01

0

0.01

0.02

Am

plitu

d

Error de Rastreo e 1

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

-0.02

-0.01

0

0.01

0.02

Am

plitu

d

Error Aumentado E 1

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

-0.2

-0.1

0

0.1

0.2

Am

plitu

d

Acción de Control

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

0

0.2

0.4

0.6

0.8

Am

plitu

d

Norma de

|| ||M

0

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6

Tiempo [seg]

-1

-0.5

0

0.5

1

Am

plitu

d

Sigma Modification

Figura 5.2: Detalle de Resultados Obtenidos de la simulación con Script - Salida

5.2.2. Diagrama de Simulink

Como segundo paso se implementó el diagrama que se muestra en las figuras 5.4 y 5.5 para corroborarmediante una simulación más aproximada a un caso real, lo obtenido en la sección anterior.

Page 102: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.2. SIMULACIÓN 71

0 5 10 15Tiempo [seg]

0

0.05

0.1

0.15

0.2

0.25

0.3

Am

plitu

d

11

0 5 10 15Tiempo [seg]

0

0.02

0.04

0.06

0.08

Am

plitu

d

12

0 5 10 15Tiempo [seg]

-1

-0.5

0

0.5

1

Am

plitu

d

r

0 5 10 15Tiempo [seg]

0

0.05

0.1

0.15

Am

plitu

d

s

0 5 10 15Tiempo [seg]

-0.25

-0.2

-0.15

-0.1

-0.05

0

Am

plitu

d

21

0 5 10 15Tiempo [seg]

-0.06

-0.05

-0.04

-0.03

-0.02

-0.01

0

Am

plitu

d

22

0 5 10 15Tiempo [seg]

-0.08

-0.06

-0.04

-0.02

0

Am

plitu

d

y

0 5 10 15Tiempo [seg]

0

0.05

0.1

0.15

0.2

0.25

Am

plitu

d

c

Figura 5.3: Resultados Obtenidos de la simulación con Script - Parámetros

Figura 5.4: Diagrama de Simulink - Parte de Potencia.

Figura 5.5: Parte de Simulink - Parte de Control.

Page 103: Controlador Adaptativo Robusto por Modelo de ... - UNaM

72 CAPÍTULO 5. RESULTADOS

La secuencia seguida en la simulación comienza con el generador en vacío sólo con el banco decapacitores de excitación para que pueda levantar la tensión requerida.Del sistema de control solamentese encuentra activo un control de carga del ELC, esto permite que la carga que representa el ELC parael generador ingrese gradualmente para no sobrecargar el proceso de excitación.

En el segundo dos, se agrega el control de tensiones para el bus CC del DSTATCOM y de amplitudde tensiones en el Bus CA.

Una vez estabilizado el sistema, a los cuatro segundos se conecta una carga resistiva de 1700W en lafase a correspondiente aproximadamente a la mitad de la potencia nominal, pero sin activar el controlde desbalance de tensiones. Esto se hace para que se evidencie el funcionamiento del lazo de control.El resto de los lazos de control están activos, es decir, los tres lazos internos de corriente y los doslazos externos de tensión. Estando en este punto inhabilitados el lazo de control de frecuencia y el dedesbalance de tensiones.

Luego, al segundo 5 se activa la regulación de frecuencia mediante el control del ELC.

Al segundo 6 se activa el ultimo lazo de control, es decir, el de desbalance de tensiones correspondienteal eje cero de tensiones.

Al segundo 20 se conecta otra carga resistiva de 1700W en la misma fase a, por lo que en este puntose tiene aproximadamente potencia nominal conectada en dicha fase.

Finalmente al segundo 35, se desconecta una de las cargas resistivas y se conecta una carga no linealinductiva compuesta por un diodo y la carga RL de potencia SRL = 600 W + j 1200 VAR.

En la figura 5.6 un intervalo de tiempo donde se encuentran activos todos los lazos de control conexcepción del lazo de control de frecuencia y el lazo de control de desbalance de tensiones de fase conuna carga resistiva de 1700W apliacada a la fase a. La figura 5.7 muestra un intervalo donde se tienenaplicados 3400W a la fase a y en la figura 5.8 se muestran las formas de onda para la carga inductivano lineal junto con una de las cargas resistivas de 1700W.

La información que se muestra en las figuras, de izquierda a derecha y de arriba a abajo correspondena, las tensiones de línea del generador, las corrientes de línea del generador, las tensiones de fase delsistema en el PCC, las corrientes por el neutro (trazo azul corresponde a la corriente por el neutrode la carga inl , el trazo rojo corresponde a la corriente por el neutro que inyecta el compensador iny el trazo amarillo oscuro corresponde a la corriente resultante al centro estrella de los capacitoresiY ), tensiones de fase en valores RMS, las corrientes de fase que inyecta el compensador, el factor dedesbalance calculado a partir de las tensiones RMS y la tensión del Bus CC.

El factor de desbalance β fué calculado de la siguiente manera:

β =| VaRMS |

4 + | VbRMS |4 + | VcRMS |

4(| VaRMS |

2 + | VbRMS |2 + | VcRMS |

2)2 (5.1)

Page 104: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.2. SIMULACIÓN 73

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

-500

0

500

[V]

Tensiones de Línea del Generador

vab

vbc

vca

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

-400

-200

0

200

400

[V]

Tensiones de Fase

va

vb

vc

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

200

220

240

[V]

Tensiones de Fase RMS

va

vb

vc

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

0

5

10

[%]

Factor de Desbalance

Factor DesbalanceLimite IEEE 1159

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

-20

0

20

[A]

Corrientes de Línea del Generador

iga

igb

igc

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

-20

0

20

[A]

Corriente por el Neutro

inl

in

iY

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

-20

0

20

[A]

Corrientes del inversor

ia

ib

ic

4.7 4.72 4.74 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9Tiempo [seg]

600

650

700

[V]

Barra CC del Compensador

Figura 5.6: Resultados de Simulación en un momento donde no se encuentra activo ni el control de frecuencia, niel control de desbalance de tensiones con una carga resistiva de 1700W.

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

-500

0

500

[V]

Tensiones de Línea del Generador

vab

vbc

vca

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

-400

-200

0

200

400

[V]

Tensiones de Fase

va

vb

vc

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

200

220

240

[V]

Tensiones de Fase RMS

va

vb

vc

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

0

5

10

[%]

Factor de Desbalance

Factor DesbalanceLimite IEEE 1159

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

-10

0

10

[A]

Corrientes de Línea del Generador

iga

igb

igc

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

-20

0

20

[A]

Corriente por el Neutro

inl

in

iY

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

-20

0

20

[A]

Corrientes del inversor

ia

ib

ic

34 34.02 34.04 34.06 34.08 34.1 34.12 34.14 34.16 34.18 34.2Tiempo [seg]

600

650

700

[V]

Barra CC del Compensador

Figura 5.7: Resultados de Simulación en un momento donde no se encuentra totalmente activo el sistema de controlcon una carga resistiva de 3400W.

Page 105: Controlador Adaptativo Robusto por Modelo de ... - UNaM

74 CAPÍTULO 5. RESULTADOS

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

-500

0

500

[V]

Tensiones de Línea del Generador

vab

vbc

vca

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

-400

-200

0

200

400

[V]

Tensiones de Fase

va

vb

vc

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

200

220

240

[V]

Tensiones de Fase RMS

va

vb

vc

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

0

5

10

[%]

Factor de Desbalance

Factor DesbalanceLimite IEEE 1159

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

-10

0

10

[A]

Corrientes de Línea del Generador

iga

igb

igc

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

-20

0

20

[A]

Corriente por el Neutro

inl

in

iY

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

-20

0

20

[A]

Corrientes del inversor

ia

ib

ic

39.8 39.82 39.84 39.86 39.88 39.9 39.92 39.94 39.96 39.98 40Tiempo [seg]

600

650

700

[V]

Barra CC del Compensador

Figura 5.8: Resultados de Simulación en un momento donde no se encuentra totalmente activo el sistema de controly una carga inductiva no lineal junto con una resistiva de 1700W.

En la figura 5.9 se muestra la evolución de la forma de onda de la frecuencia eléctrica en el PCC(arriba) y la distorsión armónica total (abajo) que además se compara con el valor establecido porel estándar IEEE 519 de 5%. A partir del segundo 35, cuando ingresa la carga no lineal, se puedeobservar que no representa un cambio importante en el THD y se demuestra la eficacia del sistema decontrol.

En la figura 5.10 se puede ver la evolución de los parámetros, mas o menos similar a la simulación dela sección anterior. Aunque todavía no están del todo establecidos, ya consiguen generar la referenciaadecuada para compensar el desequilibrio.

Finalmente, la figura 5.11 muestra el error extendido y la norma de los parámetros. Se apreciaclaramente como el error va disminuyendo con el tiempo, lo que permite inferir que los modosinternos del controlador convergen.

Algo importante a mencionar, es que de acuerdo a las tantas iteraciones efectuadas con la simulación,si el modelo no es adecuado, los modos internos pueden divergir, el error extendido también, pero losparámetros pueden quedar falsamente ajustados.

Page 106: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.2. SIMULACIÓN 75

0 5 10 15 20 25 30 35 40

Tiempo [seg]

56

58

60

62

64

[Hz]

Frecuencia Eléctrica del Sistema en el PCC

0 5 10 15 20 25 30 35 40

Tiempo [seg]

0

2

4

6

8

10

[%]

Distorsión Armónica Total (THD)

THDLímite IEEE 519

Ingresa otra carga Resistiva de 1700 WCarga total: 3400 W

Se desconecta una carga de 1700W.Se conecta carga no lineal RL de (600 W + j 1200 VAR)

Se activa el controlde Frecuencia

Figura 5.9: Resultados de Simulaciónmostrando formas de onda de la Frecuencia Eléctrica en el PCCy laDistorsiónArmónica Total.

0 10 20 30 40Tiempo [seg]

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Am

plitu

d

11

0 10 20 30 40Tiempo [seg]

0

0.02

0.04

0.06

0.08

0.1

Am

plitu

d

12

0 10 20 30 40Tiempo [seg]

-1

-0.5

0

0.5

1

Am

plitu

d

r

0 10 20 30 40Tiempo [seg]

-0.01

0

0.01

0.02

0.03

0.04

0.05

Am

plitu

d

s

0 10 20 30 40Tiempo [seg]

-0.35

-0.3

-0.25

-0.2

-0.15

-0.1

-0.05

0

Am

plitu

d

21

0 10 20 30 40Tiempo [seg]

-0.1

-0.08

-0.06

-0.04

-0.02

0

Am

plitu

d

22

0 10 20 30 40Tiempo [seg]

-0.12

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

Am

plitu

d

y

0 10 20 30 40Tiempo [seg]

-0.12

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

Am

plitu

d

c

Figura 5.10: Resultados de Simulación - Parámetros.

Page 107: Controlador Adaptativo Robusto por Modelo de ... - UNaM

76 CAPÍTULO 5. RESULTADOS

0 5 10 15 20 25 30 35 40

Tiempo [seg]

-0.06

-0.04

-0.02

0

0.02

0.04

Am

plitu

d

Error Extendido

0 5 10 15 20 25 30 35 40

Tiempo [seg]

0

0.1

0.2

0.3

0.4

0.5

Am

plitu

d

Norma de los Parámetros

Figura 5.11: Resultados de Simulación - Error Extendido y Norma de los Parámetros.

5.3. Experimentales

La prueba experimental fué realizada utilizando el banco de pruebas del GEPOC. En esta oportunidadse implementó como ley de control la dada por la ecuación (3.9) y además se utilizaron dos controla-dores adaptativos, uno es el controlador RMRAC del eje 0, y el otro RMRAC se utilizó para el controlde tensiones del Bus CA.

Este caso de tener dos controladores adaptativos corriendo significa más sobrecarga de procesamientorespecto de la simulación presentada. A pesar de eso, se obtuvieron resultados satisfactorios y secomprobó que el hardware del sistema tiene la capacidad para correr el control propuesto.

La figura 5.12 muestra la pantalla del osciloscópio utilizado para realizar las mediciones de lastensiones de fase antes de activar el control de desbalance como puede verse en los valores RMS. Seaplicó carga nominal resistiva a la fase b del generador. La figura 5.13 muestra un instante posterioren el que el control de desbalance es activado, aquí se aprecia que del lado derecho de la figuralas amplitudes empiezan a emparejarse. Y finalmente en la figura 5.14 se vé en los valores RMSnuevamente, como el control de desbalance está funcionando.

En las figuras 5.15 y 5.16 se ven unas gráficas calculadas con las muestras obtenidas del osciloscópio,la evolución de las tensiones de fase RMS y desbalance respectivamente. Además se marca el límitemáximo de 2% que indica la norma IEEE 1159 referiéndose al desbalance.

Page 108: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.3. EXPERIMENTALES 77

Figura 5.12: Pantalla de Osciloscópio antes de activar control de desbalance de tensiones.

Figura 5.13: Pantalla de Osciloscópio en el momento de activar control de desbalance de tensiones.

Page 109: Controlador Adaptativo Robusto por Modelo de ... - UNaM

78 CAPÍTULO 5. RESULTADOS

Figura 5.14: Pantalla de Osciloscópio tiempo después de activado el control de desbalance de tensiones.

8.5 9 9.5 10 10.5 11 11.5 12

Tiempo [seg]

170

180

190

200

210

220

230

240

Am

plitu

d [

V]

Tensiones de Fase RMS

Fase a

Fase b

Fase c

Figura 5.15: Tensiones de Fase RMS con carga nominal resistiva conectada a la Fase b

Page 110: Controlador Adaptativo Robusto por Modelo de ... - UNaM

5.4. COMPARACIÓN ENTRE CONTROLADOR PI Y RMRAC 79

8.5 9 9.5 10 10.5 11 11.5 12

Tiempo [seg]

0

1

2

3

4

5

6

7

Des

bala

nce

[%]

Factor de Desbalance

Factor DesbalanceLimite IEEE 1159

Figura 5.16: Factor de Desbalance

5.4. Comparación entre Controlador PI y RMRAC

En esta sección se presenta resultados de simulación de la comparación presentada en el SEPOC delaño 2017 en la UFSM, donde se muestran las tensiones de fase RMS sin el control de desbalance detensiones, pero con el resto de los lazos de control activos. Se aprecian tres momentos diferentes, enel segundo 4 se conecta a la fase b una carga resistiva de 3600W y sin control de desbalance como semencionó. Al segundo 5,5 se activa el control de desbalance de tensiones mediante un controlador PIconvencional, diseñado para trabajar con una impedancia de carga de 13Ω. Finalmente al segundo 6,5se activa el controlador adaptativo, se aprecia claramente la mejora en la performance.

Figura 5.17: Comparación de Tensiones de Fase RMS

Page 111: Controlador Adaptativo Robusto por Modelo de ... - UNaM

80 CAPÍTULO 5. RESULTADOS

La figura 5.17 muestra la evolución de las tensiones de fase RMS y la figura 5.18 muestra el factor dedesbalance.

Figura 5.18: Comparación de Factor de Desbalance

De la experiencia, no se descarta la posibilidad de que sea posible diseñar el controlador PI para quese comporte de la misma manera que el RMRAC, pero se remarca que con éste último la performancese obtiene de manera mucho mas sencilla.

5.5. Resumen

En este capítulo se presentaron mayormente resultados de simulación, junto con una variante experi-mental donde se probó la capacidad del hardware para implementar dos controladores RMRAC, sinotro objetivo en particular más que controlar el desbalance. Se incluyeron dichos resultados debido aque fueron los primeros obtenidos experimentalmente.

Se puede mencionar también, debido a la experiencia obtenida, que los valores iniciales de losparámetros definen la velocidad de respuesta del controlador y los valores finales de los mismos. Losparámetros se adaptan con los cambios de la señal de entrada. Los parámetros no convergen al valorque se diseña, debido a que la entrada al sistema no tiene la suficiente cantidad de frecuencias paraexcitar todos los modos internos y hacer que los parámetros converjan al valor que se desea. Peroa pesar de ello, cabe mencionar que el algoritmo de adaptación siempre encuentra un conjunto deparámetros estables que lleven el error de rastreo a cero.

Page 112: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Capítulo 6

Conclusión

“ Lo que importa no es ganar siempre,sinó aprender siempre. ”

Desconocido

6.1. Consideraciones Finales

El trabajo de esta tesis demaestría consistió en comprobar si era posible utilizar un controladorRMRACpara realizar la compensación de desbalance de tensiones de fase en un sistema de microgeneraciónde energía mediante un generador a inducción tipo de jaula de ardilla, lo cual se ha demostrado queefectivamente es posible, por lo que la hipótesis inicial se da por verdadera.

Se estudió un sistema de control de generación de energía para una microcentral hidroeléctricacompuesta por un generador de inducción autoexcitado. Dicho sistema de control permite la regulaciónde la frecuencia y las magnitudes de tensión en bornes del generador. El esquema general además delgenerador, cuenta con un banco de capacitores de excitación conectados en estrella para generar elneutro desde su centro, con lo cual se tiene un bus de corriente alterna trifásico con neutro que permiteconectar cargas monofásicas como trifásicas con o sin neutro. Finalmente se cuenta con el sistemade control y regulación, que emplea un compensador estático de reactivos o en inglés DSTATCOMconectado en paralelo con el generador, el banco de capacitores y las cargas.

El DSTATCOM es el responsable de mantener reguladas las amplitudes de las tensiones, como asítambién la frecuencia de las mismas; esto se consigue mediante la búsqueda del equilibrio de potenciareactiva y activa respectivamente. También es responsable por la compensación de desequilibrios enlas corrientes de carga y armónicos provenientes de cargas no lineales.

81

Page 113: Controlador Adaptativo Robusto por Modelo de ... - UNaM

82 CAPÍTULO 6. CONCLUSIÓN

Estas funciones del DSTATCOM son implementadas mediante técnicas de control digital en el DSPcon enfoque clásico, a través de funciones de transferencia y lazos de control anidados en cascada. Loimportante aquí es destacar que en vez de utilizar un controlador PI clásico de ganancias fijas para elcontrol de desbalance de las tensiones de fase, se utilizó un controlador RMRAC.

Se deben tener en cuenta varias consideraciones como ser:

1. La selección del modelo no puede ser del todo arbitraria, ya que se debe elegir un modelo quecumpla con los requerimientos que se necesiten y además que sea factible que el sistema físicopueda seguirlo. En un modelo que demande elevadas acciones de control, puede ser que elsistema físico no sea capaz de seguirlo, o peor aún, puede ser que se haga daño al sistema físicosi no se toman las debidas precauciones.

2. La selección del filtro auxiliar conformado por el par (F,q) debe ser tal que su banda pasanteabarque las frecuencias de operación de la planta y modelo.

3. Se debe analizar que tipo de característica robusta se agrega.

4. La ganancia de adaptación si es muy elevada puede generar que los parámetros no converjan olo hagan incluso más lentamente que con una ganancia menor.

6.2. Sugerencia para Futuros Trabajos

De este desarrollo surgieron algunos tópicos que pueden significar trabajos futuros para continuar conla línea de investigación. Como ser:

1. Consideración del acoplamiento entre los ejes d y q cuando se determinan las funciones detransferencia.

2. Estudio de interacción entre las mallas de los tres ejes, para mejorar el modelo de las plantasdel eje 0.

3. Estudio de posibilidad de cancelar armónicos de tensión con la señal de desbalance del eje 0.

4. Prueba de estabilidad del controlador RMRAC.

5. Estudiar la posibilidad del diseño de DSTATCOMs en paralelo para aumentar la capacidad deprocesamiento de potencia. Esto tiene un fin comercial.

6. Colocar el RMRAC en la malla interna i0 para comprobar si es posible eliminar el controladorde tensión de la malla externa y comparar prestaciones.

Page 114: Controlador Adaptativo Robusto por Modelo de ... - UNaM

6.3. PUBLICACIONES 83

6.3. Publicaciones

Este trabajo de tesis de maestría permitió generar artículos para congresos y jornadas técnicas que sedetallan a continuación:

GENTILE, Francisco R.; KURTZ, Victor H.; SCHERER, Lucas G.; DE CAMARGO, RobinsonF.: Comparison of Zero Axis Controllers for Phase Voltage Unbalance Control on Standalo-ne Self-Excited Induction Generator. 10th Seminar on Power Electronics and Control 2017(SEPOC), October 2017.

GENTILE, Francisco R.; KURTZ, Victor H.; SCHERER, Lucas G.; DE CAMARGO, RobinsonF.:A zero axis robust model reference adaptive controller applied to voltage regulation in standa-lone self-excited induction generator under unbalanced loads. 2017 Brazilian Power ElectronicsConference (COBEP), pp. 1-6, November 2017. DOI: 10.1109/COBEP.2017.8257326

GENTILE, Francisco R.; KURTZ, Victor H.; DE CAMARGO, Robinson F.:Controlador Adap-tativo Robusto por Modelo de Referencia en Eje Cero Aplicado al Control de Desbalance deTensiones de Fase en Generadores de Inducción Autoexcitados Aislados. 8va Jornadas de In-vestigación, Desarrollo Tecnológico, Extensión y Vinculación 2018 (JIDeTEV), Agosto 2018.

GENTILE, Francisco R.; KURTZ, Victor H.; DE CAMARGO, Robinson F.: Revisión delDSTATCOM, Tipos, Topologías y Técnicas deControl. 9na Jornadas de Investigación,DesarrolloTecnológico, Extensión y Vinculación 2019 (JIDeTEV), Agosto 2019.

Page 115: Controlador Adaptativo Robusto por Modelo de ... - UNaM

84 CAPÍTULO 6. CONCLUSIÓN

Page 116: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Bibliografía

[1] V. Rajagopal, B. Singh, and G. K. Kasal, “Electronic load controller with power quality impro-vement of isolated induction generator for small hydro power generation,” IET renewable powergeneration, vol. 5, no. 2, pp. 202–213, 2011.

[2] R.Chilipi, B. Singh, S.Murthy, S.Madishetti, andG.Bhuvaneswari, “Design and implementationof dynamic electronic load controller for three-phase self-excited induction generator in remotesmall-hydro power generation,” IET Renewable Power Generation, vol. 8, no. 3, pp. 269–280,2014.

[3] V. H. Kurtz, O. A. Audisio, A. R. Marchegiani, and F. Botterón, “Ensayo de una picoturbinapelton compacta de fabricación local,” XIII Encuentro Latinoamericano Y Del Caribe SobrePequeños Aprovechamientos Hidroenergeticos ELPAH – Cajamarca – Perú., 2009.

[4] V. H. Kurtz, “Distintas alternativas para el control automático de la generación en pequeñascentrales hidroeléctricas,” III CADI, IX CAEDI 2016 – Resistencia Chaco, 2016.

[5] R. Bansal, “Three-phase self-excited induction generators: an overview,” IEEE transactions onenergy conversion, vol. 20, no. 2, pp. 292–299, 2005.

[6] Y. Chauhan, S. Jain, and B. Singh, “A prospective on voltage regulation of self-excited inductiongenerators for industry applications,” IEEE Transactions on Industry Applications, vol. 46, no. 2,pp. 720–730, 2010.

[7] G. K. Kasal and B. Singh, “Decoupled voltage and frequency controller for isolated asynchronousgenerators feeding three-phase four-wire loads,” IEEE Transactions on power delivery, vol. 23,no. 2, pp. 966–973, 2008.

[8] P. Donolo, G. Bossio, C. De Angelo, G. García, and M. Donolo, “Voltage unbalance andharmonic distortion effects on induction motor power, torque and vibrations,” Electric powersystems research, vol. 140, pp. 866–873, 2016.

[9] S. Chapman, Electric machinery fundamentals, Fourth Edition. McGraw-Hill Higher Education,2005.

85

Page 117: Controlador Adaptativo Robusto por Modelo de ... - UNaM

86 BIBLIOGRAFÍA

[10] P. Krause, O. Wasynczuk, S. D. Sudhoff, and S. Pekarek, Analysis of electric machinery anddrive systems, vol. 75. John Wiley & Sons, 2013.

[11] J. A. B. Rodrigo, El generador de inducción autoexcitado: características, control y aplicación.Marcombo, 2011.

[12] J. Elder, J. Boys, and J. Woodward, “The process of self excitation in induction generators,” inIEE Proceedings B (Electric Power Applications), vol. 130, pp. 103–108, IET, 1983.

[13] C. B. Tischer, L. G. Scherer, and R. F. de Camargo, “Topologia hibrida trifásica a três fios pararegulação de tensão em sistemas de geração baseados em gerador de indução autoexcitado,” IETRenewable Power Generation, vol. 10, no. 4, pp. 531–540, 2016.

[14] L. G. Scherer, C. B. Tischer, and R. F. de Camargo, “Voltage regulation of stand-alone micro-generation seig based system under nonlinear and unbalanced load,” in 2015 IEEE 24th Interna-tional Symposium on Industrial Electronics (ISIE), pp. 428–433, IEEE, 2015.

[15] U. K. Kalla, B. Singh, and S. S. Murthy, “Green controller for efficient diesel engine drivensingle-phase seig using maximum efficiency point operation,” IEEE Transactions on IndustrialElectronics, vol. 64, no. 1, pp. 264–274, 2016.

[16] V. C. Sekhar, K. Kant, and B. Singh, “Dstatcom supported induction generator for improvingpower quality,” IET Renewable Power Generation, vol. 10, no. 4, pp. 495–503, 2016.

[17] S. Kewat, B. Singh, and I. Hussain, “Power management in pv-battery-hydro based standalonemicrogrid,” IET Renewable Power Generation, vol. 12, no. 4, pp. 391–398, 2017.

[18] M. P. Kazmierkowski and L. Malesani, “Current control techniques for three-phase voltage-source pwm converters: A survey,” IEEE Transactions on industrial electronics, vol. 45, no. 5,pp. 691–703, 1998.

[19] T. Hornik and Q.-C. Zhong, “A current-control strategy for voltage-source inverters in microgridsbased on h∞ and repetitive control,” IEEE Transactions on Power Electronics, vol. 26, no. 3,pp. 943–952, 2010.

[20] C. B. Tischer, J. R. Tibola, L. G. Scherer, and R. F. de Camargo, “Proportional-resonant con-trol applied on voltage regulation of standalone seig for micro-hydro power generation,” IETRenewable Power Generation, vol. 11, no. 5, pp. 593–602, 2017.

[21] O. Kiselychnyk, M. Bodson, and J. Wang, “Linearized state-space model of a self-excited in-duction generator suitable for the design of voltage controllers,” IEEE Transactions on EnergyConversion, vol. 30, no. 4, pp. 1310–1320, 2015.

[22] F. Lin, Robust control design: an optimal control approach, vol. 18. John Wiley & Sons, 2007.

Page 118: Controlador Adaptativo Robusto por Modelo de ... - UNaM

BIBLIOGRAFÍA 87

[23] L. G. Scherer, R. V. Tambara, and R. F. de Camargo, “Voltage and frequency regulation ofstandalone self-excited induction generator for micro-hydro power generation using discrete-time adaptive control,” IET Renewable Power Generation, vol. 10, no. 4, pp. 531–540, 2016.

[24] G. Attuati, R. F. de Camargo, and L. G. Scherer, “Controle de corrente adaptativo por modelode referência aplicado a dstatcom utilizado em sistemas baseados em giae,”

[25] J. Massing, M. Stefanello, H. Gründling, and H. Pinheiro, “Adaptive current control for grid-connected converters with lcl filter,” IEEE Transactions on Industrial Electronics, vol. 59, no. 12,pp. 4681–4693, 2012.

[26] K.-K. Shyu, M.-J. Yang, Y.-M. Chen, and Y.-F. Lin, “Model reference adaptive control design fora shunt active power filter system,” in IECON 2006-32nd Annual Conference on IEEE IndustrialElectronics, pp. 73–78, IEEE, 2006.

[27] H. Geng, D. Xu, B. Wu, and W. Huang, “Direct voltage control for a stand-alone wind-drivenself-excited induction generator with improved power quality,” IEEE Transactions on PowerElectronics, vol. 26, no. 8, pp. 2358–2368, 2011.

[28] R. F. de Camargo, Contribuição ao estudo de filtros ativos de potência. PhD thesis, Dissertaçãode Mestrado. Universidade Federal de Santa Maria, Santa Maria, 2002.

[29] R. F. de Camargo et al.,Método de sincronização aplicado a conversores PWM trifásicos. PhDthesis, Universidade Federal de Santa Maria, 2006.

[30] J. R.Massing et al.,Controle adaptativo de corrente aplicado a conversores estáticos conectadosà rede elétrica. PhD thesis, Universidade Federal de Santa Maria, 2013.

[31] K. Åström and B. Wittenmark, Adaptive control. Courier Corporation, 2013.

[32] G. Pingping, L. Ziguang, L. Zhuo, and W. Di, “Pi-pso algorithm based voltage controller ofstatcom for self-excited induction generator,” in 2015 34th Chinese Control Conference (CCC),pp. 4349–4354, IEEE, 2015.

[33] Y. Liu, J. Zhao, M. Xia, and H. Luo, “Model reference adaptive control-based speed controlof brushless dc motors with low-resolution hall-effect sensors,” IEEE Transactions on PowerElectronics, vol. 29, no. 3, pp. 1514–1522, 2014.

[34] L. Della Flora and H. Gründling, “Design of a robust model reference adaptive voltage controllerfor an electrodynamic shaker,” Eletrônica de Potência, vol. 13, no. 3, pp. 133–140, 2008.

[35] U. Montanaro, A. Di Gaeta, and V. Giglio, “Robust discrete-time mrac with minimal controllersynthesis of an electronic throttle body,” IEEE/ASME Transactions on Mechatronics, vol. 19,no. 2, pp. 524–537, 2014.

Page 119: Controlador Adaptativo Robusto por Modelo de ... - UNaM

88 BIBLIOGRAFÍA

[36] Y. Yang, S. Balakrishnan, L. Tang, and R. Landers, “Electrohydraulic control using neural mracbased on a modified state observer,” IEEE/ASME Transactions On Mechatronics, vol. 18, no. 3,pp. 867–877, 2013.

[37] R. Tambara, L. Della Flora, and H. Gründling, “Projeto de uma fonte de uma potência capara geração de formas de onda de até 2khz,” in XVIII Congresso Brasileiro de Automática,Bonito-MS, 2010.

[38] L. D. Flora et al., Contribuição ao controle de máquinas de vibração eletrodinâmicas. PhDthesis, Universidade Federal de Santa Maria, 2009.

[39] M. Stefanello et al., “Projeto e desenvolvimento de uma fonte de potência ca trifásica a quatrofios,” 2006.

[40] E. Carati, V. Montagner, and H. Grundling, “A single-phase ac power source using robust modelreference adaptive control,” in 2000 26th Annual Conference of the IEEE Industrial ElectronicsSociety. IECON 2000. 2000 IEEE International Conference on Industrial Electronics, Controland Instrumentation. 21st Century Technologies, vol. 2, pp. 1428–1432, IEEE, 2000.

[41] A. Teja, C. Chakraborty, S. Maiti, and Y. Hori, “A new model reference adaptive controllerfor four quadrant vector controlled induction motor drives,” IEEE transactions on industrialelectronics, vol. 59, no. 10, pp. 3757–3767, 2012.

[42] R. V. Tambara, Controle Adaptativo, Teoria e Aplicação. Edição do Autor, 2019.

[43] R. Cardoso, R. F. de Camargo, H. Pinheiro, and H. Gründling, “Kalman filter based synchro-nisation methods,” IET generation, transmission & distribution, vol. 2, no. 4, pp. 542–555,2008.

[44] M. J. Ryan, R. Lorenz, and R. De Doncker, “Modeling of sinewave inverters: A geometricapproach,” in Industrial Electronics Society, 1998. IECON’98. Proceedings of the 24th AnnualConference of the IEEE, vol. 1, pp. 396–401, IEEE, 1998.

[45] G. Fernández, J. Kairiyama, F. Botterón, and V. H. Kurtz, “Control de carga balasto por periodosde conducción, aplicado a la regulación de frecuencia de la tensión generada en micro y picocentrales hidroeléctricas,” ASADES, Avances en Energías Renovables y Medio Ambiente, vol. 14,2010.

[46] R. R. Chilipi, B. Singh, and S. Murthy, “Performance of a self-excited induction generatorwith dstatcom-dtc drive-based voltage and frequency controller,” IEEE Transactions on EnergyConversion, vol. 29, no. 3, pp. 545–557, 2014.

Page 120: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice A

Obtención del modelo de la Planta en elreferencial síncrono

A.1. Introducción

En este apéndice se muestra el procedimiento seguido para obtener las ecuaciones de estado delsistema normalizado en coordenadas giratorias dq0 y estacionarias αβ0. Se inicia normalizando lasvariables, se obtienen las matrices en espacio de estados en coordenadas dq0 y finalmente en αβ0.

A.2. Normalización de las variables

La implementación del sistema de control se realiza en un DSP de punto flotante, entonces, con elobjetivo de limitar el rango dinámico de las variables del sistema, se utiliza una transformación linealque las normalice. Para ello, seleccionando los valores base de potencia y tensión (Pbase, vbase), lasvariables normalizadas de tensión y corriente pueden ser escritas como:

vN =v

vbase, iN =

iibase

, donde ibase =Pbase

vbase(A.1)

89

Page 121: Controlador Adaptativo Robusto por Modelo de ... - UNaM

90APÉNDICE A. OBTENCIÓN DEL MODELO DE LA PLANTA EN ELREFERENCIAL SÍNCRONO

entonces, definiendo la matriz de normalización N de la siguiente manera:

N =

1ibase

0 0 0 0 00 1

ibase0 0 0 0

0 0 1ibase

0 0 00 0 0 1

vbase0 0

0 0 0 0 1vbase

00 0 0 0 0 1

vbase

(A.2)

los vectores de estado, las variables de entrada y los señales de disturbios normalizadas valen:

ÛxN (t) = N Ûx(t) → Ûx(t) = N−1 ÛxN (t) (A.3)

xN (t) = N x(t) → x(t) = N−1xN (t) (A.4)

uN (t) =1

vbaseu(t) → u(t) = vbaseuN (t) (A.5)

wN (t) =1

ibasew(t) → w(t) = ibasewN (t) (A.6)

Teniendo en cuenta las ecuaciones (A.3) a (A.6), el modelo del sistema en variables de estados dadapor la ecuación (2.26) del capítulo 2 puede ser reescrita normalizada, de la siguiente manera:

ÛxN (t) = NAabcN−1 xN (t) + NBabcvbase uN (t) + NFabcibase wN (t) (A.7)

donde definiendo las siguientes matrices:

AN = N Aabc N−1, BN = N Babc vbase y FN = N Fabc ibase (A.8)

la ecuación (A.7) puede ser escrita en forma compacta como:

ÛxN (t) = ANxN (t) + BNuN (t) + FNwN (t) (A.9)

donde:

xN (t) =

iaib

icva

vb

vc

; uN (t) =

u1n

u2n

u3n

; wN (t) =

iga

igb

igc

(A.10)

Page 122: Controlador Adaptativo Robusto por Modelo de ... - UNaM

A.3. ECUACIONES DE ESTADO EN COORDENADAS GIRATORIAS DQ0 91

AN =

−Rf

L f0 0 −

3vbase4L f ibase

vbase4L f ibase

vbase4L f ibase

0 −Rf

L f0 vbase

4L f ibase−

3vbase4L f ibase

vbase4L f ibase

0 0 −Rf

L f

vbase4L f ibase

vbase4L f ibase

−3vbase

4L f ibaseibase

CExcvbase0 0 − 1

CExcZl0 0

0 ibaseCExcvbase

0 0 − 1CExcZl

00 0 ibase

CExcvbase0 0 − 1

CExcZl

(A.11)

BN =vbase

4L f ibase

3 −1 −1−1 3 −1−1 −1 3

0 0 00 0 00 0 0

; FN =

ibase

CE xcvbase

0 0 00 0 00 0 01 0 00 1 00 0 1

(A.12)

A.3. Ecuaciones de estado en coordenadas giratorias dq0

La transformación de un sistema trifásico en un referencial estacionario abc a otro referencial giratoriodq0 de potencia invariante, es llevada a cabo mediante la siguiente transformación lineal:

fdq0 = Tdq0 fabc → fabc = T−1dq0 fdq0 (A.13)

donde:

fdq0 =

fdfqf0

; fabc =

fafbfc

; (A.14)

Tdq0 =

63 Cos

(ωdq0t

) √6

3 Cos(ωdq0t − 2π

3

) √6

3 Cos(ωdq0t + 2π

3

)−√

63 Sen

(ωdq0t

)−√

63 Sen

(ωdq0t − 2π

3

)−√

63 Sen

(ωdq0t + 2π

3

)√

33

√3

3

√3

3

; (A.15)

T−1dq0 =

63 Cos

(ωdq0t

)−√

63 Sen

(ωdq0t

) √3

3√6

3 Cos(ωdq0t − 2π

3

)−√

63 Sen

(ωdq0t − 2π

3

) √3

3√

63 Cos

(ωdq0t + 2π

3

)−√

63 Sen

(ωdq0t + 2π

3

) √3

3

(A.16)

siendo ωdq0 es la velocidad angular de rotación del referencial dq0. Si ésta velocidad es igual a lavelocidad angular eléctrica, entonces se dice que el referencial giratorio es síncrono.

La figura A.1 muestra el mapeo que se realiza, junto con la dirección y sentido positivo de los ejes d yq. Es muy importante mencionar que el eje 0 no está asociado al referencial. Si las variables trifásicasa transformar están balanceadas, éste eje se mantiene en cero; pero si existe algún desbalance en lasmagnitudes, dicha información es vista mediante una señal del doble de la frecuencia.

Page 123: Controlador Adaptativo Robusto por Modelo de ... - UNaM

92APÉNDICE A. OBTENCIÓN DEL MODELO DE LA PLANTA EN ELREFERENCIAL SÍNCRONO

fa

fc

fb

120.00 graus

fq

fd

wdq0

qdq0

Figura A.1: Transformación de coordenadas estacionarias abc a giratorias dq0.

Se aplica el mismo procedimiento efectuado para la transformación lineal de normalización, pero eneste caso, se parte con el sistema normalizado dado por las ecuaciones (A.9) a (A.12).

Como el vector de estados dado en (A.10) se compone de seis elementos, tres corrientes y trestensiones, la matriz Tdq0 no puede multiplicar directamente a dicho vector. Por lo que se necesitadefinir una nueva matriz de transformación, la misma es presentada a continuación:

Tdq0_6x6 =

[Tdq0 0

0 Tdq0

](A.17)

entonces se puede definir:

xdq0(t) = Tdq0_6x6(t) xN (t) → xN (t) = T−1dq0_6x6(t) xdq0(t) (A.18)

udq0(t) = Tdq0(t) uN (t) → uN (t) = T−1dq0(t) udq0(t) (A.19)

wdq0(t) = Tdq0(t) wN (t) → wN (t) = T−1dq0(t) wdq0(t) (A.20)

Es muy importante no perder de vista que la matriz Tdq0 es función del tiempo, al igual que el vectorde estados xdq0.

Para encontrar la expresión final del modelo se parte de (A.9), y usando las equivalencias de (A.18) a(A.20) se obtiene:

d[T−1

dq0_6x6(t) xdq0(t)]

dt= ANT−1

dq0_6x6(t) xdq0(t) + BNT−1dq0(t) udq0(t) + FNT−1

dq0(t) wdq0(t) (A.21)

el siguiente paso es desarrollar la derivada temporal del producto de dos funciones del tiempo.

Desarrollando la derivada se obtiene:

dT−1dq0_6x6

dtxdq0 + T−1

dq0_6x6dxdq0

dt= ANT−1

dq0_6x6 xdq0 + BNT−1dq0 udq0 + FNT−1

dq0 wdq0 (A.22)

Page 124: Controlador Adaptativo Robusto por Modelo de ... - UNaM

A.3. ECUACIONES DE ESTADO EN COORDENADAS GIRATORIAS DQ0 93

luego:

T−1dq0_6x6

dxdq0

dt= −

dT−1dq0_6x6

dtxdq0 + ANT−1

dq0_6x6 xdq0 + BNT−1dq0 udq0 + FNT−1

dq0 wdq0 (A.23)

multiplicando por izquierda ambos miembros por la matriz Tdq0_6x6 se obtiene:

dxdq0

dt=

[−Tdq0_6x6

dT−1dq0_6x6

dt+ Tdq0_6x6ANT−1

dq0_6x6

]xdq0+

+ Tdq0_6x6BNT−1dq0 udq0 + Tdq0_6x6FNT−1

dq0 wdq0

(A.24)

donde definiendo las siguientes matrices:

Adq0 = Tdq0_6x6(t)ANT−1dq0_6x6(t) − Tdq0_6x6(t) ÛT−1

dq0_6x6(t) (A.25)

Bdq0 = Tdq0_6x6(t)BNT−1dq0(t) (A.26)

Fdq0 = Tdq0_6x6(t)FNT−1dq0(t) (A.27)

la ecuación (A.24) puede ser escrita en forma compacta como:

Ûxdq0(t) = Adq0 xdq0(t) + Bdq0 udq0(t) + Fdq0 wdq0(t) (A.28)

siendo:

xdq0(t) =

id

iqi0vd

vq

v0

; udq0(t) =

ud

uq

u0

; wdq0(t) =

igd

igq

ig0

; (A.29)

Adq0(t) =

−Rf

L fωdq0 0 −

vbaseL f ibase

0 0−ωdq0 −

Rf

L f0 0 −

vbaseL f ibase

00 0 −

Rf

L f0 0 −

vbase4L f ibase

ibaseCExcvbase

0 0 − 1CExcZl

ωdq0 00 ibase

CExcvbase0 −ωdq0 − 1

CExcZl0

0 0 ibaseCExcvbase

0 0 − 1CExcZl

; (A.30)

Bdq0 =vbase

L f ibase

1 0 00 1 00 0 1

40 0 00 0 00 0 0

; Fdq0 =

ibase

CE xcvbase

0 0 00 0 00 0 01 0 00 1 00 0 1

(A.31)

Page 125: Controlador Adaptativo Robusto por Modelo de ... - UNaM

94APÉNDICE A. OBTENCIÓN DEL MODELO DE LA PLANTA EN ELREFERENCIAL SÍNCRONO

Siendoωdq0 la velocidad angular a la que gira el referencial dq0, para que elmismo sea síncronico, debeser igual a la velocidad angular eléctrica. Por lo tanto, se usa indistintamente ωdq0, ωe o simplementeω. Salvo caso se establezca explícitamente otra condición.

A.4. Otra forma de la matriz de transformacion Tdq0

La matriz Tdq0 mostrada en la ecuación (A.15) puede que no sea la mejor opción para implementaren el código del DSP debido a que presenta una operación algebraica en el argumento del coseno odel seno.

Mediante identidades trigonométricas ésta matriz puede ser escrita como una suma de dos señalesortoganales seno y coseno cuyos argumentos no contengan operaciones algebraicas. Esto tiene unaimportancia significativa al momento de implementar la transformación en el código del programa decontrol, ya que dichas señales ortogonales, en función del ángulo θ solamente, pueden ser obtenidasdel bloque de sincronismo (conocido como bloque PLL).

Las identidades trigonométricas mencionadas son la siguientes:

Cos(x ± y) = Cos(x) Cos(y) ∓ Sen(x) Sen(y) (A.32)

Sen(x ± y) = Sen(x) Cos(y) ± Cos(x) Sen(y) (A.33)

siendo en este caso particular x = θ e y = 2π3 .

Entonces, utilizando (A.32) y (A.33) en (A.15) se obtiene la siguiente matriz, la cual fué utilizada enla implementación experimental:

Tdq0 =

63 Cos(θ) −

√6

6 Cos(θ) +√

22 Sen(θ) −

√6

6 Cos(θ) −√

22 Sen(θ)

−√

63 Sen(θ)

√6

6 Sen(θ) +√

22 Cos(θ)

√6

6 Sen(θ) −√

22 Cos(θ)

√3

3

√3

3

√3

3

(A.34)

A.5. Ecuaciones de estado en coordenadas estacionarias αβ0

El modulador geométrico PWM, encargado de generar las señales de disparo de los IGBTs delDSTATCOM, fué implementado para recibir señales en αβ0. Por lo tanto, aquí se muestra la matrizde transformación utilizada.

El sistema de coordenadas estacionario αβ0, puede ser visto como el mismo sistema giratorio peroproyectado a unos ejes ortogonales entre sí y fijos en el tiempo. Para pasar del sistema giratorio alestacionario se utilizó:

fαβ0 = Tdq0_αβ0 fdq0 (A.35)

Page 126: Controlador Adaptativo Robusto por Modelo de ... - UNaM

A.5. ECUACIONES DE ESTADO EN COORDENADAS ESTACIONARIAS αβ0 95

donde:

fαβ0 =

fαfβf0

; fdq0 =

fdfqf0

; (A.36)

Tdq0_αβ0 =

Cos(ωt) −Sen(ωt) 0Sen(ωt) Cos(ωt) 0

0 0 1

(A.37)

Page 127: Controlador Adaptativo Robusto por Modelo de ... - UNaM

96APÉNDICE A. OBTENCIÓN DEL MODELO DE LA PLANTA EN ELREFERENCIAL SÍNCRONO

Page 128: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice B

Obtención de las Funciones de Transferenciaa partir del Modelo de Estados

B.1. Introducción

En este apéndice se muestra el procedimiento seguido para obtener las ecuaciones de transferenciasa utilizar para la implementación del control. Se parte del Modelo en Espacio de Estados (MEE)obtenido en el apéndice A, dado por las ecuaciones (A.28) a (A.31) para finalmente obtener lasecuaciones de transferencia que se utilizan en la implementación del sistema de control.

B.2. FTs a partir del MEE

Un modelo en espacio de estados, en forma general está descrito por las siguientes ecuaciones:

dxdt= A x + B u (B.1)

y = C x + D u (B.2)

Es posible encontrar funciones de transferencia a partir de las ecuaciones anteriores para poderutilizarlas en lazos de control clásico. Si se encuentra la Transformada de Laplace de (B.1), se despejael vector de estados X(s) y se lo reemplaza en (B.2), también transformada, se obtiene:

Y(s) =[C (sI − A)−1 B + D

]U(s) (B.3)

97

Page 129: Controlador Adaptativo Robusto por Modelo de ... - UNaM

98APÉNDICE B. OBTENCIÓN DE LAS FUNCIONES DE TRANSFERENCIA A PARTIR DEL MODELO DE ESTADOS

B.3. Matriz de FTs - Sistema MIMO

Para el caso de ésta tesis, si la matriz C en (B.2) es igual a la matriz identidad de seis filas y seiscolumnas I6x6, y además la matriz de acople directa de las entradas D es la matriz nula de seis filasy tres columnas 06x3, se obtiene el vector de estados como salida del sistema. Es decir, se tienenmúltiples salidas (tres corrientes y tres tensiones). El vector de entradas del sistema también cuentacon tres elementos (tres tensiones del DSTATCOM), por lo que se tienen múltiples entradas. Es decir,el sistema es de tipo MIMO.

Entonces escribiendo (B.2) con C = I6x6 y D = 06x3 se tiene:

Id(s)

Iq(s)

I0(s)

Vd(s)

Vq(s)

V0(s)

=

[I6x6

(sI6x6 − Adq0

)−1 Bdq0

] Ud(s)

Uq(s)

U0(s)

(B.4)

resolviendo la operación matricial, se llega a una matriz de la siguiente forma:

Id(s)

Iq(s)

I0(s)

Vd(s)

Vq(s)

V0(s)

=

GId_Ud(s) GId_Uq (s) 0

GIq_Ud(s) GIq_Uq (s) 0

0 0 GI0_U0(s)

GVd_Ud(s) GVd_Uq (s) 0

GVq_Ud(s) GVq_Uq (s) 0

0 0 GV0_U0(s)

Ud(s)

Uq(s)

U0(s)

(B.5)

donde cada elemento de la matriz de funciones de transferencia tiene la forma Gy_u(s), siendo y lasalida a la que corresponde el elemento y u la entrada de la que depende.

Definiendo:

G(s) =

GId_Ud(s) GId_Uq (s) 0

GIq_Ud(s) GIq_Uq (s) 0

0 0 GI0_U0(s)

GVd_Ud(s) GVd_Uq (s) 0

GVq_Ud(s) GVq_Uq (s) 0

0 0 GV0_U0(s)

(B.6)

la ecuación (B.5) puede ser escrita en forma compacta como:

Y(s) = G(s) U(s) (B.7)

Page 130: Controlador Adaptativo Robusto por Modelo de ... - UNaM

B.3. MATRIZ DE FTS - SISTEMA MIMO 99

A continuación se muestra cuanto vale cada elemento de la matriz G(s):

GId_Ud(s) =

Id(s)Ud(s)

=vbase

(b3 s3 + b2 s2 + b1 s + b0

)ibase

(a4 s4 + a3 s3 + a2 s2 + a1 s + a0

) (B.8)

donde:

b3 = L f C2excZ2

l

b2 = R f C2excZ2

l + 2L f CexcZl

b1 = L f C2excZ2

l ω2 + CexcZ2

l + 2R f CexcZl + L f

b0 = R f C2excZ2

l ω2 + Zl + R f

a4 = C2excL2

f Z2l

a3 = 2C2excL f R f Z2

l + 2CexcL2f Zl

a2 = 2C2excL2

f Z2l ω

2 + C2excR2

f Z2l + 4CexcL f R f Zl + 2CexcL f Z2

l + L2f

a1 = 2C2excL f R f Z2

l ω2 + 2CexcL2

f Zlω2 + 2CexcR2

f Zl + 2CexcR f Z2l + 2L f Zl + 2L f R f

a0 = C2excL2

f Z2l ω

4 + C2excR2

f Z2l ω

2 − 2CexcL f Z2l ω

2 + 2R f Zl + Z2l + L2

fω2 + R2

f

GId_Uq (s) =Id(s)Uq(s)

=vbaseω

[L f C2

excZ2l s2 + 2L f CexcZl s + (L f C2

excZ2l ω

2 − CexcZ2l + L f )

]ibase

[a4 s4 + a3 s3 + a2 s2 + a1 s + a0

] (B.9)

GIq_Ud(s) =

Iq(s)Ud(s)

= −GId_Uq (s) (B.10)

GIq_Uq (s) =Iq(s)Uq(s)

= GId_Ud(s) (B.11)

GI0_U0(s) =I0(s)U0(s)

=vbase [CexcZl s + 1]

ibase[4CexcL f Zl s2 + (4L f + 4CexcR f Zl) s + (4R f + Zl)

] (B.12)

GVd_Ud(s) =

Vd(s)Ud(s)

=CexcL f Z2

l s2 + (L f Zl + CexcR f Z2l ) s + (R f Zl + Z2

l − CexcL f Z2l ω

2)

a4 s4 + a3 s3 + a2 s2 + a1 s + a0(B.13)

GVd_Uq (s) =Vd(s)Uq(s)

=Zlω

[2CexcL f Zl s + (L f + CexcR f Zl)

]a4 s4 + a3 s3 + a2 s2 + a1 s + a0

(B.14)

GVq_Ud(s) =

Vq(s)Ud(s)

= −GVd_Uq (s) (B.15)

Page 131: Controlador Adaptativo Robusto por Modelo de ... - UNaM

100APÉNDICE B. OBTENCIÓN DE LAS FUNCIONES DE TRANSFERENCIA A PARTIR DEL MODELO DE ESTADOS

GVq_Uq (s) =Vq(s)Uq(s)

= GVd_Ud(s) (B.16)

Finalmente:

GV0_U0(s) =V0(s)U0(s)

=Zl

4CexcL f Zl s2 + (4L f + 4CexcR f Zl) s + (4R f + Zl)(B.17)

También se necesitan las funciones de transferencia entre las tensiones y las corrientes. A continuaciónse describe el procedimiento usado.

El sistema descrito por la ecuación (B.7) puede ser visto como dos subsistemas dependientes de lasentradas Udq0(s), el subsistema de corrientes:

Id(s)

Iq(s)

I0(s)

=

GId_Ud(s) GId_Uq (s) 0

GIq_Ud(s) GIq_Uq (s) 0

0 0 GI0_U0(s)

Ud(s)

Uq(s)

U0(s)

(B.18)

y el subsistema de tensiones:

Vd(s)

Vq(s)

V0(s)

=

GVd_Ud(s) GVd_Uq (s) 0

GVq_Ud(s) GVq_Uq (s) 0

0 0 GV0_U0(s)

Ud(s)

Uq(s)

U0(s)

(B.19)

Como se necesitan las tensiones como salida y las corrientes como entradas, se despeja de (B.18) elvector Udq0(s), obteniéndose:

Ud(s)

Uq(s)

U0(s)

=

GId_Ud(s) GId_Uq (s) 0

GIq_Ud(s) GIq_Uq (s) 0

0 0 GI0_U0(s)

−1

Id(s)

Iq(s)

I0(s)

(B.20)

y luego se usa (B.20) en (B.19), obteniéndose:

Vd(s)

Vq(s)

V0(s)

=

GVd_Ud(s) GVd_Uq (s) 0

GVq_Ud(s) GVq_Uq (s) 0

0 0 GV0_U0(s)

GId_Ud(s) GId_Uq (s) 0

GIq_Ud(s) GIq_Uq (s) 0

0 0 GI0_U0(s)

−1

Id(s)

Iq(s)

I0(s)

(B.21)

finalmente, realizando el producto matricial se llega a la siguiente forma:

Vd(s)

Vq(s)

V0(s)

=

GVd_Id (s) GVd_Iq (s) 0GVq_Id (s) GVq_Iq (s) 0

0 0 GV0_I0(s)

Id(s)

Iq(s)

I0(s)

(B.22)

Page 132: Controlador Adaptativo Robusto por Modelo de ... - UNaM

B.3. MATRIZ DE FTS - SISTEMA MIMO 101

donde:GVd_Id (s) =

Vd(s)Id(s)

=ibaseZl(CexcZl s + 1)

vbase[C2

excZ2l s2 + 2CexcZl s + (Cexc2Z2

l ω2 + 1)

] (B.23)

GVd_Iq (s) =Vd(s)Iq(s)

=ibaseCexcZ2

l ω

vbase[C2

excZ2l s2 + 2CexcZl s + (Cexc2Z2

l ω2 + 1)

] (B.24)

GVq_Id (s) =Vq(s)Id(s)

=−ibaseCexcZ2

l ω

vbase[C2

excZ2l s2 + 2CexcZl s + (Cexc2Z2

l ω2 + 1)

] (B.25)

GVq_Iq (s) =Vq(s)Iq(s)

=ibaseZl(CexcZl s + 1)

vbase[C2

excZ2l s2 + 2CexcZl s + (Cexc2Z2

l ω2 + 1)

] (B.26)

GV0_I0(s) =V0(s)I0(s)

=ibaseZl

vbase (CexcZl s + 1)(B.27)

Page 133: Controlador Adaptativo Robusto por Modelo de ... - UNaM

102APÉNDICE B. OBTENCIÓN DE LAS FUNCIONES DE TRANSFERENCIA A PARTIR DEL MODELO DE ESTADOS

Page 134: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice C

Descripción y Parámetros del Prototipode Laboratorio

C.1. Introducción

Se presenta en este apéndice las características y parámetros del prototipo de laboratorio utilizadopara comprobar el trabajo realizado en esta tesis de maestría.

C.2. Parámetros del Prototipo

El sistema de microgeneración consiste en un conjunto máquina primaria/generador para emularun sistema hidráulico de una microcentral hidroeléctrica, siendo la máquina primaria un motor deinducción de 7,5 HP de la empresa Voges Motors (Modelo VIF 112 M4-E249) accionado por mediode un inversor de frecuencia CFW08 de la empresa WEG. La máquina primaria es controlada demanera de mantener una velocidad constante por encima de la velocidad síncrona del generador, paracompensar el deslizamiento en la condición de plena carga. La potencia mecánica es transmitidaal generador a través de un acoplamiento mecánico directo entre los ejes de ambas máquinas deinducción. Como GI se utiliza un motor de la misma empresa Voges Motors pero de menor potencia(Modelo V 100 L4).

Los parámetros del sistema se muestran en la Tabla C.1. Los datos de la placa del motor usadocomo máquina primaria se muestran en la Tabla C.2, mientras que los datos de la placa y los valoresobtenidos de los ensayos del motor correspondiente al generador son mostrados en la Tabla C.3. Lasespecificaciones del DSTATCOM se muestran en la Tabla C.4 y las del ELC en la Tabla C.5.

103

Page 135: Controlador Adaptativo Robusto por Modelo de ... - UNaM

104 APÉNDICE C. DESCRIPCIÓN Y PARÁMETROS DEL PROTOTIPO DE LABORATORIO

Parámetro Variable ValorValores del Sistema

Capacitancia de Excitación Cexc 55µFCapacitancia del Bus CC Ccc 4700µFInductancia del Filtro L f 3,1 mHResistencia del Filtro R f 0,2 ΩImpedancia de Carga (Plena Carga) 13 Ω - 3700 WImpedancia de Carga (75%) 17 Ω - 2775 WImpedancia de Carga (50%) 26 Ω - 1850 WImpedancia de Carga (25%) 52 Ω - 925 WImpedancia de Carga (Vacío)

Zl

1000 Ω - 49 WTensión de línea RMS en el PCC vt 380 VVelocidad Síncrona ω 120π = 376,99 rad/sFrecuencia de Conmutación fs 10 kHzPeriodo de muestreo Ts 0,1 ms

NormalizaciónTensión base vbase 600 VCorriente base ibase 20 AImpedancia base Zbase =

vbaseibase

30 Ω

Tabla C.1: Parámetros del Sistema

Parámetro ValorPotencia 7,5 HP(5,5 kW)Tensión 440/380/220 VFrecuencia 60 HzCant. de Polos 4Velocidad nominal 1745 RPMIp/In 7,7Factor de servicio (FS) 1,0Rendimiento 89,5 %Factor de potencia (FP) 0,81Velocidad de accionamiento 1895 RPM

Tabla C.2: Datos de la Máquina Primaria

Page 136: Controlador Adaptativo Robusto por Modelo de ... - UNaM

C.2. PARÁMETROS DEL PROTOTIPO 105

Parámetro Variable ValorDatos de la placa

Potencia 5,0 HP(3,7 kW)Tensión de línea (RMS) 380/220 VFrecuencia 60 HzCant. de polos 4Velocidad 1730 RPMIp/In 7,2Factor de servicio (FS) 1,0Rendimiento 87,5 %Factor de potencia (FP) 0,82

Datos mediante ensayosResistencia rotórica Rr 2,0 ΩReactancia inductiva rotórica Xr 1,914 ΩResistencia estatórica Rs 3,0 ΩReactancia inductiva estatórica Xs 1,914 ΩReactancia inductiva mutua XM 66,093 ΩCoeficiente de inercia J 0,06 kg ·m2

Tabla C.3: Datos del Generador de Inducción

Componente EspecificaciónMódulos IGBT SKM75GB128DDrivers de los IGBT SKHI22APlaca de interface de los drivers SKPC 22/2Capacitores del Bus CC 4700 µF/900 V

Tabla C.4: Datos del DSTATCOM

Componente EspecificaciónMódulos de Diodos SKKD42FMódulo IGBT SKM300GA12E4Drivers del IGBT SKHI22ACarga auxiliar 4,1 kWRE LC 70 Ω

Tabla C.5: Datos del ELC

Page 137: Controlador Adaptativo Robusto por Modelo de ... - UNaM

106 APÉNDICE C. DESCRIPCIÓN Y PARÁMETROS DEL PROTOTIPO DE LABORATORIO

C.3. Fotos del Banco de Ensayo - Bancada

Figura C.1: Vista General de los elementos del Banco de Ensayo

Figura C.2: Detalle del par Motor-Generador

Page 138: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice D

Código Fuente del Script dePrueba de Concepto

D.1. Introducción

En este apéndice se muestra el código fuente utilizado para generar y realizar la prueba de conceptode la sección 5.2.1.

D.2. Código Fuente

% Projeto dos controladores - Ultima version utilizada 14/11/2019 - OK

% 1 - Siempre ejecutar esta seccion primero

clear all

close all

clc

format long

syms vbase ibase Rf Lf Cexc Zl wdq0 t s

% Definicion del sistema en dq0

Adq0 = [-Rf/Lf, wdq0, 0, -vbase/(Lf*ibase), 0, 0;

-wdq0, -Rf/Lf, 0, 0, -vbase/(Lf*ibase), 0;

0, 0, -Rf/Lf, 0, 0, -vbase/(4*Lf*ibase);

ibase/(Cexc*vbase), 0, 0, -1/(Cexc*Zl), wdq0, 0;

0, ibase/(Cexc*vbase), 0, -wdq0, -1/(Cexc*Zl), 0;

0, 0, ibase/(Cexc*vbase), 0, 0, -1/(Cexc*Zl)]

Bdq0 = [ vbase/(Lf*ibase), 0, 0;

0, vbase/(Lf*ibase), 0;

0, 0, vbase/(4*Lf*ibase);

0, 0, 0;

0, 0, 0;

0, 0, 0]

Fdq0 = [ 0, 0, 0;

0, 0, 0;

0, 0, 0;

107

Page 139: Controlador Adaptativo Robusto por Modelo de ... - UNaM

108 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

ibase/(Cexc*vbase), 0, 0;

0, ibase/(Cexc*vbase), 0;

0, 0, ibase/(Cexc*vbase)]

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

%D = zeros(6,3)

% Obtencion de la matriz de funciones de transferencia

GpIV_6x6 = simplify(C*(inv(s*eye(6)-Adq0))*Bdq0)

% Desdoblamiento en I/U y V/U

GIU = GpIV_6x6(1:3, :)

GVU = GpIV_6x6(4:6, :)

% Calculo de V/I

GVI = simplify(GVU*inv(GIU))

%

% Valores de los parametros

ibase = 20;

vbase = 600;

zbase = vbase/ibase;

Rf = 0.2;

Lf = 0.0031;

% Zl = 13;

Cexc = 55e-06;

wdq0 = 2*pi*60;

vdMax = 345.5;

Ccc = 4700e-06;

fs=10000;

Ts=1/fs;

% Convertimos simbolico a FT

s = tf(’s’);

% Eliminar la influencia de V se realiza mediante Zl=0???

Zl = 13;

% Gid

Gid = eval(char(GIU(1,1)));

% Giq

Giq = eval(char(GIU(2,2)));

% Gi0

Gi0 = eval(char(GIU(3,3)));

Zl = 13;

% Gvd

Gvd = eval(char(GVI(1,2)));

% Gv0

Gv0 = eval(char(GVI(3,3)));

% Gvcc

Gvcc = tf([0 -2*vdMax], [vbase*Ccc 0]);

% minreal realiza cancelacion de polos y ceros obteniendo una FT identica

% en realacion al comportamiento en magnitud y fase que la original.

% En este caso particular, como no hay cancelaciones obtiene la misma FT

% pero expresada de forma que el coeficiente de la maxima potencia de s sea

% unitario.

Gid = minreal(Gid)

Giq = minreal(Giq)

Gi0 = minreal(Gi0)

Gvd = minreal(Gvd)

Gv0 = minreal(Gv0)

Gvcc = minreal(Gvcc)

%

% Seccion de discretizacion

z=tf(’z’,Ts);

% Las plantas de corriente tiene atraso de transporte

Gidz=c2d(Gid,Ts,’zoh’);

Gidza=Gidz/z

Giqz=c2d(Giq,Ts,’zoh’);

Giqza=Giqz/z

Gi0z=c2d(Gi0,Ts,’zoh’);

Gi0za=Gi0z/z

% Plantas de tension

Gvdz=c2d(Gvd,Ts,’zoh’)

Gv0z=c2d(Gv0,Ts,’zoh’)

Gvccz=c2d(Gvcc,Ts,’zoh’)

% Controlador Cid

Page 140: Controlador Adaptativo Robusto por Modelo de ... - UNaM

D.2. CÓDIGO FUENTE 109

numCid = [0.2523 -0.2316];

denCid = [1 -1];

Cidz = tf(numCid, denCid, Ts);

pid(Cidz)

Cid = d2c(Cidz, ’zoh’)

pid(Cid)

% Controlador Ci0

numCi0 = [1.3491 -1.3401];

denCi0 = [1 -1];

Ci0z = tf(numCi0, denCi0, Ts);

pid(Ci0z)

Ci0 = d2c(Ci0z, ’zoh’);

pid(Ci0)

% Malla interna d y q

MallaInternadqz = Cidz * Gidza;

CLMIdqz = feedback(MallaInternadqz, 1);

MallaInternadq = Cid * Gid;

CLMIdq = feedback(MallaInternadq, 1);

% Malla Interna 0

MallaInterna0z = Ci0z * Gi0za;

CLMI0z = feedback(MallaInterna0z, 1);

MallaInterna0 = Ci0 * Gi0;

CLMI0 = feedback(MallaInterna0, 1);

% Planta Malla Externa de Tension Vcc

PlantaExternaVccz = CLMIdqz * Gvccz

PlantaExternaVcc = CLMIdq * Gvcc

% Planta Malla Externa de Tension Vd

PlantaExternaVdz = CLMIdqz * Gvdz

PlantaExternaVd = CLMIdq * Gvd

[ZVd, PVd, KVd] = zpkdata(PlantaExternaVd,’v’)

denCancel1=conv([1 -ZVd(1)], [1 -ZVd(2)]);

numCancel1=conv([1 -PVd(3)], [1 -PVd(4)]);

Cancel1 = tf(numCancel1, denCancel1);

PlantaExternaVds = minreal(PlantaExternaVd * Cancel1)

% figure;

% bode(PlantaExternaVd, PlantaExternaVds);

% Planta Malla Externa de Tension V0

PlantaExternaV0z = CLMI0z * Gv0z

PlantaExternaV0 = CLMI0 * Gv0

% Controlador PI Malla Vcc

kCvccz = -1.7;

numCvccz = kCvccz*[1 -0.998];

denCvccz = [1 -1];

Cvccz = tf(numCvccz, denCvccz, Ts)

pid(Cvccz)

Cvcc = d2c(Cvccz, ’zoh’)

pid(Cvcc)

% Controlador PI Malla Vd

kCvdz = 0.5;

numCvdz = kCvdz*[1 -0.97];

denCvdz = [1 -1];

Cvdz = tf(numCvdz, denCvdz, Ts)

pid(Cvdz)

Cvd = d2c(Cvdz, ’zoh’)

pid(Cvd)

% Malla Externa de Tension Vcc

MallaExternaVccz = Cvccz * PlantaExternaVccz

CLMEVccz = feedback(MallaExternaVccz, 1)

MallaExternaVcc = Cvcc * PlantaExternaVcc

CLMEVcc = feedback(MallaExternaVcc, 1)

MallaExternaVccz1 = c2d(MallaExternaVcc, Ts, ’zoh’)

CLMEVccz1 = feedback(MallaExternaVccz1, 1)

% Malla Externa de Tension Vd

MallaExternaVdz = Cvdz * PlantaExternaVdz

Page 141: Controlador Adaptativo Robusto por Modelo de ... - UNaM

110 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

CLMEVdz = feedback(MallaExternaVdz, 1)

MallaExternaVd = Cvd * PlantaExternaVds

CLMEVd = feedback(MallaExternaVd, 1)

MallaExternaVdz1 = c2d(MallaExternaVd, Ts, ’zoh’)

CLMEVdz1 = c2d(CLMEVd, Ts, ’zoh’)

% Malla Externa de Tension V0

MallaExternaV0 = minreal(PlantaExternaV0)

% Zeros, polos e ganho

[ZV0, PV0, KV0] = zpkdata(MallaExternaV0,’v’);

[numMEV0, denMEV0] = tfdata(MallaExternaV0, ’v’);

% Modelo de Referencia

kWm0 = sum(denMEV0)/sum(numMEV0);

numWm0 = kWm0*numMEV0;

denWm0 = denMEV0;

Wm0 = tf(numWm0, denWm0);

%numWm0_1 = [0 1 -PV0(3)];

%denWm0_1 = conv(conv([1 -PV0(1)], [1 -PV0(2)]), [1 -PV0(3)]);

numWm0_1 = [0 1 -ZV0(1)];

denWm0_1 = conv(conv([1 2500], [1 2500]), [1 -PV0(3)]);

%numWm0_1 = [0 0 1];

%denWm0_1 = conv([1 1000], [1 1000]);

kWm0_1 = sum(denWm0_1)/sum(numWm0_1);

Wm0_1 = tf(kWm0_1*numWm0_1, denWm0_1);

% Discretizamos

GV0RMRAC = MallaExternaV0;

GV0RMRACz = c2d(GV0RMRAC, Ts, ’zoh’);

Wm0z = c2d(Wm0, Ts, ’zoh’);

Wm0_1z = c2d(Wm0_1, Ts, ’zoh’);

% Coeficientes do numerador bx, denominador ax e tempo de amostragem

[bx0, ax0] = tfdata(GV0RMRACz, ’v’);

[bxWm0z, axWm0z] = tfdata(Wm0z, ’v’);

% Graficos

f=figure(’Name’,’Malla Interna dq Lazo Abierto’);

bode(MallaInternadqz);

title(’Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Abierto’);

f=figure(’Name’,’Malla Interna dq Lazo Cerrado’);

bode(CLMIdqz);

title(’Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Cerrado’);

f=figure(’Name’,’Malla Interna 0 Lazo Abierto’);

bode(MallaInterna0z);

title(’Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Abierto’);

f=figure(’Name’,’Malla Interna 0 Lazo Cerrado’);

bode(CLMI0z);

title(’Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Cerrado’);

f=figure(’Name’,’Malla Externa Vcc Lazo Abierto’);

bode(MallaExternaVccz);

title(’Respuesta en Frecuencia de la Malla Externa de Tensión Vcc a Lazo Abierto’);

f=figure(’Name’,’Malla Externa Vcc Lazo Cerrado’);

bode(CLMEVccz);

title(’Respuesta en Frecuencia de la Malla Externa de Tensión Vcc a Lazo Cerrado’);

f=figure(’Name’,’Malla Externa Vd Lazo Abierto’);

bode(MallaExternaVdz);

title(’Respuesta en Frecuencia de la Malla Externa de Tensión Vd a Lazo Abierto’);

f=figure(’Name’,’Malla Externa Vd Lazo Cerrado’);

bode(CLMEVdz);

title(’Respuesta en Frecuencia de la Malla Externa de Tensión Vd a Lazo Cerrado’);

f=figure(’Name’,’Malla Externa V0 y Modelo’);

subplot(2,2,1);

rlocus(GV0RMRAC);

title(’Malla Externa V0(s)’);

subplot(2,2,2);

rlocus(Wm0);

title(’Modelo Wm0(s)’);

subplot(2,2,3);

rlocus(GV0RMRACz);

title(’Malla Externa V0(z)’);

subplot(2,2,4);

Page 142: Controlador Adaptativo Robusto por Modelo de ... - UNaM

D.2. CÓDIGO FUENTE 111

rlocus(Wm0z);

title(’Modelo Wm0(z)’);

f=figure(’Name’, ’Respuestas en Frecuencia’);

subplot(1,2,1);

bode(GV0RMRAC, Wm0, Wm0_1);

title(’Tiempo Continuo’);

grid on;

legend(’GV0 Completo’, ’Modelo’, ’Modelo 1’);

subplot(1,2,2);

bode(GV0RMRACz, Wm0z, Wm0_1z);

title(’Tiempo Discreto’);

grid on;

legend(’GV0 Completo’, ’Modelo’, ’Modelo 1’);

f=figure(’Name’, ’Respuestas en Frecuencia 2’);

subplot(1,3,1);

bode(GV0RMRAC, GV0RMRACz);

title(’GV0 Completo’);

grid on;

legend(’Continuo’, ’Discreto’);

subplot(1,3,2);

bode(Wm0, Wm0z);

title(’Modelo’);

grid on;

legend(’Continuo’, ’Discreto’);

subplot(1,3,3);

bode(Wm0_1, Wm0_1z);

title(’Modelo 1’);

grid on;

legend(’Continuo’, ’Discreto’);

f=figure(’Name’, ’Respuestas en Frecuencia’);

bode(GV0RMRACz, Wm0z);

title(’Respuesta en Frecuencia de la Planta G_p y el Modelo en Tiempo Discreto’);

grid on;

legend(’Planta Gp’, ’Modelo’);

f=figure(’Name’, ’Respuesta al Escalon’);

subplot(2,1,1);

opt = stepDataOptions(’StepAmplitude’,1);

step(GV0RMRAC, Wm0, Wm0_1, opt);

title(’Tiempo Continuo’);

grid on;

legend(’GV0 Completo’, ’Modelo’);

subplot(2,1,2);

step(GV0RMRACz, Wm0z, Wm0_1z, opt);

title(’Tiempo Discreto’);

grid on;

legend(’GV0 Completo’, ’Modelo’);

f=figure(’Name’, ’Respuestas al Escalon 2’);

subplot(1,3,1);

step(GV0RMRAC, GV0RMRACz);

title(’GV0 Completo’);

grid on;

legend(’Continuo’, ’Discreto’);

subplot(1,3,2);

step(Wm0, Wm0z);

title(’Modelo’);

grid on;

legend(’Continuo’, ’Discreto’);

subplot(1,3,3);

step(Wm0_1, Wm0_1z);

title(’Modelo 1’);

grid on;

legend(’Continuo’, ’Discreto’);

%%

% Simulacion

% ==========

% Reserva de espacio

tFinal = 15;

ntotal = round(tFinal/Ts);

tempo = zeros(1,ntotal);

ordemPlanta = length(ax0)-1;

qParametros = ordemPlanta-1;

r = zeros(1,ntotal);

Page 143: Controlador Adaptativo Robusto por Modelo de ... - UNaM

112 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

vg=zeros(1,ntotal);

Vc=zeros(1,ntotal);

Vs=zeros(1,ntotal);

y = zeros(1,ntotal);

ym = zeros(1,ntotal);

e1 = zeros(1,ntotal);

E1 = zeros(1,ntotal); %Erro aumentado

u=zeros(1,ntotal);

v=zeros(1,ntotal); % u filtrado por el modelo Wm

theta1=zeros(qParametros,ntotal); %Ganho do controlador

theta2=zeros(qParametros,ntotal); %Ganho do controlador

thetay=zeros(1,ntotal);

thetar=zeros(1,ntotal);

thetas=zeros(1,ntotal); %Ganho do controlador

thetac=zeros(1,ntotal); %Ganho do controlador

thetar_est=1; %sign(km0/KV0);

omega1=zeros(qParametros,ntotal); %u filtrado por F,q

omega2=zeros(qParametros,ntotal); %y filtrado por F,q

zetaw1=zeros(qParametros,ntotal); % w1 filtrado por el modelo Wm

zetaw2=zeros(qParametros,ntotal); % w2 filtrado por el modelo Wm

zetar=zeros(1,ntotal); % r filtrado por el modelo Wm

zetay=zeros(1,ntotal); % y filtrado por el modelo Wm

zetas=zeros(1,ntotal); % Vs filtrado por el modelo Wm

zetac=zeros(1,ntotal); % Vc filtrado por el modelo Wm

m_2=ones(1,ntotal);

%Taxa de adapta��o do mecanismo de adapta��o de ganhos

g=100;

%Filtro digital para obten��o do zetar e do zetay

%zetar(s)=F(s)*r(s)

%zetay(s)=F(s)*y(s)

fc = -10000;

f1 = 2*pi*fc;

% F = f1*[1 0.1; 2 1];

% q = -f1*[1.1; 3];

F = f1*[1 0.2; 1 1];

q = -f1*[1.2; 2];

% % Realizamos ajuste de coeficientes q para obtener ganancia

% % unitaria

% FQs = simplify(minreal(inv(s*eye(size(F,1))-F)*q));

% [numFQ, denFQ] = tfdata(FQs(1), ’v’);

% kFQ1 = 1; %sum(denFQ)/sum(numFQ);

% [numFQ, denFQ] = tfdata(FQs(2), ’v’);

% kFQ2 = 1; %sum(denFQ)/sum(numFQ);

%

% FQ1 = [F(2,2)-1 -F(1,2); -F(2,1) F(1,1)-1];

% R_0dB = [sum(denFQ)/kFQ1 ; sum(denFQ)/kFQ2];

% q = inv(FQ1)*R_0dB;

% Regeneramos funciones de transferencia

FQs = simplify(minreal(inv(s*eye(size(F,1))-F)*q));

Cr=ctrb(F,q); % Obtiene la matriz de controlabilidad

rC=rank(Cr);

if(rC ~= size(Cr,1)) % size(Cr,1) es para obtener la dimension de la matriz Cr, ya que la misma es cuadrada solo se necesita un valor

fprintf( ’Valores de F y q NO CONTROLABLES’ );

else

fprintf( ’OK. Par F,q CONTROLABLE.\r\n’ );

end

% Discretizacion para usar w1(k+1) = Fd*w1(k)+q*u(k)

Fd=exp(F*Ts);

qd=inv(F)*(exp(F*Ts)-1)*q;

% Fd=eye(3)-(F*Ts);

% qd=q*Ts;

f=figure(’name’,’Respuesta en Frecuencia del par F,q’);

bode(FQs(1), FQs(2));

title(’Respuesta en Frecuencia de los Filtros Auxiliares - Par F,q’);

h = legend(’Filtro para $\omega\_1x$’,’Filtro para $\omega\_2x$’, ’Fontsize’, 12);

set(h, ’Interpreter’,’latex’)

%Funcion sigma-modification

sigma=zeros(1,ntotal);

sigma_0 = 0.1; %Valor pequeno

M0=0.7; % Valor de comparacion

Page 144: Controlador Adaptativo Robusto por Modelo de ... - UNaM

D.2. CÓDIGO FUENTE 113

normtheta=zeros(1,ntotal);

% Ciclo de simulacion

Amp = 0;

% WB = waitbar(0,’Aguarde...’,’Name’,’Simulando Malla Externa V0’,...

% ’CreateCancelBtn’,’setappdata(gcbf,’’canceling’’,1)’);

% setappdata(WB,’canceling’,0);

% % WB = waitbar(0,’Aguarde...’,’Name’,’Simulando Malla Externa V0’);

% Parte inicial hasta llegar al atraso necesario

len_a = length(ax0);

% for k=1:len_a-1

% r(k) = Amp;

% tempo(k) = (k-1)*Ts;

% end

% Ciclo propiamente dicho

for k=len_a:ntotal

% % Check for clicked Cancel button

% if getappdata(WB,’canceling’)

% break;

% end

% % Update waitbar and message

% waitbar(k/ntotal,WB);

% 1- Actualizacion de la referencia

%r(k)=Amp*square(2*pi*0.25*k*Ts);

r(k) = Amp*sin((2*pi*60)*k*Ts);

%r(k) = Amp;

% Ecuacion del Disturbio

phi=pi/4; Ampd = 0.2; freqd = 60;

vg(1, k)= Ampd*sin(2*pi*freqd*k*Ts + phi);

Vc(1, k)= Ampd*sin(phi)*cos(2*pi*freqd*k*Ts);

Vs(1, k)= Ampd*cos(phi)*sin(2*pi*freqd*k*Ts);

% 2- Actualizacion de la salida de la planta

y_aux = y(1,(k-1):-1:(k-(length(ax0)-1)))’;

u_aux = u(1,k:-1:(k-(length(bx0)-1)))’;

vg_aux = vg(1,k:-1:(k-(length(bx0)-1)))’;

y(k) = -ax0(1,2:length(ax0))*y_aux + bx0*(u_aux - vg_aux);

% 3- Actualizacion de la salida del modelo

y_aux = ym(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

r_aux = r(1,k:-1:(k-(length(bxWm0z)-1)))’;

ym(k) = -axWm0z(1,2:length(axWm0z))*y_aux + bxWm0z*r_aux;

% 4- Filtros auxiliares

% Omega 1

zeta_aux = zetaw1(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

w_aux = omega1(1,k:-1:(k-(length(bxWm0z)-1)))’;

zetaw1(1, k) = -axWm0z(1,2:length(axWm0z))*zeta_aux + bxWm0z*w_aux;

%

zeta_aux = zetaw1(2,(k-1):-1:(k-(length(axWm0z)-1)))’;

w_aux = omega1(2,k:-1:(k-(length(bxWm0z)-1)))’;

zetaw1(2, k) = -axWm0z(1,2:length(axWm0z))*zeta_aux + bxWm0z*w_aux;

%

% Omega 2

zeta_aux = zetaw2(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

w_aux = omega2(1,k:-1:(k-(length(bxWm0z)-1)))’;

zetaw2(1, k) = -axWm0z(1,2:length(axWm0z))*zeta_aux + bxWm0z*w_aux;

%

zeta_aux = zetaw2(2,(k-1):-1:(k-(length(axWm0z)-1)))’;

w_aux = omega2(2,k:-1:(k-(length(bxWm0z)-1)))’;

zetaw2(2, k) = -axWm0z(1,2:length(axWm0z))*zeta_aux + bxWm0z*w_aux;

%

% Salida

zetay_aux = zetay(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

y_aux = y(1,k:-1:(k-(length(bxWm0z)-1)))’;

zetay(k) = -axWm0z(1,2:length(axWm0z))*zetay_aux + bxWm0z*y_aux;

%

% Referencia

zetar_aux = zetar(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

r_aux = r(1,k:-1:(k-(length(bxWm0z)-1)))’;

zetar(k) = -axWm0z(1,2:length(axWm0z))*zetar_aux + bxWm0z*r_aux;

%

% Disturbio Salida Seno

zetas_aux = zetas(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

vs_aux = Vs(1,k:-1:(k-(length(bxWm0z)-1)))’;

Page 145: Controlador Adaptativo Robusto por Modelo de ... - UNaM

114 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

zetas(k) = -axWm0z(1,2:length(axWm0z))*zetas_aux + bxWm0z*vs_aux;

%

% Disturbiio Salida Coseno

zetac_aux = zetac(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

vc_aux = Vc(1,k:-1:(k-(length(bxWm0z)-1)))’;

zetac(k) = -axWm0z(1,2:length(axWm0z))*zetac_aux + bxWm0z*vc_aux;

% 5- Actualizacion de los parametros

% Thetas 1

theta1(1,k) = (1-sigma(k-1)*g*Ts)*theta1(1,k-1) - (thetar_est)*Ts*g*zetaw1(1,k-1)*E1(k-1)/m_2(k-1);

theta1(2,k) = (1-sigma(k-1)*g*Ts)*theta1(2,k-1) - (thetar_est)*Ts*g*zetaw1(2,k-1)*E1(k-1)/m_2(k-1);

% Thetas 2

theta2(1,k) = (1-sigma(k-1)*g*Ts)*theta2(1,k-1) - (thetar_est)*Ts*g*zetaw2(1,k-1)*E1(k-1)/m_2(k-1);

theta2(2,k) = (1-sigma(k-1)*g*Ts)*theta2(2,k-1) - (thetar_est)*Ts*g*zetaw2(2,k-1)*E1(k-1)/m_2(k-1);

% Theta y

thetay(k) = (1-sigma(k-1)*g*Ts)*thetay(k-1) - (thetar_est)*Ts*g*zetay(k-1)*E1(k-1)/m_2(k-1);

% Theta r

thetar(k) = (1-sigma(k-1)*g*Ts)*thetar(k-1) - (thetar_est)*Ts*g*zetar(k-1)*E1(k-1)/m_2(k-1);

% Theta s

thetas(k) = (1-sigma(k-1)*g*Ts)*thetas(k-1) - (thetar_est)*Ts*g*zetas(k-1)*E1(k-1)/m_2(k-1);

% Theta c

thetac(k) = (1-sigma(k-1)*g*Ts)*thetac(k-1) - (thetar_est)*Ts*g*zetac(k-1)*E1(k-1)/m_2(k-1);

% 6- Actualizacion de los omegas

omega1(:,k)=Fd*omega1(:,k-1)+qd*u(k-1);

omega2(:,k)=Fd*omega2(:,k-1)+qd*y(k-1);

% 7- Actualizacion de la accion de control

%u(k)=theta1(k)*w1(k) + theta2(k)*w2(k) + thetay(k)*y(k) + thetar(k)*r(k); %u=theta�omega

theta = [theta1(:,k)’ theta2(:,k)’ thetay(k) thetar(k) thetas(k) thetac(k)]’;

u(k) = theta’ * [omega1(:,k)’ omega2(:,k)’ y(k) r(k) Vs(k) Vc(k)]’;

% 8- sigma-modification

normtheta(k)=sqrt(theta’ * theta);

if normtheta(k)<M0

sigma(k)=0;

elseif normtheta(k)>2*M0

sigma(k)=sigma_0;

else

sigma(k)=sigma_0*(normtheta(k)/M0-1);

end

% 9- Erro de rastreamento

e1(k) = y(k) - ym(k);

% 10- Erro aumentado

% 10.1 - Filtrado de u por el modelo de referencia

v_aux = v(1,(k-1):-1:(k-(length(axWm0z)-1)))’;

u_aux = u(1,k:-1:(k-(length(bxWm0z)-1)))’;

v(k) = -axWm0z(1,2:length(axWm0z))*v_aux + bxWm0z*u_aux;

% 10.2- Calculo del error aumentado

E1(k) = e1(k) + theta1(:,k)’ * zetaw1(:,k) + theta2(:,k)’ * zetaw2(:,k) + thetay(k)*zetay(k) + thetar(k)*zetar(k) + thetas(k)*zetas(k) + thetac(k)*zetac(k) - v(k);

% 11- Normalizador

%m_2(k)=1+zetaw1(k)*zetaw1(k)+zetaw2(k)*zetaw2(k)+zetay(k)*zetay(k)+zetar(k)*zetar(k);

zetaw = [zetaw1(:,k)’, zetaw2(:,k)’, zetay(k), zetar(k) zetas(k) zetac(k)]’;

m_2(k) = 1 + zetaw’ * g * zetaw;

tempo(k)=(k-len_a)*Ts; %Vetor tempo

% if(tempo(k) >= 0.08)

% Amp = 0.5;

% elseif(tempo(k) >= 0.04)

% Amp = 2;

% end

end

% delete(WB);

figure;

subplot(3,2,1);

plot(tempo, r, tempo, y, tempo, ym, ’Linewidth’, 2);

grid on;

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

title(’Salida’);

legend(’Referencia’, ’Salida Real’, ’Salida Modelo’);

subplot(3,2,3);

plot(tempo, e1, ’Linewidth’, 2);

xlabel(’Tiempo [seg]’);

title(’Error de Rastreo e_1’);

ylabel(’Amplitud’);

grid on;

Page 146: Controlador Adaptativo Robusto por Modelo de ... - UNaM

D.2. CÓDIGO FUENTE 115

subplot(3,2,5);

plot(tempo, E1, ’Linewidth’, 2);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

title(’Error Aumentado E_1’);

grid on;

subplot(3,2,2);

plot(tempo, u, ’Linewidth’, 2);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

title(’Acción de Control’);

grid on;

subplot(3,2,4);

plot(tempo, normtheta, tempo, M0*ones(1,length(tempo)), ’Linewidth’, 2);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

title(’Norma de \theta’);

legend(’||\theta||’, ’M_0’);

grid on;

subplot(3,2,6);

plot(tempo, sigma, ’Linewidth’, 2);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

title(’Sigma Modification’);

grid on;

figure(’name’,’Parametros’);

subplot(2,4,1);

plot(tempo, theta1(1,:), ’Linewidth’, 2);

title(’\theta_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,2);

plot(tempo, theta1(2,:), ’Linewidth’, 2);

title(’\theta_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,3);

plot(tempo, thetar(1,:), ’Linewidth’, 2);

title(’\theta_r’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,4);

plot(tempo, thetas(1,:), ’Linewidth’, 2);

title(’\theta_s’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,5);

plot(tempo, theta2(1,:), ’Linewidth’, 2);

title(’\theta_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,6);

plot(tempo, theta2(2,:), ’Linewidth’, 2);

title(’\theta_2_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,7);

plot(tempo, thetay(1,:), ’Linewidth’, 2);

title(’\theta_y’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,8);

plot(tempo, thetac(1,:), ’Linewidth’, 2);

title(’\theta_c’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

figure(’name’,’Omegas’);

subplot(2,4,1);

plot(tempo, omega1(1,:));

title(’\omega_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,2);

Page 147: Controlador Adaptativo Robusto por Modelo de ... - UNaM

116 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

plot(tempo, omega1(2,:));

title(’\omega_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,3);

plot(tempo, r);

title(’r’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,4);

plot(tempo, Vs);

title(’V_s’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,5);

plot(tempo, omega2(1,:));

title(’\omega_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,6);

plot(tempo, omega2(2,:));

title(’\omega_2_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,7);

plot(tempo, y)

title(’y’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

subplot(2,4,8);

plot(tempo, Vc);

title(’V_c’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

figure(’name’,’Zetas’);

subplot(2,4,1);

plot(tempo, zetaw1(1,:), ’Linewidth’, 2);

title(’\zeta_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,2);

plot(tempo, zetaw1(2,:), ’Linewidth’, 2);

title(’\zeta_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,3);

plot(tempo, zetar(1,:), ’Linewidth’, 2);

title(’\zeta_r’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,4);

plot(tempo, zetas(1,:), ’Linewidth’, 2);

title(’\zeta_s’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,5);

plot(tempo, zetaw2(1,:), ’Linewidth’, 2);

title(’\zeta_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,6);

plot(tempo, zetaw2(2,:), ’Linewidth’, 2);

title(’\zeta_2_2’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,7);

plot(tempo, zetay(1,:), ’Linewidth’, 2);

title(’\zeta_y’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,8);

plot(tempo, zetac(1,:), ’Linewidth’, 2);

title(’\zeta_c’);

Page 148: Controlador Adaptativo Robusto por Modelo de ... - UNaM

D.2. CÓDIGO FUENTE 117

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

% figure;

% plot(tempo, vg, tempo, Vc, tempo, Vs, ’Linewidth’, 2);

% legend(’vg’, ’Vc’, ’Vs’);

%%

% syms s F11 F12 F21 F22 q1 q2

%

% F=[F11 0; 0 F22]

% q=[q1; q2]

%

% FQs=simplify(inv(s*eye(2)-F)*q)

%

% % FQs =

% %

% % -(F12*q2 - F22*q1 + q1*s)/(F11*s + F22*s - s^2 - F11*F22 + F12*F21)

% % -(F21*q1 - F11*q2 + q2*s)/(F11*s + F22*s - s^2 - F11*F22 + F12*F21)

% %

% % k1 = den(s=1)/num(s=1)

% %

% %

%

%%

% Extracción de los Últimos parámetros

indice = size(theta1, 2);

fprintf(’\n\nThetas 11, 12, 21, 22, y, r, s, c:’);

[theta1(:,indice); theta2(:,indice); thetay(indice); thetar(indice); thetas(indice); thetac(indice)]

fprintf(’\nOmegas: 11, 12, 21, 22:’);

[omega1(:, indice); omega2(:,indice)]

fprintf(’\n\nZetas 11, 12, 21, 22, y, r, s, c:’);

[zetaw1(:,indice); zetaw2(:,indice); zetay(indice); zetar(indice); zetas(indice); zetac(indice)]

fprintf(’\nu_filt:’);

v(indice)

%%

% Para graficas de la tesis

Ts = 1e-4;

z = tf(’z’, Ts);

% Controlador Cid

%numCid = [0.93+0.1 -0.875]; % Implementado

%numCid = [0.25 -0.2375]; % Lucas

%numCid = 0.61835*[1 -0.95];

numCid = [0.2 -(0.2*0.8531)];

denCid = [1 -1];

Cidz = tf(numCid, denCid, Ts);

% Controlador Ci0

%numCi0 = [1.5981 -1.5921];

numCi0 = [1.3892 -1.3096];

denCi0 = [1 -1];

Ci0z = tf(numCi0, denCi0, Ts);

% kCi0 = 2.145958155157495;

% Ni0 = [1 3.786918486074685e+03];

% Di0 = [1 0];

% Ci0 = tf(kCi0*Ni0, Di0)

% Ci0z = c2d(Ci0, Ts, ’zoh’)

% pid(Ci0)

% Malla interna d y q

Gidqza = Gidza(1);

MallaInternadq = Cidz * Gidqza;

CLMIdq = feedback(MallaInternadq, 1);

% Malla Interna 0

Gi0za_1 = Gi0za(1);

MallaInterna0 = Ci0z * Gi0za_1;

CLMI0 = feedback(MallaInterna0, 1);

figure;

bode(MallaInternadq);

Page 149: Controlador Adaptativo Robusto por Modelo de ... - UNaM

118 APÉNDICE D. CÓDIGO FUENTE DEL SCRIPT DE PRUEBA DE CONCEPTO

title(’Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Abierto’);

%xlim(2*pi*[10 5000]);

figure;

bode(CLMIdq);

title(’Respuesta en Frecuencia de las Mallas Internas de Corriente, Ejes d y q a Lazo Cerrado’);

figure;

bode(MallaInterna0);

title(’Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Abierto’);

%xlim(2*pi*[10 5000]);

figure;

bode(CLMI0);

title(’Respuesta en Frecuencia de la Malla Interna de Corriente, Eje 0 a Lazo Cerrado’);

%%

% Estudio Gi0

Ts = 1e-4;

z = tf(’z’, Ts);

A1 = eval(Adq0(1:3,1:3));

B1 = eval(Bdq0(1:3,1:3));

C1 = [0 0 1];

D1 = [0 0 0];

[num1,den1]=ss2tf(A1, B1, C1, D1, 3);

Gi01 = minreal(tf(num1,den1));

Gi01z = c2d(Gi01, Ts, ’zoh’)

Gi01za = Gi01z/z;

figure;

subplot(1,2,1);

rlocus(Gi0za);

subplot(1,2,2);

rlocus(Gi01za);

figure;

subplot(1,2,1);

bode(Gi0za);

subplot(1,2,2);

bode(Gi01za);

Page 150: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice E

Código Fuente para Modelo de Simulink

E.1. Introducción

En este apéndice se muestra el código fuente utilizado para poder correr la simulación del modelo deSimulink de la sección 5.2.2.

E.2. Archivo Controle.m

function [sys,x0,str,ts] = Controle(t,x,u,flag)

switch flag,

%%%%%%%%%%%%%%%%%%

% Initialization %

%%%%%%%%%%%%%%%%%%

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

%%%%%%%%%%%%%%%

% Derivatives %

%%%%%%%%%%%%%%%

case 1,

sys = []; % mdlDerivatives(t,x,u,A,B,C,D);

%%%%%%%%%%

% Update %

%%%%%%%%%%

case 2,

sys = []; % mdlUpdate(t,x,u,A,B,C,D);

%%%%%%%%%%

% Output %

%%%%%%%%%%

case 3,

sys = mdlOutputs(t,x,u);

%%%%%%%%%%%%%

% Terminate %

%%%%%%%%%%%%%

case 9,

sys = []; % Do nothing

119

Page 151: Controlador Adaptativo Robusto por Modelo de ... - UNaM

120 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

otherwise

%error([’Unhandled flag = ’,num2str(flag)]);

DAStudio.error(’Simulink:blocks:unhandledFlag’, num2str(flag));

end

%

%=============================================================================

% mdlInitializeSizes

% Return the sizes, initial conditions, and sample times for the S-function.

%=============================================================================

function [sys,x0,str,ts] = mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates = 0;

sizes.NumDiscStates = 0;

sizes.NumOutputs = 31 + 11 + 2 + 9 + 6;

sizes.NumInputs = 13;

sizes.DirFeedthrough = 3;

sizes.NumSampleTimes = 1; % at least one sample time is needed

sys = simsizes(sizes);

x0 =[];

str = [];

ts = 1/10000;

%

%=============================================================================

% mdlOutputs

% Return the output vector for the S-function

%=============================================================================

function sys = mdlOutputs(t,~,u)

%variaveis do filtro de Kalman para obtenção dos sinais de sincronismo

persistent P11alfa P12alfa P22alfa P11alfa_ast P12alfa_ast P22alfa_ast sinFK cosFK

persistent x1alfa_ast x2alfa_ast x1alfa_hat x2alfa_hat K1alfa K2alfa div_kalman_alfa

%variaveis do filtro de Kalman para obten��o dos sinais de sincronismo do

%eixo 0

persistent P11alfa0 P12alfa0 P22alfa0 P11alfa_ast0 P12alfa_ast0 P22alfa_ast0

persistent Vs0 Vs1 Vs2 Vs3 Vc0 Vc1 Vc2 Vc3

persistent sinFK0 sinFK01 sinFK02 sinFK03 cosFK0 cosFK01 cosFK02 cosFK03

persistent x1alfa_ast0 x2alfa_ast0 x1alfa_hat0 x2alfa_hat0 K1alfa0 K2alfa0 div_kalman_alfa0

% Variáveis do controle DSTATCOM

% Barramento CC:

% ==============

% Malha Interna PI

% ----------------

persistent erro_id erro_id1 ud

% Malha Externa PI

% ----------------

persistent id_ref

persistent vcc_ref erro_vcc erro_vcc1

%

% Barramento CA:

% ==============

% Malha Interna PI

% ----------------

persistent erro_iq erro_iq1 uq

% Malha Externa PI

% ----------------

persistent iq_ref

persistent vd_ref vd1 vd2 vd3

persistent erro_vd erro_vd1

%

%

% Controle Desbalanço:

% ====================

% Malha Interna PI

% ----------------

persistent erro_i0 erro_i01 u0

% Malha Externa PI

% ----------------

% persistent i0_ref

% persistent v0_ref v01 v02 v03

% persistent erro_v0 erro_v01

% Malha Externa RMRAC

% -------------------

% Referencia

persistent v0_ref v0_ref1 v0_ref2 v0_ref3 v0 v01 v02 v03

% Modelo

persistent ym0 ym01 ym02 ym03 denWm0 numWm0

% Salida

Page 152: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.2. ARCHIVO CONTROLE.M 121

persistent i0_ref i0_ref1 i0_ref2 i0_ref3

% Parametros Theta1

persistent theta110 theta1101 theta1102 theta1103

persistent theta120 theta1201 theta1202 theta1203

% Parametros Theta2

persistent theta210 theta2101 theta2102 theta2103

persistent theta220 theta2201 theta2202 theta2203

% Parametros Thetay

persistent thetay0 thetay01 thetay02 thetay03

% Parametros Thetar

persistent thetar0_sign

persistent thetar0 thetar01 thetar02 thetar03

% Parametros Thetas

persistent thetas0 thetas01 thetas02 thetas03

% Parametros Thetac

persistent thetac0 thetac01 thetac02 thetac03

% Omega1

persistent omega110 omega1101 omega1102 omega1103

persistent omega120 omega1201 omega1202 omega1203

% Omega2

persistent omega210 omega2101 omega2102 omega2103

persistent omega220 omega2201 omega2202 omega2203

% Filtro Auxiliar Omega 1

persistent zetaw110 zetaw1101 zetaw1102 zetaw1103

persistent zetaw120 zetaw1201 zetaw1202 zetaw1203

% Filtro Auxiliar Omega 2

persistent zetaw210 zetaw2101 zetaw2102 zetaw2103

persistent zetaw220 zetaw2201 zetaw2202 zetaw2203

% Filtro Auxiliar Salida (y = v0)

persistent zetay0 zetay01 zetay02 zetay03

% Filtro Auxiliar Referencia

persistent zetar0 zetar01 zetar02 zetar03

% Filtro Auxiliar Disturbio seno

persistent zetas0 zetas01 zetas02 zetas03

% Filtro Auxiliar Disturbio coseno

persistent zetac0 zetac01 zetac02 zetac03

% Filtro de accion de control (u = i0_ref) por el Modelo de Referencia

persistent u_filt0 u_filt01 u_filt02 u_filt03

% Sigma Modification

persistent sigma0 sigma01 M00 sigma_00 normtheta0

% Error aumentado y normalizador

persistent e10 E10 E101 m_20 m_201

% Ganancia de adaptacion

persistent gama0

% Filtro F,d

persistent F0 q0

% Variáveis do processamento das correntes de carga

persistent idl2 idl1 idl idl_f2 idl_f1 idl_cc idl_ca;

persistent iql2 iql1 iql iql_f2 iql_f1 iql_cc iql_ca;

persistent i0l2 i0l1 i0l i0l_f2 i0l_f1 i0l_cc i0l_ca;

% Cálculo de Potência

persistent pot_p_i pot_p1 pot_p2 pot_p_filt2 pot_p_filt1 pot_p_filt

persistent pot_q_i pot_q1 pot_q2 pot_q_filt2 pot_q_filt1 pot_q_filt

persistent potl_p_i potl_p1 potl_p2 potl_p_filt2 potl_p_filt1 potl_p_filt

persistent potl_q_i potl_q1 potl_q2 potl_q_filt2 potl_q_filt1 potl_q_filt

persistent potg_p_i potg_p1 potg_p2 potg_p_filt2 potg_p_filt1 potg_p_filt

persistent potg_q_i potg_q1 potg_q2 potg_q_filt2 potg_q_filt1 potg_q_filt

% Variáveis do algorítmo de estimação de frequência

persistent Ku Kw r_w w f_est erro_w Xw1 Xw2 Xw1_1 Xw2_1 eps yw

% Variáveis do controle de frequência

persistent P_ref Pload erro_P uP erro_P1 habilitauP

% *********************************************************************

% *** Ingressa só a primeira vez, para inicializar as variaveis ***

% *********************************************************************

if t<5e-6

Ts = 1/10000;

%Filtro de Kalman

P11alfa = 0; P12alfa = 0; P22alfa = 0;

P11alfa_ast = 1; P12alfa_ast = 0; P22alfa_ast = 1;

x1alfa_ast = 1; x2alfa_ast = 1;

x1alfa_hat = 0; x2alfa_hat = 0;

K1alfa = 0; K2alfa = 0;

Page 153: Controlador Adaptativo Robusto por Modelo de ... - UNaM

122 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

div_kalman_alfa = 0;

sinFK = 1;

cosFK= 1;

%Filtro de Kalman para Disturbio eje 0

P11alfa0 = 0; P12alfa0 = 0; P22alfa0 = 0;

P11alfa_ast0 = 1; P12alfa_ast0 = 0; P22alfa_ast0 = 1;

x1alfa_ast0 = 1; x2alfa_ast0 = 1;

x1alfa_hat0 = 0; x2alfa_hat0 = 0;

K1alfa0 = 0; K2alfa0 = 0;

div_kalman_alfa0 = 0;

sinFK0 = 1; sinFK01 = 1; sinFK02 = 1; sinFK03 = 1;

cosFK0= 1; cosFK01= 1; cosFK02= 1; cosFK03= 1;

Vs0 = 0; Vs1 = 0; Vs2 = 0; Vs3 = 0;

Vc0 = 0; Vc1 = 0; Vc2 = 0; Vc3 = 0;

% Variáveis do controle de TENSÃO

% Barramento CC - Malha Interna PI

erro_id = 0.;

erro_id1 = 0.;

ud = 0.55;

% Barramento CC - Malha Externa PI

id_ref = 0.;

vcc_ref = 0.9166667;

erro_vcc = 0.;

erro_vcc1 = 0.;

%

% Barramento CA - Malha Interna PI

erro_iq = 0.;

erro_iq1 = 0.;

uq = 0.;

% Barramento CA - Malha Externa PI

iq_ref = 0.;

vd_ref = 0.6333333;

erro_vd = 0.;

erro_vd1 = 0.;

%

%

% Controle Desbalanço - Malha Interna PI

erro_i0 = 0.;

erro_i01 = 0.;

u0 = 0.;

% % Controle Desbalanço - Malha Externa PI

% i0_ref = 0.;

% v0_ref = 0;

% erro_v0 = 0.;

% erro_v01 = 0.;

% Controle Desbalanço - Malha Externa RMRAC

i0_ref = 0.; i0_ref1 = 0.;

i0_ref2 = 0.; i0_ref3 = 0.;

v0_ref = 0.; v0_ref1 = 0.;

v0_ref2 = 0.; v0_ref3 = 0.;

v0 = 0.; v01 = 0.; v02 = 0.; v03 = 0.;

ym0 = 0.; ym01 = 0.; ym02 = 0.; ym03 = 0.;

% Establecemos el modelo

% Ultimo modelo usado al 24/10/2019...

% numWm0 = [0 0.032642848380122 0.007261137316101 -0.020277446295261];

% denWm0 = [1 -2.300010681775924 1.833641022296339 -0.514018934118895];

% %

% %numWm0 = [0 0.001303413288963 0.004420084785634 0.000934470711176];

% %denWm0 = [1 -2.408631031532650 1.929297760062102 -0.514018934118893];

% Wm0 = tf(numWm0, denWm0);

% Wm0z = c2d(Wm0, Ts, ’zoh’);

% [numWm0, denWm0] = tfdata(Wm0z, ’v’);

% % Modelo discreto... ultimo usado el 30/10/2019

% numWm0 = [0 0.018154827047512 -0.001491394076333 -0.015220577377420];

% denWm0 = [1 -2.597485562956439 2.241518057942447 -0.642590743841666];

numWm0 = [0 0.019673743406372 -0.002700960884387 -0.016729992762769];

denWm0 = [1 -2.572932346691126 2.196486475713254 -0.623312728610100];

% numWm0 = [0 0.004487369349879 -0.000081962538885 -0.004036625119574];

% denWm0 = [1 -2.778172977367388 2.572307209953931 -0.793766141469034];

% numWm0 = [0 0.031122844488376 -0.003527308998308 -0.025163176453796];

% denWm0 = [1 -2.507912172967741 2.086735949225270 -0.576392519289438];

% Parametros Theta1

valorInicial = 0; %0.2; %1.5; %0.366132228523853;

theta110 = valorInicial; theta1101 = valorInicial; theta1102 = valorInicial; theta1103 = valorInicial;

Page 154: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.2. ARCHIVO CONTROLE.M 123

valorInicial = 0; %-0.278928698108048;

theta120 = valorInicial; theta1201 = valorInicial; theta1202 = valorInicial; theta1203 = valorInicial;

% Parametros Theta2

valorInicial = 0; %-1.5; %-0.214634376487961;

theta210 = valorInicial; theta2101 = valorInicial; theta2102 = valorInicial; theta2103 = valorInicial;

%valorInicial = 0.163508531391644;

theta220 = valorInicial; theta2201 = valorInicial; theta2202 = valorInicial; theta2203 = valorInicial;

% Parametros Thetay

valorInicial = 0; %-0.252058160962437;

thetay0 = valorInicial; thetay01 = valorInicial; thetay02 = valorInicial; thetay03 = valorInicial;

% Parametros Thetar

valorInicial = 0;

thetar0 = valorInicial; thetar01 = valorInicial; thetar02 = valorInicial; thetar03 = valorInicial;

thetar0_sign = sign(1); % sign(km/kp)

% Parametros Thetas

valorInicial = 0; %0.505174619630085;

thetas0 = valorInicial; thetas01 = valorInicial; thetas02 = valorInicial; thetas03 = valorInicial;

% Parametros Thetac

valorInicial = 0; %0.506904051075251;

thetac0 = valorInicial; thetac01 = valorInicial; thetac02 = valorInicial; thetac03 = valorInicial;

% Omega1

valorInicial = 0; %0.120171527805970;

omega110 = valorInicial; omega1101 = valorInicial; omega1102 = valorInicial; omega1103 = valorInicial;

%valorInicial = -0.091446809130260;

omega120 = valorInicial; omega1201 = valorInicial; omega1202 = valorInicial; omega1203 = valorInicial;

% Omega2

%valorInicial = -0.000066951359517;

omega210 = valorInicial; omega2101 = valorInicial; omega2102 = valorInicial; omega2103 = valorInicial;

%valorInicial = 0.000050917151763;

omega220 = valorInicial; omega2201 = valorInicial; omega2202 = valorInicial; omega2203 = valorInicial;

% Filtro Auxiliar Omega 1

valorInicial = 0; %0.118374670345800;

zetaw110 = valorInicial; zetaw1101 = valorInicial; zetaw1102 = valorInicial; zetaw1103 = valorInicial;

%valorInicial = -0.090076211640046;

zetaw120 = valorInicial; zetaw1201 = valorInicial; zetaw1202 = valorInicial; zetaw1203 = valorInicial;

% Filtro Auxiliar Omega 2

%valorInicial = -0.000065401883176;

zetaw210 = valorInicial; zetaw2101 = valorInicial; zetaw2102 = valorInicial; zetaw2103 = valorInicial;

%valorInicial = 0.000049735688057;

zetaw220 = valorInicial; zetaw2201 = valorInicial; zetaw2202 = valorInicial; zetaw2203 = valorInicial;

% Filtro Auxiliar Salida

%valorInicial = -0.000076902510700;

zetay0 = valorInicial; zetay01 = valorInicial; zetay02 = valorInicial; zetay03 = valorInicial;

% Filtro Auxiliar Referencia

%valorInicial = 0;

zetar0 = valorInicial; zetar01 = valorInicial; zetar02 = valorInicial; zetar03 = valorInicial;

% Filtro Auxiliar Disturbio Seno

valorInicial = 0; %-0.002191441333879;

zetas0 = valorInicial; zetas01 = valorInicial; zetas02 = valorInicial; zetas03 = valorInicial;

% Filtro Auxiliar Disturbio Coseno

valorInicial = 0; %0.141500450353646;

zetac0 = valorInicial; zetac01 = valorInicial; zetac02 = valorInicial; zetac03 = valorInicial;

% Filtrado de u por el modelo de referencia

valorInicial = 0; %0.139127205102310;

u_filt0 = valorInicial; u_filt01 = valorInicial; u_filt02 = valorInicial; u_filt03 = valorInicial;

% Sigma Modification

sigma0 = 0.; sigma01 = 0.;

M00 = 0.7;

sigma_00 = 0.1;

normtheta0 = 0.;

% Error aumentado y normalizador

e10 = 0.; E10 = 0.; E101 = 0.;

m_20 = 1; m_201 = 1;

% Ganancia de adaptacion

gama0 = 100; % Dejar en 100 - 90 OK

% Filtro F,q

fc = -10000; %30000 OK

f1 = 2*pi*fc;

% F = f1*[1 0.1; 2 1];

% q = -f1*[1;1];

F = f1*[1 0.2; 1 1];

q = -f1*[1.2; 2];

Cr=ctrb(F,q); % Obtiene la matriz de controlabilidad

rC=rank(Cr);

if(rC ~= size(Cr,1)) % size(Cr,1) es para obtener la dimension de la matriz Cr, ya que la misma es cuadrada solo se necesita un valor

fprintf( ’Valores de F y q NO CONTROLABLES’ );

else

fprintf( ’OK. Par F,q CONTROLABLE.\r\n’ );

end

% Discretizacion para usar w1(k+1) = Fd*w1(k)+q*u(k)

F0=exp(F*Ts);

q0=inv(F)*(exp(F*Ts)-1)*q;

% F0=eye(2)-(F*Ts);

Page 155: Controlador Adaptativo Robusto por Modelo de ... - UNaM

124 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

% q0=q*Ts;

%Vari�veis do processamento das correntes de carga

idl2 = 0;

idl1 = 0;

idl_f2 = 0;

idl_f1 = 0;

iql2 = 0;

iql1 = 0;

iql_f2 = 0;

iql_f1 = 0;

i0l2 = 0;

i0l1 = 0;

i0l_f2 = 0;

i0l_f1 = 0;

% Vari�veis do C�lculo da Pot�ncia Instant�nea

pot_q1=0;

pot_q2=0;

pot_q_filt2=0;

pot_q_filt1=0;

pot_p1=0;

pot_p2=0;

pot_p_filt2=0;

pot_p_filt1=0;

potl_q1=0;

potl_q2=0;

potl_q_filt2=0;

potl_q_filt1=0;

potl_p1=0;

potl_p2=0;

potl_p_filt2=0;

potl_p_filt1=0;

potg_q1=0;

potg_q2=0;

potg_q_filt2=0;

potg_q_filt1=0;

potg_p1=0;

potg_p2=0;

potg_p_filt2=0;

potg_p_filt1=0;

% Vari�veis do algor�tmo de estima��o de frequ�ncia

Ku = 10;

Kw = 0.052;

r_w = 0; % refer�ncia

w = 2*pi*60; % frequencia identificada em rad

f_est = 60; % frequencia identificada em Hz

erro_w = 0; % erro de frequencia

Xw1 = 0; % frequencia identificada

Xw2 = 0; % frequencia identificada

Xw1_1 = 0;

Xw2_1 = 0;

eps = 0; % erro modificado

yw = 0; % sa�da do estimador de estados

% Vari�veis do Controle de Frequ�ncia

P_ref = 0;

Pload = 0;

erro_P = 0;

erro_P1 = 0;

uP = 0;

habilitauP = 0;

end

vafase = u(1); % tensões de fase em p.u.

vbfase = u(2); % tensões de fase em p.u.

vcfase = u(3); % tensões de fase em p.u.

ia = u(4); % correntes do inversor

ib = u(5); % correntes do inversor

ic = u(6); % correntes do inversor

vcc_adc = u(7); % tensão do barramento CC do DSTATCOM

Page 156: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.2. ARCHIVO CONTROLE.M 125

ial = u(8); % correntes de carga

ibl = u(9); % correntes de carga

icl = u(10); % correntes de carga

iag = u(11); % correntes do gerador

ibg = u(12); % correntes do gerador

icg = u(13); % correntes do gerador

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% CONTROLE DA CARGA DO ELC %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if(t<2.0)

if((vafase>0.15)||(vbfase>0.15)||(vcfase>0.15))

habilitauP = 1;

end

if(habilitauP==1)

% Partida suave

uP = uP + 0.00007;

if(uP>0.98)

uP=0.98;

end

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% CONTROLE DE FREQU�NCIA A PARTIR DO BARRAMENTO CC DO DSTATCOM %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if t > 5

P_ref = 60;

Pload = f_est;

erro_P = P_ref - Pload;

uP = uP - 0.392*erro_P + 0.3919*erro_P1;

if uP > 1, uP = 1; end

if uP < 0, uP = 0; end

erro_P1 = erro_P;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% OBTENÇÃO DOS SINAIS DE SINCRONISMO - FILTRO DE KALMAN %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Ts = 1/10000;

w = 2*pi*f_est;

A_1 = cos(w*Ts);

A_2 = sin(w*Ts);

aa = (cos(w*Ts))^2;

bb = (sin(w*Ts))^2;

ab = cos(w*Ts)*sin(w*Ts);

a2b = cos(w*Ts)*2*sin(w*Ts);

div_kalman_alfa = 1./(P11alfa_ast + 1);

% Cálculo do vetor de ganhos de Kalman

K1alfa = P11alfa_ast*div_kalman_alfa;

K2alfa = P12alfa_ast*div_kalman_alfa;

% Calculo dos estados estimados

x1alfa_hat = x1alfa_ast + K1alfa*(vafase - x1alfa_ast);

x2alfa_hat = x2alfa_ast + K2alfa*(vafase - x1alfa_ast);

% Calculo da matriz de covariáncias

P11alfa = (1 - K1alfa)*P11alfa_ast;

P12alfa = (1 - K1alfa)*P12alfa_ast;

P22alfa = -K2alfa*P12alfa_ast + P22alfa_ast;

A = sqrt(x1alfa_ast^2 + x2alfa_ast^2);

sinFK = -x2alfa_ast/A;

cosFK = x1alfa_ast/A;

% Estimativa dos estados para a próxima iteração

x1alfa_ast = A_1*x1alfa_hat + A_2*x2alfa_hat;

x2alfa_ast = -A_2*x1alfa_hat + A_1*x2alfa_hat;

% Estimativa da matriz de covariáncias para a próxima iteração (projeição!)

P11alfa_ast = aa*P11alfa + a2b*P12alfa + bb*P22alfa + 0.01;

P12alfa_ast = aa*P12alfa + ab*(P22alfa - P11alfa) - bb*P12alfa + 0;

Page 157: Controlador Adaptativo Robusto por Modelo de ... - UNaM

126 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

P22alfa_ast = aa*P22alfa - a2b*P12alfa + bb*P11alfa + 0.01;

sinSS = sinFK;

cosSS = cosFK;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% OBTENÇÃO DOS SINAIS DE SINCRONISMO - FILTRO DE KALMAN - AIXO 0 %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

w = 2*pi*f_est;

A_1 = cos(w*Ts);

A_2 = sin(w*Ts);

aa = (cos(w*Ts))^2;

bb = (sin(w*Ts))^2;

ab = cos(w*Ts)*sin(w*Ts);

a2b = cos(w*Ts)*2*sin(w*Ts);

div_kalman_alfa0 = 1./(P11alfa_ast0 + 1);

% Cálculo do vetor de ganhos de Kalman

K1alfa0 = P11alfa_ast0*div_kalman_alfa0;

K2alfa0 = P12alfa_ast0*div_kalman_alfa0;

% Cálculo dos estados estimados

x1alfa_hat0 = x1alfa_ast0 + K1alfa0*(v0 - x1alfa_ast0);

x2alfa_hat0 = x2alfa_ast0 + K2alfa0*(v0 - x1alfa_ast0);

% Cálculo da matriz de covariancias

P11alfa0 = (1 - K1alfa0)*P11alfa_ast0;

P12alfa0 = (1 - K1alfa0)*P12alfa_ast0;

P22alfa0 = -K2alfa0*P12alfa_ast0 + P22alfa_ast0;

A = sqrt(x1alfa_ast0^2 + x2alfa_ast0^2);

% Obtenemos las senhales con amplitud correspondiente

Vs0 = -x2alfa_ast0;

Vc0 = x1alfa_ast0;

% Vc0 = 0; %x1alfa_ast0; % Coseno

% Vs0 = 0;

% Amplitud unitaria

sinFK0 = -x2alfa_ast0/A;

cosFK0 = x1alfa_ast0/A;

% Estimativa dos estados para a próxima iteração

x1alfa_ast0 = A_1*x1alfa_hat0 + A_2*x2alfa_hat0;

x2alfa_ast0 = -A_2*x1alfa_hat0 + A_1*x2alfa_hat0;

% Estimativa da matriz de covariâncias para a próxima iteração (projecção!)

P11alfa_ast0 = aa*P11alfa0 + a2b*P12alfa0 + bb*P22alfa0 + 0.01;

P12alfa_ast0 = aa*P12alfa0 + ab*(P22alfa0 - P11alfa0) - bb*P12alfa0 + 0;

P22alfa_ast0 = aa*P22alfa0 - a2b*P12alfa0 + bb*P11alfa0 + 0.01;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% ALGORITMO DE ESTIMAÇÃO DE FREQUÊNCIA %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

r_w = sinFK;

erro_w = (r_w + Xw1 - cos(w*Ts)*Xw2)/(1+Kw);

Xw1_1 = Xw2;

Xw2_1 = -Xw1 + 2*Xw2*cos(w*Ts) + Kw*erro_w;

yw = -Xw1 + Xw2*cos(w*Ts) + Kw*erro_w;

eps=Kw*sin(w*Ts)*Xw2*erro_w/((sin(w*Ts)*Xw2)^2+(yw)^2);

Xw1 = Xw1_1;

Xw2 = Xw2_1;

w = w - Ku*eps;

f_est = w/(2*pi);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% TRANSFORMAÇÕES (sinSS, cosSS) %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Transformação das tensões de fase p/ tensões dq

vd=(sqrt(6)/3*cosSS)*vafase + (-sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*vbfase - (sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*vcfase;

vq=(-sqrt(6)/3*sinSS)*vafase + (sqrt(6)/6*sinSS+sqrt(2)/2*cosSS)*vbfase + (sqrt(6)/6*sinSS-sqrt(2)/2*cosSS)*vcfase;

v0=(sqrt(3)/3)*vafase + (sqrt(3)/3)*vbfase + (sqrt(3)/3)*vcfase;

Page 158: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.2. ARCHIVO CONTROLE.M 127

% Transformação das correntes de fase p/ correntes dq0

id=(sqrt(6)/3*cosSS)*ia + (-sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*ib - (sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*ic;

iq=(-sqrt(6)/3*sinSS)*ia + (sqrt(6)/6*sinSS+sqrt(2)/2*cosSS)*ib + (sqrt(6)/6*sinSS-sqrt(2)/2*cosSS)*ic;

i0=(sqrt(3)/3)*ia + (sqrt(3)/3)*ib + (sqrt(3)/3)*ic;

% Transformação das correntes de fase p/ correntes dq0

idl=(sqrt(6)/3*cosSS)*ial + (-sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*ibl - (sqrt(6)/6*cosSS+sqrt(2)/2*sinSS)*icl;

iql=(-sqrt(6)/3*sinSS)*ial + (sqrt(6)/6*sinSS+sqrt(2)/2*cosSS)*ibl + (sqrt(6)/6*sinSS-sqrt(2)/2*cosSS)*icl;

i0l=(sqrt(3)/3)*ial + (sqrt(3)/3)*ibl + (sqrt(3)/3)*icl;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% PROCESSAMENTO DAS CORRENTES DE CARGA %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

idl_cc = 1.99685348287557*idl_f1 - 0.996863336984954*idl_f2 + 0.00000164364213907804*idl + 0.00000656940490266780*idl1 + 0.00000164106233842628*idl2;

idl2 = idl1;

idl1 = idl;

idl_f2 = idl_f1;

idl_f1 = idl_cc;

idl_ca = idl - idl_cc;

%///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

iql_cc = 1.99685348287557*iql_f1 - 0.996863336984954*iql_f2 + 0.00000164364213907804*iql + 0.00000656940490266780*iql1 + 0.00000164106233842628*iql2;

iql2 = iql1;

iql1 = iql;

iql_f2 = iql_f1;

iql_f1 = iql_cc;

iql_ca = iql - iql_cc;

%///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

i0l_cc = 1.99685348287557*i0l_f1 - 0.996863336984954*i0l_f2 + 0.00000164364213907804*i0l + 0.00000656940490266780*i0l1 + 0.00000164106233842628*i0l2;

i0l2 = i0l1;

i0l1 = i0l;

i0l_f2 = i0l_f1;

i0l_f1 = i0l_cc;

i0l_ca = i0l - i0l_cc;

inl = 20*(ial + ibl + icl);

in = 20*(ia + ib + ic);

if t > 2 % Entra o Controle, tem que coincidir com o tempo de inhibicao do bloco comando controles trifasico

%% CONTROLE DA TENSÃO DO BARRAMENTO CC

vcc_ref = 1.1;

%%%%%%%%% Malha externa de tensão

erro_vcc = vcc_ref^2 - vcc_adc^2;

%id_ref = id_ref - 1*erro_vcc + 0.999*erro_vcc1; % Controlador OK

id_ref = id_ref - 1.7*erro_vcc + 1.6966*erro_vcc1; % Ultimo usado 11/11/2019

erro_vcc1 = erro_vcc;

%%%%%%%%% Malha interna de corrente

%Cidq_b1 = 0.93+0.1; Cidq_b0 = -0.875; % OK - Desbalance menor a 2% %Ultimo usado 11/11/2019

%Cidq_b1 = 0.25504; Cidq_b0 = -(0.9567*Cidq_b1); % OK - 20191028

%Cidq_b1 = 0.24569; Cidq_b0 = -(0.9028*Cidq_b1);

%Cidq_b1 = 0.51339; Cidq_b0 = -(0.9911*Cidq_b1);

%Cidq_b1 = 0.25; Cidq_b0 = -(0.87*Cidq_b1); % OK - 20191029

%Cidq_b1 = 0.252280521430226; Cidq_b0 = -0.231156910346312;

Cidq_b1 = 0.2523; Cidq_b0 = -0.2316;

erro_id = (id_ref + idl_ca) - id;

ud = ud + Cidq_b1*erro_id + Cidq_b0*erro_id1;

erro_id1 = erro_id;

%% CONTROLE DA TENSÃO NOS TERMINAIS DO INVERSOR

vd_ref = 0.633333333; %(0.6333333/4)*square(2*pi*0.5*t)+(0.6333333/2); % 380V/600V;

%%%%%%%%% Malha externa de tensao PI

erro_vd = vd_ref - vd;

iq_ref = iq_ref - 0.5*erro_vd + 0.485*erro_vd1;

%iq_ref = iq_ref - 0.396211850978893*erro_vd + 0.384672473461999*erro_vd1;

erro_vd1 = erro_vd;

%%%%%%%%% Malha interna de corrente

erro_iq = (iq_ref + iql_ca) - iq;

Page 159: Controlador Adaptativo Robusto por Modelo de ... - UNaM

128 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

uq = uq + Cidq_b1*erro_iq + Cidq_b0*erro_iq1;

erro_iq1 = erro_iq;

%% CONTROLE DO EIXO 0

v0_ref = 0; %0.01*(cosFK0); %(5/600)*sin(2*pi*f_est*t);

if t<6

u0=0;

else

% %% Controlador PI

% %%%%%%%%% Malha externa de tens�o

% erro_v0 = v0_ref - v0;

% i0_ref = i0_ref + 1.68*erro_v0 - 1.56*erro_v01;

% erro_v01 = erro_v0;

%

% %%%%%%%% Malha interna de corrente

% erro_i0 = (i0_ref + i0l) - i0;

% u0 = u0 + 2.598100*erro_i0 - 2.572119*erro_i01;

% %u0 = u0 + 1.598100*erro_i0 - 1.592100*erro_i01;

% %u0 = u0 + 1*erro_i0 - 0.99*erro_i01;

% erro_i01 = erro_i0;

%

% if t<6,

% u0 =0;

% end

%%%%%%%%% Malha externa de tens�o RMRAC

% 3- Actualizacion de la salida del modelo

ym0 = -denWm0(2)*ym01-denWm0(3)*ym02-denWm0(4)*ym03+numWm0(1)*v0_ref+numWm0(2)*v0_ref1+numWm0(3)*v0_ref2+numWm0(4)*v0_ref3;

% 4- Actualizacion de Filtros auxiliares

zetaw110 = -denWm0(2)*zetaw1101-denWm0(3)*zetaw1102-denWm0(4)*zetaw1103+numWm0(2)*omega1101+numWm0(3)*omega1102+numWm0(4)*omega1103;

zetaw120 = -denWm0(2)*zetaw1201-denWm0(3)*zetaw1202-denWm0(4)*zetaw1203+numWm0(2)*omega1201+numWm0(3)*omega1202+numWm0(4)*omega1203;

zetaw210 = -denWm0(2)*zetaw2101-denWm0(3)*zetaw2102-denWm0(4)*zetaw2103+numWm0(2)*omega2101+numWm0(3)*omega2102+numWm0(4)*omega2103;

zetaw220 = -denWm0(2)*zetaw2201-denWm0(3)*zetaw2202-denWm0(4)*zetaw2203+numWm0(2)*omega2201+numWm0(3)*omega2202+numWm0(4)*omega2203;

zetay0 = -denWm0(2)*zetay01 -denWm0(3)*zetay02 -denWm0(4)*zetay03 +numWm0(2)*v01 +numWm0(3)*v02 +numWm0(4)*v03;

zetar0 = -denWm0(2)*zetar01 -denWm0(3)*zetar02 -denWm0(4)*zetar03 +numWm0(2)*v0_ref1 +numWm0(3)*v0_ref2 +numWm0(4)*v0_ref3;

zetas0 = -denWm0(2)*zetas01 -denWm0(3)*zetas02 -denWm0(4)*zetas03 +numWm0(2)*Vs1 +numWm0(3)*Vs2 +numWm0(4)*Vs3;

zetac0 = -denWm0(2)*zetac01 -denWm0(3)*zetac02 -denWm0(4)*zetac03 +numWm0(2)*Vc1 +numWm0(3)*Vc2 +numWm0(4)*Vc3;

% 5- Actualizacion de los Parametros

extra = 1;

theta110 = (1-sigma01*gama0*Ts)*theta1101 - (thetar0_sign)*extra*Ts*gama0*zetaw1101*E101/m_201;

theta120 = (1-sigma01*gama0*Ts)*theta1201 - (thetar0_sign)*extra*Ts*gama0*zetaw1201*E101/m_201;

theta210 = (1-sigma01*gama0*Ts)*theta2101 - (thetar0_sign)*extra*Ts*gama0*zetaw2101*E101/m_201;

theta220 = (1-sigma01*gama0*Ts)*theta2201 - (thetar0_sign)*extra*Ts*gama0*zetaw2201*E101/m_201;

thetay0 = (1-sigma01*gama0*Ts)*thetay01 - (thetar0_sign)*extra*Ts*gama0*zetay01*E101/m_201;

thetar0 = (1-sigma01*gama0*Ts)*thetar01 - (thetar0_sign)*extra*Ts*gama0*zetar01*E101/m_201;

thetas0 = (1-sigma01*gama0*Ts)*thetas01 - (thetar0_sign)*extra*Ts*gama0*zetas01*E101/m_201;

thetac0 = (1-sigma01*gama0*Ts)*thetac01 - (thetar0_sign)*extra*Ts*gama0*zetac01*E101/m_201;

% 6- Actualizacion de los Omegas

omega110 = F0(1,1)*omega1101+F0(1,2)*omega1201+q0(1)*i0_ref1;

omega120 = F0(2,1)*omega1101+F0(2,2)*omega1201+q0(2)*i0_ref1;

omega210 = F0(1,1)*omega2101+F0(1,2)*omega2201+q0(1)*v01;

omega220 = F0(2,1)*omega2101+F0(2,2)*omega2201+q0(2)*v01;

% 7- Actualizacion de la accion de control

i0_ref = theta110*omega110 + theta120*omega120 + theta210*omega210 + theta220*omega220 + thetay0*v0 + thetar0*v0_ref + thetas0*Vs0 + thetac0*Vc0;

% 8- sigma-modification

normtheta0 = sqrt(theta110*theta110+theta120*theta120+theta210*theta210+theta220*theta220+thetay0*thetay0+thetar0*thetar0+thetas0*thetas0+thetac0*thetac0);

if normtheta0<M00

sigma0=0;

elseif normtheta0>2*M00

sigma0=sigma_00;

else

sigma0=sigma_00*(normtheta0/M00-1);

end

% 9- Erro de rastreamento

e10 = v0 - ym0;

% 10- Erro aumentado

% 10.1 - Filtrado de u por el modelo de referencia

u_filt0 = -denWm0(2)*u_filt01-denWm0(3)*u_filt02-denWm0(4)*u_filt03+numWm0(2)*i0_ref1+numWm0(3)*i0_ref2+numWm0(4)*i0_ref3;

% 10.2- Calculo del error aumentado

E10 = e10 + theta110*zetaw110 + theta120*zetaw120 + theta210*zetaw210 + theta220*zetaw220 + thetay0*zetay0 + thetar0*zetar0 + thetas0*zetas0 + thetac0*zetac0 - u_filt0;

% 11- Normalizador

m_20 = 1 + zetaw110*gama0*zetaw110 + zetaw120*gama0*zetaw120 + zetaw210*gama0*zetaw210 + zetaw220*gama0*zetaw220 + zetay0*gama0*zetay0 + zetar0*gama0*zetar0 + zetas0*gama0*zetas0 + zetac0*gama0*zetac0;

% m_20 = 1 + zetaw110*zetaw110 + zetaw120*zetaw120 + zetaw210*zetaw210 + zetaw220*zetaw220 + zetay0*zetay0 + zetar0*zetar0 + zetas0*zetas0 + zetac0*zetac0;

% m_20 = 1 + omega110*omega110 + omega120*omega120 + omega210*omega210 + omega220*omega220 + v0*v0 + v0_ref*v0_ref + sinFK0*sinFK0 + cosFK0*cosFK0;

% m_20 = 1 + omega110*gama0*omega110 + omega120*gama0*omega120 + omega210*gama0*omega210 + omega220*gama0*omega220 + v0*gama0*v0 + v0_ref*gama0*v0_ref + sinFK0*gama0*sinFK0 + cosFK0*gama0*cosFK0;

i0_ref3 = i0_ref2; i0_ref2 = i0_ref1; i0_ref1 = i0_ref;

% vd3 = vd2; vd2 = vd1; vd1 = vd;

v0_ref3 = v0_ref2; v0_ref2 = v0_ref1; v0_ref1 = v0_ref;

ym03 = ym02; ym02 = ym01; ym01 = ym0;

Page 160: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.2. ARCHIVO CONTROLE.M 129

theta1103 = theta1102; theta1102 = theta1101; theta1101 = theta110;

theta1203 = theta1202; theta1202 = theta1201; theta1201 = theta120;

theta2103 = theta2102; theta2102 = theta2101; theta2101 = theta210;

theta2203 = theta2202; theta2202 = theta2201; theta2201 = theta220;

thetay03 = thetay02; thetay02 = thetay01; thetay01 = thetay0;

thetar03 = thetar02; thetar02 = thetar01; thetar01 = thetar0;

thetas03 = thetas02; thetas02 = thetas01; thetas01 = thetas0;

thetac03 = thetac02; thetac02 = thetac01; thetac01 = thetac0;

omega1103 = omega1102; omega1102 = omega1101; omega1101 = omega110;

omega1203 = omega1202; omega1202 = omega1201; omega1201 = omega120;

omega2103 = omega2102; omega2102 = omega2101; omega2101 = omega210;

omega2203 = omega2202; omega2202 = omega2201; omega2201 = omega220;

zetaw1103 = zetaw1102; zetaw1102 = zetaw1101; zetaw1101 = zetaw110;

zetaw1203 = zetaw1202; zetaw1202 = zetaw1201; zetaw1201 = zetaw120;

zetaw2103 = zetaw2102; zetaw2102 = zetaw2101; zetaw2101 = zetaw210;

zetaw2203 = zetaw2202; zetaw2202 = zetaw2201; zetaw2201 = zetaw220;

zetay03 = zetay02; zetay02 = zetay01; zetay01 = zetay0;

zetar03 = zetar02; zetar02 = zetar01; zetar01 = zetar0;

zetas03 = zetas02; zetas02 = zetas01; zetas01 = zetas0;

zetac03 = zetac02; zetac02 = zetac01; zetac01 = zetac0;

sigma01 = sigma0;

u_filt03 = u_filt02; u_filt02 = u_filt01; u_filt01 = u_filt0;

E101 = E10;

m_201 = m_20;

%%%%%%%%% Malha interna de corrente

% erro_i0 = (i0_ref + i0l_ca) - i0;

erro_i0 = (i0_ref + i0l) - i0;

% u0 = u0 + 2.598100*erro_i0 - 2.572119*erro_i01;

% u0 = u0 + 2.145958155157495*erro_i0 - 1.333301294346630*erro_i01;

% u0 = u0 + 2.145958155157495*erro_i0 - 2.13301294346630*erro_i01;

%u0 = u0 + 1.598100*erro_i0 - 1.592100*erro_i01; % OK

%u0 = u0 + 1.3892*erro_i0 - 1.3096*erro_i01; % Ultimo usado 11/11/2019

%u0 = u0 + 1.349068593178486*erro_i0 - 1.340090447498779*erro_i01;

u0 = u0 + 1.3491*erro_i0 - 1.3401*erro_i01;

% Ci0_b1 = 1.2232; Ci0_b0 = -(0.957*Ci0_b1); %OK

% u0 = u0 + Ci0_b1*erro_i0 + Ci0_b0*erro_i01; %OK

erro_i01 = erro_i0;

% if t < 6.0

% u0 = 0;

% end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

end % Final do if para ingresso do controle

vd3 = vd2; vd2 = vd1; vd1 = vd;

v03 = v02; v02 = v01; v01 = v0;

cosFK03=cosFK02; cosFK02=cosFK01; cosFK01=cosFK0;

sinFK03=sinFK02; sinFK02=sinFK01; sinFK01=sinFK0;

Vs3=Vs2; Vs2=Vs1; Vs1=Vs0;

Vc3=Vc2; Vc2=Vc1; Vc1=Vc0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% CÁLCULO DA POTÊNCIA ATIVA E REATIVA NO INVERSOR PWM %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vafase = 600*vafase;

vbfase = 600*vbfase;

vcfase = 600*vcfase;

ia = 20*ia;

ib = 20*ib;

ic = 20*ic;

pot_p_i = vafase*ia+vbfase*ib+vcfase*ic; %| Cálculo a partir de abc

pot_q_i = ((vafase-vbfase)*ic+(vbfase-vcfase)*ia+(vcfase-vafase)*ib)/sqrt(3) + 130; %|

% Filtro 10 Hz

pot_p_filt = 1.99369715810240*pot_p_filt1 - 0.993736512624778*pot_p_filt2 + 0.00000656940085541624*pot_p_i + 0.0000262363266718690*pot_p1 + 0.00000654879484907056*pot_p2;

pot_q_filt = 1.99369715810240*pot_q_filt1 - 0.993736512624778*pot_q_filt2 + 0.00000656940085541624*pot_q_i + 0.0000262363266718690*pot_q1 + 0.00000654879484907056*pot_q2;

% Atualização das variáveis para o próximo instante de amostragem

pot_q2 = pot_q1;

pot_q1 = pot_q_i;

pot_q_filt2 = pot_q_filt1;

pot_q_filt1 = pot_q_filt;

Page 161: Controlador Adaptativo Robusto por Modelo de ... - UNaM

130 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

pot_p2 = pot_p1;

pot_p1 = pot_p_i;

pot_p_filt2 = pot_p_filt1;

pot_p_filt1 = pot_p_filt;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% CÁLCULO DA POTÊNCIA ATIVA E REATIVA NA CARGA %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ial = 20*ial;

ibl = 20*ibl;

icl = 20*icl;

potl_p_i = vafase*ial + vbfase*ibl + vcfase*icl; %| Cálculo a partir de abc

potl_q_i = ((vafase-vbfase)*icl + (vbfase-vcfase)*ial + (vcfase-vafase)*ibl)/sqrt(3); %|

% Filtro 10 Hz

potl_p_filt = 1.99369715810240*potl_p_filt1 - 0.993736512624778*potl_p_filt2 + 0.00000656940085541624*potl_p_i + 0.0000262363266718690*potl_p1 + 0.00000654879484907056*potl_p2;

potl_q_filt = 1.99369715810240*potl_q_filt1 - 0.993736512624778*potl_q_filt2 + 0.00000656940085541624*potl_q_i + 0.0000262363266718690*potl_q1 + 0.00000654879484907056*potl_q2;

% Atualização das variáveis para o próximo instante de amostragem

potl_q2 = potl_q1;

potl_q1 = potl_q_i;

potl_q_filt2 = potl_q_filt1;

potl_q_filt1 = potl_q_filt;

potl_p2 = potl_p1;

potl_p1 = potl_p_i;

potl_p_filt2 = potl_p_filt1;

potl_p_filt1 = potl_p_filt;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% CÁLCULO DA POTÊNCIA ATIVA E REATIVA NO GERADOR %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

iag = 20*iag;

ibg = 20*ibg;

icg = 20*icg;

potg_p_i = vafase*iag + vbfase*ibg + vcfase*icg; %| C�lculo a partir de abc

potg_q_i = ((vafase-vbfase)*icg + (vbfase-vcfase)*iag + (vcfase-vafase)*ibg)/sqrt(3); %|

% Filtro 10 Hz

potg_p_filt = 1.99369715810240*potg_p_filt1 - 0.993736512624778*potg_p_filt2 + 0.00000656940085541624*potg_p_i + 0.0000262363266718690*potg_p1 + 0.00000654879484907056*potg_p2;

potg_q_filt = 1.99369715810240*potg_q_filt1 - 0.993736512624778*potg_q_filt2 + 0.00000656940085541624*potg_q_i + 0.0000262363266718690*potg_q1 + 0.00000654879484907056*potg_q2;

% Atualização das variáveis para o próximo instante de amostragem

potg_q2 = potg_q1;

potg_q1 = potg_q_i;

potg_q_filt2 = potg_q_filt1;

potg_q_filt1 = potg_q_filt;

potg_p2 = potg_p1;

potg_p1 = potg_p_i;

potg_p_filt2 = potg_p_filt1;

potg_p_filt1 = potg_p_filt;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% TRANSFORMADA dq --> alfa, beta (sinMF, cosMF) %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ualfa = cosSS*ud - sinSS*uq;

ubeta = sinSS*ud + cosSS*uq;

% norma das tensões alfa-beta

norma_3 = sqrt(ualfa^2 + ubeta^2 + u0^2);

if norma_3 > (1/sqrt(3))

ualfa = ualfa/(sqrt(3)*norma_3 + 0.0001);

ubeta = ubeta/(sqrt(3)*norma_3 + 0.0001);

u0 = u0;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% SINAIS DE SAÍDA %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sys = [ualfa ubeta u0 uP habilitauP cosSS sinSS vd vq v0 id iq i0 idl iql i0l in inl id_ref iq_ref i0_ref ud uq u0 pot_p_filt pot_q_filt potl_p_filt potl_q_filt potg_p_filt potg_q_filt f_est normtheta0 e10 E10 theta110 theta120 theta210 theta220 thetay0 thetar0 thetas0 thetac0 Vs0 Vc0 ym0 omega110 omega120 omega210 omega220 zetaw110 zetaw120 zetaw210 zetaw220 zetay0 zetar0 zetas0 zetac0 sigma0 m_20];

Page 162: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.3. ARCHIVO MG_4WIRE.M 131

E.3. Archivo MG_4wire.m

Este script es el utilizado para generar la modulación geométrica a cuatro hilos encargado de controlarlos IGBTs.function [sys,x0,str,ts] = MG_4wire(t,x,u,flag)

switch flag,

%

%%%%%%%%%%%%%%%%%%

% Initialization %

%%%%%%%%%%%%%%%%%%

case 0,

[sys,x0,str,ts]=mdlInitializeSizes; % Initialization

%

%%%%%%%%%%%%%%%

% Derivatives %

%%%%%%%%%%%%%%%

%case 1,

% sys=mdlDerivatives(t,x,u);

%

%%%%%%%%%%

% Update %

%%%%%%%%%%

% case 2,

% sys = mdlUpdates(t,x,u); % Update discrete states

%%%%%%%%%%%

% Outputs %

%%%%%%%%%%%

case 3,

%

sys = mdlOutputs(t,x,u); % Calculate outputs

%%%%%%%%%%%%%%%%%%%%%%%

% GetTimeOfNextVarHit %

%%%%%%%%%%%%%%%%%%%%%%%

%case 4,

% sys=mdlGetTimeOfNextVarHit(t,x,u);

%%%%%%%%%%%%%

% Terminate %

%%%%%%%%%%%%%

% case 9,

% sys=mdlTerminate(t,x,u);

case 1, 2, 4, 9 % Unused flags

sys = [];

%%%%%%%%%%%%%%%%%%%%

% Unexpected flags %

%%%%%%%%%%%%%%%%%%%%

otherwise

error([’Unhandled flag = ’,num2str(flag)]);

end

function [sys,x0,str,ts] = mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates = 0;

sizes.NumDiscStates = 0;

sizes.NumOutputs = 4;

sizes.NumInputs = 3;

sizes.DirFeedthrough = 3;

sizes.NumSampleTimes = 1; % at least one sample time is needed

sys = simsizes(sizes);

x0 =[];

str = [];

ts = 1/10000;

function sys = mdlOutputs(~,~,u)

ualfa = u(1);

ubeta = u(2);

u0 = u(3);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% DEFINIÇÕES %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vi = 1;

R3_2 = sqrt(3)/2;

R22_3 = 2*sqrt(2)/sqrt(3);

R1_3 = 1/sqrt(3);

R2_3 = sqrt(2)/sqrt(3);

R3 = sqrt(3);

R2 = sqrt(2);

Page 163: Controlador Adaptativo Robusto por Modelo de ... - UNaM

132 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

R6 = sqrt(6);

R22 = 2*sqrt(2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% OBTENÇÃO DAS TENSÕES DE MODULAÇÃO %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vz1 = -R22_3*ualfa - R1_3*u0;

vz2 = (R2_3*ualfa) - (R2*ubeta) - R1_3*u0;

vz3 = (R2_3*ualfa) + (R2*ubeta) - R1_3*u0;

vz4 = 3*R1_3*u0;

vz5 = (R22_3*vi) - (R22_3*ualfa) - R1_3*u0;

vz6 = (R22_3*vi) + (R2_3*ualfa) - (R2*ubeta) - R1_3*u0;

vz7 = (R22_3*vi) + (R2_3*ualfa) + (R2*ubeta) - R1_3*u0;

vz8 = (R22_3*vi) + (3*R1_3*u0);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% DETERMINAÇÃO DE VZ %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% vzmaximo = [vz1 vz2 vz3 vz4];

% vzminimo = [vz5 vz6 vz7 vz8];

if vz1>vz2

maximovz=vz1;

else

maximovz=vz2;

end

if maximovz<vz3

maximovz=vz3;

end

if vz5<vz6

minimovz=vz5;

else

minimovz=vz6;

end

if minimovz>vz7

minimovz=vz7;

end

% vzmaximo = [vz1 vz2 vz3];

% vzminimo = [vz5 vz6 vz7];

%

% maximovz = max(vzmaximo);

% minimovz = min(vzminimo);

vzmedia = [maximovz minimovz];

mediavz = mean(vzmedia,2);

vz = mediavz;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% DETERMINAÇÃO DOS COMPARADORES %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

comparador_1 = (ualfa + u0/R22 + R3*vz/R22);

comparador_2 = (-ualfa/2 + R3_2*ubeta + u0/R22 + R3*vz/R22);

comparador_3 = (-ualfa/2 - R3_2*ubeta + u0/R22 + R3*vz/R22);

comparador_4 = -3*u0/R22 + R3*vz/R22;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% SINAIS DE SAÍDA %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sys = [comparador_1 comparador_2 comparador_3 comparador_4];

E.4. Archivo Fator_Desbalanco.m

function [sys,x0,str,ts] = Fator_Desbalanco(t,x,u,flag)

switch flag,

%%%%%%%%%%%%%%%%%%

% Initialization %

%%%%%%%%%%%%%%%%%%

Page 164: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.5. ARCHIVO SCRIPT PLOTAGEM.M 133

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

%%%%%%%%%%

% Output %

%%%%%%%%%%

case 3,

sys = mdlOutputs(t,x,u);

%%%%%%%%%%%%%

% Terminate %

%%%%%%%%%%%%%

case 1,2,4,5,7,8,9,

sys = []; % Do nothing

otherwise

%error([’Unhandled flag = ’,num2str(flag)]);

DAStudio.error(’Simulink:blocks:unhandledFlag’, num2str(flag));

end

%

%=============================================================================

% mdlInitializeSizes

% Return the sizes, initial conditions, and sample times for the S-function.

%=============================================================================

function [sys,x0,str,ts] = mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates = 0;

sizes.NumDiscStates = 0;

sizes.NumOutputs = 1;

sizes.NumInputs = 3;

sizes.DirFeedthrough = 1;

sizes.NumSampleTimes = 1; % at least one sample time is needed

sys = simsizes(sizes);

x0 =[];

str = [];

ts = 1/10000;

%

%=============================================================================

% mdlOutputs

% Return the output vector for the S-function

%=============================================================================

function sys = mdlOutputs(t,~,u)

vab_rms = u(1);

vbc_rms = u(2);

vca_rms = u(3);

modVab = abs(vab_rms);

modVbc = abs(vbc_rms);

modVca = abs(vca_rms);

betanum = (modVab^4)+(modVbc^4)+(modVca^4);

betaden = ((modVab^2)+(modVbc^2)+(modVca^2))^2;

beta = betanum/betaden;

if (isnan(beta))

K = 100;

else

K = abs((sqrt((1-(sqrt(3-6*beta)))/(1+(sqrt(3-6*beta)))))*100);

end

sys = [ K ];

E.5. Archivo Script plotagem.m

Con este script se realizaron los gráficos mostrados en la sección 5.2.2.% Para graficar la simulacion del simulink - Ultima version utilizada 14/11/2019 - OK

tempo = FatorDesbalanco.time;

iInicial = 47000;

iFinal = 49000;

% Indices para la estructura In

iInInicial = 1;

while(In.time(iInInicial) < 4.7)

Page 165: Controlador Adaptativo Robusto por Modelo de ... - UNaM

134 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

iInInicial = iInInicial + 1;

end

iInFinal = iInInicial;

while(In.time(iInFinal) < 4.9)

iInFinal = iInFinal + 1;

end

% Indices para la estructura Vfase_rms

iVrmsInicial = 1;

while(In.time(iVrmsInicial) < 4.7)

iVrmsInicial = iVrmsInicial + 1;

end

iVrmsFinal = iVrmsInicial;

while(In.time(iVrmsFinal) < 4.9)

iVrmsFinal = iVrmsFinal + 1;

end

% Indices para la estructura Vcc

iVccInicial = 1;

while(Vcc(iVccInicial, 1) < 4.7)

iVccInicial = iVccInicial + 1;

end

iVccFinal = iVccInicial;

while(Vcc(iVccFinal, 1) < 4.9)

iVccFinal = iVccFinal + 1;

end

figure(’name’, ’Sin control de v0 (4.7-4.9 seg)’);

% Lado Izquierdo

% --------------

subplot(4,2,1);

plot(tempo(iInicial:iFinal), Vger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a_b’, ’v_b_c’, ’v_c_a’);

title(’Tensiones de Línea del Generador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([4.7 4.9]);

ylim([-600 600]);

subplot(4,2,3);

plot(tempo(iInicial:iFinal), Vfase_Load.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([4.7 4.9]);

ylim([-400 400]);

subplot(4,2,5);

plot(Vfase_rms.time(iVrmsInicial:iVrmsFinal), Vfase_rms.signals.values(iVrmsInicial:iVrmsFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase RMS’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([4.7 4.9]);

ylim([200 250]);

subplot(4,2,7);

plot(tempo(iInicial:iFinal), FatorDesbalanco.signals.values(iInicial:iFinal, :), tempo(iInicial:iFinal), 2*ones(1,length(tempo(iInicial:iFinal))), ’k--’, ’Linewidth’, 2);

ylim([-0.1 10]);

title(’Factor de Desbalance’);

legend(’Factor Desbalance’,’Limite IEEE 1159’);

xlabel(’Tiempo [seg]’);

ylabel(’[%]’);

xlim([4.7 4.9]);

% ylim([0 15]);

%

% subplot(5,2,[9 10]);

% plot(tempo, Freq.signals.values, ’Linewidth’, 2);

% title(’Frecuencia Eléctrica’);

% xlabel(’Tiempo [seg]’);

% ylabel(’[Hz]’);

% xlim([4.9 5.1]);

% %ylim([0 15]);

% Lado Derecho

% ------------

subplot(4,2,2);

plot(tempo(iInicial:iFinal), Iger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_g_a’, ’i_g_b’, ’i_g_c’);

title(’Corrientes de Línea del Generador’);

Page 166: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.5. ARCHIVO SCRIPT PLOTAGEM.M 135

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([4.7 4.9]);

% ylim([-12 12]);

subplot(4,2,4);

plot(In.time(iInInicial:iInFinal), In.signals.values(iInInicial:iInFinal, :), ’Linewidth’, 2);

legend(’i_n_l’, ’i_n’, ’i_Y’);

title(’Corriente por el Neutro’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([4.7 4.9]);

ylim([-20 20]);

subplot(4,2,6);

plot(tempo(iInicial:iFinal), Iinv.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_a’, ’i_b’, ’i_c’);

title(’Corrientes del inversor’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([4.7 4.9]);

% ylim([-20 20]);

subplot(4,2,8);

plot(Vcc(iVccInicial:iVccFinal,1), Vcc(iVccInicial:iVccFinal,2), ’Linewidth’, 2);

title(’Barra CC del Compensador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([4.7 4.9]);

ylim([600 700]);

%%

iInicial = 340000;

iFinal = 342000;

% Indices para la estructura In

iInInicial = 1;

while(In.time(iInInicial) < 34)

iInInicial = iInInicial + 1;

end

iInFinal = iInInicial;

while(In.time(iInFinal) < 34.2)

iInFinal = iInFinal + 1;

end

% Indices para la estructura Vfase_rms

iVrmsInicial = 1;

while(In.time(iVrmsInicial) < 34)

iVrmsInicial = iVrmsInicial + 1;

end

iVrmsFinal = iVrmsInicial;

while(In.time(iVrmsFinal) < 34.2)

iVrmsFinal = iVrmsFinal + 1;

end

% Indices para la estructura Vcc

iVccInicial = 1;

while(Vcc(iVccInicial, 1) < 34)

iVccInicial = iVccInicial + 1;

end

iVccFinal = iVccInicial;

while(Vcc(iVccFinal, 1) < 34.2)

iVccFinal = iVccFinal + 1;

end

figure(’name’, ’Con control de v0 (34-34.2 seg)’);

% Lado Izquierdo

% --------------

subplot(4,2,1);

plot(tempo(iInicial:iFinal), Vger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a_b’, ’v_b_c’, ’v_c_a’);

title(’Tensiones de Línea del Generador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([34 34.2]);

ylim([-600 600]);

subplot(4,2,3);

plot(tempo(iInicial:iFinal), Vfase_Load.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase’);

xlabel(’Tiempo [seg]’);

Page 167: Controlador Adaptativo Robusto por Modelo de ... - UNaM

136 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

ylabel(’[V]’);

xlim([34 34.2]);

ylim([-400 400]);

subplot(4,2,5);

plot(Vfase_rms.time(iVrmsInicial:iVrmsFinal), Vfase_rms.signals.values(iVrmsInicial:iVrmsFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase RMS’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([34 34.2]);

ylim([200 250]);

subplot(4,2,7);

plot(tempo(iInicial:iFinal), FatorDesbalanco.signals.values(iInicial:iFinal, :), tempo(iInicial:iFinal), 2*ones(1,length(tempo(iInicial:iFinal))), ’k--’, ’Linewidth’, 2);

ylim([-0.1 10]);

title(’Factor de Desbalance’);

legend(’Factor Desbalance’,’Limite IEEE 1159’);

xlabel(’Tiempo [seg]’);

ylabel(’[%]’);

xlim([34 34.2]);

% ylim([0 15]);

% Lado Derecho

% ------------

subplot(4,2,2);

plot(tempo(iInicial:iFinal), Iger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_g_a’, ’i_g_b’, ’i_g_c’);

title(’Corrientes de Línea del Generador’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([34 34.2]);

% ylim([-12 12]);

subplot(4,2,4);

plot(In.time(iInInicial:iInFinal), In.signals.values(iInInicial:iInFinal, :), ’Linewidth’, 2);

legend(’i_n_l’, ’i_n’, ’i_Y’);

title(’Corriente por el Neutro’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([34 34.2]);

ylim([-25 25]);

subplot(4,2,6);

plot(tempo(iInicial:iFinal), Iinv.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_a’, ’i_b’, ’i_c’);

title(’Corrientes del inversor’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([34 34.2]);

ylim([-20 20]);

subplot(4,2,8);

plot(Vcc(iVccInicial:iVccFinal,1), Vcc(iVccInicial:iVccFinal,2), ’Linewidth’, 2);

title(’Barra CC del Compensador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([34 34.2]);

ylim([600 700]);

%%

iInicial = 398000;

iFinal = 400000;

% Indices para la estructura In

iInInicial = 1;

while(In.time(iInInicial) < 39.8)

iInInicial = iInInicial + 1;

end

iInFinal = iInInicial;

while(In.time(iInFinal) < 40)

iInFinal = iInFinal + 1;

end

% Indices para la estructura Vfase_rms

iVrmsInicial = 1;

while(In.time(iVrmsInicial) < 39.8)

iVrmsInicial = iVrmsInicial + 1;

end

iVrmsFinal = iVrmsInicial;

while(In.time(iVrmsFinal) < 40)

iVrmsFinal = iVrmsFinal + 1;

end

Page 168: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.5. ARCHIVO SCRIPT PLOTAGEM.M 137

% Indices para la estructura Vcc

iVccInicial = 1;

while(Vcc(iVccInicial, 1) < 39.8)

iVccInicial = iVccInicial + 1;

end

iVccFinal = iVccInicial;

while(Vcc(iVccFinal, 1) < 40)

iVccFinal = iVccFinal + 1;

end

figure(’name’, ’Con control de v0 Carga RL (39.8-40 seg)’);

% Lado Izquierdo

% --------------

subplot(4,2,1);

plot(tempo(iInicial:iFinal), Vger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a_b’, ’v_b_c’, ’v_c_a’);

title(’Tensiones de Línea del Generador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([39.8 40]);

ylim([-600 600]);

subplot(4,2,3);

plot(tempo(iInicial:iFinal), Vfase_Load.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([39.8 40]);

ylim([-400 400]);

subplot(4,2,5);

plot(Vfase_rms.time(iVrmsInicial:iVrmsFinal), Vfase_rms.signals.values(iVrmsInicial:iVrmsFinal, :), ’Linewidth’, 2);

legend(’v_a’, ’v_b’, ’v_c’);

title(’Tensiones de Fase RMS’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([39.8 40]);

ylim([200 250]);

subplot(4,2,7);

plot(tempo(iInicial:iFinal), FatorDesbalanco.signals.values(iInicial:iFinal, :), tempo(iInicial:iFinal), 2*ones(1,length(tempo(iInicial:iFinal))), ’k--’, ’Linewidth’, 2);

ylim([-0.1 10]);

title(’Factor de Desbalance’);

legend(’Factor Desbalance’,’Limite IEEE 1159’);

xlabel(’Tiempo [seg]’);

ylabel(’[%]’);

xlim([39.8 40]);

% ylim([0 15]);

% Lado Derecho

% ------------

subplot(4,2,2);

plot(tempo(iInicial:iFinal), Iger.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_g_a’, ’i_g_b’, ’i_g_c’);

title(’Corrientes de Línea del Generador’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([39.8 40]);

% ylim([-12 12]);

subplot(4,2,4);

plot(In.time(iInInicial:iInFinal), In.signals.values(iInInicial:iInFinal, :), ’Linewidth’, 2);

legend(’i_n_l’, ’i_n’, ’i_Y’);

title(’Corriente por el Neutro’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([39.8 40]);

ylim([-25 25]);

subplot(4,2,6);

plot(tempo(iInicial:iFinal), Iinv.signals.values(iInicial:iFinal, :), ’Linewidth’, 2);

legend(’i_a’, ’i_b’, ’i_c’);

title(’Corrientes del inversor’);

xlabel(’Tiempo [seg]’);

ylabel(’[A]’);

xlim([39.8 40]);

ylim([-20 20]);

subplot(4,2,8);

plot(Vcc(iVccInicial:iVccFinal,1), Vcc(iVccInicial:iVccFinal,2), ’Linewidth’, 2);

Page 169: Controlador Adaptativo Robusto por Modelo de ... - UNaM

138 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

title(’Barra CC del Compensador’);

xlabel(’Tiempo [seg]’);

ylabel(’[V]’);

xlim([39.8 40]);

ylim([600 700]);

%%

figure(’name’,’Parametros’);

subplot(2,4,1);

plot(tempo, Thetas0.signals(1).values(:,1), ’Linewidth’, 2);

title(’\theta_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,2);

plot(tempo, Thetas0.signals(1).values(:,2), ’Linewidth’, 2);

title(’\theta_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,3);

plot(tempo, Thetas0.signals(1).values(:,6), ’Linewidth’, 2);

title(’\theta_r’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,4);

plot(tempo, Thetas0.signals(2).values(:,1), ’Linewidth’, 2);

title(’\theta_s’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,5);

plot(tempo, Thetas0.signals(1).values(:,3), ’Linewidth’, 2);

title(’\theta_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,6);

plot(tempo, Thetas0.signals(1).values(:,4), ’Linewidth’, 2);

title(’\theta_2_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,7);

plot(tempo, Thetas0.signals(1).values(:,5), ’Linewidth’, 2);

title(’\theta_y’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,8);

plot(tempo, Thetas0.signals(2).values(:,2), ’Linewidth’, 2);

title(’\theta_c’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

%%

figure(’name’,’Omegas’);

subplot(2,4,1);

plot(tempo, Omegas0.signals(1).values(:,1), ’Linewidth’, 2);

title(’\omega_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,2);

plot(tempo, Omegas0.signals(1).values(:,2), ’Linewidth’, 2);

title(’\omega_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

% subplot(2,4,3);

% plot(tempo, Omegas0.signals(1).values(:,6), ’Linewidth’, 2);

% title(’Referencia r=v_0^*’);

% xlabel(’Tiempo [seg]’);

% grid on;

subplot(2,4,4);

plot(tempo, sync0.signals.values(:,1), ’Linewidth’, 2);

title(’V_s’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

Page 170: Controlador Adaptativo Robusto por Modelo de ... - UNaM

E.5. ARCHIVO SCRIPT PLOTAGEM.M 139

grid on;

subplot(2,4,5);

plot(tempo, Omegas0.signals(1).values(:,3), ’Linewidth’, 2);

title(’\omega_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,6);

plot(tempo, Omegas0.signals(1).values(:,4), ’Linewidth’, 2);

title(’\omega_2_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,7);

plot(tempo, vdq0.signals.values(:,3), ’Linewidth’, 2);

title(’Salida y=v_0’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,8);

plot(tempo, sync0.signals.values(:,2), ’Linewidth’, 2);

title(’V_c’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

figure(’name’,’Zetas’);

subplot(2,4,1);

plot(tempo, Zetas.signals(1).values(:,1), ’Linewidth’, 2);

title(’\zeta_1_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,2);

plot(tempo, Zetas.signals(1).values(:,2), ’Linewidth’, 2);

title(’\zeta_1_2’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,3);

plot(tempo, Zetas.signals(1).values(:,6), ’Linewidth’, 2);

title(’\zeta_r’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,4);

plot(tempo, Zetas.signals(1).values(:,7), ’Linewidth’, 2);

title(’\zeta_s’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,5);

plot(tempo, Zetas.signals(1).values(:,3), ’Linewidth’, 2);

title(’\zeta_2_1’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,6);

plot(tempo, Zetas.signals(1).values(:,4), ’Linewidth’, 2);

title(’\zeta_2_2’);

ylabel(’Amplitud’);

xlabel(’Tiempo [seg]’);

grid on;

subplot(2,4,7);

plot(tempo, Zetas.signals(1).values(:,5), ’Linewidth’, 2);

title(’\zeta_y’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

subplot(2,4,8);

plot(tempo, Zetas.signals(1).values(:,8), ’Linewidth’, 2);

title(’\zeta_c’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

%%

figure;

subplot(2,1,1);

plot(tempo, Errores0.signals(2).values(:,1), ’LineWidth’, 2);

title(’Error Extendido’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

Page 171: Controlador Adaptativo Robusto por Modelo de ... - UNaM

140 APÉNDICE E. CÓDIGO FUENTE PARA MODELO DE SIMULINK

grid on;

subplot(2,1,2);

plot(tempo, normathetas0.signals(1).values(:,1), ’Linewidth’, 2);

title(’Norma de los Parámetros’);

xlabel(’Tiempo [seg]’);

ylabel(’Amplitud’);

grid on;

%%

figure1 = figure(’name’, ’Variacion de Frecuencia y THD’);

subplot(2,1,1);

plot(tempo, Freq.signals(1).values, ’Linewidth’, 2);

title(’Frecuencia Eléctrica del Sistema en el PCC’);

xlabel(’Tiempo [seg]’);

ylabel(’[Hz]’);

grid on;

% Create textarrow

annotation(figure1,’textarrow’,[0.517569546120059 0.517569546120059],...

[0.821812596006144 0.76036866359447],’TextBackgroundColor’,[1 1 1],...

’String’,’Ingresa otra carga Resistiva de 1700 W’,’Carga total: 3400 W’);

% Create textarrow

annotation(figure1,’textarrow’,[0.785505124450952 0.808199121522694],...

[0.691144708423326 0.748344370860927],’TextBackgroundColor’,[1 1 1],...

’String’,’Se desconecta una carga de 1700W.’,’Se conecta carga no lineal RL de (600 W + j 1200 VAR)’);

% Create textarrow

annotation(figure1,’textarrow’,[0.305270863836018 0.22913616398243],...

[0.716357910906298 0.631336405529954],’TextBackgroundColor’,[1 1 1],...

’String’,’Se activa el control’,’de Frecuencia’);

subplot(2,1,2);

plot(THD.time, THD.signals.values .* 100, THD.time, 5*ones(1, length(THD.time)), ’k--’, ’Linewidth’, 2);

title(’Distorsión Armónica Total (THD)’);

xlabel(’Tiempo [seg]’);

ylabel(’[%]’);

grid on;

ylim([-0.1 10]);

legend(’THD’, ’Límite IEEE 519’);

Page 172: Controlador Adaptativo Robusto por Modelo de ... - UNaM

Apéndice F

Código Fuente utilizado experimentalmente

F.1. Introducción

En esta sección se presenta el código que implementa el sistema de control en el DSP F28335 de TexasInstruments. El código corresponde al archivo Controle.c que se ejecuta con cada interrupción que seproduce en el módulo EPWM del DSP.

Para la programación del DSP se utilizó el software de Texas Instruments llamado Code ComposerStudio. Se adjunta a este trabajo el proyecto completo en formato comprimido ZIP.

F.2. Archivo Controle.c

#include "DSP2833x_Device.h" // Peripheral address definitions

#include "F28335_example.h" // Main include file

#include "math.h"

// ##########################################################

// ## Inicialização dos buffers ##

// ##########################################################

extern float buf01[BUFFER_SIZE];

extern float buf02[BUFFER_SIZE];

extern float buf03[BUFFER_SIZE];

extern float buf04[BUFFER_SIZE];

extern float buf05[BUFFER_SIZE];

extern float buf06[BUFFER_SIZE];

extern float buf07[BUFFER_SIZE];

extern float buf08[BUFFER_SIZE];

extern float buf09[BUFFER_SIZE];

extern float buf10[BUFFER_SIZE];

//extern float buf11[BUFFER_SIZE];

//extern float buf12[BUFFER_SIZE];

// ##########################################################

// ## Funções externas usadas ##

// ##########################################################

extern void T_abc_dq0(float *in_a1, float *in_b1, float *in_c1, float *sen, float *cos, float *out_d, float *out_q, float *out_0);

extern void T_dq_alfa_beta(float *in_d, float *in_q, float *sen1, float *cos1, float *out_alfa1, float *out_beta1);

141

Page 173: Controlador Adaptativo Robusto por Modelo de ... - UNaM

142 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

extern void T_abc_alfa_beta_0(float *in_a, float *in_b, float *in_c, float *out_alfa, float *out_beta, float *out_0);

extern void Metodo_de_sincronismo1(float *vlinha_ab, float *vlinha_bc, float *output_sen_teta, float *output_cos_teta);

extern void sincronismo_filtro_kalman(float *input_vafase, float *output_sen, float *output_cos, float *output_f_est);

extern void Potencia_instantanea(float *vab_pcc,float *vbc_pcc,float *ia,float *ib,float *ic,float *Pel,float *Qel);

extern void Modulacao_geometrica(float *ualfa, float *ubeta, float *u0, float *v_z, float *comparador1, float *comparador2, float *comparador3, float *comparador4);

// ##########################################################

// ## Declaração de variáveis ##

// ##########################################################

// Variaveis do sistema

Uint16 GPIO32_count = 0; // Counter for pin toggle

Uint16 i=0,ii=0;

Uint16 calibracao_AD=0;

Uint16 buffer=0;

Uint16 aux=0;

Uint16 flag=0; // No es usada

float x=0; // No es usada

// Variáveis de medicao e calibracao

float canal_01=0,canal_02=0,canal_03=0,canal_04=0;

float canal_05=0,canal_06=0,canal_07=0,canal_08=0;

float canal_09=0,canal_10=0,canal_11=0,canal_12=0;

float canal_13=0,canal_14=0,canal_15=0,canal_16=0;

float medida_01=0,medida_02=0,medida_03=0,medida_04=0;

float medida_05=0,medida_06=0,medida_07=0,medida_08=0;

float medida_09=0,medida_10=0,medida_11=0,medida_12=0;

float medida_13=0,medida_14=0,medida_15=0,medida_16=0;

float offset_ch01=0, offset_ch02=0, offset_ch03=0, offset_ch04=0;

float offset_ch05=0, offset_ch06=0, offset_ch07=0, offset_ch08=0;

float offset_ch09=0, offset_ch10=0, offset_ch11=0, offset_ch12=0;

float offset_ch13=0, offset_ch14=0;

// Variáveis provenientes de medidas

float vafase=0.,vbfase=0.,vcfase=0.; // Tensões de fase no ponto de conexão (abc)

float ial=0.,ibl=0.,icl=0.; // Correntes dde carga (abc)

float ia=0.,ib=0.,ic=0.; // Correntes do inversor (abc)

float vcc=0.; // Tensão do barramento CC

// Variáveis medidas transformadas

float vab_pcc=0.,vbc_pcc=0.,vca_pcc=0.; // Tensões de linha no ponto de conexão (abc)

float vd=0.,vq=0.,v0=0.; // Tensões no ponto de conexão (\dq)

float idl=0.,iql=0.,i0l=0.; // Correntes do gerador (\dq)

float id=0.,iq=0.,i0=0.; // Correntes do inversor (\dq)

float sen_teta=0., cos_teta=0.; // Ângulos de sincronismo

float sen_KF=0., cos_KF=0., freq_est=0.;

// Variáveis de referência

float vcc_ref = 1; // 550v/Vbase(600v)

float vd_ref = 0.638333333333; // 380v/Vbase(600v)

float v0_ref = 0;

float id_ref = 0;

float iq_ref = 0;

float i0_ref1 = 0;

float i0_ref = 0;

// Variáveis usadas nos controladores

float ud=0.5, uq=0, u0=0.; // Ações de controle em (\dq)

float ud1=0., uq1=0., u01=0.; // Ações de controle em (\dq) em períodos anteriores

float erro_vcc=0., erro_vcc1=0.;

float erro_vd=0., erro_vd1=0.;

float erro_v0=0., erro_v01=0;

float erro_id=0., erro_id1=0;

float erro_iq=0., erro_iq1=0;

float erro_i0=0., erro_i01=0;

float sign=0;

float lim_id=0, lim_iq=0, lim_i0=0, lim_ud=0, lim_uq=0, lim_u0=0;

float upi=0;

// Variáveis usadas na ação de controle e modulador

float ualfa=0,ubeta=0; // Ações de controle em (\alfa\beta)

float norma_uf=0;

float v_z=0, comparador1, comparador2, comparador3, comparador4;

// Variaveis de acionamento

float atraso_buffer = 0;

float tempo=0., para_buffer=0., conta_acionamento=0., conta_tempo=0.;

//float habilitar_dstatcom=0., pwm_inv=0., gira_para=0., conetar_dstatcom=0., resistores_serie=0.;

float pwm_inv=0., gira_para=0., conetar_dstatcom=0., resistores_serie=0.;

Page 174: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 143

int habilitar_dstatcom=0;

float cont1=0., cont2=0., cont3=0.;

float aciona_carga1=0., aciona_carga2=0., aciona_carga3=0., aciona_carga4=0., aciona_carga5=0.;

float cc_resistores_cap1=0, resistores_serie_cap1=0., cc_resistores_cap2=0, resistores_serie_cap2=0.;

float cc_resistores_cap3=0, resistores_serie_cap3=0.;

// Processamento das corentes de carga

float idl2=0., idl1=0., idl_f2=0., idl_f1=0., idl_cc=0., idl_ca=0.;

float iql2=0., iql1=0., iql_f2=0., iql_f1=0., iql_cc=0., iql_ca=0.;

float i0l2=0., i0l1=0., i0l_f2=0., i0l_f1=0., i0l_cc=0., i0l_ca=0.;

float inl=0., in=0.;

// Variáveis da potência////////////////////////////

float P_inv=0., Q_inv=0.;

float P_load=0., Q_load=0.;

float pot_s_filt=0,pot_s_filt1=0,pot_s_filt2=0,pot_s1=0,pot_s2=0;

float pot_p_i=0,pot_p1=0,pot_p2=0,pot_p_filt2=0,pot_p_filt1=0,pot_p_filt=0,pot_q_i=0,pot_q1=0,pot_q2=0,pot_q_filt2=0,pot_q_filt1=0,pot_q_filt=0;

float potl_p_i=0,potl_p1=0,potl_p2=0,potl_p_filt2=0,potl_p_filt1=0,potl_p_filt=0,potl_q_i=0,potl_q1=0,potl_q2=0,potl_q_filt2=0,potl_q_filt1=0,potl_q_filt=0;

// Variáveis controle adaptativo/////////////////////////////

float Theta11=0.08, Theta12=0.08, Theta21=-0.34, Theta22=-0.34, Thetay=-0.34, Thetau=0.45;

float Zeta11=-0.2, Zeta12=-0.2, Zeta21=0.63, Zeta22=0.63, Zetay=0.63, Zetau=-0.2;

float Omega11=-0.2, Omega12=-0.2, Omega21=0.634, Omega22=0.634, Omegay=0.634, Omegau=-0.2;

float Zeta11_1=0., Zeta11_2=0., Zeta12_1=0., Zeta12_2=0., Zeta21_1=0., Zeta21_2=0.;

float Zeta22_1=0., Zeta22_2=0., Zetay_1=0., Zetay_2=0., Zetau_1=0., Zetau_2=0.;

float Omega11_1=0., Omega11_2=0., Omega12_1=0., Omega12_2=0., Omega21_1=0., Omega21_2=0.;

float Omega22_1=0., Omega22_2=0., Omegay_1=0., Omegay_2=0., Omegau_1=0., Omegau_2=0.;

float ux=0., y=0., y_ref=0.633333, e1=0., E=0., norm_theta=0.;

float uqa=0., iq_refa=0., erro_iq2=0., ym=0., ZetaZeta=0., normal=0.;

float y_ref_1=0.633333, y_ref_2=0.633333, ym_1=0.633333, ym_2=0.633333, sigma=0.;

float p0=-3000, Mo=0.75, sigma0=0.5, Gama=1000, m=1, fc=-50, d0=0.7/Ts, d1=1.0/Ts;

float f1=0., F11=0., F12=0., F21=0., F22=0., q11=0., q21=0.;

float Fd11=0., Fd12=0., Fd21=0., Fd22=0., qd11=0., qd21=0.;

float inv_norm=0., parc1=0., parc2=0.;

float Thetaomega=0., Thetaomega_2=0., Thetaomega_1=0., WmThetaomega_2=0., WmThetaomega_1=0., WmThetaomega=0.;

//float numWmd1=0., numWmd2=0., numWmd3=0.49; // Para p0d1=p0d2=0.3

//float denWmd1=1, denWmd2=-0.60, denWmd3=0.09;

//float numWmd1=0., numWmd2=0., numWmd3=0.42; // Para p0d1=0.3 e p0d2=0.4

//float denWmd1=1, denWmd2=-0.70, denWmd3=0.12;

float numWmd1=0., numWmd2=0., numWmd3=0.36; // Para p0d1=0.4 e p0d2=0.4

float denWmd1=1, denWmd2=-0.80, denWmd3=0.16;

//float numWmd1=0., numWmd2=0., numWmd3=0.25; // Para p0d1=0.5 e p0d2=0.5

//float denWmd1=1, denWmd2=-1, denWmd3=0.25;

// ***********************************************************************

// *** GENTILE - EIXO 0 ***

// ***********************************************************************

float Theta11_a0=0.1, Theta12_a0=0.1, Theta21_a0=-0.1, Theta22_a0=-0.1, Thetay_a0=-0.4, Thetau_a0=-0.3;

float Zeta11_a0=0.01, Zeta12_a0=0.01, Zeta21_a0=-0.005, Zeta22_a0=-0.005, Zetay_a0=-0.005, Zetau_a0=0.01;

float Omega11_a0=0.01, Omega12_a0=0.01, Omega21_a0=-0.005, Omega22_a0=-0.005, Omegay_a0=-0.005, Omegau_a0=0.01;

float Zeta11_1_a0=0., Zeta11_2_a0=0., Zeta12_1_a0=0., Zeta12_2_a0=0., Zeta21_1_a0=0., Zeta21_2_a0=0.;

float Zeta22_1_a0=0., Zeta22_2_a0=0., Zetay_1_a0=0., Zetay_2_a0=0., Zetau_1_a0=0., Zetau_2_a0=0.;

float Omega11_1_a0=0., Omega11_2_a0=0., Omega12_1_a0=0., Omega12_2_a0=0., Omega21_1_a0=0., Omega21_2_a0=0.;

float Omega22_1_a0=0., Omega22_2_a0=0., Omegay_1_a0=0., Omegay_2_a0=0., Omegau_1_a0=0., Omegau_2_a0=0.;

float ux_a0=0., y_a0=0., y_ref_a0=0., e1_a0=0., E_a0=0., norm_theta_a0=0.;

float uqa_a0=0., i0_refa_a0=0., erro_iq2_a0=0., ym_a0=0., ZetaZeta_a0=0., normal_a0=0.;

float y_ref_1_a0=0., y_ref_2_a0=0., ym_1_a0=0., ym_2_a0=0., sigma_a0=0.;

float p0_a0=-3000, Mo_a0=0.75, sigma0_a0=0.5, Gama_a0=500, m_a0=5, fc_a0=-600, d0_a0=0.7/Ts, d1_a0=1.0/Ts;

float f1_a0=0., F11_a0=0., F12_a0=0., F21_a0=0., F22_a0=0., q11_a0=0., q21_a0=0.;

float Fd11_a0=0., Fd12_a0=0., Fd21_a0=0., Fd22_a0=0., qd11_a0=0., qd21_a0=0.;

float inv_norm_a0=0., parc1_a0=0., parc2_a0=0.;

float Thetaomega_a0=0., Thetaomega_2_a0=0., Thetaomega_1_a0=0., WmThetaomega_2_a0=0., WmThetaomega_1_a0=0., WmThetaomega_a0=0.;

//// Mismos polos que la planta, ganancia unitaria

//float numWmd1_a0=0., numWmd2_a0=0.00899, numWmd3_a0=0.008186;

//float denWmd1_a0=1, denWmd2_a0=-1.738, denWmd3_a0=0.7552;

float numWmd1_a0=0., numWmd2_a0=0.1884, numWmd3_a0=0.1716;

float denWmd1_a0=1, denWmd2_a0=-0.8, denWmd3_a0=0.16;

//#define __COM_FILTRO_U0

Page 175: Controlador Adaptativo Robusto por Modelo de ... - UNaM

144 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

#undef __COM_FILTRO_U0

#ifdef __COM_FILTRO_U0

// Variáveis do Filtro Paixa Baxas

float u0_1=0.0, u0_2=0.0, u0_ca=0.0, u0_cc=0.0, u0_cc_1=0.0, u0_cc_2=0.0;

#endif

// Variáveis do controle de frequência///////////////////////

float freq_ref=0., erro_freq=0., uP=0., erro_freq1=0., habilitauP=0;

// ##########################################################

// ## Inicio da interrupcao ##

// ##########################################################

interrupt void EPWM3_INT_ISR(void) // PIE3.3 @ 0x000D64 EPWM3_INT (EPWM3)

// flag=1;

// if(flag==1)GpioDataRegs.GPASET.bit.GPIO7 = 1;

conta_acionamento++;

tempo++;

if(gira_para==1)GpioDataRegs.GPASET.bit.GPIO5 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO5 = 1;

//////////////////////////////////////////////////////////////////////////////////////////////////

PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group

EPwm3Regs.ETCLR.bit.INT = 1; // 1 = clears the ETFLG[INT] flag

//-- Conversão dos canais A/D

AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; // Início da conversão A/D via software (S/W)

// Espera o ADC para finalizar conversões (testa o ’INT1 flag’):

while (AdcRegs.ADCST.bit.INT_SEQ1== 0) // Wait for interrupt

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

// Reinitialize for next ADC sequence

AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE

canal_01 = AdcRegs.ADCRESULT0 >> 4; // ADCINA0 -> pino 2, conector P9

canal_02 = AdcRegs.ADCRESULT1 >> 4; // ADCINB0 -> pino 1, conector P5

canal_03 = AdcRegs.ADCRESULT2 >> 4; // ADCINA1 -> pino 4, conector P9

canal_04 = AdcRegs.ADCRESULT3 >> 4; // ADCINB1 -> pino 2, conector P5

canal_05 = AdcRegs.ADCRESULT4 >> 4; // ADCINA2 -> pino 6, conector P9

canal_06 = AdcRegs.ADCRESULT5 >> 4; // ADCINB2 -> pino 3, conector P5

canal_07 = AdcRegs.ADCRESULT6 >> 4; // ADCINA3 -> pino 8, conector P9

canal_08 = AdcRegs.ADCRESULT7 >> 4; // ADCINB3 -> pino 4, conector P5

canal_09 = AdcRegs.ADCRESULT8 >> 4; // ADCINA4 -> pino 10, conector P9

canal_10 = AdcRegs.ADCRESULT9 >> 4; // ADCINB4 -> pino 5, conector P5

canal_11 = AdcRegs.ADCRESULT10 >> 4; // ADCINA5 -> pino 12, conector P9

canal_12 = AdcRegs.ADCRESULT11 >> 4; // ADCINB5 -> pino 6, conector P5

canal_13 = AdcRegs.ADCRESULT12 >> 4; // ADCINA6 -> pino 14, conector P9

canal_14 = AdcRegs.ADCRESULT13 >> 4; // ADCINB6 -> pino 7, conector P5

canal_15 = AdcRegs.ADCRESULT14 >> 4; // ADCINA7 -> pino 16, conector P9

canal_16 = AdcRegs.ADCRESULT15 >> 4; // ADCINB7 -> pino 8, conector P5

// ##########################################################

// ## CALIBRAÇÃO DE OFFSETS DOS CANAIS DE AQUISIÇÃO ##

// ##########################################################

if(calibracao_AD == 0)

/*

offset_ch01 = offset_ch01 + canal_01 - canal_16;

offset_ch02 = offset_ch02 + canal_02 - canal_16;

offset_ch03 = offset_ch03 + canal_03 - canal_16;

offset_ch04 = offset_ch04 + canal_04 - canal_16;

offset_ch05 = offset_ch05 + canal_05 - canal_16;

offset_ch06 = offset_ch06 + canal_06 - canal_16;

offset_ch07 = offset_ch07 + canal_07 - canal_16;

offset_ch08 = offset_ch08 + canal_08 - canal_16;

offset_ch09 = offset_ch09 + canal_09 - canal_16;

offset_ch10 = offset_ch10 + canal_10 - canal_16;

offset_ch11 = offset_ch11 + canal_11 - canal_16;

offset_ch12 = offset_ch12 + canal_12 - canal_16;

offset_ch13 = offset_ch13 + canal_13 - canal_16;

offset_ch14 = offset_ch14 + canal_14 - canal_16;

ii++;

if(ii == 1000)

Page 176: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 145

offset_ch01 = offset_ch01*0.001;

offset_ch02 = offset_ch02*0.001;

offset_ch03 = offset_ch03*0.001;

offset_ch04 = offset_ch04*0.001;

offset_ch05 = offset_ch05*0.001;

offset_ch06 = offset_ch06*0.001;

offset_ch07 = offset_ch07*0.001;

offset_ch08 = offset_ch08*0.001;

offset_ch09 = offset_ch09*0.001;

offset_ch10 = offset_ch10*0.001;

offset_ch11 = offset_ch11*0.001;

offset_ch12 = offset_ch12*0.001;

offset_ch13 = offset_ch13*0.001;

offset_ch14 = offset_ch14*0.001;

calibracao_AD=1;

*/

/*

// Aferições do dia 22/05/2017 - Feito com LUCAS

offset_ch01 = -19.283;

offset_ch02 = -20.554;

offset_ch03 = 3.959;

offset_ch04 = 7.583;

offset_ch05 = -114.017;

offset_ch06 = -103.359;

offset_ch07 = -7.218;

offset_ch08 = -5.951;

offset_ch09 = 5.161;

offset_ch10 = -9.413;

offset_ch11 = -0.584;

offset_ch12 = -9.982;

offset_ch13 = 39.477;

offset_ch14 = -90.537;

calibracao_AD=1;

*/

// Aferições do dia 05/02/2018 - Feito sozinho

offset_ch01 = -19.191;

offset_ch02 = -20.883;

offset_ch03 = 4.15;

offset_ch04 = 23.58;

offset_ch05 = -90.82101;

offset_ch06 = -77.371;

offset_ch07 = -7.655;

offset_ch08 = -7.066;

offset_ch09 = 4.263;

offset_ch10 = -20.474;

offset_ch11 = 11.104;

offset_ch12 = -16.135;

offset_ch13 = 38.147;

offset_ch14 = -85.16901;

calibracao_AD=1;

//--EXECUTA O PROGRAMA PRINCIPAL SOMENTE DEPOIS DA CALIBRAÇÃO

if(calibracao_AD == 1)

// ##########################################################################

// ## Aquisições em valores reais (ampéres e volts) ##

// ##########################################################################

medida_01 = canal_01 - canal_16 - offset_ch01; // Medida de tensão AC

medida_02 = canal_02 - canal_16 - offset_ch02; // Medida de tensão AC

medida_03 = canal_03 - canal_16 - offset_ch03; // Medida de tensão AC

medida_04 = canal_04 - canal_16 - offset_ch04; // Medida de tensão AC

medida_05 = canal_05 - canal_16 - offset_ch05; // Medida de tensão AC

medida_06 = canal_06 - canal_16 - offset_ch06; // Medida de tensão AC

medida_07 = canal_07 - canal_16 - offset_ch07; // Medida de corrente AC

medida_08 = canal_08 - canal_16 - offset_ch08; // Medida de corrente AC

medida_09 = canal_09 - canal_16 - offset_ch09; // Medida de corrente AC

medida_10 = canal_10 - canal_16 - offset_ch10; // Medida de corrente AC

medida_11 = canal_11 - canal_16 - offset_ch11; // Medida de corrente AC

medida_12 = canal_12 - canal_16 - offset_ch12; // Medida de corrente AC

medida_13 = canal_13 - canal_16 - offset_ch13; // Medida de tensão CC

// medida_14 = canal_14 - canal_16 - offset_ch14; // Medida de tensão CC

Page 177: Controlador Adaptativo Robusto por Modelo de ... - UNaM

146 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

// ##########################################################################

// ## Variáveis usadas no programa ##

// ##########################################################################

vafase = (ganho_tensao_AC * medida_01) * D1_vbase;

vbfase = (ganho_tensao_AC * medida_02) * D1_vbase;

vcfase = (ganho_tensao_AC * medida_03) * D1_vbase;

ial = (ganho_corrente_AC * medida_07) * D1_ibase;

ibl = (ganho_corrente_AC * medida_08) * D1_ibase;

icl = (ganho_corrente_AC * medida_09) * D1_ibase;

ia = (ganho_corrente_AC * medida_10) * D1_ibase;

ib = (ganho_corrente_AC * medida_11) * D1_ibase;

ic = (ganho_corrente_AC * medida_12) * D1_ibase;

vcc = (ganho_tensao_CC * medida_13) * D1_vbase;

// ##########################################################################

// ## CONVERSAO INICIAL DAS VARIAVEIS ##

// ##########################################################################

// ############ Transformações de fase para linha ##############

vab_pcc = vafase - vbfase;

vbc_pcc = vbfase - vcfase;

vca_pcc = vcfase - vafase;

// ############ Cálculo dos sinais de sincronismo ##############

// Metodo_de_sincronismo1(&vab_pcc,&vbc_pcc,&sen_teta,&cos_teta);

sincronismo_filtro_kalman(&vafase,&sen_KF,&cos_KF,&freq_est);

// ############ Transformação das tensões de fase para coordenadas dq0 ##############

// T_abc_dq0(&vafase,&vbfase,&vcfase,&sen_teta,&cos_teta,&vd,&vq,&v0);

T_abc_dq0(&vafase,&vbfase,&vcfase,&sen_KF,&cos_KF,&vd,&vq,&v0);

// ############ Transformação das correntes de carga para coordenadas dq0 ##############

// T_abc_dq0(&ial,&ibl,&icl,&sen_teta,&cos_teta,&idl,&iql,&i0l);

T_abc_dq0(&ial,&ibl,&icl,&sen_KF,&cos_KF,&idl,&iql,&i0l);

// ############ Transformação das correntes do DSTATCOM para coordenadas dq0 ##############

// T_abc_dq0(&ia,&ib,&ic,&sen_teta,&cos_teta,&id,&iq,&i0);

T_abc_dq0(&ia,&ib,&ic,&sen_KF,&cos_KF,&id,&iq,&i0);

// ############ Calculo da potencia instantanea compensada pelo DSTATCOM ##############

// Potencia_instantanea(&vafase,&vbfase,&vcfase,&ia,&ib,&ic,&P_inv,&Q_inv);

// ############ Calculo da potencia instantanea drenada pela carga ##############

// Potencia_instantanea(&vafase,&vbfase,&vcfase,&ial,&ibl,&icl,&P_load,&Q_load);

// ##########################################################################

// ## DETERMINAÇÃO DAS GPIOS ##

// ##########################################################################

if(habilitar_dstatcom==1)GpioDataRegs.GPASET.bit.GPIO4 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO4 = 1;

if(gira_para==1)GpioDataRegs.GPASET.bit.GPIO5 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO5 = 1;

// if(pwm_inv==1)GpioDataRegs.GPASET.bit.GPIO6 = 1;

// elseGpioDataRegs.GPACLEAR.bit.GPIO6 = 1;

if(resistores_serie==1)GpioDataRegs.GPASET.bit.GPIO7 = 1; //resistor_serie

elseGpioDataRegs.GPACLEAR.bit.GPIO7 = 1;

if(conetar_dstatcom==1)GpioDataRegs.GPASET.bit.GPIO8 = 1; //cc_resistor

elseGpioDataRegs.GPACLEAR.bit.GPIO8 = 1;

if(aciona_carga1==1)GpioDataRegs.GPASET.bit.GPIO26 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

if(aciona_carga2==1)GpioDataRegs.GPASET.bit.GPIO20= 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO20 = 1;

if(aciona_carga3==1)GpioDataRegs.GPASET.bit.GPIO10 = 1; //cont2

elseGpioDataRegs.GPACLEAR.bit.GPIO10 = 1;

if(aciona_carga4==1)GpioDataRegs.GPASET.bit.GPIO11 = 1; //cont3

Page 178: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 147

elseGpioDataRegs.GPACLEAR.bit.GPIO11 = 1;

if(aciona_carga5==1)GpioDataRegs.GPASET.bit.GPIO9 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO9 = 1;

if(resistores_serie_cap1==1)GpioDataRegs.GPASET.bit.GPIO13 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO13 = 1;

if(cc_resistores_cap1==1)GpioDataRegs.GPASET.bit.GPIO22 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO22 = 1;

if(resistores_serie_cap2==1)GpioDataRegs.GPASET.bit.GPIO21 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO21 = 1;

if(cc_resistores_cap2==1)GpioDataRegs.GPASET.bit.GPIO12 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO12 = 1;

if(resistores_serie_cap3==1)GpioDataRegs.GPASET.bit.GPIO27 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO27 = 1;

if(cc_resistores_cap3==1)GpioDataRegs.GPASET.bit.GPIO25 = 1;

elseGpioDataRegs.GPACLEAR.bit.GPIO25 = 1;

// ##########################################################################

// ## TEMPOS DE ACIONAMENTO ##

// ##########################################################################

if(conta_acionamento>10000)

gira_para=1;

conetar_dstatcom=1; // Coneta o DSTATCOM ao Barramento CA

/*

if (tempo<100000)

if (vafase>0.15 || vbfase>0.15 || vcfase>0.15)

habilitauP=1;

if(habilitauP==1)

// Partida suave

uP = uP + 0.00007;

if(uP > 0.94) uP = 0.94;

*/

/*

if (tempo>120000)

habilitauP=1;

if(habilitauP==1)

// Partida suave

uP = uP + 0.000065;

if(uP > 0.1) uP = 0.1;

*/

// ##########################################################################

// ## ROTINAS DE SEGURANCA ##

// ##########################################################################

if (vcc > 1.2)

gira_para=0;

if (vafase>0.6 || vbfase>0.6 || vcfase>0.6)

gira_para=0;

/*

// ##########################################################################

// ## ROTINA DE DESCONEXAO DOS CAPACITORES ##

// ##########################################################################

if (tempo< 120000)

if (vafase>0.4 || vbfase>0.4 || vcfase>0.4)

if (Con==0)

cc_resistores_cap1=1;

cc_resistores_cap2=1;

cc_resistores_cap3=0;

Con=1;

if (vafase>0.5 || vbfase>0.5 || vcfase>0.5)

cc_resistores_cap1=0;

cc_resistores_cap2=0;

cc_resistores_cap3=0;

Page 179: Controlador Adaptativo Robusto por Modelo de ... - UNaM

148 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

*/

// ##########################################################################

// ## PROCESSAMENTO DAS CORRENTES DE CARGA ##

// ##########################################################################

///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

idl_cc = 1.99685348287557*idl_f1 - 0.996863336984954*idl_f2 + 0.00000164364213907804*idl + 0.00000656940490266780*idl1 + 0.00000164106233842628*idl2;

idl2 = idl1;

idl1 = idl;

idl_f2 = idl_f1;

idl_f1 = idl_cc;

idl_ca = idl - idl_cc;

///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

iql_cc = 1.99685348287557*iql_f1 - 0.996863336984954*iql_f2 + 0.00000164364213907804*iql + 0.00000656940490266780*iql1 + 0.00000164106233842628*iql2;

iql2 = iql1;

iql1 = iql;

iql_f2 = iql_f1;

iql_f1 = iql_cc;

iql_ca = iql - iql_cc;

///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

i0l_cc = 1.99685348287557*i0l_f1 - 0.996863336984954*i0l_f2 + 0.00000164364213907804*i0l + 0.00000656940490266780*i0l1 + 0.00000164106233842628*i0l2;

i0l2 = i0l1;

i0l1 = i0l;

i0l_f2 = i0l_f1;

i0l_f1 = i0l_cc;

i0l_ca = i0l - i0l_cc;

/////////////// Calculo das correntes de neutro a carga e DSTATCOM /////////////////////

inl = ial + ibl + icl;

in = ia + ib + ic;

// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

// % Cálculo das potências %

// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vafase = 600*vafase; vbfase = 600*vbfase; vcfase = 600*vcfase;

ia = ia*20; ib = ib*20; ic = ic*20;

ial = ial*20; ibl = ibl*20; icl = icl*20;

/////////////////////////Potencia do DSTATCOM///////////////////////////////////////

pot_p_i = vafase*ia+vbfase*ib+vcfase*ic;

pot_q_i = ((vafase-vbfase)*ic+(vbfase-vcfase)*ia+(vcfase-vafase)*ib)/sqrt(3);

// pot_p_filt = 1.96145115*pot_p_filt1 - 0.962857*pot_p_filt2 + 0.0002366*pot_p_i + 0.0009376*pot_p1 + 0.0002322*pot_p2;

// pot_q_filt = 1.96145115*pot_q_filt1 - 0.962857*pot_q_filt2 + 0.0002366*pot_q_i + 0.0009376*pot_q1 + 0.0002322*pot_q2;

// Filtro 10 Hz

pot_p_filt = 1.99369715810240*pot_p_filt1 - 0.993736512624778*pot_p_filt2 + 0.00000656940085541624*pot_p_i + 0.0000262363266718690*pot_p1 + 0.00000654879484907056*pot_p2;

pot_q_filt = 1.99369715810240*pot_q_filt1 - 0.993736512624778*pot_q_filt2 + 0.00000656940085541624*pot_q_i + 0.0000262363266718690*pot_q1 + 0.00000654879484907056*pot_q2;

pot_p2 = pot_p1;

pot_p1 = pot_p_i;

pot_p_filt2 = pot_p_filt1;

pot_p_filt1 = pot_p_filt;

pot_q2 = pot_q1;

pot_q1 = pot_q_i;

pot_q_filt2 = pot_q_filt1;

pot_q_filt1 = pot_q_filt;

/////////////////////////Potência da carga///////////////////////////////////////

potl_p_i = vafase*ial+vbfase*ibl+vcfase*icl;

potl_q_i = ((vafase-vbfase)*icl+(vbfase-vcfase)*ial+(vcfase-vafase)*ibl)/sqrt(3);

// potl_p_filt = 1.96145115*potl_p_filt1 - 0.962857*potl_p_filt2 + 0.0002366*potl_p_i + 0.0009376*potl_p1 + 0.0002322*potl_p2;

// potl_q_filt = 1.96145115*potl_q_filt1 - 0.962857*potl_q_filt2 + 0.0002366*potl_q_i + 0.0009376*potl_q1 + 0.0002322*potl_q2;

// Filtro 10 Hz

potl_p_filt = 1.99369715810240*potl_p_filt1 - 0.993736512624778*potl_p_filt2 + 0.00000656940085541624*potl_p_i + 0.0000262363266718690*potl_p1 + 0.00000654879484907056*potl_p2;

potl_q_filt = 1.99369715810240*potl_q_filt1 - 0.993736512624778*potl_q_filt2 + 0.00000656940085541624*potl_q_i + 0.0000262363266718690*potl_q1 + 0.00000654879484907056*potl_q2;

Page 180: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 149

potl_p2 = potl_p1;

potl_p1 = potl_p_i;

potl_p_filt2 = potl_p_filt1;

potl_p_filt1 = potl_p_filt;

potl_q2 = potl_q1;

potl_q1 = potl_q_i;

potl_q_filt2 = potl_q_filt1;

potl_q_filt1 = potl_q_filt;

// ##########################################################################

// ## INICIO DO CONTROLE ##

// ##########################################################################

if (tempo>620000)

// Não esquecer habilitar a linha embaixo

//habilitar_dstatcom = 1;

// ##########################################################################

// ## CONTROLE DA TENSÃO DO BARRAMENTO CC ##

// ##########################################################################

// Partida suave

vcc_ref = vcc_ref + 0.00027;

if(vcc_ref > 1.1) vcc_ref = 1.1;

//---- Malha externa de tensão

erro_vcc = (vcc_ref*vcc_ref) - (vcc*vcc);

// id_ref = 0.99*id_ref - 1*erro_vcc + 0.99*erro_vcc1;

id_ref = id_ref - 1*erro_vcc + 0.999*erro_vcc1;

erro_vcc1 = erro_vcc; // atualiza o erro da tensão vcc para o próximo inst. de amostragem

/*

if(id_ref<0)sign=-1; // definição do sinal da variável

if(id_ref>0)sign=1; // definição do sinal da variável

lim_id=0.67;

if (abs(id_ref) > lim_id) id_ref = sign*lim_id;

*/

//---- Malha interna de corrente

erro_id = id_ref - id + idl_ca;

// ud = ud + 0.528*erro_id - 0.51*erro_id1; // usado en la simulacion Lucas

ud = ud + 0.328*erro_id - 0.318*erro_id1; // ultimo usado 08/05/2017

// ud = ud + 0.93*erro_id - 0.875*erro_id1; // PROBAR CON ESTE TAMBIEN.....

/*

if(ud<0)sign=-1; // definição do sinal da variável

if(ud>0)sign=1; // definição do sinal da variável

lim_ud=2;

if(abs(ud)>lim_ud)ud=sign*lim_ud;

*/

erro_id1 = erro_id; // atualiza o erro da corrente id para o próximo inst. de amostragem

ud1 = ud;

// ##########################################################################

// ## CONTROLE DA TENSÃO NOS TERMINAIS DO INVERSOR - ADAPTATIVO ##

// ##########################################################################

// erro_vd = ym - vd;

// upi = upi + 2.11*erro_vd - 2.105*erro_vd1;

// erro_vd1 = erro_vd;

// Referência de controle

y_ref = vd_ref; // 0.633333;

y = vd;

Omegay = y;

// Controlador

ux = (-1/Thetau)*(Theta11*Omega11 + Theta12*Omega12 + Theta21*Omega21 + Theta22*Omega22 + Thetay*Omegay + y_ref);

Omegau = ux;

Page 181: Controlador Adaptativo Robusto por Modelo de ... - UNaM

150 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

// iq_refa = 0.95*ux + 0.05*upi;

iq_refa = ux;

// if abs(iq_refa) > 0.2, iq_refa = sign(iq_refa)*0.2; end;

// Malha interna de corrente///////////////////////

erro_iq = iq_refa - iq + iql_ca;

// uqa = uqa + 1.229*erro_iq - 1.21*erro_iq2;

// uqa = uqa + 0.529*erro_iq - 0.51*erro_iq2;

uqa = uqa + 0.22*erro_iq - 0.20*erro_iq2; // FUNCIONA CON ESTA

// uqa = uqa + 0.33*erro_iq - 0.275*erro_iq2; // ESTA TAMBIEN FUNCIONA

// uqa = uqa + 0.93*erro_iq - 0.875*erro_iq2; // PROBAR CON ESTE!!!!

// uqa = uqa + 0.529*erro_iq - 0.528*erro_iq2;

erro_iq2 = erro_iq; // Atualiza o erro da corrente iq para o próximo inst. de amostragem

// if abs(uqa) > 0.2, uqa = sign(uqa)*0.2; end; // Limites encontrados para ualfa,ubeta=0.5773

// Modelo de referência

ym = - denWmd2*ym_1 - denWmd3*ym_2 + numWmd1*y_ref + numWmd2*y_ref_1 + numWmd3*y_ref_2;

// Calculo do erro e1

e1= y - ym;

// if (abs(e1)<0.02)Gama=30;

// Função Sigma

norm_theta = sqrt(Theta11*Theta11 + Theta12*Theta12 + Theta21*Theta21 + Theta22*Theta22 + Thetay*Thetay + Thetau*Thetau);

if (norm_theta<Mo)sigma = 0;

if (norm_theta>=Mo)sigma = sigma0*((norm_theta/Mo)-1);

if (norm_theta>2*Mo)sigma = sigma0;

// Determinação do vetor ZETA

Zeta11 = - denWmd2*Zeta11_1 - denWmd3*Zeta11_2 + numWmd1*Omega11 + numWmd2*Omega11_1 + numWmd3*Omega11_2;

Zeta12 = - denWmd2*Zeta12_1 - denWmd3*Zeta12_2 + numWmd1*Omega12 + numWmd2*Omega12_1 + numWmd3*Omega12_2;

Zeta21 = - denWmd2*Zeta21_1 - denWmd3*Zeta21_2 + numWmd1*Omega21 + numWmd2*Omega21_1 + numWmd3*Omega21_2;

Zeta22 = - denWmd2*Zeta22_1 - denWmd3*Zeta22_2 + numWmd1*Omega22 + numWmd2*Omega22_1 + numWmd3*Omega22_2;

Zetay = - denWmd2*Zetay_1 - denWmd3*Zetay_2 + numWmd1*Omegay + numWmd2*Omegay_1 + numWmd3*Omegay_2;

Zetau = - denWmd2*Zetau_1 - denWmd3*Zetau_2 + numWmd1*Omegau + numWmd2*Omegau_1 + numWmd3*Omegau_2;

// Determinação do Erro Aumentado E %%%%%

E = y + Theta11*Zeta11 + Theta12*Zeta12 + Theta21*Zeta21 + Theta22*Zeta22 + Thetay*Zetay + Thetau*Zetau;

/*

Thetaomega = Theta11*Omega11 + Theta12*Omega12 + Theta21*Omega21 + Theta22*Omega22 + Thetay*Omegay + Thetau*Omegau;

WmThetaomega = - denWmd2*WmThetaomega_1 - denWmd3*WmThetaomega_2 + numWmd1*Thetaomega + numWmd2*Thetaomega_1 + numWmd3*Thetaomega_2;

WmThetaomega_2 = WmThetaomega_1;

WmThetaomega_1 = WmThetaomega;

Thetaomega_2 = Thetaomega_1;

Thetaomega_1 = Thetaomega;

E = e1 + Theta11*Zeta11 + Theta12*Zeta12 + Theta21*Zeta21 + Theta22*Zeta22 + Thetay*Zetay + Thetau*Zetau - WmThetaomega;

*/

// Atualização dos parâmetros Thetas adaptados RLS %%%%%

ZetaZeta = Zeta11*Zeta11 + Zeta12*Zeta12 + Zeta21*Zeta21 + Zeta22*Zeta22 + Zetay*Zetay + Zetau*Zetau;

// inv_norm = 1;

inv_norm = 1/(1+Gama*ZetaZeta);

parc1 = (1 - sigma*Gama*Ts);

// parc2 = Ts*Gama*E*inv_norm;

parc2 = 7*Ts*Gama*E*inv_norm;

Theta11 = parc1*Theta11 - parc2*Zeta11;

Theta12 = parc1*Theta12 - parc2*Zeta12;

Theta21 = parc1*Theta21 - parc2*Zeta21;

Theta22 = parc1*Theta22 - parc2*Zeta22;

Thetay = parc1*Thetay - parc2*Zetay;

Thetau = parc1*Thetau - parc2*Zetau;

// Determinação de m

// m = 1;

// m =(1 - d0*Ts)*m + d1*Ts*(1 + abs(ux) + abs(y));

// normal = m + ZetaZeta;

// Determinação dos Omegas

Page 182: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 151

// Definição dos filtros

f1 = 2*pi*fc;

F11 = f1*1; //F=f1*[0.8 0.1 ; 0.3 1.04]

F12 = f1*0.001;

F21 = f1*0.1;

F22 = f1*1.1;

q11 = -f1*1; //q=-f1*[1 ; 1]

q21 = -f1*1;

// Cr=[q F*q];

// rC=rank(Cr);

// Discretizando F e q

Fd11 = 1 + F11*Ts; //Fd=eye(2)+F*Ts

Fd12 = F12*Ts;

Fd21 = F21*Ts;

Fd22 = 1 + F22*Ts;

qd11 = q11*Ts; //qd = q*Ts

qd21 = q21*Ts;

// Crd=[qd Fd*qd];

// rCrd=rank(Crd)

Omega11 = Fd11*Omega11 + Fd12*Omega12 + qd11*ux;

Omega12 = Fd21*Omega11 + Fd22*Omega12 + qd21*ux;

Omega21 = Fd11*Omega21 + Fd12*Omega22 + qd11*y;

Omega22 = Fd21*Omega21 + Fd22*Omega22 + qd21*y;

Zeta11_2 = Zeta11_1;

Zeta11_1 = Zeta11;

Zeta12_2 = Zeta12_1;

Zeta12_1 = Zeta12;

Zeta21_2 = Zeta21_1;

Zeta21_1 = Zeta21;

Zeta22_2 = Zeta22_1;

Zeta22_1 = Zeta22;

Zetay_2 = Zetay_1;

Zetay_1 = Zetay;

Zetau_2 = Zetau_1;

Zetau_1 = Zetau;

Omega11_2 = Omega11_1;

Omega11_1 = Omega11;

Omega12_2 = Omega12_1;

Omega12_1 = Omega12;

Omega21_2 = Omega21_1;

Omega21_1 = Omega21;

Omega22_2 = Omega22_1;

Omega22_1 = Omega22;

Omegay_2 = Omegay_1;

Omegay_1 = Omegay;

Omegau_2 = Omegau_1;

Omegau_1 = Omegau;

y_ref_2 = y_ref_1;

y_ref_1 = y_ref;

ym_2 = ym_1;

ym_1 = ym;

// ##########################################################################

// ## CONTROLE ADAPTATIVO DO EIXO 0 - GENTILE ##

// ##########################################################################

// Malha externa de tensão v0

// ==========================

// Referência de controle

y_ref_a0 = 0;

//if(tempo<135000)

if(tempo<140000)

// Inhibimos el control

u0 =0;

else

y_a0 = v0;

Omegay_a0 = y_a0;

// Controlador

// ===========

ux_a0 = (-1/Thetau_a0)*(Theta11_a0*Omega11_a0 + Theta12_a0*Omega12_a0 + Theta21_a0*Omega21_a0 + Theta22_a0*Omega22_a0 + Thetay_a0*Omegay_a0 + y_ref_a0);

Page 183: Controlador Adaptativo Robusto por Modelo de ... - UNaM

152 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

Omegau_a0 = ux_a0;

//

// A saída do controlador é a referência da malha de corrente

i0_refa_a0 = ux_a0;

// Malha interna de corrente

// =========================

erro_i0 = i0_refa_a0 - i0 + i0l;

// u0 = u0 + 1.15*erro_i0 - 1.1499*erro_i01; //para carga monofaasica de 1200 W

// u0 = u0 + 0.95*erro_i0 - 0.94951*erro_i01; //testado1

// u0 = u0 + 0.75*erro_i0 - 0.7499*erro_i01; //testado1

// u0 = u0 + 0.798100*erro_i0 - 0.772119*erro_i01; // PI GENTILE

// u0 = u0 + 0.5981*erro_i0 - 0.5961*erro_i01;

// u0 = u0 + 2.598100*erro_i0 - 2.572119*erro_i01; // PROBAR CON ESTE!!! MUCHA GANANCIA!! REDUCIR

u0 = u0 + 1.398100*erro_i0 - 1.372119*erro_i01;

#ifdef __COM_FILTRO_U0

///////////////////////////Filtro de 2a ordem de 5Hz///////////////////////////////////

u0_cc = 1.99685348287557*u0_cc_1 - 0.996863336984954*u0_cc_2 + 0.00000164364213907804*u0 + 0.00000656940490266780*u0_1 + 0.00000164106233842628*u0_2;

u0_ca = u0 - u0_cc;

u0_2 = u0_1;

u0_1 = u0;

u0_cc_2 = u0_cc_1;

u0_cc_1 = u0_cc;

//////////////////////////////////////////////////////////////////////////////////////

#endif

/*

if(u0<0)sign=-1; // definição do sinal da variável

if(u0>0)sign=1; // definição do sinal da variável

lim_u0=2;

if(abs(u0)>lim_u0)u0=sign*lim_u0;

*/

erro_i01 = erro_i0; // atualiza o erro da corrente iq para o próximo inst. de amostragem

u01=u0;

// Modelo de referência

ym_a0 = - denWmd2_a0*ym_1_a0 - denWmd3_a0*ym_2_a0 + numWmd1_a0*y_ref_a0 + numWmd2_a0*y_ref_1_a0 + numWmd3_a0*y_ref_2_a0;

// Calculo do erro e1

e1_a0= y_a0 - ym_a0;

// if (abs(e1_a0)<0.02)Gama_a0=30;

// Função Sigma

norm_theta_a0 = sqrt(Theta11_a0*Theta11_a0 + Theta12_a0*Theta12_a0 + Theta21_a0*Theta21_a0 + Theta22_a0*Theta22_a0 + Thetay_a0*Thetay_a0 + Thetau_a0*Thetau_a0);

if (norm_theta_a0<Mo_a0)sigma_a0 = 0;

if (norm_theta_a0>=Mo_a0)sigma_a0 = sigma0_a0*((norm_theta_a0/Mo_a0)-1);

if (norm_theta_a0>2*Mo_a0)sigma_a0 = sigma0_a0;

// Determinação do vetor ZETA

Zeta11_a0 = - denWmd2_a0*Zeta11_1_a0 - denWmd3_a0*Zeta11_2_a0 + numWmd1_a0*Omega11_a0 + numWmd2_a0*Omega11_1_a0 + numWmd3_a0*Omega11_2_a0;

Zeta12_a0 = - denWmd2_a0*Zeta12_1_a0 - denWmd3_a0*Zeta12_2_a0 + numWmd1_a0*Omega12_a0 + numWmd2_a0*Omega12_1_a0 + numWmd3_a0*Omega12_2_a0;

Zeta21_a0 = - denWmd2_a0*Zeta21_1_a0 - denWmd3_a0*Zeta21_2_a0 + numWmd1_a0*Omega21_a0 + numWmd2_a0*Omega21_1_a0 + numWmd3_a0*Omega21_2_a0;

Zeta22_a0 = - denWmd2_a0*Zeta22_1_a0 - denWmd3_a0*Zeta22_2_a0 + numWmd1_a0*Omega22_a0 + numWmd2_a0*Omega22_1_a0 + numWmd3_a0*Omega22_2_a0;

Zetay_a0 = - denWmd2_a0*Zetay_1_a0 - denWmd3_a0*Zetay_2_a0 + numWmd1_a0*Omegay_a0 + numWmd2_a0*Omegay_1_a0 + numWmd3_a0*Omegay_2_a0;

Zetau_a0 = - denWmd2_a0*Zetau_1_a0 - denWmd3_a0*Zetau_2_a0 + numWmd1_a0*Omegau_a0 + numWmd2_a0*Omegau_1_a0 + numWmd3_a0*Omegau_2_a0;

// Determinação do Erro Aumentado E %%%%%

E_a0 = y_a0 + Theta11_a0*Zeta11_a0 + Theta12_a0*Zeta12_a0 + Theta21_a0*Zeta21_a0 + Theta22_a0*Zeta22_a0 + Thetay_a0*Zetay_a0 + Thetau_a0*Zetau_a0;

// Atualização dos parâmetros Thetas adaptados RLS %%%%%

ZetaZeta_a0 = Zeta11_a0*Zeta11_a0 + Zeta12_a0*Zeta12_a0 + Zeta21_a0*Zeta21_a0 + Zeta22_a0*Zeta22_a0 + Zetay_a0*Zetay_a0 + Zetau_a0*Zetau_a0;

// inv_norm_a0 = 1;

inv_norm_a0 = 1/(1+Gama_a0*ZetaZeta_a0);

parc1_a0 = (1 - sigma_a0*Gama_a0*Ts);

// parc2_a0 = Ts*Gama_a0*E_a0*inv_norm_a0;

parc2_a0 = 7*Ts*Gama_a0*E_a0*inv_norm_a0; // Probar con 7 extra...

Theta11_a0 = parc1_a0*Theta11_a0 - parc2_a0*Zeta11_a0;

Theta12_a0 = parc1_a0*Theta12_a0 - parc2_a0*Zeta12_a0;

Theta21_a0 = parc1_a0*Theta21_a0 - parc2_a0*Zeta21_a0;

Theta22_a0 = parc1_a0*Theta22_a0 - parc2_a0*Zeta22_a0;

Page 184: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 153

Thetay_a0 = parc1_a0*Thetay_a0 - parc2_a0*Zetay_a0;

Thetau_a0 = parc1_a0*Thetau_a0 - parc2_a0*Zetau_a0;

// Determinação de m

// m_a0 = 1;

// m_a0 =(1 - d0_a0*Ts)*m_a0 + d1_a0*Ts*(1 + abs(ux_a0) + abs(y_a0));

// normal_a0 = m_a0 + ZetaZeta_a0;

// Determinação dos Omegas

// Definição dos filtros

/*

f1_a0 = 2*pi*fc_a0;

F11_a0 = f1_a0*1; //F=f1*[1 0 ; 0.1 1.1]

F12_a0 = f1_a0*0.01;

F21_a0 = f1_a0*0.2;

F22_a0 = f1_a0*1.02;

*/

/*

f1_a0 = 2*pi*fc_a0;

F11_a0 = f1_a0*1.2; //F=f1*[1 0 ; 0.1 1.1]

F12_a0 = f1_a0*0.1;

F21_a0 = f1_a0*0.4;

F22_a0 = f1_a0*1.04;

*/

f1_a0 = 2*pi*fc_a0;

F11_a0 = f1_a0*1.0;

F12_a0 = f1_a0*0.01;

F21_a0 = f1_a0*0.2;

F22_a0 = f1_a0*1.2;

q11_a0 = -f1_a0*1; //q=-f1*[1 ; 1]

q21_a0 = -f1_a0*1;

// Discretizando F e q

Fd11_a0 = 1 + F11_a0*Ts; //Fd=eye(2)+F*Ts

Fd12_a0 = F12_a0*Ts;

Fd21_a0 = F21_a0*Ts;

Fd22_a0 = 1 + F22_a0*Ts;

qd11_a0 = q11_a0*Ts; //qd = q*Ts

qd21_a0 = q21_a0*Ts;

Omega11_a0 = Fd11_a0*Omega11_a0 + Fd12_a0*Omega12_a0 + qd11_a0*ux_a0;

Omega12_a0 = Fd21_a0*Omega11_a0 + Fd22_a0*Omega12_a0 + qd21_a0*ux_a0;

Omega21_a0 = Fd11_a0*Omega21_a0 + Fd12_a0*Omega22_a0 + qd11_a0*y_a0;

Omega22_a0 = Fd21_a0*Omega21_a0 + Fd22_a0*Omega22_a0 + qd21_a0*y_a0;

Zeta11_2_a0 = Zeta11_1_a0;

Zeta11_1_a0 = Zeta11_a0;

Zeta12_2_a0 = Zeta12_1_a0;

Zeta12_1_a0 = Zeta12_a0;

Zeta21_2_a0 = Zeta21_1_a0;

Zeta21_1_a0 = Zeta21_a0;

Zeta22_2_a0 = Zeta22_1_a0;

Zeta22_1_a0 = Zeta22_a0;

Zetay_2_a0 = Zetay_1_a0;

Zetay_1_a0 = Zetay_a0;

Zetau_2_a0 = Zetau_1_a0;

Zetau_1_a0 = Zetau_a0;

Omega11_2_a0 = Omega11_1_a0;

Omega11_1_a0 = Omega11_a0;

Omega12_2_a0 = Omega12_1_a0;

Omega12_1_a0 = Omega12_a0;

Omega21_2_a0 = Omega21_1_a0;

Omega21_1_a0 = Omega21_a0;

Omega22_2_a0 = Omega22_1_a0;

Omega22_1_a0 = Omega22_a0;

Omegay_2_a0 = Omegay_1_a0;

Omegay_1_a0 = Omegay_a0;

Omegau_2_a0 = Omegau_1_a0;

Omegau_1_a0 = Omegau_a0;

y_ref_2_a0 = y_ref_1_a0;

y_ref_1_a0 = y_ref_a0;

ym_2_a0 = ym_1_a0;

Page 185: Controlador Adaptativo Robusto por Modelo de ... - UNaM

154 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

ym_1_a0 = ym_a0;

// ##########################################################################

// ##########################################################################

// ## CONTROLE DE FREQUÊNCIA A PARTIR DO BARRAMENTO CC DO DSTATCOM ##

// ##########################################################################

/*

if(tempo>110000)

freq_ref = 60;

erro_freq = freq_ref - freq_est;

uP = uP - 0.182*erro_freq + 0.1814*erro_freq1;

// uP = uP - 0.392*erro_freq + 0.3919*erro_freq1; // Usado en la ultima simulacion 15/05/2017

if (uP>1) uP=1;

if (uP<0) uP=0;

erro_freq1 = erro_freq;

*/

//uP=0.6;

// ##########################################################################

// ## AÇÃO DE CONTROLE ##

// ##########################################################################

// T_dq_alfa_beta(&ud,&uqa,&sen_teta,&cos_teta,&ualfa,&ubeta);

T_dq_alfa_beta(&ud,&uqa,&sen_KF,&cos_KF,&ualfa,&ubeta);

// Limitação da ação de controle -> Melhorar essa parte...

norma_uf = sqrt(ualfa*ualfa + ubeta*ubeta + u0*u0);

if (norma_uf > R3_3)

ualfa = ualfa*R3_3/(norma_uf + 0.0000001);

ubeta = ubeta*R3_3/(norma_uf + 0.0000001);

u0 = u0; //*R3_3/(norma_uf + 0.0000001);

#ifdef __COM_FILTRO_U0

Modulacao_geometrica(&ualfa,&ubeta,&u0_ca,&v_z,&comparador1,&comparador2,&comparador3,&comparador4);

#else

Modulacao_geometrica(&ualfa,&ubeta,&u0,&v_z,&comparador1,&comparador2,&comparador3,&comparador4);

#endif

EPwm1Regs.CMPA.half.CMPA = (1-comparador1)*7500; // Compare A => EPwm1

EPwm1Regs.CMPB = (1-comparador2)*7500; // Compare B => EPwm1

EPwm2Regs.CMPA.half.CMPA = (1-comparador3)*7500; // Compare A => EPwm2

EPwm2Regs.CMPB = (1-comparador4)*7500; // Compare B => EPwm2

//######################## ACIONAMENTO DE CARGAS ################################

// Controle entra em tempo=120000

/*if(tempo>130000) // Carga 1

aciona_carga1=1;

if(tempo>140000) // Carga 1

aciona_carga2=1;

if(tempo>150000) // Carga 1

aciona_carga1=0;

if(tempo>160000)

aciona_carga2=0;*/

/*

if(tempo>140000) // Carga 2

aciona_carga2=1;

if(tempo>173000)

Page 186: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 155

aciona_carga2=0;

if(tempo>170000) // Carga 3

aciona_carga1=1;

if(tempo>180000)

aciona_carga1=0;

if(tempo>310000) // Carga 4

aciona_carga1=1;

if(tempo>320000)

aciona_carga1=0;

// HASTA AQUI --------

if(tempo>180000) // Carga 2

aciona_carga2=1;

if(tempo>380000)

aciona_carga2=0;

if(tempo>260000) // Carga 5

aciona_carga4=1;

if(tempo>300000)

aciona_carga4=0;

*/

/////////////////////////////////////////////////////////////////////////////////

// Termina o laço do controle de tensão

// Termina execução do programa principal

// EPwm4Regs.CMPA.half.CMPA = (1-uP)*7500; // Compare A => EPwm4

EPwm4Regs.CMPA.half.CMPA = (1-uP*habilitauP)*7500;

//////// Contador para armazenar dados no buffer e parar programa /////////////////

if(tempo==110000)

i=0; //Zera o buffer

para_buffer=1; //Para quando encher o buffer

//////////////////////////////////////////////////////////////////////////////////

atraso_buffer++;

if (atraso_buffer==3) // Estaba 40, luego en 18

//-- Salva variáveis em buffers

buffer = 1; // 1 --> variáveis dos sensores

/*

if ((buffer == 1))

buf01[i] = Theta11;

buf02[i] = Theta12;

buf03[i] = Theta21;

buf04[i] = Theta22;

buf05[i] = Thetay;

buf06[i] = Thetau;

buf07[i] = e1;

buf08[i] = E;

buf09[i] = uP;

buf10[i] = freq_est;

*/

/*

if ((buffer == 1))

buf01[i] = Thetau;

buf02[i] = Thetay;

buf03[i] = Theta21_a0;

buf04[i] = Theta22_a0;

buf05[i] = Thetay_a0;

buf06[i] = Thetau_a0;

#ifdef __COM_FILTRO_U0

buf07[i] = u0_cc;

Page 187: Controlador Adaptativo Robusto por Modelo de ... - UNaM

156 APÉNDICE F. CÓDIGO FUENTE UTILIZADO EXPERIMENTALMENTE

buf08[i] = u0_ca;

#else

buf07[i] = i0_refa_a0;

buf08[i] = u0;

#endif

buf09[i] = ud;

buf10[i] = uqa;

*/

if ((buffer == 1))

/*

buf01[i] = Theta11;

buf02[i] = Theta12;

buf03[i] = Theta21;

buf04[i] = Theta22;

buf05[i] = Thetay;

buf06[i] = Thetau;

*/

/*

buf01[i] = ibl; //Theta11_a0;

buf02[i] = freq_est; //Theta12_a0;

buf03[i] = Thetay; //Theta21_a0;

buf04[i] = Thetau; //Theta22_a0;

buf05[i] = Thetay_a0;

buf06[i] = Thetau_a0;

buf07[i] = ud;

buf08[i] = uqa;

#ifdef __COM_FILTRO_U0

buf09[i] = u0_ca;

#else

buf09[i] = u0;

#endif

buf10[i] = v0;

*/

buf01[i] = vafase;

buf02[i] = vbfase;

buf03[i] = vcfase;

buf04[i] = ia;

buf05[i] = ib;

buf06[i] = ic;

buf07[i] = vcc;

/*

if ((buffer == 1))

buf01[i] = pot_p_filt;

buf02[i] = pot_q_filt;

buf03[i] = potl_p_filt;

buf04[i] = potl_q_filt;

buf05[i] = vafase;

buf06[i] = vbfase;

buf07[i] = vcfase;

buf08[i] = habilitauP;

buf09[i] = uP;

buf10[i] = freq_est;

if ((buffer == 1))

buf01[i] = ial;

buf02[i] = ibl;

buf03[i] = icl;

buf04[i] = ia;

buf05[i] = ib;

buf06[i] = ic;

buf07[i] = in;

buf08[i] = inl;

buf09[i] = vab_pcc;

buf10[i] = vbc_pcc;

*/

//-- Contador usado para salvar buffers

if(i == BUFFER_SIZE-1)

asm("STOP0");

aux++;

i = 0; // Circular buffer

//i = BUFFER_SIZE-1; // One buffer only

if(para_buffer==1)

Page 188: Controlador Adaptativo Robusto por Modelo de ... - UNaM

F.2. ARCHIVO CONTROLE.C 157

for(;;)

GpioDataRegs.GPACLEAR.bit.GPIO4 = 1; //Desliga a inibição

GpioDataRegs.GPACLEAR.bit.GPIO5 = 1; //Desliga o gira_para

GpioDataRegs.GPACLEAR.bit.GPIO4 = 1; //Desliga a inibição

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1; //Desliga a carga 1

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; //Desliga a carga 2

GpioDataRegs.GPACLEAR.bit.GPIO10 = 1; //Desliga a carga 3

GpioDataRegs.GPACLEAR.bit.GPIO11 = 1; //Desliga a carga 4

GpioDataRegs.GPACLEAR.bit.GPIO9 = 1; //Desliga a carga 5

else i++;

atraso_buffer = 0;

// flag=0;

// if(flag==0)GpioDataRegs.GPACLEAR.bit.GPIO7 = 1;

//////////////////////////////////////////////////////////////////////////////////

//-- Contador usado para emular referências

if(x == 199) // 200-1

x = 0;

else x++;

//--- Toggle GPIO32, which is connected to the LED on the eZdsp board

if(GPIO32_count++ > 10000)

// Toggle slowly to see the LED blink (period = 1 second)

GpioDataRegs.GPBTOGGLE.bit.GPIO32 = 1; // Toggle the pin

GPIO32_count = 0; // Reset the counter

// Termino da interrupcao