ESTUDO E IMPLEMENTAÇÃO DA TÉCNICA DE INTELIGÊNCIA ... · i estudo e implementaÇÃo da tÉcnica...
Transcript of ESTUDO E IMPLEMENTAÇÃO DA TÉCNICA DE INTELIGÊNCIA ... · i estudo e implementaÇÃo da tÉcnica...
i
ESTUDO E IMPLEMENTAÇÃO DA TÉCNICA DE
INTELIGÊNCIA ARTIFICIAL PARA O CONTROLE DE
VELOCIDADE DO MOTOR-MANCAL COM BOBINADO
DIVIDIDO UTILIZANDO O DSP TMS3208F28335
José Soares Batista Lopes
Orientador: Prof. Dr. Sc. Andrés Ortiz Salazar
Número de Ordem PPgEEC: D171 Natal – RN
Junho de 2016
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
Tese de Doutorado apresentada ao Programa de Pós-Graduação em Engenharia elétrica da UFRN (área de concentração: Automação e Sistemas) como parte integrante dos requisitos para obtenção do título de Doutor em Engenharia Elétrica e Engenharia de Computação.
ii
Catalogação da Publicação na Fonte
Universidade Federal do Rio Grande do Norte - Sistema de Bibliotecas Biblioteca Central Zila Mamede / Setor de Informação e Referência
Lopes, José Soares Batista. Estudo e implementação da técnica de inteligência artificial para o controle de
velocidade do motor-mancal com bobinado dividido utilizando o DSP TMS3208F28335 / José Soares Batista Lopes. - Natal, RN, 2016.
134 f. : il. Orientador: Prof. Dr. Andrés Ortiz Salazar. Tese (doutorado) - Universidade Federal do Rio Grande do Norte. Centro de
Tecnologia. Programa de Pós-Graduação em Engenharia Elétrica e de Computação.
1. Redes Neurais - Tese. 2. DSP TMS 3208F335 - Tese. 3. Motor-Mancal -
Tese. 4. ANFIS - Tese. 5. Controle em cascata - Tese. I. Salazar, Andrés Ortiz. II. Título.
RN/UF/BCZM CDU 621.3
Dedico esta tese em memória do meu
querido pai, João Batista Lopes. Exemplo de homem que sempre esteve ao meu lado.
AGRADECIMENTOS
A Deus pоr tеr mе dado saúde е força pаrа superar аs dificuldades. Ao meu Orientador Prof. Andrés Ortiz Salazar pela paciência e ensinamentos. A minha esposa Ana Cristina pela paciência, apoio e amor nos momentos importantes para a conclusão desta tese. Aos meus lindos e queridos filhos, João Vinicius e Bárbara. A minha mãe pela fé, palavras e pensamentos positivos. A minha família e parentes que sempre me deram uma palavra de apoio nos momentos necessários. A Prof. Jefferson pela ajuda e conhecimento compartilhado nas circuitarias das placas eletrônicas. Aos Professores Luciano, Paulo Vitor, Adjair, Elvis, Valcir, José Álvaro e ao mestrando Webert pelo companheirismo e amizade. Aos meus colegas da sala 17 que caminharam junto, no calor e nas dificuldades impostas durante este percurso no laboratório. Ao Prof. Alexandre Cunha de Oliveira da UFCG pelos ensinamentos, paciência e o apoio nos conhecimentos do DSP. Aos colegas Sandro e ao Prof. Luiz Ricardo que ajudaram na usinagem e verificação do motor no IFRN de Parnamirim. A todos que contribuíram de forma direta ou indireta com uma palavra de apoio, o meu agradecimento.
i
SUMÁRIO
LISTA DE TABELAS
LISTA DE FIGURAS
LISTA DE SIMBOLOS E VARIÁVEIS
RESUMO
ABSTRACT
1 INTRODUÇÃO............................................................................................... 15
1.1 INTRODUÇÃO ................................................................................. 15
1.2 OBJETIVOS ..................................................................................... 17
1.3 CONTRIBUIÇÕES DESTE TRABALHO .......................................... 18
1.4 ORGANIZAÇÃO DO TEXTO ........................................................... 18
2 FUNDAMENTAÇÃO TEÓRICA.................................................................... 20
2.1 ASPECTOS DOS SISTEMAS DE INFERÊNCIA FUZZY ................ 20
2.2 SISTEMA DE INFERÊNCIA FUZZY ................................................ 21
2.3 ASPECTOS DAS REDES NEURAIS ARTIFICIAIS ......................... 30
2.4 SISTEMA HIBRIDO NEURO-FUZZY ............................................... 34
2.5 CONCLUSÃO .................................................................................. 39
3 SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL.............. 40
3.1 INTRODUÇÃO ................................................................................. 40
3.2 ESTIMADOR CONVENCIONAL COM ORIENTAÇÃO DE CAMPO
NO FLUXO DO ROTOR ........................................................................ 42
3.3 MÁQUINA DE INDUÇÃO SEM MANCAIS TRIFÁSICA COM
BOBINADO DIVIDIDO ........................................................................... 44
3.4 MOTOR-MANCAL ........................................................................... 46
3.5 SINTONIA DOS CONTROLADORES PARA O CONTROLE
VETORIAL ............................................................................................. 47
3.6 DESCRIÇÃO DAS TÉCNICAS DE INTELIGENCIA ARTIFICIAL
APLICADAS NO MOTOR-MANCAL ...................................................... 48
3.7 PROJETO E ANALISE DO SISTEMA ANFIS .................................. 49
3.8 PROJETO E ANALISE DO CONTROLADOR NEURAL .................. 54
3.9 CONCLUSÃO .................................................................................. 58
4 ARRANJO EXPERIMENTAL........................................................................ 59
4.1 MOTOR-MANCAL ........................................................................... 59
4.2 SENSORES DA POSIÇÃO RADIAL ................................................ 64
4.3 SENSORES DE ROTAÇÃO ............................................................ 67
4.4 SISTEMA COMPLETO .................................................................... 69
4.5 CONCLUSÃO .................................................................................. 70
5 ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR MANCAL....... 71
5.1 INTRODUÇÃO ................................................................................. 71
5.2 CONTROLE DE CORRENTE .......................................................... 72
5.3 CONTROLE DE POSIÇÃO .............................................................. 74
5.4 CONTROLE VETORIAL DE VELOCIDADE .................................... 75
5.5 CONCLUSÃO .................................................................................. 77
6 RESULTADOS EXPERIMENTAIS................................................................ 78
6.1 CORRENTES NO ESTATOR .......................................................... 78
6.2 POSIÇÃO RADIAL DO ROTOR ...................................................... 82
6.3 CONTROLE DE VELOCIDADE ....................................................... 88
6.4 CONCLUSÃO .................................................................................. 94
7 CONCLUSÕES.............................................................................................. 95
7.1 CONCLUSÃO .................................................................................. 95
7.2 PERSPECTIVAS ............................................................................. 96
APÊNDICES
APÊNDICE A: CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP
TMS320F28335 ..................................................................................... 97
APÊNDICE B: PROGRAMA CONTROLE MOTOR-MANCAL ............. 105
APÊNDICE C: IMPLEMENTAÇÃO DA REDE NEURAL PARA O
CONTROLE DE VELOCIDADE ........................................................... 126
i
LISTA DE TABELAS Tabela 1 - A t-normas e t-conormas mais utilizadas. 25
Tabela 2 – Parâmetros e Características do Motor. 45
Tabela 3 – Parâmetros dos Controladores PI utilizados na sintonia. 47
Tabela 4 – Parâmetros dos Controladores. 48
Tabela 5 – Parâmetros do ANFIS1. 50
Tabela 6 – Parâmetros do ANFIS2. 50
Tabela 7 – Parâmetros da Rede Neural. 53
Tabela 8 – Parâmetros do protótipo do motor. 61
Tabela 9 – Parâmetros da Rede Neural. 88
Tabela 10 – Configuração do conversor analógico-digital. 100
Tabela 11 – Configuração do módulo ePWM. 102
Tabela 12 – Configuração do módulo eCAP. 103
i
LISTA DE FIGURAS Figura 1 - Diagrama do processo de Inferência Fuzzy. .................................... 21
Figura 2 - Funções de Pertinência. .................................................................. 23 Figura 3 - Efeito da mudança de parâmetros a, b e c da Função de Pertinência Sino Generalizada da Equação 2.1. ................................................................. 24 Figura 4 - Modelo Mamdani com duas entradas x e y. ..................................... 26 Figura 5 - Modelo Tsukamoto de inferência. .................................................... 27
Figura 6 - Modelo Fuzzy Sugeno. .................................................................... 28 Figura 7 - Pertinências das variáveis de entrada X e Y. ................................... 28 Figura 8 - Comportamento do sistema de acordo com o mecanismo de inferência. ......................................................................................................... 28 Figura 9 - Estrutura de um perceptron de múltiplas camadas. ......................... 31 Figura 10 - Modelo Sugeno de 1º ordem com duas regras. ............................. 36 Figura 11 - Diagrama de blocos do sistema proposto simulado. ...................... 41 Figura 12 - Representação do Estimador Convencional em diagramas de blocos em coordenadas de campo do rotor (Leonhard, 2001). ........................ 42 Figura 13 - Esquema de distribuição das bobinas no estator (VICTOR, 2012). 45 Figura 14 - Circuito equivalente da máquina de indução (VITOR, 2012). ........ 46
Figura 15 - Esquema das bobinas do estator. .................................................. 46 Figura 16 - Sintonia do controlador de velocidade. .......................................... 48 Figura 17 - (A) - Superfície Fuzzy Sugeno – ANFIS 1 e (B) - ANFIS 2. ........... 50
Figura 18 - Pertinências antes do treinamento e depois (A) – iSd(k) e (B) – imR(k-1). .......................................................................................................... 51
Figura 19 - Pertinências antes do treinamento e depois (A) – ωmec(k) e iSq(k). ......................................................................................................................... 51
Figura 20 - Resultado comparativo da velocidade mecânica com os estimadores. ..................................................................................................... 52
Figura 21 - Sinal do erro do controlador de velocidade. ................................... 53 Figura 22 - Resposta do torque elétrico operando nas condições de simulação. ......................................................................................................................... 53
Figura 23 - Sinal do erro do controlador de torque. .......................................... 54 Figura 24 - Resultado da posição angular do Fluxo do rotor. ........................... 54
Figura 25 - Erro quadrático médio para um treinamento com 847 épocas. Fonte: Toolbox Matlab ®. ................................................................................. 55 Figura 26 - Resultado de treinamento (A), validação (B) e testes da Rede Neural (C). Fonte: Toolbox Matlab ®. ............................................................... 56
Figura 27 - Resultado comparativo da velocidade mecânica com os controladores: neural e PI. ............................................................................... 56 Figura 28 - Sinal do erro do controlador neural e PI de velocidade. ................. 57 Figura 29 - Sinal do erro do controlador operando com a Rede Neural e com o Controle PI (A) – Torque elétrico e (B) – Corrente de magnetização. .............. 57
Figura 30 - Resultado da posição angular do Fluxo do rotor com o controlador neural e PI de velocidade. ................................................................................ 58 Figura 31 - Excentricidades do eixo do motor-mancal. Fonte: Victor, 2012. ... 60 Figura 32 - (A) Eixo do rotor no torno e (B) o motor de indução....................... 60
Figura 33 - Motor-mancal. ................................................................................ 61 Figura 34 - Motor-mancal sem tampa com identificação dos grupos das bobinas. ............................................................................................................ 62
Figura 35 - Experimento para determinar a configuração do eixo Y. ............... 62
Figura 36 - Experimento para determinar a configuração do eixo X. ............... 63 Figura 37 - Arranjo de ligação dos enrolamentos do motor-mancal. ................ 63 Figura 38 - Arranjo de ligação dos enrolamentos do motor-mancal. ................ 63
Figura 39 - Base utilizada para fixação das ponteiras do sensor AEC 5505-04. Fonte: Souza Filho (2011). ............................................................................... 64 Figura 40 - Circuito eletrônico utilizado com o sensor AEC 5505-04. Fonte: Souza Filho (2011). .......................................................................................... 64 Figura 41 - Deslocamento radial indesejado e desejado para o controle de posição. ............................................................................................................ 65 Figura 42 - (A) Deslocamento radial ceifando na coordenada Y e (B) os sinais dos sensores X(verde) e Y(amarelo) em modo livre do osciloscópio. .............. 65
Figura 43 - Comportamento dos sinais após o ajuste do offset dos sensores. 66 Figura 44 - Limite de deslocamento radial do rotor. ......................................... 66 Figura 45 - Sensor de velocidade antigo. ......................................................... 67 Figura 46 - Circuito de tratamento do sinal do encoder Fonte: Souza Filho (2011). .............................................................................................................. 67
Figura 47 - Sensor de Velocidade. Fonte: Silva (2015). .................................. 68 Figura 48 - Novo sensor de Velocidade. .......................................................... 68 Figura 49 - Posicionamento do novo sensor de velocidade. ............................ 69
Figura 50 - Sistema mecatrônico com interfaces e o motor-mancal. ................ 69 Figura 51 - Diagrama de controle de corrente com anti-reset windup. Fonte: C28x Solar Library, 2014. ................................................................................. 72
Figura 52 - Transformação do sinal de posição: (a) Transformação rotacional e (b) Transformação bifásica – trifásica para os sinais de posição. Fonte: Victor (2012). .............................................................................................................. 74 Figura 53 - Estrutura de controle com estimador de fluxo. ............................... 75
Figura 54 - Diagrama de controle em cascata do motor-mancal. ..................... 77 Figura 55 - Controle de corrente do motor-mancal. .......................................... 78
Figura 56 - Resposta à mudança de referência na bobina 1. ........................... 79 Figura 57 - Resposta à referência senoidal na bobina 1. ................................. 79 Figura 58 - Correntes defasadas na frequência de 15Hz e amplitude 0.8A. .... 80
Figura 59 - Correntes defasadas na frequência de 30Hz e amplitude 0.8 A. ... 81
Figura 60 - Correntes defasadas na frequência de 60Hz e amplitude 0.8A. .... 81 Figura 61 - Correntes defasadas na frequência de 60Hz e amplitude 1.3A. .... 81 Figura 62 - Controle de posição em cascata com o controle de corrente do motor-mancal. .................................................................................................. 82
Figura 63 - Resultado do controle de posição para o eixo X. ........................... 82 Figura 64 - Resultado do controle de posição para o eixo Y. ........................... 83 Figura 65 - Resultado do controle de posição com uma área de disperso do rotor para acionamento a 60Hz. ....................................................................... 83 Figura 66 - Resultado do controle de posição com uma área de dispersão do rotor para o acionamento a 15Hz. .................................................................... 84 Figura 67 - Resultado do controle de posição com uma área de dispersão do rotor para o acionamento a 30Hz. .................................................................... 84
Figura 68 - Resultado do controle de posição com uma área de dispersão do rotor para o acionamento a 45Hz. .................................................................... 84
Figura 69 - Deslocamentos radial do eixo X acionado em 60Hz. ..................... 85 Figura 70 - Deslocamentos radial do eixo Y acionado em 60Hz. ..................... 85 Figura 71 - Resultados referentes às correntes impostas, controladas e sensoriada. ....................................................................................................... 86
Figura 72 - (A) Posição X, (B) erro do controlador e (C) sinais de controle. .... 87 Figura 73 - (A) Posição Y, (B) erro do controlador e (C) sinais de controle. .... 87 Figura 74 - Resultado de treinamento, validação e testes da Rede Neural. Fonte: Toolbox do Matlab ®. ............................................................................ 89 Figura 75 - Erro quadrático médio para um treinamento com 104 épocas. Fonte: Toolbox do Matlab ®. ............................................................................ 89 Figura 76 - Velocidade mecânicas e posições X e Y para referência de velocidade em degrau constante. ..................................................................... 90
Figura 77 - Sinais de controle PI e neural para referência de velocidade em degrau. ............................................................................................................. 91 Figura 78 - Diagramas de posicionamento radial para referência de velocidade em degrau constante. ....................................................................................... 91 Figura 79 - Velocidade mecânica e posições X e Y para referência de velocidade em degraus. ................................................................................... 92 Figura 80 - Sinais de controle para referência de velocidade em degraus. ...... 93 Figura 81 - Sinais do erro de controle para referência de velocidade em degraus. ........................................................................................................... 93 Figura 82 - Diagramas de posicionamento radial para referência de velocidade em degraus. ..................................................................................................... 94
Figura 83 - Medição da velocidade mecânica (A) controle PI e (B) controle neural. .............................................................................................................. 94 Figura 84 - Diagrama de blocos do kit edZdspTM F28335. Fonte: SPECTRUM DIGITAL INC., 2007. ........................................................................................ 98
Figura 85 - Layout do kit edZdspTM F28335.................................................... 98 Figura 86 - Fluxograma do algoritmo de controle implementado no DSP 28335. ......................................................................................................................... 99
i
LISTA DE SIMBOLOS E VARIÁVEIS
Símbolo Descrição
Pnom Potência Nominal.
ωnominal Velocidade Nominal.
Vnominal Tensão nominal.
Inominal Corrente Nominal.
𝑅𝑆 𝑜𝑢 R1 e 𝑅𝑅 𝑜𝑢 R2 Resistências de estator e de rotor por fase.
𝐿𝑚 Indutância de magnetização.
𝐿𝑠 e 𝐿𝑅 Indutâncias próprias do estator e do roto por fase.
𝑇𝑅 Constante de tempo do rotor.
𝑛𝑝 Número de pares de pólos.
𝐽 Momento de inércia do rotor.
Fator de dispersão.
𝐾 Constante de torque relacionada à indutância própria do estator.
𝐷 Fator de carga.
t Tempo em segundos.
𝑖𝑆1, 𝑖𝑆2 e 𝑖𝑆3 Valores instantâneos das correntes trifásicas do estator.
𝑖𝑆𝛼 e 𝑖𝑆𝛽 Valores instantâneos das correntes bifásicas em coordenadas do estator.
𝑖𝑆𝑑 e 𝑖𝑆𝑞 Valores instantâneos das correntes de campo e torque em coordenadas de campo do rotor.
𝑖𝑚𝑅 e 𝑖𝑚𝑅 Valores instantâneos das correntes de magnetização real e estimada.
𝑚𝑀 e 𝑚𝐿 Valores instantâneos do torque elétrico e do torque de carga.
𝜔𝑚𝑒𝑐 e 𝜔𝑚𝑅 Valores instantâneos da velocidade mecânica e da velocidade de escorregamento.
𝜌 e Posição angular real e estimada do fluxo do rotor.
dt
d Operador de derivação de uma função ou variável.
Operador de integração de uma função ou variável.
sen x e cos x Funções seno e cosseno de um ângulo x genérico.
arctan x Função arcotangente de um ângulo x genérico.
ia, ib e ic Correntes trifásicas de referência por fase.
+, -, * e / Operadores de soma, subtração, multiplicação e divisão.
g0 Medida do entreferro
rfe Resistência correspondente às Perdas do núcleo por fase
ia1 Corrente na bobina a1
ia2 Corrente na bobina a2
ib1 Corrente na bobina b1
ib2 Corrente na bobina b2
ic1 Corrente na bobina c1
ic2 Corrente na bobina c2
𝜇𝐴(𝑥) Função que indica a pertinência de x no conjunto Fuzzy A
Ω Conjunto Universo
Operador t-norma
Operador t-conorma
p,q,r e s Pesos do polinômio Sugeno de primeira ordem
212121 ,,,, CeCBBAA Conjuntos Fuzzy
𝑥(𝑛) Vetor de entrada
𝑑(𝑛) Vetor de saída desejada
𝑦𝑖(𝑙−𝑖)
(𝑛) Sinal de saída do neurônio 𝑖 da camada anterior 𝑙 − 1
𝑤𝑗𝑖𝑙 (𝑛) Peso sináptico do neurônio 𝑗 da camada 𝑙 alimentado
pelo neurônio 𝑖 da camada 𝑙 − 1
𝑒𝑗 Erro da camada J
𝛼 Constante de momento
𝜂 Taxa de aprendizagem
𝑂1𝑖 Saída da camada i
𝑤𝑖 Valor normalizado do grau de ativação da regra
RT
Bloco um atraso de 1ª Ordem.
Bloco de integração numérica de variáveis.
cossin
Bloco de cálculo de senos e cossenos.
Bloco de implementação do controlador PI.
Constante multiplicativa de valor n.
Vetores de entrada e saída, conexões entre blocos.
n
i
RESUMO
Este trabalho descreve o estudo e a implementação digital de um sistema
de controle embarcada em um DSP TMS 3208F28335 para o controle vetorial
de velocidade do motor-mancal com bobinado dividido de 4 pólos com 250W de
potência. As técnicas inteligentes: ANFIS e as Redes Neurais foram investigadas
e implementadas computacionalmente para a avaliação do desempenho do
motor-mancal nas seguintes condições: operando como estimador de
parâmetros incertos, e como controlador de velocidade, respectivamente. Para
isso, utilizou-se o programa MATLAB® e seu toolbox para as simulações e os
ajustes dos parâmetros envolvendo a estrutura ANFIS (acrônimo do inglês
Adaptive-Network-Based Fuzzy Inference System), e também para as
simulações com a Rede Neural. Os resultados simulados mostraram um bom
desempenho para as duas técnicas aplicadas, de forma diferente: como
estimador, e como controlador de velocidade utilizando ambas um modelo do
motor de indução operando como um motor-mancal. A parte experimental para
o controle vetorial de velocidade utiliza três malhas de controles: corrente,
posição radial e velocidade, onde foram investigadas as configurações dos
periféricos, ou seja, as interfaces ou drivers para o acionamento do motor-
mancal. Detalhes de configuração dos periféricos do DSP TMS 3208F335 são
descritas neste trabalho, assim como, as interfaces responsáveis pela aquisição
da corrente, posição radial e velocidade do rotor. Por último, são mostrados os
resultados experimentas do motor-mancal do controle de corrente, posição e
velocidade comparando o seu funcionamento com o controle vetorial clássico e
com o controle neural.
Palavras-Chave: Redes Neurais, ANFIS, Motor-Mancal, Controle em cascata, DSP TMS 3208F335
ABSTRACT
This thesis describes the study and embedded a digital implementation
control system in a DSP TMS 320F28335 for a speed vector control of a
bearingless-motor with divided winding type 4 pole with 250W of power. Smart
techniques ANFIS and Neural Networks have been investigated and
implemented computatationally for the evaluation of motor-bearing performance
under the following conditions: operating as estimator of uncertain parameters
and as speed control. It’s used the MATLAB program and its toolbox for the
simulations and the parameter settings involving the ANFIS structure and also for
the simulations with Neural Nertwork. The simulated results showed good
performance for both techniques applied in different ways: as an estimator and
as speed controller. It has been used in both situation an induction motor model
operating as a bearingless-motor. The experimental Analisis or tests for the
speed vector control uses three control loops: current radial position and in
speed, wich the peripheral configuration was investigated, ie, the interfaces or
drivers for driving the bearingless-motor. Configuration details of DSP TMS
320F28335 peripherals are described in this work, as well as the interfaces
responsible for the acquisition of current, radial position and rotor speed. Finally,
the experimental results with the bearingless-motor are shown, comparing the
functioning of the classical vector control with the neural control.
Keywords: Neural Network, ANFIS, Bearingless-Motor, Cascade Control, DSP TMS 3208F335.
15
CAPÍTULO 1
INTRODUÇÃO
Neste capítulo, são apresentadas as motivações, os objetivos do trabalho,
a proposta e, por último, a estrutura do texto.
1.1 INTRODUÇÃO
O motor-mancal ou máquina sem mancal, como denominado em alguns
trabalhos, são, segundo as definições clássicas, “motores com a função de
mancal integrada magneticamente” ou “mancais magnéticos com a função de
motor integrada magneticamente”. Conforme essas definições, um motor-
mancal se diferencia de um motor convencional por ter a função mancal
magneticamente integrada (VICTOR, 2012). Os motores de indução trifásicos
com rotor em gaiola de esquilo têm sido utilizados como máquinas sem mancal
em pesquisas realizadas desde a década de 1990 (SALAZAR, 1993). Neles, o
enrolamento estatórico é utilizado para produção do torque eletromagnético e
também para a produção das forças radiais necessárias ao posicionamento do
rotor. A modelagem, a análise e o controle de uma máquina de indução com
bobinado dividido são apresentados para o funcionamento por correntes
impostas (SANTISTEBAN, 1999).
A literatura contém uma grande variedade de estratégias para o controle
de máquinas elétricas e para o motor-mancal. Nesse tópico, apresenta-se um
estudo do estado da arte com alguns trabalhos que, de alguma forma, foram
CAPÍTULO 1. INTRODUÇÃO 16
utilizados como referência para o estudo, o projeto e o desenvolvimento desta
tese:
Buro (1994) mostrou um exemplo de comportamento do rotor não-
estacionário com uma Rede Neural no campo do controle para a dinâmica do
rotor;
Jiang, Zmood e Qin (1996) examinaram a operação de um sistema de
rolamento magnético utilizando controladores de neurais em que o rotor foi
sujeito a perturbações periódicas externas;
Paiva et. al. (2008) implementaram o controle vetorial de velocidade da
máquina de indução trifásica sem mancais utilizando a orientação de fluxo do
rotor, com estimadores neurais off-line para a estimação da magnitude da
corrente de magnetização e velocidade angular do fluxo do rotor com dados
simulados;
Queiroz (2008) apresentou o controle vetorial de velocidade da máquina de
indução trifásica utilizando a orientação de fluxo do rotor e apresentou seu
estimador neural utilizando dados de ensaios como conjuntos de treinamento
para validar o estimador neural;
Victor. et al. (2009) compararam o desempenho da máquina de indução sem
mancal com bobinado dividido funcionando com dois estimadores neurais e
com observadores convencionais;
Zheng-Qi e Xian-Xing (2013) propuseram uma nova estratégia de controle
para desacoplar o motor de indução sem mancal com base na abordagem de
Rede αth-ordem baseado no modelo inverso neural.
Abordando-se a técnica inteligente híbrida, foram identificados vários
pesquisadores utilizando o ANFIS(acrônimo do inglês Adaptive-Network-Based
Fuzzy Inference System):
Vasudevn, Arumugam e Paramasivam (2003) mostram de forma detalhada a
técnica ANFIS utilizada para a estimação de parâmetros de um motor de
indução.
Zhi-Xiang e He-Qing (2006) propuseram um novo método para a identificação
de sistemas não lineares utilizando o ANFIS.
Depari et. al.(2007) propuseram uma técnica de calibração de sensores
baseada no ANFIS.
CAPÍTULO 1. INTRODUÇÃO 17
Ding e Linag (2008) empregaram o ANFIS para obter modelos de corrente e
de torque de uma máquina de relutância comutada 6/4.
Lima (2010) propôs o desenvolvimento e a implementação de um estimador
baseado em um sistema ANFIS para o controle de velocidade do motor de
indução trifásico em um acionamento sem sensores.
Lopes et al. (2014) utilizaram o ANFIS para estimar os parâmetros internos do
motor de indução comportando-se como motor-mancal.
No Brasil, a técnica híbrida neural e a lógica Fuzzy aplicadas em máquinas
elétricas foram iniciada com Lino (1997), que realizou uma revisão dos
fundamentos do controle por orientação de fluxo do rotor utilizando uma
abordagem Neuro-Fuzzy. No entanto, os estudos dos controladores vetoriais
necessitam de sensores de fluxo para determinar o valor exato da magnitude e
da posição do fluxo girante. Esse fator gerou a necessidade do uso de sensores
de fluxo colocados no interior da máquina, o que, em determinados sistemas,
era inviável pela dificuldade de acesso ou pelo alto custo desses sensores
(PAIVA, 2007). Para contornar essa limitação, utilizou-se o estimador de fluxo ou
observador de fluxo baseado no modelo vetorial da máquina, tomando como
referencial o vetor de fluxo do estator, o vetor de fluxo do rotor ou o vetor do fluxo
do entreferro. Concluiu-se que as técnicas inteligentes artificiais usando Redes
Neurais e o ANFIS são largamente empregadas para estimar parâmetros e para
o controle das máquinas elétricas ou nos motores sem mancais.
1.2 OBJETIVOS
Este trabalho teve como objetivos o estudo e a implementação da técnica
de inteligência artificial aplicada ao controle vetorial de velocidade para o motor-
mancal do tipo bobinado dividido baseado no motor de indução. Pretendeu-se
investigar e simular as técnicas inteligentes ANFIS e as Redes Neurais para a
avaliação do desempenho do motor-mancal nas seguintes condições: operando
como estimador e como controlador de velocidades.
O motor-mancal de bobinado dividido, adotada neste trabalho, foi
proposta por Ferreira (2002). Na parte experimental foi utilizado o DSP
TMS3208F28335 para integrar o algoritmo de controle com as interfaces de
corrente, de posição e de velocidade, compondo um sistema em cascata. A
CAPÍTULO 1. INTRODUÇÃO 18
técnica inteligente implementada foi a Rede Neural, a qual atuou como
controlador de velocidade. Os resultados de posição e de velocidade mecânica
foram comparados com o controlador PI de velocidade e o Controlador Neural.
O algoritmo de controle implementado no DSP TMS320F28335 foi desenvolvido
em linguagem de programação ANSI C. O sistema motor-mancal está localizado
no Laboratório de Engenharia de Computação e Automação (LECA) da UFRN.
1.3 CONTRIBUIÇÕES DESTE TRABALHO
Algumas contribuições relevantes foram obtidas com este trabalho:
1. o estudo e a avaliação das técnicas inteligentes artificiais ANFIS e as
Redes Neurais aplicadas ao motor-mancal operando como estimador e como
controlador de velocidade, respectivamente;
2. a substituição do DSP TMS 320F2812 pelo DSP TMS320F28335, com
o objetivo de melhorar o desempenho. Foram implementados os módulos eCAP,
PWM e ADC para a comunicação com as interfaces de corrente, de posição e
de velocidade. Esse DSP permite a comunicação com o Matlab®, recurso que
facilita a obtenção de parâmetros internos do algoritmo de controle do motor-
mancal;
3. a avaliação das interfaces implementadas por Souza Filho (2011) no
sistema mecatrônico integrando com o DSP TMS320F28335. Houve a
necessidade de substituir o circuito eletrônico de detectação de pulsos pelo
circuito eletrônico utilizado em Silva (2015). O objetivo foi evitar os problemas de
ruídos e, às vezes, a perda dos pulsos, a qual ocasiona a perda do valor da
velocidade medida ou erro na medição;
4. implementação da Rede Neural com a função de ativação tangente
sigmoide no controle vetorial de velocidade operando em cascata com o controle
de posição e de corrente;
1.4 ORGANIZAÇÃO DO TEXTO
Este texto está organizado da seguinte forma: o capítulo 2 realiza uma
explanação das técnicas de inteligência artificial como a Rede Neural e o sistema
híbrido Neuro-Fuzzy; o capítulo 3 apresenta a introdução à modelagem e à
CAPÍTULO 1. INTRODUÇÃO 19
simulação vetorial da máquina de indução operando como motor-mancal; o
capítulo 4 descreve o arranjo experimental especificando detalhes de
implementação do sistema físico; o capítulo 5 explica a escolha da estrutura de
controle em cascata implementada; o capítulo 6 apresenta os resultados
experimentais; e, por último, são apresentados as conclusões e as perspectivas
de trabalhos futuros.
20
CAPÍTULO 2
FUNDAMENTAÇÃO TEÓRICA
Neste capítulo, é feita uma breve uma explanação dos Sistemas de
Inferência Fuzzy, das Redes Neurais Artificiais e do Sistema Hibrido Neuro-
Fuzzy, abordando seus aspectos de construção e de funcionamento.
2.1 ASPECTOS DOS SISTEMAS DE INFERÊNCIA FUZZY
A Lógica Fuzzy foi desenvolvida por Loft A. Zadeh (1965) para representar o
conhecimento incerto ou impreciso. Segundo Sandri (1999), um conjunto Fuzzy
A do universo de discurso Ω é definido por uma função de pertinência 𝜇𝐴:Ω→[0;
1].
Essa função associa a cada elemento x o grau 𝜇𝐴(x), no qual o elemento x
pertence ao conjunto A. A função de pertinência 𝜇𝐴(x) indica o grau de
compatibilidade entre x e o conceito expresso por A:
𝜇𝐴(x) = 1 indica que x é completamente compatível com A;
𝜇𝐴(x) = 0 indica que x é completamente incompatível com A;
0 < 𝜇𝐴(x) < 1 indica que x é parcialmente compatível com A, com grau
𝜇𝐴(x).
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 21
2.2 SISTEMA DE INFERÊNCIA FUZZY
O Sistema de Inferência Fuzzy (FIS, acrônimo do inglês Fuzzy Inference
System) trata de forma adequada a não linearidade e a incerteza na modelagem
de sistemas complexos. No lugar de modelos matemáticos precisos, o FIS usa
a teoria dos conjuntos Fuzzy, regras Fuzzy SE-ENTÃO e o raciocínio Fuzzy.
Os Sistemas de Inferência Fuzzy permitem o mapeamento do
conhecimento a respeito de um processo através de regras Fuzzy do tipo SE-
ENTÃO. De posse dessas regras, pode-se determinar o comportamento das
variáveis de saída do sistema, isso por intermédio do processo de Inferência.
Dessa forma, o sistema de Inferência Fuzzy permite o tratamento de informações
incertas ou imprecisas, representadas por uma família de conjuntos Fuzzy.
Assim, a Inferência Fuzzy oferece uma forma sistemática para a modelagem de
processos cujas informações são fornecidas de forma qualitativa.
O processo de Inferência Fuzzy pode ser dividido nas seguintes etapas:
fuzzificação; regras e Inferências; e defuzzificação, como ilustra a figura 1.
FUZZIFICAÇÃO
INFERÊNCIA
REGRAS
DEFUZZIFICAÇÃO
Entradas Precisas
Conjuntos Fuzzy de
entrada
Conjuntos Fuzzy de
saída
Saídas Precisas
Figura 1 - Diagrama do processo de Inferência Fuzzy.
A seguir, descreve-se a funcionalidade de cada bloco da figura 1, dividida
em quatro etapas.
1. Fuzzificação: nesta etapa, as entradas não Fuzzy são apresentadas
ao sistema por intermédio de medições ou observações de dados, os quais são
considerados como sendo o conjunto de dados de entrada do sistema. Desse
modo, é necessário efetuar um mapeamento dos dados de entrada para o
conjunto Fuzzy, de tal forma que o sistema possa identificar a quais variáveis
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 22
linguísticas esses dados pertencem e o quanto eles são pertinentes a essas
variáveis.
2. Regras: podem ser fornecidas por especialistas, com base em seu
conhecimento a respeito do processo que se deseja analisar, em forma de
sentenças linguísticas e se constituem em um aspecto fundamental no
desempenho de um sistema de Inferência Fuzzy. Dessa forma, o sistema de
Inferência Fuzzy terá um desempenho confiável e satisfatório somente se as
regras expressarem o comportamento do sistema de forma fiel e consistente.
Entretanto, a extração de um conjunto de regras advindas do
conhecimento de um especialista pode não ser uma tarefa fácil, por mais que ele
conheça profundamente o problema que se deseja analisar. Portanto, existem
outras alternativas ao uso do conhecimento do especialista para a definição da
base de regras, tais como os métodos de extração de regras a partir de dados
numéricos. Esses métodos são particularmente úteis em aplicações nas quais
haja disponível um conjunto de dados numéricos que refletem o comportamento
entrada/saída do sistema.
3. Inferência: nesse processo, ocorrem as operações com os conjuntos
Fuzzy. Um aspecto importante é a definição dos conjuntos Fuzzy
correspondentes às variáveis de entrada e às de saída, pois o desempenho do
sistema de Inferência dependerá do número de conjuntos e de sua forma
adotada. É possível efetuar uma sintonia manual das funções de pertinências
dos conjuntos, mas é mais comum empregar métodos automáticos. A integração
entre sistemas de Inferência Fuzzy e redes neurais artificiais tem se mostrado
adequada para a sintonização das funções de pertinências, assim como para a
geração automática de regras.
4. Defuzzificação: após o processo de Inferência, tem-se o processo de
defuzzificação, que, de posse do conjunto Fuzzy de saída adquirido através do
processo de Inferência, é responsável pela interpretação dessa informação para
saídas precisas (dados não Fuzzy). Isso se faz necessário, já que, em aplicações
práticas, são requeridos valores não Fuzzy.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 23
O processo de defuzzificação ocorre dentro do sistema de Inferência
Fuzzy, no qual há o processo de implicação Fuzzy, que consiste na geração da
região de saída Fuzzy, dada uma entrada também Fuzzy, ou seja, representa a
implicação dos resultados obtidos dos conjuntos de entrada no conjunto de
saída. Assim, com esse resultado, é possível obter um valor numérico não Fuzzy
do sistema Fuzzy por intermédio do processo de defuzzificação.
Neste processo, existem diversos métodos de defuzzificação,
destacando-se entre eles o do centro de área, o da média dos máximos e o do
primeiro máximo.
2.2.1 Funções de Pertinência
As funções de pertinência representam o conhecimento do especialista
sobre o problema em questão. Seu formato pode variar de uma forma triangular,
trapezoidal, gaussiana ou até sino generalizada - dependendo da sua
empregabilidade - geralmente expressa num intervalo [0,1], de modo a facilitar a
implementação Fuzzy. A figura 2 ilustra os tipos de funções de pertinências
citados.
Figura 2 - Funções de Pertinência.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 24
A parametrização das funções de pertinência é um ponto importante no
desempenho do sistema de Inferência Fuzzy, pois, a partir dessas funções,
pode-se determinar, por intermédio do processo de Inferência, o comportamento
das variáveis de saída do sistema. Para demonstrar a importância do ajuste das
pertinências, a figura 3 ilustra a variação de alguns parâmetros da função sino
generalizada.
Figura 3 - Efeito da mudança de parâmetros a, b e c da Função de Pertinência Sino Generalizada da Equação 2.1.
A figura 3 mostra a variação de parâmetros da Função de Pertinência Sino
Generalizada, representada pela Equação 2.1.
b
a
cxcbaxgbellmf
2
1
1),,,(
(2.1)
De acordo com RODRIGUES (2006), algumas operações podem ser
realizadas sobre os conjuntos Fuzzy, assim como ocorre com os conjuntos
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 25
clássicos. A interseção é implementada por um conjunto de operadores
denominados de t-normas(⊺), e a união é implementada por outro conjunto
denominado t-conormas(⊥) ou s-normas. A tabela 1 indica as t-normas e t-
conormas mais utilizadas.
Tabela 1 - As t-normas e t-conormas mais utilizadas.
t-normas t-conormas Nome
),min( ba ),max( ba Zadeh
ba abba ticaProbabilís
)0,1max( ba )1,min( ba zLukasiewic
2.2.2 Características e tipos do FIS
Podemos citar algumas características importantes na escolha do
Sistema de Inferência Fuzzy:
apresenta habilidade de modelar problemas com propriedades não
lineares;
é capaz de incorporar tanto o conhecimento objetivo (modelos
matemáticos) quanto o conhecimento subjetivo (informações linguísticas
de difícil tratamento formal);
apresenta habilidade em modelar sistemas que envolvam múltiplos
especialistas;
trata de forma adequada as incertezas.
Os três tipos de Sistemas de Inferência Fuzzy podem ser classificados em
Modelos Clássicos (Mamdani) e Modelos por interpolação (Sugeno e
Tsukamoto), demonstrados com modelos abaixo.
Modelo 1 - Fuzzy Mamdani
O modelo de Mamdani utiliza o modelo clássico do processo de inferência
Fuzzy. Considere um sistema com duas entradas Fuzzy 𝑥 e 𝑦 e com uma saída
Fuzzy 𝑧. As duas entradas A e B irão passar por um conjunto de regras do tipo:
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 26
),(,11111 ,,,1,1,1 ByAxCzByAx comCézENTÃOcomBéyecomAéxSE
),(,22222 ,,,2,2,2 ByAxCzByAx comCézENTÃOcomBéyecomAéySE
Considere-se que 212121 ,,,, CeCBBAA são conjuntos Fuzzy. Pode-se obter
uma saída Fuzzy aplicando o operador t-conorma, equação 2.2.
),,,( 21 CCz zz (2.2)
Exemplo de inferência do Modelo Fuzzy Mamdani (figura 4).
1B
2B
1A
2A
x y
Mínimo
X Y
X Y Z
Z
Z
'
1C
'
2C
'C
z
t-conorma (max)
Figura 4 - Modelo Mamdani com duas entradas x e y.
Modelo 2 - Tsukamoto
Neste modelo, os consequentes de cada regra Fuzzy devem ser funções
monotônicas, pois elas operarão na forma inversa para a obtenção da saída do
sistema. Uma função é dita monotônica se puder ser classificada como
crescente, estritamente crescente, decrescente ou estritamente decrescente,
como as funções degrau, sigmóide, tangente-hiperbólica ou a mesmo a função
identidade. Considere um sistema com duas entradas Fuzzy 𝑥 e 𝑦 e com uma
saída Fuzzy 𝑧. As duas entradas A e B passarão por um conjunto de regras do
tipo:
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 27
𝑆𝑒 𝑥 é 𝐴1 𝑐𝑜𝑚 𝜇𝑥,𝐴1𝑒 𝑦 é 𝐵1 𝑐𝑜𝑚 𝜇𝑦,𝐵1 ,𝑒𝑛𝑡ã𝑜 𝑧 é 𝐶1𝑐𝑜𝑚 𝜇𝑧,𝐶1
= 𝑇(𝜇𝑥,𝐴1, 𝜇𝑦,𝐵1 )
𝑆𝑒 𝑥 é 𝐴2 𝑐𝑜𝑚 𝜇𝑥,𝐴2𝑒 𝑦 é 𝐵2 𝑐𝑜𝑚 𝜇𝑦,𝐵2 ,𝑒𝑛𝑡ã𝑜 𝑧 é 𝐶2 𝑐𝑜𝑚 𝜇𝑧,𝐶2
= 𝑇(𝜇𝑥,𝐴2, 𝜇𝑦,𝐵2 )
Pode-se obter uma saída Fuzzy pela equação 2.3
21
1
2
1
1 )2,(.)1,(.
zCzC
zzCzzC CfCfz
(2.3)
Exemplo de inferência do Modelo Fuzzy Tsukamoto (figura 5).
1B
2B
1A
2A
x y
X Y
X Y
1w
2w
1z
2z
C1
C2
t-norma (min)
21
2.1.
CCz
Figura 5 - Modelo Tsukamoto de inferência.
Modelo 3 - Takagi-Sugeno
O modelo Sugeno, também conhecido como modelo TSK, foi proposto por
Takagi, Sugeno e Kang (figura 2.5), com o objetivo de desenvolver uma
sistemática para a geração de regras Fuzzy a partir de um conjunto de dados de
entrada e saída. A forma de uma típica regra Fuzzy neste modelo é a seguinte:
𝑆𝑒 𝑥 é 𝐴1 𝑐𝑜𝑚 𝜇𝑥,𝐴1𝑒 𝑦 é 𝐵1 𝑐𝑜𝑚 𝜇𝑦,𝐵1 ,𝑒𝑛𝑡ã𝑜 𝑧 é 𝐶1 = 𝑓1(𝑥, 𝑦)
𝑆𝑒 𝑥 é 𝐴2 𝑐𝑜𝑚 𝜇𝑥,𝐴2𝑒 𝑦 é 𝐵2 𝑐𝑜𝑚 𝜇𝑦,𝐵2 ,𝑒𝑛𝑡ã𝑜 𝑧 é 𝐶2 = 𝑓2(𝑥, 𝑦)
Considere-se que ),( yxf n é um polinômio em função das variáveis yex .
),|,(),|,(
),|,(),|,(
2211
222111
BABA
CBACBAz
yxyx
yxyx
(2.4)
Exemplo do Modelo Fuzzy Takagi-Sugeno ( figura 6).
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 28
1B
2B
1A
2A x y
X Y
X Y
Produto
1111 ryqxpC
2222 ryqxpC 21
21 21
zCzC
zCzC CCz
1zC
2zC
Figura 6 - Modelo Fuzzy Sugeno.
O modelo Takagi-Sugeno, assim como os outros modelos de Inferência,
consiste em obter todas as contribuições individuais advindas de cada uma das
regras ativadas. Ressalte-se que a função de pertinência de saída do método de
Takagi-Sugeno pode ser tanto uma função linear como uma função constante.
A figura 7 mostra as variáveis de entrada X e Y com pertinências Pequeno
(P) e Grande (G).
Figura 7 - Pertinências das variáveis de entrada X e Y.
Um gráfico de superfície demonstra o comportamento do sistema de
acordo com as entradas e suas saídas (figura 8).
Figura 8 - Comportamento do sistema de acordo com o mecanismo de inferência.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 29
A diferença entre os três tipos de modelos Fuzzy está nos consequentes
das regras e, por isso, cada tipo de FIS apresenta um método de agregação e
defuzzificação próprio. Podemos destacar algumas desvantagens entre os
modelos: o Mamdani caracteriza-se por demandar bastante tempo para o
processo de defuzzificação; já o modelo Takagi-Sugeno apresenta dificuldade
de atribuir um conceito linguístico ao consequente das regras, pois este é uma
função não Fuzzy das variáveis de entrada; finalmente, o Tsukamoto apresenta
uma função monótonica na sua função de pertinência do consequente, o que
dificulta o seu ajuste.
Já nos sistemas Fuzzy, deve-se descobrir o tipo, a quantidade e o formato
das funções de pertinência a serem utilizadas e definir as regras e os operadores
para o tratamento de suas entradas.
Caso sejam utilizados modelos Fuzzy de interpolação, deve-se determinar
o grau e os coeficientes dos polinômios das funções de saída. Uma das
vantagens da utilização da Lógica Fuzzy é o fato de serem robustos e de fácil
adaptabilidade, conseguindo incorporar características que nem sempre os
sistemas convencionais conseguem tratar (SANDRI, 1999).
De acordo com Viera, Dia e Mota (2004), as vantagens dos sistemas
Fuzzy são:
Capacidade de representar as incertezas inerentes ao conhecimento
humano com variáveis linguísticas;
Facilidade de interpretação dos resultados, devido à representação de
regras naturais;
Extensão fácil da base de conhecimento por meio da adição de novas
regras;
Robustez em relação aos possíveis distúrbios no sistema.
E as suas desvantagens são:
incapacidade de generalizar, ou seja, ele só responde ao que está escrito
na sua base de regra;
não robustez em relação às mudanças topológicas do sistema, que
exigiriam alterações na base de regras;
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 30
dependência da existência de um especialista para determinar as regras
lógicas de inferência.
2.3 ASPECTOS DAS REDES NEURAIS ARTIFICIAIS
As Redes Neurais Artificiais (RNAs) constituem um grande campo de
pesquisa, e vários foram os fatores que motivaram os estudos das RNAs.
Segundo Norgaard (2003), uma das motivações seria criar um programa capaz
de aprender com a experiência. Uma Rede Neural Artificial (RNA) é um sistema
de processamento distribuído de informações que possui algumas
características de desempenho em comum com as redes neurais biológicas.
Uma RNA pode ser caracterizada por três aspectos principais: pelo
padrão de conexões entre as unidades (arquitetura), pela função de ativação das
unidades e pelo método de determinação dos pesos das conexões (algoritmo de
treinamento ou aprendizado).
De acordo com Haykin (1994), no modelo do neurônio artificial, cada
entrada recebe um estímulo, que é ponderado pelos pesos sinápticos, e todas
as suas entradas são somadas, gerando uma resposta que, posteriormente, é
modulada por uma função matemática (função de ativação).
A maneira como os neurônios são organizados define a arquitetura da
rede. A arquitetura utilizada é do tipo perceptron de múltiplas camadas, ilustrada
na figura 9, com o método de treinamento backpropagation, que é baseado no
método do gradiente.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 31
SAÍDAS
d1 d2 d3
ENTRADAS
1 x1 x2 x3 x4
1
i
h
hg
ig
ihW
hjW
Figura 9 - Estrutura de um perceptron de múltiplas camadas.
O algoritmo de treinamento basicamente consiste em corrigir os pesos
sinápticos, com base no erro ocorrido em cada saída da rede neural. A correção
dos pesos é feita utilizando-se o método dos mínimos médios quadráticos,
visando encontrar um valor para os pesos que minimize o erro na saída da rede.
Entre os algoritmos existentes, o mais comum é o Retropropagação do Erro
(Backpropagation), no qual existe a figura do “professor” ou “supervisor”, que
informa qual deve ser a saída para uma determinada entrada. Desse modo,
encontra-se o erro entre a saída desejada e a saída da rede e ajustam-se os
pesos sinápticos e os parâmetros das funções para que esse erro seja o menor
possível.
Considere que um exemplo de treinamento possa ser representado por
meio de um vetor de entrada 𝑥(𝑛) e um vetor de saída desejada 𝑑(𝑛) no instante
𝑛. O vetor de entrada é apresentado aos nós da camada de entrada e o vetor de
saída desejada é apresentado aos neurônios da camada de saída da rede.
Resumidamente, o algoritmo Backpropagation pode ser definido da
seguinte maneira (FERNANDES, 2004):
1. Inicialização aleatória dos pesos sinápticos e limiares, utilizando
uma distribuição uniforme cuja média e nula.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 32
2. Apresentação de uma época de conjuntos de exemplo para
treinamento. Para cada conjunto de treinamento (𝑥(𝑛), 𝑑(𝑛)), realize as etapas
3 e 4.
3. Propagação da Rede. Cálculo dos campos locais induzidos e dos
sinais funcionais da rede camada por camada, prosseguindo para frente. A
equação 2.5 representa o campo local induzido para o neurônio 𝑗 da camada 𝑙,
em que, no instante 𝑛, 𝑦𝑖(𝑙−𝑖)
(𝑛) é o sinal de saída do neurônio 𝑖 da camada
anterior 𝑙 − 1 ; no instante 𝑛, e 𝑤𝑗𝑖𝑙 (𝑛) é o peso sináptico do neurônio 𝑗 da camada
𝑙 alimentado pelo neurônio 𝑖 da camada 𝑙 − 1. Já o 𝑚0 representa o número total
de entradas.
𝑣𝑗(𝑙)(𝑛) = ∑ 𝑤𝑗𝑖
(𝑙)(𝑛)𝑦𝑖(𝑙−𝑖)(𝑛)𝑚
𝑖=0 (2.5)
Se 𝑖 = 0, 𝑦0(𝑙−1)(𝑛) = +1 e o bias aplicado ao neurônio 𝑗 na camada 𝑙
correspondem a 𝑤𝑗0(𝑙)(𝑛) = 𝑏𝑗
(𝑙)(𝑛). Considerando o uso de uma função sigmoide
como de ativação para o sinal de saída do neurônio j na camada l, 𝑦𝑖(𝑙)(n) é
definido de acordo com a equação 2.6.
𝑦𝑗(𝑙)
= φ𝑗(v𝑗(𝑛)) (2.6)
Caso o neurônio 𝑗 faça parte da primeira camada escondida (𝑙 = 1), então
o sinal de saída dessa camada é dado pela equação 2.7, em que 𝑥𝑗(𝑛) é o j-
ésimo elemento do vetor de entrada 𝑥(𝑛).
𝑦𝑗(0)
= 𝑥𝑗(𝑛) (2.7)
Caso o neurônio 𝑗 pertença à camada de saída (𝑙 = 𝐿), então o sinal de
saída é dado pela equação 2.8.
𝑦𝑗(𝐿)
= 𝑜𝑗(𝑛) (2.8)
Portanto, o sinal de erro da rede para um dado conjunto de treinamento
(𝑥(𝑛), 𝑑(𝑛)) pode ser calculado por meio da equação 2.9.
𝑒𝑗(𝑛) = 𝑑𝑗(𝑛) − 𝑜𝑗(𝑛) (2.9)
4. Retropropagação da Rede. Cálculo dos gradientes locais definidos
pela equação 2.10.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 33
𝛿𝑗(𝑙)(𝑛) =
𝑒𝑗
(𝐿)(𝑛)𝜑𝑗′ (𝑣𝑗
(𝐿)(𝑛)) , 𝑝𝑎𝑟𝑎 𝑎 𝑐𝑎𝑚𝑎𝑑𝑎 𝑑𝑒 𝑠𝑎í𝑑𝑎 𝐿
𝜑𝑗′(𝑣𝑗
(𝑙)(𝑛))′∑ 𝛿𝑗(𝑙+1)(𝑛)𝑤𝑘𝑗
(𝑙+1)(𝑛),𝑘 𝑝𝑎𝑟𝑎 𝑎 𝑐𝑎𝑚𝑎𝑑𝑎 𝑜𝑐𝑢𝑙𝑡𝑎 𝑙 (2.10)
Em seguida, os pesos sinápticos da rede devem ser ajustados de acordo
com a equação 2.11, em que 𝛼 é a constante de momento e 𝜂, a taxa de
aprendizado.
𝑤𝑗𝑖(𝑙)(𝑛 + 1) = 𝑤𝑗𝑖
(𝑙)(𝑛) + 𝛼[𝑤𝑗𝑖(𝑙)(𝑛 − 1)] + 𝜂𝛿𝑗
(𝑙)(𝑛)𝑦𝑖(𝑙−1)(𝑛) (2.11)
5. Os passos de treinamento 3 e 4 devem ser executados usando
novas épocas de treinamento até que o critério de parada seja atingido, ou seja,
até que o limite de erro mínimo ou o número máximo de épocas seja atingido.
Segundo Fonseca (2012), na rede neural, um problema pertinente é a
configuração de sua estrutura. Uma das maiores dificuldades na utilização de
redes neurais artificiais é encontrar a configuração adequada de sua estrutura
para que ela apresente resultados satisfatórios, ou seja, descobrir qual a função
de ativação dos neurônios de cada camada, quantas camadas e quantos
neurônios em cada camada deve ter a rede neural pode se tornar um trabalho
árduo e cansativo. Já em Ba-Razzouk (1997) e em Ozer e Akin (2001) as
vantagens da utilização das RNA no controle de um motor de indução são:
Maior rapidez do que outros algoritmos, devido à sua estrutura paralela;
As RNAs não necessitam de modelos matemáticos para a sua solução.
Se um neurônio é corrompido, o seu efeito não altera o comportamento
dos demais;
Apresentam resultados otimizados, que incluem as velocidades e os
torque, se treinadas adequadamente.
Capacidade de aprendizagem e de generalização;
As RNAs apresentam robustez, pois são tolerantes a falhas e podem
extrair informações úteis a partir de sinais ruidosos.
Segundo Zadeh (1965), a lógica Fuzzy é um método de manipulação e
aplicação de conhecimento heurístico de um ser humano para controlar um tal
sistema. A integração entre sistemas de Inferência Fuzzy e as Redes Neurais
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 34
Artificiais tem se mostrado adequada para a estimação de parâmetros da
máquina de indução. Essa união das RNAs e a Lógica Fuzzy será abordada na
próxima seção.
2.4 SISTEMA HIBRIDO NEURO-FUZZY
O desenvolvimento de um sistema Fuzzy com bom desempenho não é
uma tarefa fácil. O problema de encontrar funções de pertinência e regras
apropriadas é frequentemente um processo exaustivo de tentativa e erro. Essas
dificuldades trouxeram a integração dos algoritmos de aprendizado com os
sistemas Fuzzy, a qual se apresenta como uma alternativa para automatizar ou
apoiar o desenvolvimento de sistemas Fuzzy de ajuste. As razões para combinar
esses dois paradigmas iniciam-se a partir das dificuldades e limitações inerentes
a cada paradigma isolado.
Genericamente, quando são usados de forma combinada, eles são
chamados de Sistemas Neuro-Fuzzy, termo que, no entanto, é muitas vezes
utilizado para designar um tipo específico de sistema que integra as duas
técnicas. Esse tipo de sistema é caracterizado por um sistema Fuzzy no qual
conjuntos Fuzzy e regras difusas são ajustados usando padrões de entrada e
saída (VIEIRA; DIAS; MOTA, 2004). Dentre os tipos de Sistemas híbridos Neuro-
Fuzzy existentes (NAUCK; KLAWON; KRUSE, 1997; e VIEIRA; DIAS; MOTA,
2004), optou-se pelo sistema de inferência híbrido Neuro-Fuzzy adaptativo
(descrito na seção 2.4.1), com o objetivo de estudar a técnica aplicada no Motor-
Mancal.
2.4.1 ANFIS
O ANFIS, acrônimo do inglês Adaptive-Network-Based Fuzzy Inference
System, desenvolvido por Jang (1993), corresponde ao Modelo Sugeno de
primeira ordem. O modelo ANFIS utiliza como estrutura básica um controlador
Fuzzy, o qual pode ser interpretado como uma rede neural de seis camadas
interligadas através de pesos unitários, em que cada uma é responsável por uma
operação que resultará em uma saída análoga à encontrada em uma
determinada etapa de um sistema Fuzzy do tipo Takagi-Sugeno.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 35
Deve-se notar que estruturas semelhantes também foram propostas
independentemente. De acordo com Vieira, Dias e Mota (2004), podem-se citar
o Fuzzy Adaptive Learning Control Network (FALCON), em 1991; Generalized
Approximate Reasoning based Intelligence Control (GARIC), em 1992; Fuzzy
Net (FUN), em 1993; Fuzzy Inference and Neural Network in Fuzzy Inference
Software (FINEST), em 1996; Neuronal Fuzzy Controller (NEFCON), em 1997;
Self Constructing Neural Fuzzy Inference Network (SONFIN), em 1998; Fuzzy
Neural Network (NFN), em 1999.
Essas estruturas são úteis para estimação de parâmetros não lineares,
controle e para muitas outras aplicações. Em Vasudevn, Arumugam e
Paramasivam (2003), o ANFIS foi utilizado para a estimação de parâmetros de
um motor de indução. Zhi-Xiang e He-Qing (2006) propuseram um novo método
para a identificação de sistemas não lineares, utilizando o ANFIS. Foi proposta
uma técnica de calibração de sensores baseada em ANFIS por Depari (2007) e
Ding (2008), os quais empregaram o ANFIS para obter modelos de corrente e
de torque de uma máquina de relutância comutada 6/4.
Lima (2010) propôs o desenvolvimento e a implementação de um
estimador baseado em um sistema de inferência Neuro-Fuzzy adaptativo
(ANFIS) para o controle de velocidade do motor de indução trifásico em um
acionamento sem sensores. Portanto, há diversos trabalhos utilizando o ANFIS.
2.4.2 Estrutura do ANFIS
Para simplificar, primeiro considere um sistema Fuzzy com duas regras
2.12 e 2.13:
𝑅1: 𝑆𝑒 𝑥1 é 𝐴1 𝑐𝑜𝑚 𝜇𝑥1,𝐴1𝑒 𝑥2 é 𝐵1 𝑐𝑜𝑚 𝜇𝑥2,𝐵1 ,𝑒𝑛𝑡ã𝑜 𝑦 = 𝑓1(𝑥) (2.12)
𝑅2: 𝑆𝑒 𝑥1 é 𝐴2 𝑐𝑜𝑚 𝜇𝑥1,𝐴2𝑒 𝑥2 é 𝐵2 𝑐𝑜𝑚 𝜇𝑥2,𝐵2
, 𝑒𝑛𝑡ã𝑜 𝑦 = 𝑓2(𝑥) (2.13)
Sendo 𝑥1 e 𝑥2 as entradas, 𝜇𝑥1,𝐴1, 𝜇𝑥2,𝐵1
, 𝜇𝑥1,𝐴2, 𝜇𝑥2,𝐵2
o grau de pertinências dos
conjuntos Fuzzy 𝐴1, 𝐵1, 𝐴2, 𝐵2 e 𝑓1(𝑥), 𝑓2(𝑥) suas saídas (2.14 e 2.15):
𝑓1(𝑥) = 𝑧11𝑥1 + 𝑧12𝑥2 + 𝑧13 (2.14)
𝑓2(𝑥) = 𝑧21𝑥1 + 𝑧22𝑥2 + 𝑧23 (2.15)
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 36
Sabendo-se que, quando 𝑓1(𝑥) = (𝑥1, 𝑥2) é apresentado pelo mecanismo
de inferência Fuzzy, produz a saída (2.16):
𝑦∗ =𝐴1(𝑥1)𝐵1(𝑥1)𝑓1(𝑥)+𝐴2(𝑥1)𝐵2(𝑥1)𝑓2(𝑥)
𝐴1(𝑥1)𝐵1+𝐴2(𝑥1)𝐵2(𝑥1) (2.16)
A estrutura ANFIS implementada pode ser representada pela figura 10.
y
1A
2A
1B
N
11O
1x
2x
2B
12O
13O
14O
N
21O
22O
f
f
31O
32O
1x 2x
1x 2x
41O
42O
3Camada1Camada 2Camada 4Camada 5Camada
Figura 10 - Modelo Sugeno de 1º ordem com duas regras.
A figura 10 apresenta 5 camadas descritas a seguir:
Camada 1: os neurônios desta camada representam as funções de
pertinências de entrada, ou seja, a fase de fuzzificação. Nessa etapa, o
neurônio produz uma resposta igual ao grau de pertinência da variável de
entrada no conjunto nebuloso associado ao neurônio.
𝑂11 = 𝜇𝐴1(𝑥1)
𝑂12 = 𝜇𝐴2(𝑥1)
𝑂13 = 𝜇𝐵1(𝑥2)
𝑂14 = 𝜇𝐵2(𝑥2)
(2.17)
Ressalte-se que 𝜇𝐴1 é o grau de pertinência e 𝑂1𝑖 é a saída da camada i. Esta
camada é chamada de “entrada fuzzy”.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 37
Camada 2: esta camada consiste em neurônios com um operador de
agregação t-norma. Usamos o produto t-norma neste exemplo considerando
a forma com que o produto é usado no procedimento de inferência Sugeno-
Takagi. A sua saída da camada 2 é (2.18 e 2.19):
𝑂21= 𝑤1 = 𝐴1(𝑥1)𝐵1(𝑥2) = 𝜇𝐴1(𝑥1) 𝜇𝐵1
(𝑥2) (2.18)
𝑂22 = 𝑤2 = 𝐴2(𝑥2)𝐵2(𝑥2)=𝜇𝐴2(𝑥1) 𝜇𝐵2
(𝑥2) (2.19)
Nesta etapa, cada neurônio está associado a uma regra SE-ENTÃO.
Assim, a omissão de um neurônio indica a omissão de uma das regras e, nesta
etapa, os neurônios são fixos.
Camada 3: a saída desta camada será a saída dos neurônios da camada
anterior, normalizados, ou seja, a saída de cada neurônio da camada anterior
dividida pela soma da saída de todos os neurônios desta mesma camada.
(𝑂31, 𝑂32) = (𝑂21
𝑂21+𝑂22,
𝑂22
𝑂21+𝑂22) (2.20)
Substituindo as equações (2.18) e (2.19) em (2.20), obtém-se:
(𝑂31, 𝑂32) =
= (𝐴1(𝑥1) + 𝐵1(𝑥2)
𝐴1(𝑥1) + 𝐵1(𝑥2) + 𝐴2(𝑥1) + 𝐵2(𝑥2),
𝐴2(𝑥1) + 𝐵2(𝑥2)
𝐴1(𝑥1) + 𝐵1(𝑥2) + 𝐴2(𝑥1) + 𝐵2(𝑥2))
(2.21)
A equação 2.21 pode ser reescrita como a 2.22 e a 2.23:
𝑂31 =𝑤1
𝑤1+𝑤2= 𝑤1 (2.22)
𝑂32 =𝑤2
𝑤1+𝑤2= 𝑤2 (2.23)
Assim, o valor normalizado do grau de ativação da regra é igual à razão
do grau de ativação da regra associada ao neurônio pela soma dos graus de
ativação de todas as regras.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 38
Camada 4: nesta camada, a resposta produzida por cada neurônio é o
valor da função no consequente da regra multiplicada pelo grau de ativação
normalizado. A função associada aos neurônios desta camada será o polinômio
𝑓(𝑥1, 𝑥2), utilizado pelo modelo Sugeno, em que 𝑥1 𝑒 𝑥2 são as entradas do
sistema e 𝑝, 𝑞 e 𝑟 são os parâmetros ajustáveis do polinômio. Ressalte-se que
os polinômios são representados pelas equações 2.24 e 2.25.
𝑓1 = 𝑝1𝑥1 + 𝑞1𝑥2 + 𝑟1 (2.24)
𝑓2 = 𝑝2𝑥1 + 𝑞2𝑥2 + 𝑟2 (2.25)
As saídas da camada 4 são representadas pelas equações 2.26 e 2.27.
𝑂41 = 𝑂31𝑓1 (2.26)
𝑂42=𝑂32𝑓2 (2.27)
Substituindo as equações 2.24 e 2.25 pela 2.26, obtém-se 2.27
𝑂41 = 𝑤1 (𝑝1𝑥1 + 𝑞1𝑥2 + 𝑟1) (2.27)
Substituindo a equação 2.24 e a 2.25 pela 2.27, obtém-se a equação 2.28:
𝑂42 = 𝑤2 (𝑝2𝑥1 + 𝑞2𝑥2 + 𝑟2) (2.28)
Tais equações podem ser reescritas como em 2.29:
𝑂41 =𝜇𝐴1
(𝑥1) 𝜇𝐵1(𝑥2)
(𝜇𝐴1(𝑥1) 𝜇𝐵1
(𝑥2)) + (𝜇𝐴2(𝑥1) 𝜇𝐵2
(𝑥2)) (𝑝1𝑥1 + 𝑞1𝑥2 + 𝑟1)
𝑂42 =𝜇𝐴2
(𝑥1) 𝜇𝐵2(𝑥2)
(𝜇𝐴1(𝑥1) 𝜇𝐵1
(𝑥2))+(𝜇𝐴2(𝑥1) 𝜇𝐵2
(𝑥2)) (𝑝2𝑥1 + 𝑞2𝑥2 + 𝑟2) (2.29)
Camada 5: nesta camada, ocorre o somatório das saídas dos neurônios das
camadas anteriores e, dessa forma, obtém-se o sinal desejado para o
sistema.
𝑦 = 𝑂41 + 𝑂42 (2.30)
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 39
Logo, pode-se simplificar a equação 2.30 em 2.31.
𝑦 = ∑ 𝑖𝑖 𝑓𝑖 (2.31)
Observa-se que os neurônios das camadas 1 e 4 necessitam de ajustes
(aprendizagem), pois, na camada 1, estão localizadas as funções de
pertinências de entrada e, na camada 4, os polinômios Sugeno, que definem as
implicações das regras (RODRIGUES, 2006). Os ajustes dos parâmetros podem
ser obtidos por meio de técnicas adaptativas como o algoritmo Backpropagation.
2.5 CONCLUSÃO
Neste capítulo, foi apresentada uma discussão sobre os aspectos
construtivos dos sistemas de Inferência Fuzzy e seus modelos, assim como uma
breve introdução da lógica Fuzzy e das Redes Neurais Artificiais. Por último,
foram discutidos os aspectos dos sistemas híbridos Neuro-Fuzzy. O capitulo 3
apresentará resultados simulados utilizando as técnicas de Redes Neurais e
Neuro-Fuzzy aplicados na estimação de parâmetros e controle do motor-mancal.
40
CAPÍTULO 3
SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL
Este capítulo apresenta uma introdução à modelagem vetorial da máquina
de indução funcionando como motor-mancal. São detalhadas as características
do projeto do estimador Neuro-Fuzzy e do controlador Neural. Os resultados
simulados mostraram de forma diferente um bom desempenho para as duas
técnicas aplicadas: como estimador e como controlador de velocidade utilizando
ambas um modelo do motor de indução operando como um motor-mancal.
3.1 INTRODUÇÃO
Para aplicação de novas tecnologias no motor de indução é necessário
conhecer o seu modelo matemático, para poder incorporar quase todas as
técnicas de controle: estimação, detecção e etc. As pesquisas sobre o controle
dos motores de indução nos últimos 20 anos têm centrado no melhoramento dos
esquemas de controle de campo orientado, ou controle vetorial, para resolver os
problemas apresentados pela utilização de sensores acoplados ou instalados
perto do rotor (GONZALEZ CASTELLANOS, 2004).
Os controladores vetoriais necessitam de sensores de fluxo para
determinar o valor exato da magnitude e da posição do fluxo girante. Este fator
gera a necessidade do uso de sensores de fluxo colocados no interior da
máquina, o que em determinados sistemas é inviável pela dificuldade de acesso
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 41
ou pelo alto custo destes sensores (PAIVA, 2007). Para contornar esta limitação
utiliza-se o estimador convencional de fluxo ou observador de fluxo baseado no
modelo vetorial da máquina tomando como referencial: o vetor de fluxo do
estator, o vetor de fluxo do rotor ou o vetor do fluxo do entreferro.
De acordo com Paiva, 2007 o referencial no fluxo do rotor tem preferência
quando se deseja simplificar a implementação prática e minimizar o esforço
computacional do sistema. Assim, o controle de campo orientado tem emergido
como uma importante aproximação para o controle de máquinas AC, e continua
a ser discutido e desenvolvido na literatura. A modelagem da máquina de
indução convencional serve como ponto de partida para a obtenção do modelo
da máquina de indução sem mancais com bobinado dividido (FERREIRA, 2006).
A avaliação das técnicas inteligentes artificiais utiliza o diagrama de
blocos da figura 11. O bloco verde representado pelo controlador Proporcional-
Integral foi substituído pelo controlador neural, assim como, o estimador
convencional representado pelo bloco laranja pelo ANFIS.
Figura 11 - Diagrama de blocos do sistema proposto simulado.
O diagrama de blocos da figura 11 apresenta a estrutura completa do
sistema adotado na etapa das simulações computacionais. A modelagem
descrita na seção seguinte e os demais tópicos descreverão as partes principais,
requisitos e restrições para o sistema funcionar como motor-mancal (bloco azul).
i*1
i*2
i*3
i*4
i*5
i*6
PWM 1
PWM 2
PWM 3
PWM 4
PWM 5
PWM 6
PWM
Controladores
de
Corrente
Desbalanceamento
das Correntes de
Fase
Estimador
Convencional
Motor-Mancal
Sensores de
Posição
Sensor
de
Velocidade
d,q
a,b,c
Transformação
Bifásica
para Trifásica
u*α
u*β
= .F*
α
F*β
cos ρ
sin ρ
sin ρ
-cos ρ
F*x
ρ ρ
F*y
Rotor
u*x
u*y
u*a
u*b
u*c
I*a I
*b I
*c
ia i aib ic i bi c
imRefisq
ref
isdref
isd isq
imR^
mMref
ωmec
ωmec
ωref
Δy
Δxy
x
x*y*
PID
6/3/dq Correntes
PID
x
y
mM^
PI
PI PI
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 42
3.2 ESTIMADOR CONVENCIONAL COM ORIENTAÇÃO DE CAMPO NO FLUXO DO ROTOR
O controle orientado de campo tem emergido como uma importante
contribuição para o controle de máquinas de motor de indução, e continua a ser
discutido e desenvolvido na literatura (PAIVA, 2007). Esse tipo de controle
possibilita um desacoplamento entre o torque e o fluxo na máquina de corrente
alternada, tornando-a semelhante à uma máquina de corrente continua com
excitação independente. Esta possibilidade permite a melhoria das suas
características dinâmicas. Isto é obtido através da definição de um eixo de
referência dq0 que gira sincronamente com o vetor espacial do fluxo de rotor,
onde o torque é controlado através da componente q do vetor espacial da
corrente de estator e, simultaneamente, o fluxo é controlado através da
componente d do vetor espacial da corrente de estator.
Em Santisteban e Stephan, (2001) propõe-se uma classificação e uma
comparação de diversos métodos de controle para máquinas de indução. Neste
artigo, os autores utilizam o referencial do fluxo do rotor devido ao número
reduzido de equações sem perdas significativas da exatidão. A figura 12
apresenta a estrutura do modelo vetorial convencional da máquina de indução
com referencial no fluxo do rotor (LEONHARD, W., 2001).
Coordenadas do
Estator
RT
mRi
k RTPn
cossin
iS3
iS2
iSb
iSaiS1 iSd
iSq
Transformação de
Coordenadas
Coordenadas de
Campo do Rotor
cos(ρ )
sin(ρ )
ρωmR
ωmecmM
mL
3
2
3
2
Figura 12 - Representação do Estimador Convencional em diagramas de blocos em coordenadas de campo do rotor (Leonhard, 2001).
A equação 3.1 representa as correntes em coordenadas de campo a partir
da posição angular 𝜌(𝑡) do fluxo girante.
𝑖𝑆𝑑(𝑡) = 𝑖𝑆𝛼(𝑡)𝑐𝑜𝑠 𝜌 + 𝑖𝑆𝛽(𝑡)𝑠𝑒𝑛 𝜌
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 43
𝑖𝑆𝑞(𝑡) = 𝑖𝑆𝛽(𝑡)𝑐𝑜𝑠 𝜌 − 𝑖𝑆𝛼(𝑡)𝑠𝑒𝑛 𝜌 (3.1)
Neste, 𝑖𝑆𝑑(𝑡) e 𝑖𝑆𝑞(𝑡) são respectivamente as correntes de campo e quadratura
do estator e 𝑖𝑆𝛼(𝑡) 𝑒 𝑖𝑆𝛽(𝑡) são as correntes correspondentes à um sistema
bifásico equivalente no referencial estacionário. Estas correntes representadas
no sistema d-q são, respectivamente, as correntes de campo e quadratura, as
quais serão aplicadas ao modelo da máquina para o estudo e estimação de
estados da mesma (PAIVA, 2008). A partir da Figura 12 podem ser obtidas as
seguintes equações. A Equação (3.2) expressa o torque elétrico - 𝑚𝑀.
𝑚𝑀 = 𝑘. 𝑖𝑚𝑅(𝑡). 𝑖𝑆𝑞(𝑡), 𝑘 =2
3(1 − 𝜎)𝐿𝑠 (3.2)
Nesta, 𝑘 é uma constante relacionada à indutância própria do estator (𝐿𝑠); 𝜎 , o
fator de dispersão; 𝑖𝑚𝑅(𝑡), a corrente de magnetização que está diretamente
relacionada à magnitude do campo girante.
A equação (3.3) refere-se à corrente de magnetização - 𝑖𝑚𝑅(𝑡):
𝑇𝑅𝑑𝑖𝑚𝑅(𝑡)
𝑑𝑡+ 𝑖𝑚𝑅(𝑡) = 𝑖𝑆𝑑(𝑡) (3.3)
Neste, 𝑇𝑅 é a constante de tempo do rotor que pode ser calculado por 𝑇𝑅 = 𝐿𝑅 𝑅𝑅⁄
em que: 𝐿𝑅 é a indutância própria do rotor e o 𝑅𝑅 é a resistência do rotor. A
equação (3.4) representa a velocidade angular do fluxo - 𝜔𝑚𝑅.
𝑑𝜌(𝑡)
𝑑𝑡= 𝜔𝑚𝑅 = 𝑛𝑝. 𝜔𝑚𝑒𝑐 +
𝑖𝑆𝑞(𝑡)
𝑇𝑅.𝑖𝑚𝑅(𝑡) (3.4)
Neste, 𝜔𝑚𝑒𝑐 representa a velocidade mecânica; 𝑛𝑝, o número de par de pólos da
máquina. Integrando a equação (3.4) obtém-se a posição das coordenada
girante do fluxo do rotor - 𝜌(𝑡).
De acordo com Paiva, 2007 o desacoplamento entre os vetores de fluxo
e o torque é uma condição básica de controle vetorial da máquina de indução,
pois este tipo de controle aproxima a mesma de uma máquina de corrente
contínua, cujos os controles de fluxo e de torque são feitos independentemente.
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 44
As equações (3.2) a (3.4) representam as equações elétricas. Para o
comportamento mecânico do modelo da máquina não levou-se em consideração
o atrito viscoso dos mancais como forma de aproximar o comportamento da
máquina convencional ao comportamento da máquina sem mancais. A equação
(3.5) representa o torque de carga – 𝑚𝐿 e a equação (3.6) o momento de inércia
do rotor – 𝐽, ambas as equações representam o comportamento mecânico da
máquina.
𝑚𝐿(𝑡) = 𝐷.𝑚𝑀(𝑡) (3.5)
𝑑𝜔𝑚𝑒𝑐(𝑡)
𝑑𝑡=
𝑚𝑀(𝑡)−𝑚𝐿(𝑡)
𝐽 (3.6)
Em que 𝐷 é o fator de carga. Segundo Paiva, 2007 este modelo
representado pelas equações (3.2) a (3.6) servem para serem utilizadas no
estimador de fluxo para o sistema de controle vetorial de velocidade da máquina
de indução sem mancais com bobinado dividido.
3.3 MÁQUINA DE INDUÇÃO SEM MANCAIS TRIFÁSICA COM BOBINADO DIVIDIDO
Um problema comumente apresentado pelas máquinas elétricas rotativas
tem sido o desgaste dos mancais ou rolamentos, que servem para sustentar,
centralizar e reduzir os níveis de atrito entre o rotor e o estator. Para minimizar
esse aspecto negativo têm surgido algumas inovações, como os motores
elétricos com mancais magnéticos e motores elétricos sem mancais ou motor
mancal (FERREIRA, 2006) (GOMES, 2007).
O funcionamento adequado de uma máquina sem mancais exige
controles de posição, rotação e torque do eixo do rotor. Estas formas de controle
são conseguidas conhecendo-se vários parâmetros da máquina, tais como:
número de pólos, rotação nominal, corrente nominal, frequência de operação,
indutâncias do rotor, indutâncias do estator, indutâncias mútuas entre rotor e
estator, resistências do rotor e estator e, em tempo real, com o uso de sensores,
a posição e rotação do eixo do rotor em relação ao estator, correntes, fluxos
magnéticos e tensões (SOUZA FILHO, 2012).
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 45
A tabela 2 apresenta alguns parâmetros obtidos através de ensaios
realizados no laboratório (VICTOR, 2012) e adotados neste trabalho para as
simulações e obtenção dos resultados.
Tabela 2 – Parâmetros e Características do Motor.
Símbolos Descrição Valores
Pnom Potência Nominal 3,70 kW
Wmec Velocidade Nominal 1715 RPM
Tnom Tensão nominal 380V
Np Número de par de pólos 2
R1 Resistência do Estator 1,182 Ω
R2 Resistência do Rotor 1,42 Ω
J Momento de Inércia 0,00995 kg.m2
Ls Indutância do Estator 6,56 mH
Lr Indutância do Rotor 6,56 mH
Lm Indutância de Magnetização 0,14 H
rfe Perda do núcleo 891,2 Ω
g0 Tamanho do gap 0,25mm
A estrutura da máquina adotada como referência neste trabalho possui
três fases, quatro pólos e utiliza o rotor de gaiola de esquilo. As bobinas estão
ligadas em série para formar um grupo de fase e cada grupo de fase tem duas
bobinas diametralmente opostas, figura 13.
Figura 13 - Esquema de distribuição das bobinas no estator (VICTOR, 2012).
A figura 13 mostra a distribuição de enrolamento de estator, em que existe
um ângulo de deslocamento de fase 120° entre cada eixo grupo de fase.
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 46
Figura 14 - Circuito equivalente da máquina de indução (VITOR, 2012).
A figura 14 mostra o circuito equivalente em regime permanente, por fase.
Observa-se que ia1 é a corrente do estator e i’a1 representa a corrente do rotor.
Os demais parâmetros do motor estão listados na tabela 1. A seção 3.4 a seguir
descreve as considerações adotadas no Motor-Mancal para as simulações
computacionais.
3.4 MOTOR-MANCAL
A figura 15 apresenta a distribuição das bobinas no estator e as correntes
em cada meio grupo do enrolamento para o motor-mancal utilizado na pesquisa.
As equações abaixo descrevem o desbalanceamento das correntes para o
controle de posição. Para diminuir a complexidade do sistema considerou-se que
o rotor encontra-se centralizado para as simulações.
X
Y
Ic2
Ia1
Ib2
Ic1
36
129
2
4
8
11
1
5
7
10
Ia2
Ib1
Figura 15 - Esquema das bobinas do estator.
As seguintes considerações foram adotadas para que o modelo da
máquina de indução se aproximasse do modelo do motor-mancal:
O modelo da máquina de indução sem mancal a princípio funcionando
com o rotor centralizado, pois este comportamento tem o Modelo
equivalente à Máquina de Indução Convencional (FERREIRA, 2006);
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 47
Utilizou-se os parâmetros da máquina, tabela 2, adotados em Vitor, V. F.
et. al. 2012, visto que a máquina de indução convencional funciona como
um motor sem mancal mecânico;
As simulações levaram em consideração a alimentação trifásica
equilibrada.
Adotado esses critérios, o modelo de máquina de indução comportar-se-
á como modelo da máquina de indução sem mancal ou motor mancal.
3.5 SINTONIA DOS CONTROLADORES PARA O CONTROLE VETORIAL
O controle vetorial de velocidade mostrado na figura 11 é composto
basicamente por três controladores do tipo Proporcional-Integral, sendo eles:
controlador para o erro de velocidade, cuja saída é o torque elétrico de referência
- 𝑚𝑀𝑟𝑒𝑓. Em série com o controlador de velocidade, tem-se o controlador de
torque, o qual é responsável pela geração da referência de corrente de torque -
𝑖𝑆𝑞𝑟𝑒𝑓. E por último, o controlador da corrente de magnetização, o qual é
responsável pela geração da referência de corrente de campo - 𝑖𝑆𝑑𝑟𝑒𝑓 (PAIVA,
2007). Para os controladores Proporcional-Integral-Derivativo (PID) referentes
às posições x e y considerou-se que o rotor estivesse centralizado para a
simplificação do projeto.
A figura 16 mostra as várias sintonias realizadas empiricamente para a
malha de controle da velocidade mecânica e, de modo análogo, realizou-se a
sintonia dos controladores das demais malhas com intuito de encontrar a melhor
resposta para o sistema, tabela 3.
Tabela 3. Parâmetros dos Controladores PI utilizados na sintonia.
PI
𝝎𝒎𝒆𝒄 𝒎𝑴 𝒊𝒎𝑹
kpw kiw kpmM kimM kpimR kiimR
(1) 10.7 50 1 10 2 50
(2) 6 60 2 100 2 15
(3) 1 10 2 50 1 30
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 48
Figura 16 - Sintonia do controlador de velocidade.
Após os ensaios realizados foram escolhidos os parâmetros da sintonia 2
da tabela 3. Assim, procedeu-se com as demais malhas de controle ajustando
os controladores. Os parâmetros adotados para os controladores de torque e da
corrente de magnetização são os da tabela 4.
Tabela 4 – Parâmetros dos Controladores.
Controlador
Proporcional-Integral Parâmetros Valores
Torque KpmM 1
KimM 100
Corrente de Magnetização KpimR 2
KiimR 50
3.6 DESCRIÇÃO DAS TÉCNICAS DE INTELIGENCIA ARTIFICIAL APLICADAS NO MOTOR-MANCAL
A implementação das técnicas de inteligência artificial levou em
consideração alguns critérios para a simulação. As equações (3.2 a 3.5) foram
discretizadas utilizando o método de Euler com um passo de integração 10e-6,
utilizando os parâmetros nominais do motor-mancal da tabela 1.1, considerando
a condição de rotor centralizado. Utilizou-se o Matlab® R2010a para a
implementação do sistema proposto da figura 11.
0 2 4 6 8 100
200
400
600
800
1000
1200
1400
1600
1800
2000
Tempo(s)
Ve
locid
ad
e M
ecâ
nic
a (
RP
M)
REF
Sintonia (1)
Sintonia (2)
Sintonia (3)
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 49
3.6.1 Estimador ANFIS
O estimador convencional, adotado nas simulações, foi comparado com
o estimador ANFIS na seção 3.7 e o processo de treinamento utilizou um
intervalo de tempo de treinamento de 60 segundos, e as variações dos
parâmetros foram impostas considerando os seguintes critérios:
Foram aplicados degraus sucessivos ascendentes e descendentes entre
0 e 2000rpm (variações de velocidades de referência);
Variação da constante de tempo do rotor (a cada 2 segundos de forma
aleatórias variando no range de 0-20% em relação ao valor nominal da
constante);
A cada 5 segundos foram aplicadas variações crescentes e decrescentes
de carga de 0.05 N.m (variação do torque de carga); Esse critério baseou-
se em Paiva, (2007).
3.6.2 Controlador Neural
O Controlador Neural substitui o controlador PI de velocidade da figura 11.
O projeto do controlador neural está descrito na seção 3.8. A coleta de dados
para o treinamento da rede neural seguiu alguns critérios:
O processo de treinamento utilizou um intervalo de tempo de treinamento
de 60 segundos;
Foram aplicados degraus sucessivos ascendentes e descendentes entre
600 e 1900 rpm (variações aleatórias de velocidades de referência);
3.7 PROJETO E ANALISE DO SISTEMA ANFIS
As estruturas adotadas no estimador Neuro-Fuzzy para estimar os
parâmetros, basearam-se em dois estimadores, sendo um para a estimação da
corrente de magnetização e o outro para a estimação do fluxo do rotor. O
estimador ANFIS 1 utiliza as seguintes entradas: a corrente direto de campo -𝑖𝑆𝑑
e a corrente de magnetização atrasada. E como saída, a corrente de
magnetização. Já o ANFIS 2 utiliza as seguintes entradas: velocidade mecânica
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 50
- 𝑤𝑚𝑒𝑐 e a corrente de quadratura - 𝑖𝑆𝑞 e como saída a velocidade angular
estimada após a discretização - 𝑑.
Tabela 5. Parâmetros do ANFIS1. Funções de Pertinências
Épocas Erro (MSE) do Treino
Erro (MSE) de Validação
2 50 0,0558002 0.00813261
3 150 0,0488926 0.00815185
3 300 0,0409925 0.01109080
5 500 0,00175787 0,00781050
Com o intuito de encontrar a melhor configuração foram realizados vários
treinamentos com diferentes parâmetros para a obtenção de melhores critérios
para as simulações, tabela 5 e 6.
Tabela 6. Parâmetros do ANFIS2. Funções de Pertinências
Épocas Erro (MSE) do Treino
Erro (MSE) de Validação
2 50 0.00406290 0.00489893
3 150 0.00533958 0.7491140
3 300 0.00448118 0.3522810
5 400 0.00359959 0.3302490
Os critérios adotados em ambos os estimadores foram: 300 épocas para
o treinamento e erro de tolerância igual a zero. A função de pertinência adotada
nos estimadores foram o gbellmf (do inglês bell curve membership function) do
toolbox do Matlab®.
A figura 17 (A) ilustra a superfície Fuzzy obtida como resultado do
treinamento da corrente de quadratura e de magnetização. Deduz-se que o
resultado linear obtido deve-se ao rotor centralizado. A figura 17 (B) ilustra a
superfície não-linear Fuzzy obtida como resultado do treinamento da velocidade
mecânica e da corrente de quadratura.
(A) (B)
Figura 17 - (A) - Superfície Fuzzy Sugeno – ANFIS 1 e (B) - ANFIS 2.
dp
(k)
dp (
k)
imR
(k)
wmec (k) isq (k)
imR (k-1) isd (k)
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 51
As figuras 18 ilustram o comportamento antes e depois do treinamento
para o ajuste das pertinências: 𝑖𝑆𝑞 e a 𝑖𝑚𝑅, onde as curvas [azul, verde e
vermelha] representam as regras geradas pelo ANFIS e in1mf1, in1mf2 e
in1mf3 são as pertinências geradas pelo ANFIS 1 e pelo ANFIS 2 são in2mf1,
in2mf2 e in2mf3 .
(A) (B)
Figura 18 - Pertinências antes do treinamento e depois (A) – 𝑖𝑆𝑑(𝑘) e (B) – 𝑖𝑚𝑅(𝑘 − 1).
Observa-se que após o término do treinamento das funções de
pertinências da figura 19 foram ajustadas para cada entrada do estimador 1 da
figura 17 (A). Com o resultado do treinamento do estimador ANFIS 2 obteve-se
os ajustes das pertinências para as entradas. A figura 19 ilustra o comportamento
antes e depois do treinamento a velocidade mecânica.
(A) (B)
Figura 19 - Pertinências antes do treinamento e depois (A) – 𝜔𝑚𝑒𝑐(𝑘) e 𝑖𝑆𝑞(𝑘).
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 1: Antes do Treinamento - isd(k)
Gra
u d
e P
ert
inência
in1mf1 in1mf2 in1mf3
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 1: Depois do Treinamento - isd(k)
Gra
u d
e P
ert
inência
in1mf1 in1mf2 in1mf3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 2: Antes do Treinamento - wmec(k)
Gra
u d
e P
ert
inência
in1mf1 in1mf2 in1mf3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 2: Depois do Treinamento - wmec(k)
Gra
u d
e P
ert
inência
in1mf1 in1mf2 in1mf3
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 1: Antes do Treinamento - imR(k-1)
Gra
u d
e P
ert
inência
in2mf1 in2mf2 in2mf3
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 1: Depois do Treinamento - imR(k-1)
Gra
u d
e P
ert
inência
in2mf1 in2mf2 in2mf3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 2: Antes do Treinamento - isq(k)
Gra
u d
e P
ert
inência
in2mf1 in2mf2 in2mf3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
ANFIS 2: Depois do Treinamento - isq(k)
Gra
u d
e P
ert
inência
in2mf1 in2mf2 in2mf3
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 52
Na figura 19 (A) observa-se o cancelamento de uma pertinência. Já na
figura 19 (B) não houve cancelamento da pertinência e sim uma distribuição das
mesmas. Estes resultados de eliminação e distribuição são pertinentes ao
treinamento Neuro-Fuzzy.
3.7.1 Resultados das simulações com o estimador ANFIS
As simulações foram executadas no intervalo de 0 a 20 segundos. O
resultado apresentado na figura 20 mostra a velocidade mecânica do motor
simulado submetido as seguintes mudanças de referências: 680, 1800 e 900 rpm
e em seguida aplicada uma perturbação no instante igual a 10 segundos. A
perturbação foi uma aplicação de um torque de carga com um valor nominal igual
a 5.4 N.m.
Figura 20 - Resultado comparativo da velocidade mecânica com os estimadores.
O resultado a seguir mostra o desempenho do erro do controlador de
velocidade referente ao modelo do estimador convencional e ao estimador
ANFIS, figura 21.
0 2 4 6 8 10 12 14 16 18 200
200
400
600
800
1000
1200
1400
1600
1800
2000
Tempo(s)
Velo
cid
ade m
ecanic
a(R
PM
)
Velocidade Mecânica de Referência
Velocidade Mecânica com o Estimador Convencional
Velocidade Mecânica com o Estimador ANFIS
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 53
Figura 21 - Sinal do erro do controlador de velocidade.
Na figura 22 apresenta-se o comportamento para o torque elétrico nas
condições impostas na simulação com os estimadores convencionais e com o
estimador Neuro-Fuzzy.
Figura 22 - Resposta do torque elétrico operando nas condições de simulação.
A figura 23 ilustra o sinal do erro do controlador PI para o torque elétrico.
A legenda da figura identifica o comportamento do erro do controlador para cada
estimador simulado.
0 2 4 6 8 10 12 14 16 18 20-100
-50
0
50
100
150
Tempo(s)
Sin
al do e
rro d
o C
ontr
ola
dor
PI
da V
elo
cid
ade M
ecânic
a
Erro - Wmec do estimador ANFIS
Erro - Wmec do estimador convencional
0 2 4 6 8 10 12 14 16 18 20-1
0
1
2
3
4
5
6
7
8
Tempo(s)
Torq
ue e
letr
ico (
N.M
)
Torque eletrico - estimador ANFIS
Torque eletrico - estimador convencional
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 54
Figura 23 - Sinal do erro do controlador de torque.
Na figura 24 apresenta-se o comportamento da posição angular com um
zoom em um intervalo de operação de 0 a 0,2s. Observa-se neste resultado o
sincronismo do 𝜌(𝑘) para os estimadores.
Figura 24 - Resultado da posição angular do Fluxo do rotor.
3.8 PROJETO E ANALISE DO CONTROLADOR NEURAL
A estrutura neural utilizou as três entradas: a velocidade mecânica –
𝑤𝑚𝑒𝑐(𝑘); 𝑒𝑟𝑟𝑜(𝑘) o erro atual; e o erro anterior 𝑒𝑟𝑟𝑜(𝑘 − 1) e como saída o
torque de referência (𝑛𝑀𝑟𝑒𝑓) para o controlador de torque. O processo de
treinamento foi realizado no modo off-line, e sua coleta utilizou 12.000 pontos
para os pares de entrada e saída, com uma variação de velocidade mecânica de
0 2 4 6 8 10 12 14 16 18 20-4
-2
0
2
4
6
8
10
12
14
Tempo(s)
Sin
al do E
rro d
o C
ontr
ola
dor
PI
para
o T
orq
ue E
létr
ico
Sinal do Erro utilizando o Estimador ANFIS
Sinal do Erro utilizando o Estimador convencional
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20
1
2
3
4
5
6
7
Tempo(s)
Posiç
ão a
ngula
r do F
luxo d
o r
oto
r(ra
d)
Posição angular do Fluxo do rotor com estimador ANFIS
Posição angular do Fluxo do rotor com estimador convencional
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 55
600 a 2.000 rpm, randomicamente. A tabela 7 apresenta os parâmetros
estruturais da Rede Neural, na qual a convergência do processo de treinamento
ocorreu em 841 épocas.
A topologia da tabela 7 foi escolhida após vários testes de desempenho
com um número diferente de camadas e neurônios por camada. O algoritmo de
treinamento escolhido foi o Levenberg-Marquardt.
A figura 25 mostra a curva de erro obtido com o treinamento da rede
neural.
Figura 25 - Erro quadrático médio para um treinamento com 847 épocas. Fonte: Toolbox Matlab ®.
A figura 26 mostra os desempenho do treinamento, na validação e no
teste avaliado, resultantes do treinamento.
0 100 200 300 400 500 600 700 800
10-6
10-4
10-2
100
Best Validation Performance is 9.4197e-07 at epoch 841
Me
an
Sq
ua
red
Err
or
(m
se
)
847 Epochs
Train
Validation
Test
Best
Arquitetura da Rede Perceptron multicamadas
Tipo de treinamento Supervisionado - offline
Número de camadas 3
Neurônios da camada de entrada 3
Neurônios da 1st camada escondida 10
Neurônios da camada de saída 1
Algoritmo de treinamento Levenberg-Marquardt backpropagation
Taxa de aprendizagem 5e-2
Número de épocas 841
Erro de treinamento 9.4197e-7
Função de ativação da camada escondida Tangente hiperbólica
Função de ativação da camada saída Linear
Tabela 7 Parâmetros da Rede Neural.
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 56
(A) (B) (C)
Figura 26 - Resultado de treinamento (A), validação (B) e testes da Rede Neural (C). Fonte: Toolbox Matlab ®.
A figura 26 apresenta o parâmetro R na parte superior. Esse parâmetro
indica a relação entre a saída e o alvo que pode variar entre 0 e 1. Quanto mais
próximo de 1, melhor a previsão. Após o treinamento, foram ajustados os pesos
e realizado a simulação da rede neural no lugar do controle PI da figura 11.
3.8.1 Resultados das simulações da Rede Neural
As simulações foram executadas no intervalo de 0 a 10 segundos. O
resultado apresentado na figura 27 mostra a velocidade mecânica do motor
simulado submetido às seguintes mudanças de referências: 1.200, 1.800 e 1.500
rpm.
Figura 27 - Resultado comparativo da velocidade mecânica com os controladores: neural e PI.
0 1 2 3 4 5 6 7 8 9 100
200
400
600
800
1000
1200
1400
1600
1800
2000
Tempo(s)
Velo
cid
ade m
ecanic
a(R
PM
)
Velocidade mecanica - Controle Neural
Velocidade mecanica - Controle PI
Velocidade mecanica de Referencia
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 57
O resultado a seguir mostra o desempenho do erro do controlador de
velocidade referente aos controladores implementados, figura 28.
Figura 28 - Sinal do erro do controlador neural e PI de velocidade.
A figura 29 (A) ilustra o sinal do erro do controlador neural e PI para o
torque elétrico e em (B) o sinal do erro do controlador neural e PI para a corrente
de magnetização, mostrando que em ambas as figuras 29 (A) e (B) o erro anulou-
se, a não ser quando a referência da velocidade mecânica alterava.
(A) (B)
Figura 29 - Sinal do erro do controlador operando com a Rede Neural e com o Controle PI (A) – Torque elétrico e (B) – Corrente de magnetização.
0 1 2 3 4 5 6 7 8 9 10-100
-50
0
50
100
150
Tempo(s)
Err
o d
o C
ontr
ola
dor
de V
elo
cid
ade
Erro - Controle Neural
Erro - Controle PI
0 1 2 3 4 5 6 7 8 9 10
-4
-2
0
2
4
6
8
Tempo(s)
Sin
al do e
rro d
o C
ontr
ola
dor
PI
da C
orr
ente
de M
agnetização
Erro - ImR com Rede Neural
Erro - ImR do estimador convencional
0 1 2 3 4 5 6 7 8 9 10
-10
-8
-6
-4
-2
0
2
4
6
8
10
Tempo(s)
Sin
al do e
rro d
o C
ontr
ola
dor
PI
para
o T
orq
ue E
létr
ico
Erro - Rede Neural
Erro - Estimador convencional
CAPÍTULO 3. SIMULAÇÕES DAS TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL 58
Na figura 30 apresenta-se o comportamento da posição angular com um
“zoom” em um intervalo de operação de 0 a 0,4s. Observa-se neste resultado o
sincronismo do 𝜌(𝑘) para os estimadores.
Figura 30 - Resultado da posição angular do Fluxo do rotor com o controlador neural e PI de
velocidade.
3.9 CONCLUSÃO
Neste capítulo foram estudados e implementados: o ANFIS como
estimador e a Rede Neural como controlador para o controle vetorial de
velocidade. Os resultados mostraram de forma diferente um bom desempenho
para as duas técnicas de inteligência artificial, as Redes Neurais e o ANFIS,
aplicadas no motor-mancal. Foram avaliados o comportamento dos sistemas
operando como estimador de parâmetros internos com a técnica ANFIS e a
operação do sistema com o controlador neural. Avaliou-se o comportamento
variando a velocidade mecânica, e assim, analisando as demais variáveis como:
torque, corrente de magnetização e a posição rotórico do motor-mancal. O
próximo capítulo descreve o arranjo experimental do sistema motor-mancal.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.40
1
2
3
4
5
6
7
Tempo(s)
Posiç
ão a
ngula
r do F
luxo d
o r
oto
r(ra
d)
Posição angular do Fluxo do rotor com o Controle Neural
Posição angular do Fluxo do rotor com Controle PI
59
CAPÍTULO 4
ARRANJO EXPERIMENTAL
Neste capítulo, é apresentado o arranjo experimental, ou seja, o conjunto
de periféricos que dão suporte ao funcionamento do motor-mancal e possibilitam
a implementação da estratégia de controle em cascata: controle de corrente,
controle de posição e o controle de velocidade. As configurações experimentais
apresentadas foram obtidas com o Osciloscópio Agilent Technologies DSO-X-
2012A.
4.1 MOTOR-MANCAL
De acordo com Souza Filho (2011), o motor de indução trifásico de 3,7kVA
recebeu modificações para operar como máquinas sem mancais, por exemplo:
a configuração das bobinas em dupla estrela e a retirada de um dos rolamentos
de uma das extremidades do eixo do rotor. Essa última modificação ocasionou
problemas no trabalho de Victor (2012), segundo o qual o problema de
excentricidades do eixo do motor-mancal ocasionado quando há o deslocamento
do rotor dificultou o ajuste dos ganhos do controlador de posição. As órbitas eram
projetadas girando-se o eixo manualmente e, depois, translacionando-o pela
periferia do entreferro. De acordo com Victor (2012), após a instalação do
rolamento autocompensador, o eixo passou a produzir várias órbitas quando
deslocado perifericamente. A figura 31 apresenta três órbitas possíveis
CAPÍTULO 4. ARRANJO EXPERIMENTAL 60
projetadas ao se deslocar o eixo perifericamente na caixa de alojamento do
rolamento superior.
Figura 31 - Excentricidades do eixo do motor-mancal. Fonte: Victor, 2012.
Após a substituição do DSP 2812 pelo DSP 28335, a sintonia empírica do
controlador PD de posição tornou-se uma tarefa difícil devido ao problema de
excentricidade do rotor. Com o objetivo de solucionar o problema de
excentricidade do eixo do rotor, o motor de indução foi levado ao Laboratório de
Mecânica e Tornearia localizado no campus de Parnamirim do Instituto Federal
de Educação, Ciência e Tecnologia do Rio Grande do Norte (IFRN), para corrigir
esse desbalanceamento.
Para corrigir o desbalanceamento, o motor de indução foi desmontado e
o eixo do rotor composto pelos rolamentos e o disco foram posicionados no torno
para realizar o desbaste no disco. No intuito de aumentar a precisão, foi utilizado
o relógio no desbaste, figura 32 (A), e, em 35 (B), aferição do desbalanceamento
do motor de indução com o auxílio do relógio.
(A) (B)
Figura 32 - (A) Eixo do rotor no torno e (B) o motor de indução.
CAPÍTULO 4. ARRANJO EXPERIMENTAL 61
Porém, o problema da excentricidade persistiu, diminuindo somente o
número de órbitas. Com a correção do desbalanceamento do eixo no torno, o
número de órbitas passou de três para duas. Este fenômeno dificultou a sintonia
do controlador de posição.
A solução encontrada foi a substituição do motor de indução convencional
modificado do trabalho de Victor (2012) pelo protótipo do motor-mancal utilizado
no trabalho de Ferreira, (2002), que estava localizado no Laboratório de
Engenharia de Computação e Automação (LECA) da UFRN, figura 33.
Figura 33 - Motor-mancal.
De acordo com Ferreira, (2002), o motor-mancal da figura 36 é uma
máquina de indução convencional adaptada para operar sem seus mancais
mecânicos, tendo seu posicionamento radial controlado por campos magnéticos.
O motor da figura 36 foi construído pela ELETROMECÂNICA IND. & COM. LTD
e os dados utilizados como parâmetros para o controle da máquina foram os da
tabela 8.
Tabela 8 – Parâmetros do protótipo do motor.
Parâmetros Valor
Potência nominal 1 Hp[cv]
Frequência 60 Hz
Número de Polos 4
Tensão nominal 220/380 V
Corrente nominal 3.02/1.75 A
Corrente à vazio 1.90 A
Potência à vazio 160.00 W
Resistência 7.38 Ohms
Resistência de Estator por fase 0.73 Ohms
CAPÍTULO 4. ARRANJO EXPERIMENTAL 62
Realizada a substituição do motor foi necessário configurar a ligação
elétrica do motor. Para isso, identificaram-se as bobinas e suas respectivas
fases, pois, de acordo com Ferreira, (2002), as bobinas do estator sofreram
algumas alterações, foram divididas ao meio como estratégia para a realização
do controle. Na figura 34, podem-se visualizar a localização e a identificação dos
grupos de bobinas.
Figura 34 - Motor-mancal sem tampa com identificação dos grupos das bobinas.
A fim de facilitar a identificação das fases e dos grupos de bobinas para
nomear os eixos X e Y para o controle de posição, foi necessário realizar dois
experimentos com o auxílio de uma bússola. A figura 35 mostra o experimento
no qual identificamos o eixo Y pelos grupos de bobinas 2 e 7 e 1 e 8. Pode-se
verificar a orientação da bússola indicando a direção Y, apresentada na figura
38.
Figura 35 - Experimento para determinar a configuração do eixo Y.
Já a figura 36 apresenta o segundo experimento, no qual verifica-se o
segundo eixo, eixo X, identificado pelo grupo de bobinas 3 e 9. Pode-se verificar
a orientação da bússola indicando a direção X.
CAPÍTULO 4. ARRANJO EXPERIMENTAL 63
Figura 36 - Experimento para determinar a configuração do eixo X.
Com base nos experimentos, a figura 37 apresenta o arranjo de ligações
desses enrolamentos para operação como máquina sem mancal do tipo
bobinado dividido.
Figura 37 - Arranjo de ligação dos enrolamentos do motor-mancal.
O resultado da figura 38 identificou cada grupo de bobina de acordo com
a sequência da figura 37. Para isso, excitou-se cada grupo de bobinas com
tensões continuas.
Figura 38 - Arranjo de ligação dos enrolamentos do motor-mancal.
No entanto, foi necessário realizar adequações nos periféricos referentes
à posição e à velocidade para permitir um controle efetivo nas condições
CAPÍTULO 4. ARRANJO EXPERIMENTAL 64
impostas ao motor-mancal. Estas modificações são apresentadas nas seções
seguintes.
4.2 SENSORES DA POSIÇÃO RADIAL
De acordo com Souza Filho (2011), o controle da posição radial para uma
máquina sem mancais consiste em fazer o rotor "flutuar", ou seja, sem que haja
contato mecânico com o estator. O posicionamento dos sensores AEC 5505-04,
um para o eixo X e outro para o eixo Y, foi fixado de acordo com a figura 39.
Maiores detalhes dos sensores de posição podem ser encontrados em Souza
Filho (2011).
Figura 39 - Base utilizada para fixação das ponteiras do sensor AEC 5505-04. Fonte: Souza Filho (2011).
A representação da base de fixação da figura 39 pode ser vista na figura
33 na parte superior do motor. Na figura 40, é apresentado o circuito eletrônico
utilizado com o sensor AEC 5505-04.
Figura 40 - Circuito eletrônico utilizado com o sensor AEC 5505-04. Fonte: Souza Filho (2011).
CAPÍTULO 4. ARRANJO EXPERIMENTAL 65
O circuito eletrônico da figura 40 apresentou problema no desenho dos
limites máximos do deslocamento dos eixos X e Y, pois não estava existindo a
possiblidade de formar o círculo representando as coordenadas XY. A figura 41
mostra o deslocamento radial para duas situações.
A primeira situação apresenta uma área maior referente ao limite máximo
do deslocamento entre os eixos, assim como sinais ceifados nos eixos X e Y,
enquanto o segundo comportamento apresenta o limite máximo do
deslocamento radial desejado para o controle de posição. Ambos deslocamentos
foram realizados manualmente.
Figura 41 - Deslocamento radial indesejado e desejado para o controle de posição.
A solução no segundo deslocamento radial foi possível atenuando-se os
sinais dos sensores X e Y com a adição de dois resistores de 10kΩ antes dos
amplificadores operacionais presentes no esquema da figura 40. Os resistores
de 10kΩ foram posicionados na entrada dos sinais de posição dos eixos X e Y.
Porém, persistiu outro problema, a calibração dos sensores (figura 42).
(A) (B)
Figura 42 - (A) Deslocamento radial ceifando na coordenada Y e (B) os sinais dos sensores X(verde) e Y(amarelo) em modo livre do osciloscópio.
1º situação 2º situação
CAPÍTULO 4. ARRANJO EXPERIMENTAL 66
A figura 42 (A) mostra uma figura distorcida, justificada pela presença do
sinal na figura 42 (B) onde verifica-se um ceifamento no sinal do eixo Y
representado pela cor amarela. Esse problema pode ocorrer nos sinais dos eixos
X e Y.
Nesse caso, a correção desse problema é feita a partir do ajuste dos
offsets. Para isso, deve-se fazer com que o comportamento do sinal do eixo Y
não apresente nenhum sinal de ceifamento. Quando o sinal do eixo Y se
aproxima do sinal do eixo X, o resultado do ajuste dos offsets resulta na figura
43. O comportamento dos sinais equivalentes aos eixos X e Y deve ser ajustado
até obter o comportamento da figura 43.
Figura 43 - Comportamento dos sinais após o ajuste do offset dos sensores.
Após a substituição do motor-mancal, foi solucionado o problema de
excentricidade do rotor, como pode ser observado na figura 44.
Figura 44 - Limite de deslocamento radial do rotor.
Outra vantagem identificada na substituição do motor-mancal foi o
aumento do entreferro, que passou de 0,3mm para 0,5mm, o que possibilita uma
faixa maior para a sintonia empírica do controle de posição.
CAPÍTULO 4. ARRANJO EXPERIMENTAL 67
4.3 SENSORES DE ROTAÇÃO
Segundo Souza Filho (2012), uma máquina rotativa, ao ser submetida a
um torque no eixo, além de necessitar de mais corrente nas bobinas, também
sofre uma variação na rotação. Desse modo, para se implementar um controle
de rotação da máquina, é indispensável o conhecimento da rotação em tempo
real, assim como das correntes nas bobinas. Para se medir a rotação no eixo da
máquina sem mancais, foram adotados um encoder constituído por um disco
uniformemente perfurado, um transistor receptor e um LED transmissor de luz
infravermelho estruturados.
Porém, nos testes, verificou-se que o circuito antes utilizado por Souza
Filho (2011) apresentava problemas de ruído e, às vezes, a perda dos pulsos,
ocasionando a perda do valor da velocidade medida ou erro na medição. A figura
45 mostra o sensor de velocidade analisado por Souza Filho (2011).
Figura 45 - Sensor de velocidade antigo.
Na figura 46, é mostrado o circuito eletrônico de tratamento do sinal do
encoder para poder ser enviado à placa eZdspTMF28335.
Figura 46 - Circuito de tratamento do sinal do encoder Fonte: Souza Filho (2011).
CAPÍTULO 4. ARRANJO EXPERIMENTAL 68
Com base no trabalho de Silva (2015), adotou-se o circuito eletrônico da
figura 47.
Figura 47 - Sensor de Velocidade. Fonte: Silva (2015).
A figura 48 mostra o sensor de velocidade confeccionado e utilizado
neste trabalho.
Figura 48 - Novo sensor de Velocidade.
Observou-se, no entanto, que o posicionamento do sensor de velocidade
na parte inferior do rotor, próximo ao rolamento autocompensado (figura 52),
provocaria uma diminuição da perda de pulsos, pois, anteriormente, o sensor de
posição localizava-se na parte superior do rotor próximo dos sensores de
posição. Nesse local, ocorria muita perda de pulsos, principalmente em
velocidades baixas, devido ao deslocamento do rotor no início se comportar
como um pião, pois a parte superior estava com uma folga rodando e batendo
nos limites físicos e a parte inferior, presa.
CAPÍTULO 4. ARRANJO EXPERIMENTAL 69
Figura 52 - Posicionamento do novo sensor de velocidade.
Dentre os periféricos que integram o motor-mancal, como os que foram
utilizados em Victor (2012) e apresentados no trabalho de Souza Filho (2011),
houve a necessidade de modificar e melhorar somente as interfaces de posição
e velocidade, as demais não sofreram alteração.
4.4 SISTEMA COMPLETO
Victor (2012) explica resumidamente que a corrente alternada, desde a
fonte até a alimentação das bobinas do estator, é transformada em corrente
contínua no conversor e novamente transformada em alternada no inversor de
frequência. A modulação da corrente nos inversores de frequência é realizada
através dos sinais vindos do sistema de controle no DSP. A corrente produzida
é responsável pela geração tanto do torque quanto das forças radiais de
posicionamento do rotor. O sistema mecatrônico, incluindo cada um dos
elementos compostos pelo sistema e demais componentes como interfaces,
sensores e dispositivos de comandos, pode ser observado na figura 50.
Figura 49 - Sistema mecatrônico com interfaces e o motor-mancal.
CAPÍTULO 4. ARRANJO EXPERIMENTAL 70
4.5 CONCLUSÃO
Este capítulo tratou do detalhamento das modificações realizadas nas
interfaces com o motor-mancal. Basicamente, ocorreram modificações nos
sensores de posição e de velocidade e, após as adequações, o sistema ficou
apto para a implementação da estrutura de controle e a obtenção dos resultados
experimentais, exposto no capítulo seguinte.
71
CA PÍTULO 5 ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL
Este capítulo tem como objetivo apresentar detalhes da implementação
dos controladores de corrente, de posição e de velocidade. Essas estruturas de
controle resultam na implementação digital do controle em cascata com o motor-
mancal.
5.1 INTRODUÇÃO
As seções seguintes descrevem os detalhes de implementação dos
controladores que propiciam o funcionamento do motor-mancal. O sistema
completo é composto pelas malhas de controle de corrente, de posição e de
velocidade, as quais operam em cascata.
As implementações das malhas de controle foram iniciadas com a malha
de controle mais interna (rápida) para a malha mais externa (lenta), seguindo a
sequência: controle de corrente, controle de posição e o controle de velocidade.
Os controladores de velocidade e de posição são responsáveis pela
geração das correntes de referências para o controle das correntes. Então, após
a ação do controle das correntes de cada bobina, são aplicadas aos
enrolamentos do motor-mancal, geram-se as saídas PWM escalar para os dois
inversores trifásicos.
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 72
5.2 CONTROLE DE CORRENTE
O alto desempenho no acionamento de máquinas elétricas depende
largamente da tecnologia de controle implementada, sendo empregadas
técnicas de controle com realimentação de corrente em todas as aplicações.
Essas técnicas exigem uma resposta rápida, alta precisão e um alto nível de
desempenho (ANDRADE, 2009). Os sensores de correntes, assim como os
demais sensores usados na máquina, são importantes para que o controle, em
tempo real, possa impor mudanças necessárias para o correto funcionamento
da máquina (SOUZA FILHO, 2011).
Os controladores de corrente devem ser do tipo Proporcional-Integrativo
(PI), pois estes apresentam simplicidade na implementação e consegue eliminar
erros em regime (VICTOR, 2012). A estrutura utilizada para o controle de
corrente neste trabalho baseou-se no módulo implementado pela Texas (C28x
Solar Library, 2014). Esse módulo apresenta as seguintes características:
saturação programada da saída; ajuste de pesos independentes nas ações
proporcional e derivativa; resete no integrador anti-windup; e um filtro
programável para a ação derivativa. Porém, para esse controle, a ação derivativa
foi anulada, atuando somente as ações proporcional e integral. A figura 51
mostra o diagrama de blocos de funcionamento do controlador PID da C28x
Solar Library (2014).
Figura 50 - Diagrama de controle de corrente com anti-reset windup. Fonte: C28x Solar Library, 2014.
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 73
A equação do controlador PID antes da saturação é descrita conforme a
Eq. (6.1).
𝑣1(𝑘) = 𝐾𝑝[𝑢𝑝(𝑘) + 𝑢𝑖(𝑘) + 𝑢𝑑(𝑘)] (6.1)
Cada termo pode ser escrito da seguinte forma:
Termo proporcional:
𝑢𝑝(𝑘) = 𝐾𝑟𝑟(𝑘) − 𝑦(𝑘) (6.2)
Termo integral:
𝑢𝑖(𝑘) = 𝑢𝑖(𝑘 − 1) + 𝐾𝑖[𝑟(𝑘) − 𝑦(𝑘)] (6.3)
Termo derivativo com filtro:
𝑢𝑑(𝑘) = 𝐾𝑑[𝑐2𝑢𝑖(𝑘 − 1)+𝑐1𝑒(𝑘) − 𝑐1𝑒(𝑘 − 1)] (6.4)
Por último, define-se a saída com saturação:
𝑢(𝑘) =
𝑈𝑚𝑎𝑥: 𝑣1(𝑘) > 𝑈𝑚𝑎𝑥
𝑈𝑚𝑖𝑛: 𝑣1(𝑘) < 𝑈𝑚𝑖𝑛
𝑣1(𝑘): 𝑈𝑚𝑖𝑛 < 𝑣1(𝑘) < 𝑈𝑚𝑎𝑥
(6.5)
Nestas, 𝑟(𝑘) é a referência; 𝑦(𝑘), a variável de controle; 𝑢𝑑(𝑘), o termo
derivativo; 𝑢𝑖(𝑘), o termo integrativo; 𝑢𝑝(𝑘), o termo proporcional; 𝐾𝑟, o peso
referente a referência; 𝐾𝑝 , o ganho proporcional; 𝐾𝑑, o ganho derivativo; 𝑐1, o
coeficiente do filtro derivativo 1; 𝑐2, o coeficiente do filtro derivativo 2; 𝑈𝑚𝑎𝑥 , o
limite de saturação máxima; 𝑈𝑚𝑖𝑛, o limite de saturação mínima.
As leis de controle das equações de 6.1 a 6.5 foram implementadas no
DSP 28335 na forma de struct no formato ANCI C. Maiores detalhes de sua
implementação são obtidos em Texas Instruments, (2014). Para o controle de
corrente do motor-mancal são necessários seis controladores PI operando em
malha fechada dentro da interrupção do DSP.
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 74
5.3 CONTROLE DE POSIÇÃO
Para a implementação do controle de posição, deve-se levar em
consideração os estudo realizado por Salazar e Stephan (1993), Ferreira (2002),
Castro (2004), Paiva (2007) e Victor (2012). Esses trabalhos demostram o
modelo de posicionamento do rotor e identificam que o modelo é instável em
malha aberta devido à presença de dois pólos, um em cada semiplano.
A solução encontrada para o sistema tornar-se estável foi a
implementação do controlador do tipo Proporcional-Derivativo (PD), que adiciona
um zero e posicionado de modo a atrair o lugar das raízes em malha fechada
para o semiplano esquerdo.
A lei de controle implementado para o controle de posição baseou-se em
Victor (2012), que demostra as transformações rotacionais necessárias para
obtenção de forças de atuação radial invariantes no tempo (figura 52).
uα
uβ
ux
θ
uy
ub
uc
ωt
ωt
(a) (b)
ua
ux
Figura 51 - Transformação do sinal de posição: (a) Transformação rotacional e (b) Transformação bifásica – trifásica para os sinais de posição. Fonte: Victor (2012).
Os sinais 𝑢𝛼e 𝑢𝛽 são provenientes do controle de posição. Em seguida,
eles passam por uma transformação rotacional para o sistema ortogonal estático
e transformam-se em 𝑢𝑥 e 𝑢𝑦. Por último, há uma transformação de coordenadas
bifásicas para trifásicas, resultando em 𝑢𝑎, 𝑢𝑏 e 𝑢𝑐.
Observa-se, na figura 52, que os sinais dos controladores 𝑢𝑎, 𝑢𝑏 e 𝑢𝑐,
após as transformações, são adicionados às referências de correntes das fases
ou subtraídos em cada meio grupo de bobinas das fases A, B, e C,
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 75
respectivamente, para o controle das forças de restauração da posição do rotor,
(Equação 6.6).
𝐼1∗ = 𝐼𝑎
∗ + 𝑢𝑎
𝐼2∗ = 𝐼𝑎
∗ − 𝑢𝑎
𝐼3∗ = 𝐼𝑏
∗ + 𝑢𝑏
𝐼4∗ = 𝐼𝑏
∗ − 𝑢𝑏 (6.6)
𝐼5∗ = 𝐼𝑐
∗ + 𝑢𝑐
𝐼6∗ = 𝐼𝑐
∗ − 𝑢𝑐
Nessas equações, 𝐼𝑎∗, 𝐼𝑏
∗ e 𝐼𝑐∗ são as correntes de referências por fase impostas
e 𝐼1∗, 𝐼2
∗, 𝐼3∗, 𝐼4
∗, 𝐼5∗ e 𝐼6
∗ são as correntes de referência para o controle de posição.
Devido à não linearidade do sistema, a sintonia dos controladores se torna de
difícil obtenção, no entanto, os parâmetros dos controladores foram
determinados empiricamente.
5.4 CONTROLE VETORIAL DE VELOCIDADE
O controlador de velocidade utilizado é um PI (Proporcional-integral) com
anti-windup, o recurso que interrompe o processo de integração quando a saída
já atingiu um valor máximo de saturação (GOMES, 2007). Para a implementação
do controle vetorial de velocidade, inicialmente, investigou-se a estrutura de
controle da figura 53 utilizando estimador de fluxo. A grande vantagem dessa
estrutura utilizar este estimador é a presença de um número reduzido de
equações, minimizando o esforço computacional (SILVA, 2015).
i*1
i*2
i*3
i*4
i*5
i*6
PWM 1
PWM 2
PWM 3
PWM 4
PWM 5
PWM 6
PWM
Controladores
de
Corrente
Desbalanceamento
das Correntes de
Fase
Motor Mancal
Sensores de
Posição
Sensorde
Velocidade
d,q
a,b,c
Transformação
Bifásica
para Trifásica
u*α
u*β
= .F*
α
F*β
cos ρ
sin ρ
sin ρ
-cos ρ
F*x
ρ ρ
F*y
Rotor
u*x
u*y
u*a
u*b
u*c
I*a I
*b I
*c
ia i’aib ic i’bi’
c
isdref
isdisq
mMref
ωmec
ωref
Δy
Δxy
x
x*y*
PID
6/3/dq Correntes
PI
PID
x
y
isqref
Cáculo
isqref
PI
Controle de
Fluxo
yr
Estimador
de Fluxo^
Controle de
Velocidade
yr*
yr
^
Figura 52 - Estrutura de controle com estimador de fluxo.
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 76
O estimador de fluxo utilizado em Silva (2015) é dado por:
λ𝑒𝑠𝑡 = 𝐿𝑚. 𝑖𝑠𝑑 (6.7)
Neste, λ𝑒𝑠𝑡 é o fluxo estimado; 𝐿𝑚, a indutância mútua ; 𝑖𝑠𝑑, a corrente de campo.
A equação 6.7 é calculada a partir da corrente de campo 𝑖𝑠𝑑 e da indutância
mútua 𝐿𝑚. Assim, o cálculo da corrente de torque (𝑖𝑠𝑞) é obtido a partir da
equação 6.8.
𝑛𝑀𝑟𝑒𝑓 =𝑃𝐿𝑚
𝐿𝑟λ𝑟 . 𝑖𝑠𝑞 (6.8)
Nesta, 𝑛𝑀𝑟𝑒𝑓 é o torque de referência; 𝐿𝑟 , a indutância do rotor; λ𝑟 , o fluxo
rotórico de referência; e 𝑃, o número de par de pólos. Porém, essa estrutura não
foi escolhida devido aos seguintes motivos: a dificuldade de se sintonizarem
empiricamente as malhas de controle, que consumiam um maior tempo e o fato
de não se possuírem os parâmetros da máquina necessários para serem
utilizados nas equações 6.7 e 6.8.
Contudo, pensou-se em se obter os parâmetros a partir de ensaios
laboratoriais, o que, foi descartado devido às seguintes desvantagens: acarretar
um atraso na implementação digital da estrutura de controle e poder haver algum
problema físico com o motor, gerando um tempo maior para a sua solução ou
manutenção.
Logo, o sistema de controle implementado para o controle vetorial de
velocidade da figura 54 levou em consideração duas simplificações: impor uma
corrente de campo de referência para não implementar o controle de fluxo e
eliminar o cálculo da corrente de torque, fazendo com que a saída do controle
de velocidade entre direto nas transformadas inversas de Park e Clarke, já que
não se levará em consideração a investigação do torque.
A estrutura da figura 54 apresenta três malhas, sendo a mais externa o
controle de velocidade do tipo Proporcional-Integral (PI), que controla a
velocidade do eixo do rotor a partir da realimentação sensoriada e cuja saída é
a corrente de torque - 𝑖𝑠𝑞𝑟𝑒𝑓. Em seguida, o controlador Proporcional-Derivativo-
CAPÍTULO 5. ESTRUTURA DE CONTROLE EM CASCATA DO MOTOR-MANCAL 77
Integral (PID) para as posições referentes às coordenadas x e y do rotor, pois,
na prática, a ação integral adicionada deve diminuir o erro de regime.
O controle de posição é classificado em regulador, diferentemente do
sistema de controle das correntes, que é classificado como seguidor (Castro,
2004). Portanto, a última malha de controle é a de corrente, a mais interna e de
resposta rápida, com controladores PI para os seis enrolamentos do estator.
PWM 1
PWM 2
PWM 3
PWM 4
PWM 5
PWM 6
PWM
Controladores
de
Corrente
Motor Mancal
Sensores de
Posição
Sensorde
Velocidade
d,q
a,b,c
Transformação
Bifásica
para Trifásica
u*α
u*β
= .F*
α
F*β
cos ρ
sin ρ
sin ρ
-cos ρ
F*x
ρ ρ
F*y
Rotor
u*x
u*y
u*a
u*b
u*c
I*a I
*b I
*c
ia i aib ic i bi c
isq
ωmec
ωref
Δy
Δxy
x
x* y*
PID
6/3/dq Correntes
PI
PID
x
y
isq
ref
Estimador
Convencional
Controle de
Velocidade
isdref
*
i*1
i*2
i*3
i*4
i*5
i*6
i*1 = I*
a + u*a
i*2 = I*
a - u*a
i*3 = I*
b + u*b
i*4 = I*
b - u*b
i*5 = I*
c + u*c
i*6 = I*
c - u*c
Figura 53 - Diagrama de controle em cascata do motor-mancal.
5.5 CONCLUSÃO
Este capítulo permitiu deduzir o diagrama de controle simplificado e
funcional para a implementação do controle vetorial de velocidade. A escolha e
a discussão dos controladores de corrente, de posição e de velocidade
auxiliaram na definição da estratégia escolhida. O próximo capítulo apresenta os
resultados experimentais de cada etapa da malha de controle em cascata do
motor-mancal.
78
CAPÍTULO 6 RESULTADOS EXPERIMENTAIS
Este capítulo aborda os resultados experimentais obtidos com a
implementação digital do sistema de controle no motor-mancal utilizando o DSP
28335. Uma abordagem da inteligência artificial foi implementada nos resultados
do controle vetorial de velocidade. Ademais, realizou-se uma comparação do
controle vetorial de velocidade Proporcional-Integral com o controlador neural.
6.1 CORRENTES NO ESTATOR
Para validar a implementação digital do controle de corrente, realizaram-
se alguns experimentos com o rotor centralizado com o controle PI de corrente.
O procedimento seguiu a sequência do diagrama de bloco da figura 55, baseada
na estrutura de blocos da figura 54.
Figura 54 - Controle de corrente do motor-mancal.
Foram realizados alguns experimentos para validar o desempenho do
controlador PI de corrente. O primeiro deles foi a resposta a vários degraus na
PWM 1
PWM 2
PWM 3
PWM 4
PWM 5
PWM 6
PWM
Controladores
de
Corrente
Motor Mancal
Sensores de
Posição
Sensorde
Velocidade
Rotor
ia i aib ic i bi c
x
y
i*1
i*2
i*3
i*4
i*5
i*6
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 79
referência imposta à bobina 𝑖1, figura 56. Os parâmetros do controlador PI de
corrente 𝐾𝑝 = 200 e 𝐾𝑖 = 1.464844𝑒−6 foram ajustados empiricamente para a
obtenção dos resultados e os demais experimentos.
Figura 55 - Resposta à mudança de referência na bobina 1.
A figura 56 mostra o comportamento das correntes sensoriadas e a
corrente de referência - 𝑖1∗ da figura 58. Para este experimento, foram impostas
correntes contínuas com mudança de referência no decorrer do intervalo de 1s
de execução. Outro resultado obtido se deu considerando a corrente de
referência senoidal e alternando-a a uma frequência de 60Hz e com amplitude
igual a 1.5 (figura 57).
Figura 56 - Resposta à referência senoidal na bobina 1.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-1.5
-1
-0.5
0
0.5
1
1.5Controle de Corrente
Tempo(s)
Am
plit
ude d
as C
orr
ente
s(A
)
Ref1
Corrente Sensoriada 1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.2
0.4
0.6
0.8
1
1.2
Controle de Corrente
Tempo(s)
Corr
ente
continua n
a b
obin
a 1
(A
)
Corrente sensoriada
Corrente de refência
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 80
0 0.05 0.1 0.15 0.2 0.25 -0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Tempo(s)
Ima
x =
0.8
A e
Fre
q =
15
Hz
Corrente i1
Corrente i5 Corrente i3
Para avaliar o comportamento do motor-mancal operando como motor de
indução e ativar as seis bobinas, foi necessário realizar dois procedimentos:
1) fixar o eixo do rotor no centro para que ele não influenciasse a dinâmica do
experimento e operasse com o rotor centralizado; 2) gerar seis correntes de
referências defasadas 120º para gerar o campo girante equações de 7.1 a 7.6.
𝑖1∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤𝑡 + 0) (7.1)
𝑖2∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤𝑡 + 0) (7.2)
𝑖3∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤𝑡 − 2𝜋/3) (7.3)
𝑖4∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤𝑡 − 2𝜋/3) (7.4)
𝑖5∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤 + 2𝜋/3) (7.5)
𝑖6∗ = 𝐼𝑚𝑎𝑥 ∗ sin (𝑤𝑡 + 2𝜋/3) (7.6)
Os experimentos foram realizados alterando-se a frequência e a
amplitude de referência. A figura 58 mostra o experimento obtido quando o motor
funciona na frequência de 15Hz com uma amplitude de referência ( 𝐼𝑚𝑎𝑥) igual
a 0.8A.
Figura 57 - Correntes defasadas na frequência de 15Hz e amplitude 0.8A.
As figuras 59, 60 e 61 mostram o comportamento das correntes variando
a frequência e a amplitude em diferentes intervalos de tempo. Esses resultados
demonstram o bom desempenho alcançado pelo controle de correntes sobre o
estator realizando-se mudanças na amplitude e na frequência de operação do
motor.
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 81
0 0.05 0.1 0.15 0.2 0.25 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Tempo(s)
Ima
x =
0.8
A e
Fre
q =
30
Hz
Corrente i1 Corrente i3 Corrente i5
0.06 0.07 0.08 0.09 0.1 0.11
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Tempo(s)
Ima
x =
0.8
A e
Fre
q =
60
Hz
Corrente i1 Corrente i3 Corrente i5
0
0 0.05 0.1 0.15 0.2 0.25 -2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Tempo(s)
Ima
x =
1.3
A e
Fre
q =
60
Hz
Corrente i1 Corrente i3 Corrente i5
Figura 58 - Correntes defasadas na frequência de 30Hz e amplitude 0.8 A.
Figura 59 - Correntes defasadas na frequência de 60Hz e amplitude 0.8A.
Figura 60 - Correntes defasadas na frequência de 60Hz e amplitude 1.3A.
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 82
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0.135
0.14
0.145
0.15
0.155
0.16
0.165 Controle de posição
Tempo(s)
Eix
o X
(mm
)
Posição sensoriada Posição de referência
6.2 POSIÇÃO RADIAL DO ROTOR
Os resultados apresentados a seguir foram obtidos com o controle
Proporcional-Derivativo-Integrativo (PID) a partir de alguns experimentos. Os
resultados utilizaram a estratégia do diagrama de blocos da figura 62 com base
na figura 54.
Figura 61 - Controle de posição em cascata com o controle de corrente do motor-mancal.
Após alguns ajustes empíricos sobre os parâmetros dos controladores, os
ganhos obtidos foram: 𝐾𝑝𝑥 = 0.0005, 𝐾𝑑𝑥 = 0.028, 𝐾𝑖𝑥 = 1𝑒 − 08, 𝐾𝑝𝑦 = 0.0005,
𝐾𝑑𝑥 = 0.06, 𝐾𝑝𝑦 = 1𝑒 − 08. Realizou-se um experimento com os controles de
posição atuando de forma independente, avaliando-se os comportamentos do
eixo X e do eixo Y. A figura 63 mostra a resposta a uma variação em degrau para
o controle de posição ao longo do eixo X.
Figura 62 - Resultado do controle de posição para o eixo X.
i*1
i*2
i*3
i*4
i*5
i*6
PWM 1
PWM 2
PWM 3
PWM 4
PWM 5
PWM 6
PWM
Controladores
de
Corrente
Desbalanceamento
das Correntes de
Fase
Motor Mancal
Transformação
Bifásica
para Trifásica
u*α
u*β
= .F*
α
F*β
cos ρ
sin ρ
sin ρ
-cos ρ
F*x
ρ
F*y
Rotor
u*x
u*y
u*a
u*b
u*c
I*a I
*b I
*c
ia i aib ic i bi c
Δy
Δxy
x
x*y*
PID
Geração das correntes de
referência e o ângulo
PID
x
y
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 83
A figura 64 mostra a resposta a uma variação em degrau para o controle
de posição ao longo do eixo Y.
Figura 63 - Resultado do controle de posição para o eixo Y.
Os resultados foram coletados no regime permanente. O experimento
realizado operou na frequência de 60Hz (figura 65). A mancha no centro das
figuras representa as posições que o rotor assumiu em algum determinado
momento: o osciloscópio está em modo de persistência do traço. O resultado da
figura 68 demonstra o sucesso do posicionamento do rotor, pois manteve-se
levitando o rotor sem tocar nos limites laterais.
Figura 64 - Resultado do controle de posição com uma área de disperso do rotor para
acionamento a 60Hz.
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0.125
0.13
0.135
0.14
0.145
0.15
0.155
0.16
0.165
0.17 Controle de posição
Tempo(s)
Eix
o Y
(mm
)
Posição sensoriada Posição de referência
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 84
Verificou-se a operação do motor nas frequências de 15Hz, 30 Hz e 45Hz
com os mesmos parâmetros de sintonia para verificar o desempenho do controle
de posição. As figuras 66, 67 e 68 mostram os resultados.
Figura 65 - Resultado do controle de posição com uma área de dispersão do rotor para o
acionamento a 15Hz.
Figura 66 - Resultado do controle de posição com uma área de dispersão do rotor para o
acionamento a 30Hz.
Figura 67 - Resultado do controle de posição com uma área de dispersão do rotor para o
acionamento a 45Hz.
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 85
As figuras 69 e 70 representam a plotagem dos sinais de ambos os
sensores de posição operando na frequência de 60 Hz, nestes resultados os
dados foram obtidos sem realizar a parametrização para milímetros versus a
quantidade de amostras permitido pelo buffer do DSP.
Figura 68 - Deslocamentos radial do eixo X acionado em 60Hz.
Figura 69 - Deslocamentos radial do eixo Y acionado em 60Hz.
Para ilustrar a dinâmica do controle em cascata, os resultados
consideraram uma janela de tempo igual para os controladores de posição e de
corrente operando a uma frequência de 60Hz. As figuras 71, 72 e 73 mostram
os resultados dos controladores de corrente e de posição em cascata de acordo
com o diagrama de blocos da figura 62. O gráfico da figura 71 (A) mostra as
0 2000 4000 6000 8000 10000 120000
200
400
600
800
1000
1200
1400
1600
1800
2000Controle de Posição
Quant. Amostras
Po
siç
ão
Ro
tóri
ca
Posição eixo x de referencia
Posição eixo x sensoriada
0 2000 4000 6000 8000 10000 120000
500
1000
1500
2000
2500Controle de Posição
Quant. Amostras
Po
siç
ão
Ro
tóri
ca
Posição eixo y de referencia
Posição eixo y sensoriada
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 86
correntes de referência, ou seja, as correntes, impostas 𝐼𝑎∗ , 𝐼𝑏
∗ 𝑒 𝐼𝑐∗ para o controle
de posição, coletadas em um intervalo de 0.08 segundos.
Figura 70 - Resultados referentes às correntes impostas, controladas e sensoriada.
O gráfico da figura 71 (B), identificado pelas legendas Ref1, Ref2 e Ref3,
representa a composição das correntes de referência 𝐼𝑎∗ , 𝐼𝑏
∗ 𝑒 𝐼𝑐∗ com os sinais
provenientes dos controladores de posição 𝑢𝑎∗ , 𝑢𝑏
∗ 𝑒 𝑢𝑐∗. Por último, o gráfico (C)
representa as correntes sensoriadas equivalentes em cada fase. As figuras 72 e
73 mostram as respostas das posições X e Y com os respectivos erros de leitura
associados e os sinais de controle. Observa-se uma pequena alteração no
comportamento das correntes sensoriadas da figura 71 nos instantes próximo a
0.02 segundos por exemplo. Essa alteração é decorrente do ajuste do controle
de posição das figuras 72 e 73 e observadas nos sinais de controle para as
posições X e Y.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-1.5
-1
-0.5
0
0.5
1
1.5
Tempo(s)
Co
rre
nte
s d
e R
efe
rên
cia
s(A
)
Ia
Ib
Ic
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
-2
-1
0
1
2
Tempo(s)
Co
rre
nte
s d
e R
efe
rên
cia
s(A
) -
Co
ntr
ole
de
Po
siç
ão
Ref1
Ref2
Ref3
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
-2
-1
0
1
2
Tempo(s)
Co
rre
nte
s s
en
so
ria
da
s(A
)
Corrente sensoriada - Fase A
Corrente sensoriada - Fase B
Corrente sensoriada - Fase C
(A)
(B)
(C)
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 87
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)
Po
siç
ão
Y(m
m)
Posição Y - PD
Posição de Referencia Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-400
-200
0
200
400
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
Y(m
m)
Sinal de Erro da Posição Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
Y(m
m)
Sinal de Controle PD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)P
osiç
ão
X(m
m)
Posição X - PD
Posição de Referencia X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-800
-600
-400
-200
0
200
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
X(m
m)
Sinal de Erro da Posição X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
X(m
m)
Sinal de Controle PD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)
Po
siç
ão
Y(m
m)
Posição Y - PD
Posição de Referencia Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-400
-200
0
200
400
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
Y(m
m)
Sinal de Erro da Posição Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
Y(m
m)
Sinal de Controle PD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)
Po
siç
ão
Y(m
m)
Posição Y - PD
Posição de Referencia Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-400
-200
0
200
400
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
Y(m
m)
Sinal de Erro da Posição Y
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
Y(m
m)
Sinal de Controle PD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)
Po
siç
ão
X(m
m)
Posição X - PD
Posição de Referencia X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-800
-600
-400
-200
0
200
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
X(m
m)
Sinal de Erro da Posição X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
X(m
m)
Sinal de Controle PD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080
1000
2000
3000
Tempo(s)
Po
siç
ão
X(m
m)
Posição X - PD
Posição de Referencia X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-800
-600
-400
-200
0
200
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Po
siç
ão
X(m
m)
Sinal de Erro da Posição X
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08-0.5
0
0.5
1
Tempo(s)
Sin
al d
e C
on
tro
le d
e P
osiç
ão
X(m
m)
Sinal de Controle PD
(A)
(B)
(C)
(A)
(B)
(C)
Figura 71 - (A) Posição X, (B) erro do controlador e (C) sinais de controle.
Figura 72 - (A) Posição Y, (B) erro do controlador e (C) sinais de controle.
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 88
6.3 CONTROLE DE VELOCIDADE
A avaliação do controle de velocidade operando com o motor-mancal foi
realizada comparando a implementação do controle PI clássico com uma técnica
de inteligência artificial. A técnica escolhida foi a de Redes Neurais Artificiais
(RNA) para substituir o controle PI clássico. Foi investigada a técnica ANFIS,
porém, devido ao custo computacional na sua implementação, ela foi
descartada.
O primeiro passo para a implementação da RNA foi a escolha dos dados
a fim de montar seu conjunto para o treinamento e a validação. Os dados de
entrada foram a velocidade mecânica (𝑊𝑚𝑒𝑐) e o erro da velocidade mecânica
(𝐸𝑟𝑟𝑜𝑤); e os de saída, a corrente de torque (𝐼𝑠𝑞𝑟𝑒𝑓). Ambos dados de entrada e
de saida foram utilizados para montar o conjunto de treinamento e a validação
para os experimentos. Os pares de entrada e o dado de saída são usados para
o ajuste dos parâmetros internos da RNA (SANTOS , et. al, 2015).
A RNA foi configurada totalmente conectada. O banco de dados foi
desenvolvido com 20.200 amostras, das quais 70% dos dados foram utilizadas
no treinamento e 30% para a validação. O processo de treinamento foi realizado
no modo off-line, e sua coleta utilizou os dados de entrada com uma variação de
velocidade mecânica randomicamente de 1% a 5% sobre a velocidade nominal
de 1800 rpm. A tabela 9 apresenta os parâmetros estruturais da Rede Neural,
na qual a convergência do processo de treinamento ocorreu em 104 épocas.
O algoritmo de treinamento escolhido foi o Levenberg-Marquardt, utilizado
no toolbox do Matlab® devido ao fato de ter uma melhor precisão (K.
SETHURAMAN, S. HYMAVATHI E A. MUTHURAMALINGAM, 2012). A
Arquitetura da Rede Perceptron multicamadas
Tipo de treinamento Supervisionado - offline
Número de camadas 3
Neurônios da camada de entrada 2
Neurônios da 1st camada escondida 10
Neurônios da camada de saída 1
Algoritmo de treinamento Levenberg-Marquardt backpropagation
Taxa de aprendizagem 5e-2
Número de épocas 104
Erro de treinamento 1.3909e-5
Função de ativação da camada escondida Tangente hiperbólica
Função de ativação da camada saída Linear
Tabela 9 Parâmetros da Rede Neural.
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 89
topologia da tabela 8 foi escolhida após vários testes de desempenho com um
número diferente de camadas e neurônios por camada. A escolha final levou em
consideração a implementação digital, avaliando o tempo de processamento do
DSP. Quanto mais camadas e neurônios, mais o tempo de processamento
aumentava. Dessa forma, a estrutura implementada analisou o custo
computacional. A figura 74 mostra as performances de treinamento, de validação
e de teste avaliado, resultantes do treinamento.
(A) (B) (C)
Figura 73 - Resultado de treinamento, validação e testes da Rede Neural. Fonte: Toolbox do Matlab ®.
A figura 74 apresenta o parâmetro R na parte superior. Esse parâmetro
indica a relação entre a saída e o alvo que pode variar entre 0 e 1. Quanto mais
próximo de 1, melhor a previsão. A figura 75 apresenta o gráfico de treinamento
com o erro quadrático médio (do inglês, Mean Square Error- MSE).
Figura 74 - Erro quadrático médio para um treinamento com 104 épocas.
Fonte: Toolbox do Matlab ®.
0 10 20 30 40 50 60 70 80 90 100
10-5
10-4
10-3
10-2
Best Validation Performance is 1.3909e-05 at epoch 104
Me
an
Sq
ua
red
Err
or
(m
se
)
104 Epochs
Train
Validation
Test
Best
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 90
Após o treinamento, foram ajustados os pesos listados no Apêndice C e
realizados dois experimentos para avaliar o funcionamento do motor-mancal
operando com o controle de velocidade PI com os ganhos 𝐾𝑝𝑤 = 0.01 e 𝐾𝑝𝑖 =
7.5 𝑒−5 e com a estrutura neural. Os dois estudos de casos utilizaram a mesma
estrutura de RNA implementada.
6.3.1 Estudo de caso I - Rampa
O primeiro experimento apresenta o comportamento do sistema ao ser
acionado do repouso até a velocidade nominal de 1.800 rpm. A figura 76 mostra
a dinâmica da velocidade mecânica e das posições X e Y, respectivamente, em
função do tempo operando com os dois controladores.
Figura 75 - Velocidade mecânicas e posições X e Y para referência de velocidade em degrau
constante.
0 5 10 15 20 250
500
1000
1500
2000Controle de Velocidade
Tempo(s)
Ve
locid
ad
e M
ecâ
nic
a(R
PM
)
Velocidade Mecânica de Referência
Velocidade Mecânica PI
Velocidade Mecânica Sensoriada com Rede Neural
0 5 10 15 20 250
500
1000
1500
2000
2500
Tempo(s)
Po
siç
ão
X(m
m)
Posição X com o Controlador PI
Posição X com Rede Neural
Posição de Referência
0 5 10 15 20 251000
1500
2000
2500
3000
Tempo(s)
Po
siç
ão
Y(m
m)
Posição Y com o Controlador PI
Posição Y com Rede Neural
Posição de Referência
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 91
-500 0 500 1000 1500 2000 2500 3000 0
500
1000
1500
2000
2500
3000
Posição X(mm)
Po
siç
ão
Y(m
m)
Posição XY com o Controlador PI Posição XY com Rede Neural
As legendas dos gráficos nos experimentos apresentam,
respectivamente, as referências, e as respostas com o controle PI e com controle
neural identificados pelas cores: verde, azul e vermelha. A figura 77 mostra o
comportamento do sinal de controle para os controladores implementados.
Figura 76 - Sinais de controle PI e neural para referência de velocidade em degrau.
Na figura 77, observam-se os sinais de controle com uma limitação devido
as restrições do motor na amplitude de 0.6 A, ou seja, uma restrição no sinal de
controle de velocidade para o funcionamento do motor-mancal. A figura 78
mostra os diagramas de posicionamento radial gerado durante a operação do
motor-mancal.
Figura 77 - Diagramas de posicionamento radial para referência de velocidade em degrau constante.
A dispersão dos sinais da figura 78 demostra que o sistema passou pela
etapa transitória para a permanente, pois a maior concentração dos traçados
ocorre no centro do gráfico.
0 5 10 15 20 250.46
0.48
0.5
0.52
0.54
0.56
0.58
0.6
0.62Sinal de Controle de Velocidade
Tempo(s)
Sin
al d
e C
on
tro
le(A
)
Sinal do Controlador PI
Sinal do Controlador Neural
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 92
6.3.2 Estudo de caso II – Variação de Degraus
O segundo experimento apresenta o comportamento do sistema
operando na velocidade nominal de 1.800 rpm com uma variação de 5%, ou seja,
operando a 1.710 rpm e 1.890 rpm. A figura 79 mostra o comportamento da
velocidade mecânica e das posições X e Y referentes à posição do rotor.
Figura 78 - Velocidade mecânica e posições X e Y para referência de velocidade em degraus.
Neste caso, pode-se notar a presença de overshoots na atuação do
controlador PI identificados com os círculos tracejado, o que não ocorreu com o
controlador neural. Esse comportamento pode ser observado na figura 79, pois,
no sinal de controle PI, houve amplitudes maiores em relação aos do controle
neural.
0 5 10 15 20 251200
1400
1600
1800
2000
2200
Tempo(s)
Ve
locid
ad
e M
ecâ
nic
a(R
PM
)
Velocidade Mecânica de Referência
Velocidade Mecânica PI
Velocidade Mecânica Sensoriada com Rede Neural
0 5 10 15 20 250
500
1000
1500
2000
Tempo(s)
Po
siç
ão
X(m
m)
Posição X com o Controlador PI
Posição X com Rede Neural
Posição de Referência
0 5 10 15 20 251000
1200
1400
1600
1800
2000
2200
Tempo(s)
Po
siç
ão
Y(m
m)
Posição Y com o Controlador PI
Posição Y com Rede Neural
Posição de Referência
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 93
Apesar das variações do sinal de controle da figura 80, pode-se constatar
que o controle de posição teve bom desempenho, porque os sinais de X e Y não
sofreram variação.
Figura 79 - Sinais de controle para referência de velocidade em degraus.
A figura 81 mostra os erros dos controladores sendo atuados pelos
controladores PI e neural. Observa-se ainda uma diferença de amplitude entre
os controladores devido ao efeito apresentado na figura 79 as respostas também
são diferentes.
Figura 80 - Sinais do erro de controle para referência de velocidade em degraus.
Dessa forma, mesmo com as variações ou mudanças de referências no
controle de velocidade, a figura 82 apresenta a dispersão dos sinais XY
concentrados, pois essas variações não ocasionaram perturbação no controle
de posição.
0 5 10 15 20 250.4
0.45
0.5
0.55
0.6
0.65Sinal de Controle de Velocidade
Tempo(s)
Sin
al d
e C
on
tro
le(A
)
Sinal do Controlador PI
Sinal do Controlador Neural
0 5 10 15 20 25-150
-100
-50
0
50
100
150Sinal de Erro do Controle de Velocidade
Tempo(s)
Err
o d
o C
on
tro
lad
or
de
Ve
locid
ad
e M
ecâ
nic
a(R
PM
)
Erro do Controlador PI
Erro do Controlador Neural
CAPÍTULO 6. RESULTADOS EXPERIMENTAIS 94
Figura 81 - Diagramas de posicionamento radial para referência de velocidade em degraus.
Um tacômetro digital de modelo DT-2234B foi utilizado para validar e
verificar a velocidade mecânica do rotor operando em 1800 RPM e utilizando os
controladores PI e neural. A figura 83 mostra os resultados em regime
permanente em (A) funcionando com o controlador PI e (B), com o controlador
neural.
(A) (B)
Figura 82 - Medição da velocidade mecânica (A) controle PI e (B) controle neural.
6.4 CONCLUSÃO
Este capítulo mostrou os resultados implementados nas malhas de
controle em cascata: corrente, posição radial e velocidade. As malhas de
controle foram implementadas no DSP F28335 e sintonizadas empiricamente.
Realizaram-se experimentos com correntes contínuas e alternadas com o
controle de corrente do motor-mancal. O controle de posição operou nas
frequências de 15Hz a 60Hz. Por último, analisaram-se os comportamentos da
velocidade mecânica e da posição radial comparando-os com os controladores
PI e neural.
-500 0 500 1000 1500 2000 2500 30000
500
1000
1500
2000
2500
3000Figura de Lissajous
Posição X(mm)
Po
siç
ão
Y(m
m)
Posição X com o Controlador PI
Posição X com Rede Neural
95
CAPÍTULO 7
CONCLUSÕES GERAIS E PERSPECTIVAS
Neste último capítulo, apresentamos as conclusões e as perspectivas
futuras.
7.1 CONCLUSÃO
O objetivo deste trabalho foi realizar o estudo e a implementação das
técnicas de inteligência artificial para o controle de velocidade do motor-mancal
com bobinado dividido. As técnicas inteligentes ANFIS e as Redes Neurais foram
investigadas e implementadas computacionalmente para a avalição do
desempenho do motor-mancal. Os resultados simulados mostraram de forma
diferente um bom desempenho para as duas técnicas: como estimador e como
controlador de velocidade, utilizando em ambas um modelo do motor de indução
operando como um motor-mancal.
A implementação experimental necessitou de ajustes: nas interfaces de
posição, no sensor de velocidade e na substituição do DSP TMS 3220F2812,
que operava em ponto fixo pelo TMS 3220F28335, que trabalha em ponto
flutuante. Com a implementação do sistema motor-mancal e a análise dos
resultados obtidos, foram possíveis algumas conclusões:
- a utilização do DSP 28335 auxiliou na implementação da estratégia de
controle em cascata;
CAPÍTULO 7. CONCLUSÕES GERAIS E PERSPECTIVAS 96
- a sintonia das malhas de controle de corrente, de posição e de
velocidade, nos resultados experimentais implementados no DSP F28335, foi
realizada empiricamente através do método tentativa e erro, cujo ajuste é de
difícil obtenção e trabalhoso;
- os resultados do controle de corrente foram investigados com correntes
contínuas e alternadas, validando a sintonia do controlador no motor-mancal;
- o resultado do controle de posição foi implementado e sintonizado para
a frequência de 60Hz, mas obteve bons resultados nas frequências de 15Hz,
30Hz e 45Hz;
- as condições de operação do controle de velocidade foram
sincronizadas com o controle de posição de modo que o sistema motor-mancal
operasse adequadamente com o controle de corrente;
- a operação das malhas em cascata necessita de um sincronismo entre
o controle de posição e o controle de velocidade, pois, caso não ocorra, os
controladores não conseguirão estabilização;
- o controlador PI de velocidade apresentou overshoots e o controlador
neural não os apresentou, demostrando a capacidade de aprendizagem e
generalização das Redes Neurais.
7.2 PERSPECTIVAS
As perspectivas futuras notadamente devem conter soluções que
contribuam para a melhoria do que foi realizado após a conclusão deste trabalho,
além de outras implementações, como as que seguem:
- de estratégias inteligentes no controle de posição;
- do controle robusto com restrições, para garantir que a posição radial
opere em uma região de incerteza politópica;
- do controle adaptativo em vez do controle PI clássico de velocidade;
- da técnica sensorless no motor-mancal para a velocidade mecânica.
Conclui-se que o objetivo proposto foi alcançado e que este trabalho
servirá para a continuidade de pesquisas futuras com os motores-mancais.
97
APÊNDICE A: CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335
Esse apêndice contém principais módulos ou periféricos utilizados na
implementação da estratégia de controle do motor-mancal utilizando o
Processador Digital de Sinais, do inglês Digital Signal Processor (DSP). São detalhadas as características e as configurações dos periféricos
essenciais para o funcionamento do DSP TMS320F28335 envolvendo as etapas
de aquisição de dados, cálculos e outros.
A.1 INTRODUÇÃO
O presente trabalho utiliza o DSP em ponto flutuante ao invés do DSP em
ponto fixo, ou seja, a mudança do DSP TMS 3220F2812 para o DSP TMS
3220F28335 teve como objetivo melhorar o desempenho na implementação dos
controladores e sua capacidade de processamento. Segundo Silva Neto (2015),
as diferenças entre os DSP ocorrem na configuração dos registradores e na
implementação dos periféricos. Podemos listar algumas diferenças entre os
DSP:
o 28335 apresenta um terceiro modo de controle no barramento de
periféricos, sendo esse acesso via DMA;
o 28335 apresenta mais linhas de endereço e dados que o 2812 na
interface externa;
o 28335 tem o dobro de memória flash e de memória RAM que o 2812
e não possui memória ROM;
o 28335 tem 16 modos de boot enquanto o 2812 possui apenas sete;
o 28335 tem oito interrupções externas mascaradas enquanto que o
2812 apresenta apenas três;
As características acima serviram de base para a escolha do eZdspTM
F28335 da Spectrum Digital Inc. que produz kits de desenvolvimento para os
processadores da Texas Instruments®. A figura 84 apresenta o diagrama de
blocos do eZdspTM.
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 98
Figura 83 - Diagrama de blocos do kit edZdspTM F28335. Fonte: SPECTRUM DIGITAL INC., 2007.
Características do edZdspTM F28335:
150 MIPS (Milhões de Instruções por Segundo), 32-bit CPU;
unidade de ponto flutuante de precisão simples IEEE-754;
operação com instruções de 16-bits e 32-bits;
30 MHz de clock com arquitetura de barramentos Harvard;
68Kbytes de memória RAM, 512Kbytes de memória Flash e
256Kbytes de memória SRAM;
modulação por largura de pulsos, ou simplesmente PWM (do inglês,
Pulse Width Modulation), com uma alta resolução de 150 ps de
precisão. Também possuem controladores PWM com tempo morto,
fase ou ciclo de trabalho programáveis;
o conversor analógico digital (ADC, do inglês Analogic Digital
Converter) tem 12 bits com 16 canais e dois Sample-and-Hold;
A figura 85 mostra a imagem do kit edZdspTM F28335.
Figura 84 - Layout do kit edZdspTM F28335.
A figura 86 ilustra o fluxograma baseado nas ações realizadas pelo
algoritmo de controle desenvolvido em linguagem ANSI C.
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 99
Figura 85 - Fluxograma do algoritmo de controle implementado no DSP 28335.
A figura 86 apresenta as etapas do programa implementado no DSP
F28335. A etapa A é responsável por inicializar as variáveis, os protótipos das
funções e as estruturas utilizadas no cabeçalho do programa antes da rotina
principal main(). Nesta etapa, determinam-se quais módulos serão executados
com a função InitSysCtrl(). Nesta função, definem-se quais periféricos devem ser
habilitados ou não. Uma etapa importante para o funcionamento do programa é
determinar o clock de operação do processador.
Em B, ocorrem a inicialização e a configuração do clock, a definição dos
pinos de propósito geral e a configuração e a definição do vetor de interrupções.
Nesta etapa, define-se qual a origem da interrupção, pois pode ocorrer
interrupção ativada pelo módulo PWM, ADC ou Timer, por exemplo, podendo
existir até 96 fontes distintas de interrupções. A etapa C é responsável por
DEFINIÇÃO DE VARIAVÉIS
INICIO
PROTÓTIPOS E INSTÂNCIAS DE ESTRUTURAS
INICIALIZA DSP
A
INICIALIZAÇÃO RELÓGIO E SISTEMA DE CONTROLE
DEFINE A OPERAÇÃO DOS PINOS DE PROPÓSITO
GERAL
INICIALIZA E CONFIGURA OS REGISTRADORES DOS
PERIFÉRICOS
GERAÇÃO TRIGGER PARA ADC
INICIALIZA E CONFIGURA VETOR DE INTERRUPÇÕES
B
C
AMOSTRAGEM DOS SINAIS PELO ADC
INICIALIZA, SINCRONIZA E CONFIGURA OS PWM
CONFIGURA ADC PARA REALIZAR A CONVERSÃO VIA INTERRUPÇÃO PWM
NÃO
SIM
NÃO
D
CALCULA A VELOCIDADE - RPM
CONTROLE DE CORRENTE
TRANSFORMADA INVERSA PARK E CLARKE
RO
TIN
A IN
TER
RU
PÇÃ
O -
AD
C
LÊR E ATUALIZA AS CORRENTES DE REFERÊNCIAS
CONTROLE DE VELOCIDADE
CONTROLE DE POSIÇÃO
CALCULA OS NOVOS DUTY CIRCLE - PWMs
E
A - DECLARAÇÕES.
B - INICIALIZAÇÃO E CONFIGURAÇÕES – DSP.
C - INICIALIZAÇÃO E CONFIGURAÇÕES DOS PERIFÉRICOS.
D – SINCRONISMO ENTRE PWM E O ADC.
E – ALGORITMO VETORIAL DE CONTROLE.
F - ATUALIZAÇÃO DOS PWM.
ATUALIZA OS PWMs
F
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 100
inicializar e configurar os registradores dos periféricos. Nessa etapa, define-se a
inicialização do ADC a partir da interrupção do PWM habilitado pelo bit SOCAEN
no registrador ETSEL.
Já, em D, ocorre o trigger, ou seja, o começo da conversão do ADC e, em
seguida, iniciam-se os cálculos e as rotinas de controle. Essa etapa define o
início da interrupção. Na etapa seguinte E ocorrem os cálculos, as transformadas
e os cálculos das leis de controle, ou seja, são realizados os cálculos para o
algoritmo do controle vetorial em cascata com o controle de posição e de
corrente. Finalmente, em F, ocorre a atualização dos PWM. Nessa etapa, o
algoritmo espera o próximo trigger e o retorno para a etapa D. A seguir, será feita
uma breve explicação com os respectivos códigos referentes às configurações
dos periféricos utilizados no funcionamento do sistema motor-mancal.
A.2 ADC(ANALOG TO DIGITAL CONVERSOR)
O conversor analógico/digital do DSP utiliza um conversor A/D de
aproximações sucessivas, que realiza a amostragem de sinais analógicos em
sinais digitais. O DSP dispõe de 16 pinos de entrada com 12 bits de resolução,
que podem receber tensões de 0 a 3V em duas unidades Sample And Hold, as
quais armazenam o sinal que será convertido. O ADC possui dois blocos de
conversão, A (ADCINA0 a ADCINA8) e B (ADCINB0 a ADCINB8), que podem
trabalhar tanto cascateados, permitindo a aquisição de 16 sinais, ou podem
operar isoladamente, possibilitando a aquisição de oito sinais cada um. A tabela
10 mostra os parâmetros utilizados na configuração do ADC.
Tabela 10 – Configuração do conversor analógico-digital.
Clock do ADC 75 Mhz
Modo de amostragem Simultâneo
Modo de Operação Continuo
Fonte do Trigger PWM
A seguir, o código ANSI-C da configuração do ADC:
AdcRegs.ADCTRL1.bit.ACQ_PS = 10; //Define a janela de amostragem.
AdcRegs.ADCMAXCONV.all = 0x0004; //Converte de 8 canais.
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; //Define modo sequencial.
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // Define o modo em cascata.
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 101
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // ADCNA0 e ADCNB0.
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // ADCNA1 e ADCNB1.
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2; // ADCNA2 e ADCNB2.
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3; // ADCNA3 e ADCNB3.
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; // Inicializa a conversão a
//partir do PWM.
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; //Habilita a interrupção SEQ1.
AdcRegs.ADCTRL1.bit.CPS = 0; // Divide por 1.
AdcRegs.ADCTRL3.bit.ADCCLKPS = 1; // Define o clock.
A descrição detalhada dos registrados acima pode ser encontrada no guia
de referência do conversor ADC da Texas (SPRU812A, 2007).
A.3 EPWM(ENHANCED PULSE WIDTH MODULATOR)
O DSP TMS320F28335 possui 18 canais PWM independentes, dois quais
12 estão disponíveis nos módulos PWM e mais seis canais adicionais no módulo
CAPTURE que está descrito na seção A.4. Os 12 módulos vão do EPWM1A e
EPWM1B até o EPWM6A e EPWM6B. Cada módulo PWM possui sete
submódulos:
- Time – Base (TB);
- Contador-Comparador (CC);
- Qualificador de Ação (AQ);
- Dead-Band (DB);
- PWM-Chopper (PC);
- Event-Trigger (ET);
-Trip-Zone (TZ).
Foi necessária a configuração dos três primeiros submódulos para o
funcionamento do PWM. O importante da configuração no PWM é a escolha da
contagem, pois define-se o tipo do PWM, o qual pode ser simétrico (contagem
crescente e decrescente - UpDown) ou assimétrico, que pode conter a contagem
crescente - Up ou a contagem decrescente – Down. O principal registrador do
ePWM a ser configurado é o TBPRD (Time Base Period), cujo valor representa
o tempo gasto para a completa amostragem dos sinais sensoriados, ou seja,
coletados pelo ADC. Com base em uma frequência de amostragem e do clock (
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 102
tabela 10), chega-se à equação 1, por meio da qual calcula-se o valor a ser
configurado no registrador TBRD:
𝑇𝑅𝑃𝑅𝐷 =𝐻𝑆𝑃𝐶𝐿𝐾
𝑓𝑎
𝑇𝑅𝑃𝑅𝐷 = 15000
A tabela 11 mostra os parâmetros utilizados na configuração do ePWM.
Tabela 11 – Configuração do módulo ePWM.
Frequência de amostragem do PWM (𝑓𝑎) 10 khz
Frequência de clock (𝐻𝑆𝑃𝐶𝐿𝐾) 150Mhz
Modo de contagem Up-Down
Modo de operação Shadow
Fonte do trigger ADC
A seguir, o código ANSI-C da configuração básica do PWM.
EPwm1Regs.TBPRD = 7500; // Configura o período de contagem TBCLKs.
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Define a fase =0.
EPwm1Regs.TBCTR = 0x0000; // Limpa o contador.
EPwm1Regs.CMPA.half.CMPA = 0; // Registra a comparação de A com zero.
EPwm1Regs.CMPB = 0; //Registra a comparação de B com zero.
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; //Habilita o modo de
contagem up/down.
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Desabilita a fase.
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Qualificador
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Qualificador
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET; // Qualificador
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR; // Qualificador
EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Habilita o início do conversor ADC
(1)
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 103
EPwm1Regs.ETSEL.bit.SOCASEL = 2; //Configura contador = período
EPwm1Regs.ETPS.bit.SOCAPRD = 1; //Gera pulso no 1st evento
A descrição detalhada dos registrados acima é encontrada no guia de
referência do ePWM da Texas (SPRUG04A, 2009).
A.4 ECAP(ENHANCED CAPTURE)
O módulo eCAP representa um canal de captura de eventos que pode ser
instanciado várias vezes, dependendo do dispositivo de destino. São
características do módulo:
• pinos de captura dedicados;
• base de tempo de 32 bits (contador);
• quatro registradores de 32 bits (CAP1-CAP4);
• sequenciador de quatro fases ou módulo com quatro contadores que são
registradores para sincronizar eventos externos;
• pinos que detectam bordas de subida e/ou descida;
• escalonadores de captura de dois a 62 modos;
• dois modos de operação: One-Shot e o Contínuo;
• possibilidade de interrupções em qualquer um dos eventos de captura
(CAP1-CAP4).
A utilização desse módulo possibilita:
• realizar medições de velocidade de máquinas rotativas (por exemplo,
rodas dentadas que detectam pulsos através de sensores Hall);
• mensurar o tempo a partir do intervalo entre pulsos de sensores de
posição;
• fazer medições de ciclo de trabalho a partir de sinais de trem de pulsos
ou de períodos.
A tabela 12 mostra os parâmetros utilizados na configuração do ePWM.
Tabela 12 – Configuração do módulo eCAP.
Tipo de borda detectada subida
Modo de operação One-Shot
Fonte da interrupção um evento
Segue o código ANSI-C utilizado na configuração do módulo do eCAP.
APENDICE A - CONFIGURAÇÕES DOS PERIFÉRICOS DOS DSP TMS320F28335 104
ECap1Regs.ECEINT.all = 0x0000; //Desabilita todos as interrupções.
ECap1Regs.ECCLR.all = 0xFFFF; //Limpa as flags das interrupções.
ECap1Regs.ECCTL1.bit.CAPLDEN = 0; //Desabilita o modo loader CAP1-CAP4.
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0; //Para o modo contador.
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 1; //Habilita o modo One-shot.
ECap1Regs.ECCTL2.bit.STOP_WRAP = 0; // Pára no 1 evento.
ECap1Regs.ECCTL1.bit.CAP1POL = 0; //Detecta borda de subida.
ECap1Regs.ECCTL1.bit.CTRRST1 = 1;
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0; // Habilita o critério de parada
do evento.
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Início do contador.
ECap1Regs.ECCTL2.bit.REARM = 1; // Arma o modo One-shot.
ECap1Regs.ECCTL1.bit.CAPLDEN = 1; //Habilita os registradores CAP1-CAP4.
ECap1Regs.ECEINT.bit.CEVT1 = 1; // Ativa a interrupção no 1 evento.
A descrição detalhada dos registrados acima é encontrada no guia de
referência do eCAP da Texas (SPRUFG4A, 2009).
A.5 INTERFACE COM O MATLAB
A interface com Matlab auxilia a aquisição de dados internos do DSP. O
comando ticcss realiza um link do Code Composer Studio (CCS) com o Matlab®,
permitindo executar comandos do CCS e acessar o DSP que está conectado a
uma instância do CCS. Para habilitar o Matlab® e comunicar com o CCS, é
necessário inserir os blocos de comandos abaixo.
// Inserir as funções
void init_zone7(void)
void InitXintf16Gpio(void);
// Criar variáveis na memória do DSP
#pragma DATA_SECTION(Buffer1,"ZONE7DATA");
#pragma DATA_SECTION(Buffer2,"ZONE7DATA");
#pragma DATA_SECTION(Buffer3,"ZONE7DATA");
As funções init_zone7() e InitXintf16Gpio() podem ser encontradas no
Apêndice B, que apresenta o código fonte implementado para o algoritmo de
controle do motor-mancal.
105
APÊNDICE B: PROGRAMA PARA O CONTROLE DO MOTOR-MANCAL
Esse apêndice contém o programa em linguagem C implementado no
Code Composer 3.3. Este programa foi utilizado no controle de corrente da
máquina de indução. Sendo parte integrante do projeto.
//######################################################################
//Controle vetorial de Velocidade - Motor Mancal
// $Revisão do programa: 09/04/16 as 10h$
//######################################################################
#include "DSP28x_Project.h"
#include <math.h>
// Prototipo das funções
void InitECapture(void);
void InitEPwm1(void);
void InitEPwm2(void);
void InitEPwm3(void);
void ConfigCAD(void);
void ConfigGPIO(void);
void init_zone7(void);
void InitXintf16Gpio(void);
// Rotina de controle, executa a 100us - Interrupção
interrupt void adc_isr(void);
// Rotina para o Matlab. Tam. do buffer: 31500
#pragma DATA_SECTION(Buffer1,"ZONE7DATA");
#pragma DATA_SECTION(Buffer2,"ZONE7DATA");
#pragma DATA_SECTION(Buffer3,"ZONE7DATA");
#pragma DATA_SECTION(Buffer4,"ZONE7DATA");
#pragma DATA_SECTION(Buffer5,"ZONE7DATA");
#pragma DATA_SECTION(Buffer6,"ZONE7DATA");
#pragma DATA_SECTION(Buffer7,"ZONE7DATA");
#pragma DATA_SECTION(Buffer8,"ZONE7DATA");
#pragma DATA_SECTION(Buffer9,"ZONE7DATA");
float w2[10] = -0.43014,0.70332, 0.12423, -0.21262, 0.39371, 0.11679, -0.13743, 0.35273, 0.21287, 0.56583;
float b1[10]=0.79952, 0.64329, 0.28983, 0.63594, 0.32047, -0.31605,-0.42055, -0.3176,0.06817,0.45426;
float b2=0.91374;
float y1[10] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 106
float y2 = 0.0;
// ---------Rede /neural utilizado na Variacao de Velocidade-------------------
float Xrna[2]= 0.0 , 0.0;
float w1[10][2] = 0.90428, 0.081054,
-1.0029, 0.16907,
0.34601, 0.35891,
0.33845, 0.37759,
0.99273, -0.24073,
0.66315, -0.12663,
1.0054, 0.38373,
-4.9901, 0.35281,
0.63528, -0.07112,
-0.25267, 0.47402;
float w2[10] = 0.0018977, -0.0093423, 0.0072015, 0.0067842, -0.0043975, 0.016162, 0.00070012, -0.002592, 0.016067,
0.10709;
float b1[10]=-17.2418, -27.5998, -69.453, -69.2379, 44.0822, 23.0618, -70.4748, -52.1045, 14.4631, -72.4192;
float b2=0.39722;
float y1[10] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0;
float y2 = 0.0;
float VAR1 = 764, //188.49, //x
VAR2 = 1580, //197.91, //y
VAR3 = 1200, //188.49, //x
VAR4 = 1659, //179.06, //y
VAR5 = 188.49;
Uint16 kmovel = 7, ik =0, jk = 0, flag_ativa_rna = 0;
float temp[7] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
temp1[7] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
temp2[7] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
mvel_rds = 0.0,
mPosXf = 0.0,
mPosYf = 0.0;
Uint16 flag_ativa_velocidade = 0, fim_flag_matlab = 0;
//******************************************************
float p2 = 0;
float IQMAX = 0.6, IQMIN = 0.4, idRef = 1, TOR = -1.2;
Uint16 i= 0;
float wc = 500, OffW = -50.0, np = 1;
// (1). Variaveis para armazenar dados para o Matlab
float Buffer1[7000],
Buffer2[7000],
Buffer3[7000],
Buffer4[7000],
Buffer5[7000],
Buffer6[7000],
Buffer7[7000],
Buffer8[7000],
Buffer9[7000];
float vel_rpm = 0.0,
vel_rpm_ant =0.0,
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 107
vel_final=0.0,
vel_rds = 0.0,
vel_rdsmin = 0.0,
KM = 1.5e+08,
GH = 3.093333,
vel_rpmf = 0,
wcvel = 2.5;
//(2).Variaveis para ADC
signed int sinal1 = 0,
sinal2 = 0,
sinal3 = 0,
sinal4 = 0,
sinal5 = 0,
sinal6 = 0,
sinalx = 0,
sinaly = 0;
float corrente1=0.0,
corrente2=0.0,
corrente3=0.0,
corrente4=0.0,
corrente5=0.0,
corrente6=0.0;
float corrente1f=0.0,
corrente2f=0.0,
corrente3f=0.0,
corrente4f=0.0,
corrente5f=0.0,
corrente6f=0.0;
float PosX=0.0,
PosY=0.0,
PosXf=0.0,
PosYf=0.0;
float velo_X = 0,
velo_Y = 0,
erroX = 0,
erroY = 0,
erroX_ant = 0,
erroY_ant = 0,
propx = 0,
derivx = 0,
integx = 0,
derivx_ant = 0,
integx_ant = 0,
derivy_ant = 0,
integy_ant = 0,
propy = 0,
derivy = 0,
integy = 0,
iX = 0,
iY = 0,
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 108
iX_ant = 0,
iY_ant = 0,
ganho_limY = 0.15,
ganho_limX = 0.2;
float Ux = 0,
Uy = 0;
Uint16 intp = 0;
//(3).Variaveis - Controle de Corrente
/*
float lim_BMAX = 0.0; // Define o barramento máximo
BMAX = 150 // Define o barramento máximo referente a tensão no variac de 60 VAC
*/
float kpi = 200.0, //Ganho do Controlador Proporcional de Corrente
kii = 1.464844e-6; //Ganho do Controlador Integrativo de Corrente
float ref1 = 0.0,
ref2 = 0.0,
ref3 = 0.0,
ref4 = 0.0,
ref5 = 0.0,
ref6 = 0.0;
//(4). Parâmetros refente a coleta - Matlab
Uint16 indexb = 0,
flag_matlab = 0,
tam_index = 485;
float tempo = 0.0,
tf = 50;
float ReferX = 955.0,
ReferY = 1761.0,
ux = 0.0,
uy = 0.0,
x_al = 0,
y_be = 0,
ua =0,
ub = 0,
uc = 0;
float Kpx = 0.0002,
Kdx = 0.058,
Kix = 1e-08,
Kpy = 0.00028,
Kdy = 0.058,
Kiy = 1e-08,
limX = 1;
float cosp1 = 0,
senp1 = 0;
// (5). Variaveis refetente ao sensor de velocidade
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 109
Uint32 delta = 0;
float TOLWMEC = 1.05;
// 6.4 - Parametros do fluxo e da Posição Rotórica
float p1 = 0.0,
dp = 0.0,
Phir = 0.0;
float cosp2 = 0.0,
senp2 = 0.0;
float i1ref = 0.0,
i2ref = 0.0,
i3ref = 0.0;
float ialfaref = 0.0,
ibetaref = 0.0;
float mMref = 0.0,
iqRef = 0.52,
iqRef1 = 0,
iqRef2 = 0;
float errow =0.0,
propw = 0.0,
iW = 0.0,
ganho_limW = 0.5,
integw = 0.0,
Wmref = 188.49,
Kpw = 0.01,
Kiw= 7.5e-5;
// ******************************************************************
// *********** Definição das estruturas dos Parametros do PID *******
// ******************************************************************
typedef struct
float Ref; // Entrada referente ao set-point
float Fbk; // Entrada referente ao feedback
float Out; // Saida do controlador
PID_TERMINALS;
typedef struct
float Kp; // Parametro: proportional loop gain
float Ki; // Parametro: integral gain
float Km; // Parametro: derivative weighting
float Umax; // Parametro: upper saturation limit
float Umin; // Parametro: lower saturation limit
PID_PARAMETERS;
typedef struct
float up; // Data: proportional term
float ui; // Data: integral term
float v1; // Data: pre-saturated controller output
float i1; // Data: integrator storage: ui(k-1)
float w1; // Data: saturation record: [u(k-1) - v(k-1)]
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 110
PID_DATA;
typedef struct
PID_TERMINALS term;
PID_PARAMETERS param;
PID_DATA data;
PID_CONTROLLER;
//Protótico para inicializar parametros do Controlador
void PID_init(PID_CONTROLLER *v);
void PID_FUNC(PID_CONTROLLER *v);
// Instância dos Controladores
PID_CONTROLLER PI_Corrente1;
PID_CONTROLLER PI_Corrente2;
PID_CONTROLLER PI_Corrente3;
PID_CONTROLLER PI_Corrente4;
PID_CONTROLLER PI_Corrente5;
PID_CONTROLLER PI_Corrente6;
void main(void)
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
InitSysCtrl();
// Step 2. Initalize GPIO:
// Init GPIO pins for ePWM1A,ePWM1B ePWM2A, ePWM2B, ePWM3A e ePWM3B e Ecap1
InitEPwmGpio();
InitECap1Gpio();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
DINT;
// Initialize the PIE control registers to their default state.
InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
InitPieVectTable();
// Interrupts are re-mapped to ISR functions found within this file.
EALLOW;
PieVectTable.ADCINT = &adc_isr;
EDIS;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 111
// Step 4. Initialize A/D Peripheral:
InitECapture();
InitAdc();
// Stop PWM counter timer ( TBCLKSYNC - Sincroniza os clocks e Parando todos os móduloas PWM)
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // - reseta TBCLKSYNC
EDIS;
InitEPwm1();
InitEPwm2();
InitEPwm3();
// Start PWM counter timer. All PWM Channels are syncronized
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
// Step 5. User specific code, enable interrupts:
IER |= M_INT1; //interrupcao do Timer0 & ADC
// Enable ADCINT in PIE
PieCtrlRegs.PIEIER1.bit.INTx6 = 1; //Utilizar a interrupcao do ADC
// Enable global Interrupts and higher priority real-time debug events:
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
// Step 6. IDLE loop.
ConfigGPIO(); // Configura os pinos IO
init_zone7(); // Memoria externa
//Função que configura o ADC para realizar a conversão via interrupção do PWM
ConfigCAD();
// Inicializa os Controladores
PID_init(&PI_Corrente1);
PID_init(&PI_Corrente2);
PID_init(&PI_Corrente3);
PID_init(&PI_Corrente4);
PID_init(&PI_Corrente5);
PID_init(&PI_Corrente6);
for(;;)
//***************************************************************************
// Captura a Velocidade
//***************************************************************************
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 112
if(ECap1Regs.ECFLG.bit.CEVT1 == 1)
delta = ECap1Regs.CAP1;
vel_rpm = KM/delta;
ECap1Regs.ECCTL2.bit.REARM = 1;
ECap1Regs.ECCLR.bit.CEVT1 = 1;
if((vel_rpm > vel_rpm_ant * 1.05) && (vel_rpm_ant > 15))
vel_final=vel_rpm_ant;
else
vel_rpm_ant=vel_rpm;
vel_final=vel_rpm;
//Filtro Digital
vel_rpmf = vel_rpmf * 0.9998 + vel_rpm * 2.5000e-004;
// Transforma de rpm para rad/s
vel_rds = vel_rpmf * 0.1047 + OffW;
///////////////////////////////////////////////////////////////////////
////////////////////////Rotina Principal//////////////////////////////
///////////////////////////////////////////////////////////////////////
interrupt void adc_isr(void)
GpioDataRegs.GPASET.bit.GPIO13 = 1;
// Filtro média móvel - velocidade
temp[0] = temp[1];
temp[1] = temp[2];
temp[2] = temp[3];
temp[3] = temp[4];
temp[4] = temp[5];
temp[5] = temp[6];
temp[6] = vel_rds;
mvel_rds = temp[6] + 0.1428571 * (temp[5] - temp[0]);
errow = Wmref - mvel_rds;
y1[0] = 0;
y1[1] = 0;
y1[2] = 0;
y1[3] = 0;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 113
y1[4] = 0;
y1[5] = 0;
y1[6] = 0;
y1[7] = 0;
y1[8] = 0;
y1[9] = 0;
y2 = 0;
Xrna[0] = errow;
Xrna[1] = mvel_rds;
for (ik = 0; ik < 10; ik++)
for (jk = 0; jk < 2; jk++)
y1[ik] += Xrna[jk] * w1[ik][jk];
y1[ik] = y1[ik]+ b1[ik];
y1[ik] = 2/(1+exp(-2 * y1[ik]))-1;
for (ik = 0; ik < 10; ik++)
y2 = y2 + y1[ik] * w2[ik];
y2 =y2 + b2;
propw = Kpw * errow;
iW += Kiw * errow;
// Saturador integrativo
iW = __fmax((__fmin( ganho_limW, iW)), -ganho_limW);
integw = iW;
// Lei de controle
iqRef1 = propw + integw;
if( flag_ativa_rna == 0)
iqRef = __fmax((__fmin( IQMAX, iqRef1)), IQMIN);
else
iqRef = __fmax((__fmin( IQMAX, y2)), IQMIN);
// Cálculo da posição do fluxo rotórico
// Sabendo que Tr = 4.6197 e imR = 0.001, logo [Tr * imR] = 0.0046
dp = vel_rds + iqRef/0.002489;
p2 = p2 + 0.0001 * dp;
if (p2 >= 6.28318530717) p2 = p2 - 6.28318530717;
if (p2 <=-6.28318530717) p2 = p2 + 6.28318530717;
cosp1 = cos(p2);
senp1 = sin(p2);
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 114
cosp2 = cos(p2+TOR);
senp2 = sin(p2+TOR);
// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
// Transformação inversa de Park
// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
ialfaref = cosp2 + iqRef * senp2;
ibetaref = iqRef * cosp2 - senp2;
// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
// Transformacao inversa de Clarke
// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
i1ref = ialfaref;
i3ref = -(0.5 * ialfaref) + (0.8660254 * ibetaref);
i2ref = -(ialfaref * 0.5) - (0.8660254 * ibetaref);
// Leitura de Posição - Eixos X e Y
//Filtro Digital
PosX = (float)(AdcRegs.ADCRESULT6 >>4);
PosY = (float)(AdcRegs.ADCRESULT7 >>4);
PosXf = (PosXf * 0.9500) + (PosX * 0.0500);
PosYf = (PosYf * 0.9500) + (PosY * 0.0500);
temp1[0] = temp1[1];
temp1[1] = temp1[2];
temp1[2] = temp1[3];
temp1[3] = temp1[4];
temp1[4] = temp1[5];
temp1[5] = temp1[6];
temp1[6] = PosXf;
temp2[0] = temp2[1];
temp2[1] = temp2[2];
temp2[2] = temp2[3];
temp2[3] = temp2[4];
temp2[4] = temp2[5];
temp2[5] = temp2[6];
temp2[6] = PosYf;
mPosXf = temp1[6] + 0.1428571 * (temp1[5] - temp1[0]);
mPosYf = temp2[6] + 0.1428571 * (temp2[5] - temp2[0]);
//***********************************************************************
// Metodo Classico - Controle de Posição
//***********************************************************************
erroX = -(ReferX - mPosXf);
erroY = -(ReferY - mPosYf);
velo_X = (erroX - erroX_ant);
velo_Y = (erroY - erroY_ant);
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 115
erroX_ant = erroX;
erroY_ant = erroY;
// Controle de posição radial
propx = Kpx * erroX;
derivx = Kdx * velo_X;
iX += Kix * erroX;
// Saturador integrativo
iX = __fmax((__fmin( ganho_limX, iX)), -ganho_limX);
integx = iX;
// Lei de controle X
Ux = propx + derivx+ integx;
// Controle Y
propy = Kpy * erroY;
derivy = Kdy * velo_Y;
iY += Kiy * erroY;
// Saturador integrativo
iY = __fmax((__fmin( ganho_limY, iY)), -ganho_limY);
integy = iY;
// Lei de controle Y
Uy = propy + derivy + integy;
// Limitadores
Ux = __fmax((__fmin( limX, Ux)), -limX);
Uy = __fmax((__fmin( limX, Uy)), -limX);
x_al = Ux * senp1 - Uy * cosp1 ;
y_be = -Ux * cosp1 - Uy * senp1 ;
ua = x_al;
ub = y_be * 0.8660254 + x_al * 0.5;
uc = ub - x_al;
//-------------------------------------------------------
ref1 = i1ref + ua;
ref2 = i1ref - ua;
ref3 = i2ref + ub;
ref4 = i2ref - ub;
ref5 = i3ref + uc;
ref6 = i3ref - uc;
//////////////////////////////////////////////////////
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 116
// Rotina para Ler as Correntes
///////////////////////////////////////////////////////
sinal1 = (AdcRegs.ADCRESULT0 >>4) - 2018 ;
sinal2 = (AdcRegs.ADCRESULT1 >>4) - 2021;
sinal3 = (AdcRegs.ADCRESULT2 >>4) - 2023;
sinal4 = (AdcRegs.ADCRESULT3 >>4) - 2017;
sinal5 = (AdcRegs.ADCRESULT4 >>4) - 2025;
sinal6 = (AdcRegs.ADCRESULT5 >>4) - 2038;
corrente1 = (float) -7.234 * (sinal1/2048.0)+ 0.0251;
corrente1f = corrente1f * 0.6858 + corrente1 * 0.3142 ;
corrente2 = (float) -6.9051 * (sinal2/2048.0) + 0.0036;
corrente2f = corrente2f * 0.6858 + corrente2 * 0.3142;
corrente3 = (float) -7.5425 * (sinal3/2048.0) + 0.0562;
corrente3f = corrente3f * 0.6858 + corrente3 * 0.3142;
corrente4 = (float) -7.3091 * (sinal4/2048.0) + 0.0454;
corrente4f = corrente4f * 0.6858 + corrente4 * 0.3142;
corrente5 = (float) -7.4077 * (sinal5/2048.0) + 0.0557;
corrente5f = corrente5f * 0.6858 + corrente5 * 0.3142;
corrente6 = (float) -7.6512 * (sinal6/2048.0) + 0.0459;
corrente6f = corrente6f * 0.6858 + corrente6 * 0.3142;
///////////////////////////////////////////////////////////////////////
// Controle PI de Corrente
///////////////////////////////////////////////////////////////////////
//Controlador 1
PI_Corrente1.param.Kp = kpi;
PI_Corrente1.param.Ki = kii;
PI_Corrente1.param.Umax = 73.1325;
PI_Corrente1.param.Umin = -73.1325;
PI_Corrente1.term.Ref = ref1;
PI_Corrente1.term.Fbk = corrente1f; //sinal 5
//Controlador 2
PI_Corrente2.param.Kp = kpi;
PI_Corrente2.param.Ki = kii;
PI_Corrente2.param.Umax = 73.1325;
PI_Corrente2.param.Umin = -73.1325;
PI_Corrente2.term.Ref = ref2;
PI_Corrente2.term.Fbk = corrente2f; //sinal 6
//Controlador 3
PI_Corrente3.param.Kp = kpi;
PI_Corrente3.param.Ki = kii;
PI_Corrente3.param.Umax = 73.1325;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 117
PI_Corrente3.param.Umin = -73.1325;
PI_Corrente3.term.Ref = ref3;
PI_Corrente3.term.Fbk = corrente3f; //sinal 1
//Controlador 4
PI_Corrente4.param.Kp = kpi;
PI_Corrente4.param.Ki = kii;
PI_Corrente4.param.Umax = 73.1325;
PI_Corrente4.param.Umin = -73.1325;
PI_Corrente4.term.Ref = ref4;
PI_Corrente4.term.Fbk = corrente4f; //sinal 2
//Controlador 5
PI_Corrente5.param.Kp = kpi;
PI_Corrente5.param.Ki = kii;
PI_Corrente5.param.Umax = 73.1325;
PI_Corrente5.param.Umin = -73.1325;
PI_Corrente5.term.Ref = ref5;
PI_Corrente5.term.Fbk = corrente5f; //sinal 3
//Controlador 6
PI_Corrente6.param.Kp = kpi;
PI_Corrente6.param.Ki = kii;
PI_Corrente6.param.Umax = 73.1325;
PI_Corrente6.param.Umin = -73.1325;
PI_Corrente6.term.Ref = ref6;
PI_Corrente6.term.Fbk = corrente6f; //sinal 4
PID_FUNC(&PI_Corrente1); //Ref1
PID_FUNC(&PI_Corrente2); //Ref2
PID_FUNC(&PI_Corrente3); //Ref3
PID_FUNC(&PI_Corrente4); //Ref4
PID_FUNC(&PI_Corrente5); //Ref5
PID_FUNC(&PI_Corrente6); //Ref6
//////////////////////////////////////////////////////////////////////
// Aplica o sinal de controle nos PWMs
///////////////////////////////////////////////////////////////////////
EPwm1Regs.CMPA.half.CMPA = ((PI_Corrente1.term.Out/147.0) + (0.5)) * EPwm1Regs.TBPRD;
EPwm1Regs.CMPB = ((PI_Corrente2.term.Out/147.0) + (0.5)) * EPwm1Regs.TBPRD;
EPwm2Regs.CMPA.half.CMPA = ((PI_Corrente3.term.Out/147.0) + (0.5)) * EPwm2Regs.TBPRD;
EPwm2Regs.CMPB = ((PI_Corrente4.term.Out/147.0) + (0.5)) * EPwm2Regs.TBPRD;
EPwm3Regs.CMPA.half.CMPA = ((PI_Corrente5.term.Out/147.0) + (0.5)) * EPwm3Regs.TBPRD;
EPwm3Regs.CMPB =((PI_Corrente6.term.Out/147.0) + (0.5)) * EPwm3Regs.TBPRD;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 118
if((mvel_rds >=0 ) && (fim_flag_matlab == 0)) flag_matlab = 1;
if(flag_matlab)
//ativa_com_matlab
// if(tempo > tf)
// //inicio temporizador
if(indexb < tam_index)
/*
if(flag_ativa_velocidade == 1)
if(indexb <= 500)
Wmref = VAR1;
if((indexb >= 500) && (indexb<1500))
Wmref = VAR2;
if((indexb >= 1500) && (indexb<2500))
Wmref = VAR3;
if((indexb >= 2500) && (indexb < 3500))
Wmref = VAR4;
if(indexb >= 3500)
Wmref = VAR5;
*/
if(flag_ativa_velocidade == 1)
if(indexb <= 1000)
ReferX = VAR1;
// ReferY = VAR2;
if(indexb >= 1000)
ReferX = VAR3;
// ReferY = VAR4;
/*
Buffer1[indexb] = errow;
Buffer2[indexb] = mvel_rds;
Buffer3[indexb] = iqRef;
Buffer4[indexb] = mPosXf;
Buffer5[indexb] = mPosYf;
*/
Buffer1[indexb] = i1ref;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 119
Buffer2[indexb] = i2ref;
Buffer3[indexb] = i3ref;
Buffer4[indexb] = mPosXf;
Buffer5[indexb] = mPosYf;
Buffer6[indexb] = mvel_rds;
Buffer7[indexb] = ua;
Buffer8[indexb] = ub;
Buffer9[indexb] = uc;
tempo = 0;
//fim_indexador
else
flag_matlab = 0;
indexb =0;
tempo = 0;
fim_flag_matlab = 1;
indexb++;
// //fim_temporizador
// else
// tempo = tempo + 1;
//fim_atv_matlab
///////////////////////////////////////////////////////////////////////
// Reinicializa a sequencia do Conversor ADC
///////////////////////////////////////////////////////////////////////
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit
GpioDataRegs.GPACLEAR.bit.GPIO13 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
void InitEPwm1()
// Setup TBCLK
EPwm1Regs.TBPRD = 7500; // Set timer period 801 TBCLKs
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
// Set Compare values
EPwm1Regs.CMPA.half.CMPA = 0; // inicializa o registradore de comparação A com zero
EPwm1Regs.CMPB = 0; // inicializa o registradore de comparação B com zero
// Setup counter mode
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Contagem up/down
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 120
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; //Clock PWM = Clock Sistema - Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
// Setup shadowing
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Usa buffer duplo
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; // Usa buffer duplo
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero - CC_CTR_PRD
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // Load on Zero - CC_CTR_PRD
// Set actions
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;
// Set SOCA trigger;
EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Enable SOC on A group (Habilita Start do Conversor ADC)
EPwm1Regs.ETSEL.bit.SOCASEL = 2; // 2 (contador = periodo ) 4 (contador = cmpa); // Select SOC from
CTR=PRD
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
void InitEPwm2()
// Setup TBCLK
EPwm2Regs.TBPRD = 7500; // Set timer period 801 TBCLKs
EPwm2Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm2Regs.TBCTR = 0x0000; // Clear counter
// Set Compare values
EPwm2Regs.CMPA.half.CMPA = 0; // inicializa o registradore de comparação A com zero
EPwm2Regs.CMPB = 0; // inicializa o registradore de comparação B com zero
// Setup counter mode
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Contagem up/down
EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;
// Setup shadowing
EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Usa buffer duplo
EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero
EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; // Load on Zero
EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // Load on Zero - CC_CTR_PRD
// Set actions
EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//AQ_CLEAR;// When TBCTR is incrementing and TBCTR=CMPA set
EPWM1A low
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 121
EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;//AQ_SET; // When TBCTR is in decrementing and TBCTR=CMPA set
EPWM1A high
EPwm2Regs.AQCTLB.bit.CBU = AQ_SET;//AQ_CLEAR; // Set PWM3B on event B, up count
EPwm2Regs.AQCTLB.bit.CBD = AQ_CLEAR;//AQ_SET; // Clear PWM3B on event B, down count
void InitEPwm3(void)
// Setup TBCLK
EPwm3Regs.TBPRD = 7500; // Set timer period 801 TBCLKs
EPwm3Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm3Regs.TBCTR = 0x0000; // Clear counter
// Set Compare values
EPwm3Regs.CMPA.half.CMPA = 0; // inicializa o registradore de comparação A com zero
EPwm3Regs.CMPB = 0; // inicializa o registradore de comparação B com zero
// Setup counter mode
EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Contagem up/down
EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;
// Setup shadowing
EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Usa buffer duplo
EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero - CC_CTR_PRD
EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; // Load on Zero
EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // Load on Zero - CC_CTR_PRD
// Set actions
EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;// When TBCTR is incrementing and TBCTR=CMPA set EPWM1A low
EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;// When TBCTR is in decrementing and TBCTR=CMPA set EPWM1A high
EPwm3Regs.AQCTLB.bit.CBU = AQ_SET;//AQ_CLEAR; // Set PWM3B on event B, up count
EPwm3Regs.AQCTLB.bit.CBD = AQ_CLEAR;//AQ_SET; // Clear PWM3B on event B, down count
void ConfigCAD(void)
// 1. Define a janela de tempo
AdcRegs.ADCTRL1.bit.ACQ_PS = 10 // Defini um numero 0 - 15, sendo 0 para um ciclo
//2. Numero de canais a ser convertido
// AdcRegs.ADCMAXCONV.all = 0x0007; //Caso for utilizar para ler 16 variaveis via ADC
AdcRegs.ADCMAXCONV.all = 0x0004; // Por que esta lendo via ADC 8 variaveis [0, 1 , 2 e 3]
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; //Simultaneous sampling mode, default =0 modo sequencial
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 122
//3. E Quais Canais selecionados a serem convertidos
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup conv from ADCINA0 & ADCINB0
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // Setup conv from ADCINA1
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2; // Setup conv from ADCINA2
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3; // Setup conv from ADCINA3
//4. Quem vai start a conversão - PWM
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; // Enable SOCA from ePWM to start SEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable SEQ1 interrupt (every EOS)
//5. Conversor AD trabalhando a 75 Mhz
AdcRegs.ADCTRL1.bit.CPS = 0;
AdcRegs.ADCTRL3.bit.ADCCLKPS = 1; //Dividindo a freq/2
void ConfigGPIO(void)
// Configura GPIO
EALLOW;
// Configura os pinos GPIO28 e GPIO29 como SCI-A
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // SCITXDA
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // SCIRXDA
// Configura o pino GPIO13 como um saída
GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 0; //Configura como o pino como digital
GpioCtrlRegs.GPADIR.bit.GPIO13 = 1; //Configura como entrada (bit 0) e saida (bit 1)
EDIS;
void InitECapture()
ECap1Regs.ECEINT.all = 0x0000; // Disable all capture interrupts11
ECap1Regs.ECCLR.all = 0xFFFF; // Clear all CAP interrupt flags
ECap1Regs.ECCTL1.bit.CAPLDEN = 0; // Disable CAP1-CAP4 register loads
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0; // Make sure the counter is stopped
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 1; // One-shot
ECap1Regs.ECCTL2.bit.STOP_WRAP = 0; // Stop at 1 events
ECap1Regs.ECCTL1.bit.CAP1POL = 0; // borda de subida
ECap1Regs.ECCTL1.bit.CTRRST1 = 1; // Difference operation
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0; // Pass through
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Start Counter
ECap1Regs.ECCTL2.bit.REARM = 1; // arm one-shot
ECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable CAP1-CAP4 register loads
ECap1Regs.ECEINT.bit.CEVT1 = 1; // 1 events = interrupt
void init_zone7(void)
// Make sure the XINTF clock is enabled
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 123
// Configure the GPIO for XINTF with a 16-bit data bus
// This function is in DSP2833x_Xintf.c
InitXintf16Gpio();
EALLOW;
// All Zones---------------------------------
// Timing for all zones based on XTIMCLK = SYSCLKOUT
XintfRegs.XINTCNF2.bit.XTIMCLK = 0;
// Buffer up to 3 writes
XintfRegs.XINTCNF2.bit.WRBUFF = 3;
// XCLKOUT is enabled
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
// XCLKOUT = XTIMCLK
XintfRegs.XINTCNF2.bit.CLKMODE = 0;
// Zone 7------------------------------------
// When using ready, ACTIVE must be 1 or greater
// Lead must always be 1 or greater
// Zone write timing
XintfRegs.XTIMING7.bit.XWRLEAD = 1;
XintfRegs.XTIMING7.bit.XWRACTIVE = 2;
XintfRegs.XTIMING7.bit.XWRTRAIL = 1;
// Zone read timing
XintfRegs.XTIMING7.bit.XRDLEAD = 1;
XintfRegs.XTIMING7.bit.XRDACTIVE = 3;
XintfRegs.XTIMING7.bit.XRDTRAIL = 0;
XintfRegs.XTIMING7.bit.X2TIMING = 0;
// Zone will not sample XREADY signal
XintfRegs.XTIMING7.bit.USEREADY = 0;
XintfRegs.XTIMING7.bit.READYMODE = 0;
// 1,1 = x16 data bus
// 0,1 = x32 data bus
// other values are reserved
XintfRegs.XTIMING7.bit.XSIZE = 3;
EDIS;
//Force a pipeline flush to ensure that the write to
//the last register configured occurs before returning.
asm(" RPT #7 || NOP");
void InitXintf16Gpio()
EALLOW;
GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 3; // XD15
GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 3; // XD14
GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 3; // XD13
GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 3; // XD12
GpioCtrlRegs.GPCMUX1.bit.GPIO68 = 3; // XD11
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 124
GpioCtrlRegs.GPCMUX1.bit.GPIO69 = 3; // XD10
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 3; // XD19
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 3; // XD8
GpioCtrlRegs.GPCMUX1.bit.GPIO72 = 3; // XD7
GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3; // XD6
GpioCtrlRegs.GPCMUX1.bit.GPIO74 = 3; // XD5
GpioCtrlRegs.GPCMUX1.bit.GPIO75 = 3; // XD4
GpioCtrlRegs.GPCMUX1.bit.GPIO76 = 3; // XD3
GpioCtrlRegs.GPCMUX1.bit.GPIO77 = 3; // XD2
GpioCtrlRegs.GPCMUX1.bit.GPIO78 = 3; // XD1
GpioCtrlRegs.GPCMUX1.bit.GPIO79 = 3; // XD0
GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 3; // XA0/XWE1n
GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 3; // XA1
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3; // XA2
GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 3; // XA3
GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 3; // XA4
GpioCtrlRegs.GPBMUX1.bit.GPIO45 = 3; // XA5
GpioCtrlRegs.GPBMUX1.bit.GPIO46 = 3; // XA6
GpioCtrlRegs.GPBMUX1.bit.GPIO47 = 3; // XA7
GpioCtrlRegs.GPCMUX2.bit.GPIO80 = 3; // XA8
GpioCtrlRegs.GPCMUX2.bit.GPIO81 = 3; // XA9
GpioCtrlRegs.GPCMUX2.bit.GPIO82 = 3; // XA10
GpioCtrlRegs.GPCMUX2.bit.GPIO83 = 3; // XA11
GpioCtrlRegs.GPCMUX2.bit.GPIO84 = 3; // XA12
GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 3; // XA13
GpioCtrlRegs.GPCMUX2.bit.GPIO86 = 3; // XA14
GpioCtrlRegs.GPCMUX2.bit.GPIO87 = 3; // XA15
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3; // XA16
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3; // XA17
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3; // XA18
// GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // XA19
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3; // XREADY
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 3; // XRNW
GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 3; // XWE0
// GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3; // XZCS0
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3; // XZCS7
// GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // XZCS6
EDIS;
void PID_init(PID_CONTROLLER *v)
v->term.Ref=0;
v->term.Fbk=0;
v->term.Out=0;
// v->term.c1=0;
// v->term.c2=0;
APÊNDICE B: PROGRAMA PARA O CONTROLE DE CORRENTE 125
// v->param.Kr = (1.0);
v->param.Kp = (1.0);
v->param.Ki = (0.0);
// v->param.Kd = (0.0);
v->param.Km = (1.0);
v->param.Umax = (1.0);
v->param.Umin = (-1.0);
v->data.up = (0.0);
v->data.ui = (0.0);
// v->data.ud = (0.0);
v->data.v1 = (0.0);
v->data.i1 = (0.0);
// v->data.d1 = (0.0);
// v->data.d2 = (0.0);
v->data.w1 = (1.0);
void PID_FUNC(PID_CONTROLLER *v)
/* proportional term */
// v->data.up = (v->param.Kr* v->term.Ref) - v->term.Fbk;
v->data.up = (v->term.Ref) - v->term.Fbk;
/* integral term */
v->data.ui = (v->param.Ki* (v->data.w1* (v->term.Ref - v->term.Fbk))) + v->data.i1;
v->data.i1 = v->data.ui;
/* derivative term */
// v->data.d2 = (v->param.Kd* (v->term.c1* ((v->term.Ref* v->param.Km) - v->term.Fbk))) - v->data.d2;
// v->data.ud = v->data.d2 + v->data.d1;
// v->data.d1 = (v->data.ud* v->term.c2);
/* control output */
// v->data.v1 = (v->param.Kp* (v->data.up + v->data.ui + v->data.ud));
v->data.v1 = (v->param.Kp* (v->data.up + v->data.ui));
v->term.Out= __fmax((__fmin(v->param.Umax,v->data.v1)),v->param.Umin);
v->data.w1 = (v->term.Out == v->data.v1) ? (1.0) : (0.0);
//**************************************************************************
126
APÊNDICE C: IMPLEMENTAÇÃO DA REDE NEURAL PARA O CONTROLE DE VELOCIDADE
Esse apêndice apresenta as matrizes de pesos da Rede Neural e a rotina
para o controle neural.
C.1 – PESOS AJUSTADOS APÓS O TREINAMENTO
Após o treinamento das redes neurais no ambiente MATLAB® foram
obtidos os pelos listados a seguir:
𝑤1[10][2] =
[ 0.90428 0.081054 −1.0029 0.16907 0.34601 0.358910.33845 0.37759
0.99273 −0.240730.66315 −0.126631.0054 0.38373
−4.9901 0.352810.63528 −0.07112−0.25267 0.47402]
𝑤2[10] = [ 0.0018977 −0.0093423 0.0072015 0.0067842 − 0.0043975 0.016162
0.00070012 −0.002592 0.016067 0.10709]
𝑏1[10] = [ −17.2418 −27.5998 −69.453 −69.2379 44.0822 23.0618 − 70.4748
−52.1045 14.4631 − 72.4192]
𝑏2[1] = [ 0.39722]
Na seção seguinte, está apresentada a listagem da rotina para o cálculo
do perceptron.
B.2 – LISTAGE DO CÓDIGO
1. Declaração das variáves
float w1[10][2] = 0.90428, 0.081054,
APÊNDICE C: IMPLEMENTAÇÃO DA REDE NEURAL PARA O CONTROLE DE VELOCIDADE 127
-1.0029, 0.16907,
0.34601, 0.35891,
0.33845, 0.37759,
0.99273, -0.24073,
0.66315, -0.12663,
1.0054, 0.38373,
-4.9901, 0.35281,
0.63528, -0.07112,
-0.25267, 0.47402;
float w2[10] = 0.0018977, -0.0093423, 0.0072015, 0.0067842, -0.0043975,
0.016162, 0.00070012, -0.002592, 0.016067, 0.10709;
float b1[10]=-17.2418, -27.5998, -69.453, -69.2379, 44.0822, 23.0618, -70.4748,
-52.1045, 14.4631, -72.4192;
float b2=0.39722;
float y1[10] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0;
float y2 = 0.0;
2. Rotina para a implementação do perceptron
y1[0] = 0;
y1[1] = 0;
y1[2] = 0;
y1[3] = 0;
y1[4] = 0;
y1[5] = 0;
y1[6] = 0;
y1[7] = 0;
y1[8] = 0;
y1[9] = 0;
APÊNDICE C: IMPLEMENTAÇÃO DA REDE NEURAL PARA O CONTROLE DE VELOCIDADE 128
y2 = 0;
Xrna[0] = errow;
Xrna[1] = mvel_rds;
for (ik = 0; ik < 10; ik++)
for (jk = 0; jk < 2; jk++)
y1[ik] += Xrna[jk] * w1[ik][jk];
y1[ik] = y1[ik]+ b1[ik];
y1[ik] = 2/(1+exp(-2 * y1[ik]))-1;
for (ik = 0; ik < 10; ik++)
y2 = y2 + y1[ik] * w2[ik];
y2 =y2 + b2;
129
REFERÊNCIAS BIBLIOGRÁFICAS
ALMEIDA, P. et. al. Rotor flux angle estimation using neural networks. Electrimacs'99, Lisboa, v. 1, p.157-162, 1999. ANDRADE, L. R. S., Estudo sobre controladores de corrente implementados digitalmente. 2009. Monografia (Graduação) - Departamento de Engenharia Elétrica da Escola Politécnica, Universidade Federal do Rio de Janeiro, RJ, 2009. BA-RAZZOUK, A. et al. Field-oriented control of induction motors using neural-network decouplers. IEEE Transactions on Power Electronics, v.12, n.4, p. 752-7634, jul. 1997. BARBI, I. Teoria fundamental do motor de indução. Florianópolis: Ed. UFSC, 1985. BLASCHKE, F. A new method for the structural decoupling of A.C. induction machines. In: Conf. Rec. IFAC,1971, Duesseldorf, Germany. Anais… Duesseldorf, Germany, 1971. BURO, N.G. Magnetic bearings and non-stationary dynamics of rotors. In.: Forth International Symposium on Magnectic Bearings, 1994, ETH Zurich. Anais… ETH Zurich, 1994. BU, W.; LI, Z.; WANG, X. ; LI ,X. A control method of bearingless induction motor based on neural network: Information and Automation, 2015. IEEE International Conference on, Lijiang, 2015, pp. 2252-2257. C28x Solar Library: module user's guide. Dallas, Texas: Texas Instruments, 2014. v.12. CASTRO, F. E. F. de. Motor de indução trifásico sem mancais com bobinado dividido: otimização do sistema de posicionamento radial. 2004. Dissertação (Mestrado em Automação e Sistemas; Engenharia de Computação; Telecomunicações) - Universidade Federal do Rio Grande do Norte, Natal, RN, 2004. DEPARI, A. et. al. Application of an ANFIS algorithm to sensor data processing. IEEE Transactions on Instrumentation and Measurement, v. 56, n.1, p.75-79. fev.2007. DING, W., LINAG, D. Modeling of a 6/4 switched relictance motor using adaptive neural fuzzy inference system. IEEE Transactions on Magnetics. v. 44, n.7, p. 1796-1804, jul.2008.
130
eZdsp F28335 Technical reference. Stafford, TX: Spectrum Digital Inc., 2007.
FERNANDES, R. G.; LISBOA, S. N. D.. Controle PID e controle neural
aplicados à planta ball and beam. 2004. Monografia. (Graduação em Engenharia de Computação) - Universidade Federal do Rio Grande do Norte, Natal, RN, 2004. FERREIRA, J. M. de S. Modelagem de máquina de indução trifásica sem mancais com bobinado. 2006. Tese (Doutorado) – Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2006. FERREIRA, J. M. S., Proposta de máquina de indução trifásica sem mancal com bobinado dividido. 2002. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2002. FONSECA, C. A. G. Estrutura ANFIS modificada para identificação e controle de plantas com ampla faixa de operação e não linearidade acentuada. 2012. Tese (Doutorado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2012. GOMES, L. C., Acionamento vetorial de motores de indução trifásicos com enfraquecimento de campo e maximização do conjugado por ampère. 2008. Tese (Doutorado) – Programa de Pós-Graduação em Engenharia Elétrica, Universidade Federal de Uberlândia. Uberlândia, 2008. GOMES, R. R., Motor mancal com controle implementado em um dsp. 2007. Dissertação (Mestrado) – Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2007. GONZALEZ CASTELLANOS, J. A. Estimação de velocidade do motor com controle vetorial sem sensor, utilizando filtro estendido de Kalman com estimação da covariância dos ruídos. 2004. Tese (Doutorado) – Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2004. HAYKIN, S. Neural networks: a comprehensive foundation. Patparganj, India: Pearson Prentice Hall, 1994. HINES ,J. W.; TSOUKALAS, L. H.; UHRIG, R. E. MATLAB supplement to fuzzy and neural approaches in engineering. New York, USA: John Wiley & Sons, Inc., 1997. JANG, J.-S. R. ANFIS: adaptive-network-based fuzzy inference systems, IEEE Transactions on Systems, Man, and Cybernetics. v. 23, n. 3, p. 665-685, maio, 1993.
131
JANG, J.-S.; SUN, C.-T.; MIZUTANI, E. Neuro-fuzzy and soft computing. New Jersey, EUA: Prentice Hall, 1997. JANG, J.-S.; SUN, C.-T. Neuro-fuzzy modeling and control. Proceedings of the IEEE, v. 83, n. 3, p. 378-406, mar. 1995. JIANG, Y. H., ZMOOD, R. B., AND QIN, L. J. Neural Networks control of magnetic bearings for low speed rotor systems, Fifth International Symposium on Magnetic Bearings, Kanazawa, Japan, August, 1996. LANDIM, R. P. Estimação de estados do motor de indução utilizando rede neuro-fuzzy com aprendizagem em tempo real. 2000. Tese (Doutorado) – Programa de Pós-Graduação em Engenharia Elétrica, Universidade federal de Minas Gerais, Minas Gerais, 2000. LEONHARD, W., Control of electrical drives. New York: Springer, 2001. LIMA, F. Estimador neuro-fuzzy de velocidade aplicado ao controle vetorial sem sensores de motores de indução trifásicos. 2010. Tese (Doutorado) - Escola Politécnica da Universidade de São Paulo, São Paulo, 2010. LOPES, J. S. B. et al., Approach the Rotor Flux Estimation of a Bearingless Motor using a Structure Adaptive Hybrid Neuro-Fuzzy, The 19th World Congress of the International Federation of Automatic Control - IFAC, Cape Town, South Africa - 24-29 August, 2014. LINO, R. V. Implementação digital do controle indireto por orientação do fluxo de rotor para o motor de indução utilizando abordagens neuro-fuzzy. 1997. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica Universidade Estadual de Campinas, Campinas/SP. 1997. NAUCK, D.; KLAWON, F.; KRUSE, R. Foundations of neuro-fuzzy systems. New York, USA: J. Wiley & Sons, 1997. NEGNEVITSKY, M. Artificial intelligence: a guide to inteligent system. 2. ed. New York, EUA: Addison-Wesley Longman, Incorporated, 2002. NORGAARD, M. et al. Neural networks for modelling and control of dynamic systems. London, England: Springer, 2003. OZER, B.; AKIN, E. Artificial neural network based speed estimator for vector controlled induction motor. ELECO 2001. Disponível em: < http://www.emo.org.tr/ekler/97d404b6119214e_ek.pdf>. Acesso em: 23 set. 2013. PAIVA, J. Á. Controle vetorial de velocidade de uma máquina de indução sem mancais trifásica com bobinado dividido utilizando estimação neural de fluxo. 2007. Tese (Doutorado) - Programa de Pós-Graduação em
132
Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2007. PAIVA DE; J. A., et. al., Performance improvement of a Split winding bearingless induction machine based on a neural network flux observer, 11th International Symposium on Magnetic Bearings, August 26-29, Nara, Japan, 2008. QUEIROZ, F. C. H. Controle vetorial de velocidade de um motor de indução trifásico com estimação neural de fluxo. 2008. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2008. RODRIGUES, M. C., Técnicas inteligentes híbridas para o controle de sistemas não-lineares. 2006. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2006. SANTOS , T. H. DOS, et. al., Estimador neural da velocidade do mit acionado por um driver com controle vetorial orientado pelo fluxo do estator, XII Simpósio Brasileiro de Automação Inteligente (SBAI), Natal – RN, 25 a 28 de outubro de 2015. SALAZAR, A. O., STEPHAN, R. M., A bearingless method for induction machine. IEEE Transations On Magnetics, v. 29, n. 6, p. 2965-2967, nov. 1993. SANDRI S.; C. CORREA. Lógica nebulosa. In: Escola de Redes Neurais, 5., 1999, São José dos Campos, SP. Anais... São José dos Campos: INPE, ITA, São José dos Campos, 1999. SANTISTEBAN, J.A.; Estudo da Influencia da Carga Torsional sobre o Posicionamento Radial de um Motor-Mancal, Tese (Doutorado) - Programa de Engenharia Elétrica, Universidade Federal do Rio de Janeiro, RJ, 1999. SANTISTEBAN, J.A.; STEPHAN, R.M., Vector control methods for induction machines: an overview, IEEE Transactions on Education, v.44, n.2, p.170-175, 2001. SILVA NETO, L. F.; Sistema eletro-resistivo baseado em DSP para escoamentos gás-líquido. 2015. Monografia (Graduação) – Escola Politécnica, Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2015. SILVA, P. V. Regulador Eletromagnético de Frequência aplicado no controle de velocidade de geradores eólicos. 2015. Tese (Doutorado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2015.
133
SIMONE, G. A. Máquinas de indução trifásicas: teoria e exercícios. São Paulo: Editora Érica, 2008. SOARES, A. M. Implementação digital de redes neurais artificiais para o controle de motor de indução. 2006. Dissertação (Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica, Campo Grande, Universidade Federal de Mato Grosso do Sul, 2006. SOUZA FILHO, J. C. et al. Sensores e Interfaces com Aplicações em Motor Mancal. In: IEEE/IAS International Conference on Industry Applications, 10, INDUSCON. , 2012, Fortaleza. Anais… Fortaleza, 2012. SOUZA FILHO, J. C. de. Sensores e interfaces com aplicações em motor mancal. 2011. (Dissertação de Mestrado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2011. SPRU812A, TMS320x2833x, 2823x Analog-to-Digital Converter (ADC) Module: reference guide. Dallas, Texas: Texas Instruments, 2007. SPRUFG4A, MS320C28xx, 28xxxDSP Peripheral Reference Guide–August 2008–Revised June 2009. TMS320x2833x, 2823x Enhanced Pulse Width Modulator (ePWM) Module: reference guide. Dallas, Texas: Texas Instruments, 2009. VASUDEVN, M., ARUMUGAM, R., PARAMASIVAM, S., Adaptive neuro-fuzzy inference system modeling of an induction motor. In: International Conference on Power Electronics and Drive Systems, 5, Singapore. 2003. Anais… Singapore, 2003. VICTOR, V. F. et al. Analysis and study of a bearingless ac motor type divided winding, based on a conventional squirrel cage induction motor. IEEE Transactions on Magnetics, v. 48, p. 3571-3574, 2012. VICTOR, V. F. Viabilidade da utilização de máquinas de Indução convencionais como motores sem Mancais mecânicos. 2012. Tese (Doutorado) - Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Universidade Federal do Rio Grande do Norte, Natal, RN, 2012. VIEIRA, J.; DIAS, F. M.; MOTA, A. Neuro-fuzzy systems: a survey. In: WSEAS NNA International Conference on Neural Networks and Applications, 5., 2004, Udine, Italia. Anais… Udine, Itália: [s.n.], 2004. ZADEH, L. A. Fuzzy Sets. Information and Control, v. 8, n.3, p. 338-353, jun. 1965. ZHI-XIANG ,H.; HE-QING , L., Nonlinear system identification based on adaptive neural fuzzy inference system. In: International Conference on