Seleção On-line de Controlador com RNA
Seleção On-line de Controlador com RNA
ESCOLA DE ENGENHARIA
TRABALHO DE CONCLUSÃO EM ENGENHARIA DE CONTROLE
E AUTOMAÇÃO
E st raté g i a b a s e a d a e m Re d e s
N e u ra i s A r t i f i c i a i s p a ra a
seleção on-line de
c o nt ro l a d o r
Sumário
Sumário ii
Agradecimentos iv
Resumo v
Lista de Figuras vi
Lista de Tabelas vii
Lista de Símbolos viii
Lista de Abreviaturas e Siglas ix
1 Introdução 1
1.1 Objetivos do presente trabalho 1
1.2 Estrutura do Trabalho 2
2 Revisão Bibliográfica 3
2.1 Redes Neurais Artificiais 3
2.1.1 Treinamento de uma RNA 5
2.1.2 Configurações de RNAs 6
2.2 Redes Neurais Artificiais e Controle por seleção de controlador 7
2.3 Critérios de desempenho de sistemas de controle 8
3 Metodologia 10
3.1 Descrição 10
3.1.1 Obtenção dos dados para o treinamento 10
3.1.2 Treinamento da rede neural 11
3.1.3 Aplicação da RNA na malha de controle 11
3.2 Estudo de caso: tanque esférico 12
3.2.1 Projeto dos controladores 13
3.2.2 Aquisição de dados para o treinamento 15
3.2.3 Avaliação dos dados adquiridos 16
3.2.4 Treinamento da rede para o estudo de caso 17
3.2.5 Estrutura de simulação 18
4 Resultados 19
4.1 Resultados dos treinamentos das RNA 19
4.2 Variações na etapa de treinamento 20
4.2.1 Variação do número de neurônios 20
4.2.2 Variação da função de treinamento 21
4.2.3 Demais variações possíveis 21
4.3 Alteração dos parâmetros em malha fechada 22
4.3.1 Primeira simulação 22
4.3.2 Segunda simulação 23
4.3.3 Terceira e quarta simulações 24
4.3.4 Simulações de 5 a 8 25
4.3.5 Perturbação no sistema 25
5 Conclusões e Trabalhos Futuros 27
DEQUI / UFRGS – Aline Thaís Käfer iii
5.1 Conclusões 27
5.1 Trabalhos futuros 27
6 Referências 28
Apêndices 29
Apêndice A: Modelo linearizado 29
A.1- Linearização do modelo 29
A.2 - Função de transferência 30
Apêndice B: gráficos das simulações 31
Apêndice C: Códigos em Matlab® 35
C.1 - Código para aquisição de dados para o treinamento da rede 35
C.2 - Código para treinamento da rede neural 37
C.3 - Código para cálculo das condições iniciais 38
C.4- Código para a função de interpretação das saídas da RNA 39
C.5 - Código do modelo do tanque esférico 41
Apêndice D: Esquemas de simulação em Simulink® 42
D.1 - Esquema de simulação com perturbação e ruído branco 42
D.2 - Resultado da função gensim() 42
Anexos 43
Anexo A: Código da função fcor() 43
Anexo B: Código da função de simulação do tanque esférico 44
iv Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
Agradecimentos
Agradeço de coração a todos os professores que fizeram parte deste trabalho, direta
e indiretamente; a todos os meus colegas e amigos pelo companheirismo, partilha de
aprendizado e companhia; e por fim a minha família e namorado, pela motivação e
suporte necessários durante toda a caminhada. Um agradecimento especial ao professor
Pedro Fernandes, por me dar sempre a direção certa a seguir durante o desenvolvimento
deste trabalho.
DEQUI / UFRGS – Aline Thaís Käfer v
Resumo
Neste trabalho foi implementado um método para seleção em tempo real do
controlador mais adequado, dentro de um conjunto de controladores pré-definidos, para
o controle de um processo sujeito a distúrbios não medidos e variações de
comportamento em função do ponto de operação. A estrutura responsável pela seleção
do controlador é uma Rede Neural Artificial (RNA) que é treinada de modo a selecionar o
controlador de melhor desempenho com base em dados de simulação ou de um período
de operação simulado. Com isto, pretende-se que a estratégia proposta seja simples e
robusta para o controle de processos nos quais um controlador com sintonia fixa não
apresenta um desempenho adequado. Objetivando verificar o funcionamento da
proposta, foi considerado o modelo de um tanque esférico, um sistema não linear, sujeito
a uma perturbação não medida na entrada. O ajuste da rede foi feito a partir de
simulações do modelo do tanque em malha fechada, considerando-se diferentes
controladores de nível do tipo PID sintonizados para diferentes pontos de operação. Uma
nota, consistindo da combinação de diversos critérios de desempenho, foi atribuída para
o desempenho de cada sistema, e empregada para treinar a rede. Depois de treinada, a
rede tem como entradas o valor atual da saída e o valor de referência e, como saída, o
melhor controlador para o cenário de operação. Diversos parâmetros podem ser variados
em cada etapa, possibilitando a escolha da melhor configuração para que o controle final
seja eficiente. A simulação da operação do sistema, consistindo do conjunto de
controladores e do bloco de seleção baseado na rede neural, apresentou bons resultados
tanto para a função servo quanto para a função regulatória.
Abstract
Lista de Figuras
Figura 2.1 – Estrutura de um neurônio artificial. (adaptada de Hunt, 1992)........................ 3
Figura 2.2 – Configuração de RNAs. ...................................................................................... 4
Figura 2.3 – Demonstração dos critérios de desempenho (retirada de Ogata,1997). ......... 9
Figura 3.1 – Esquema de simulação com o selecionador neural. ....................................... 12
Figura 3.2 – Representação do tanque esférico.................................................................. 13
Figura 3.3 – Lugar das raízes para polo e zero próximos, mas diferentes. ......................... 14
Figura 3.4 – Estrutura de simulação para aquisição dos dados. ......................................... 15
Figura 3.5 – Simulação em malha fechada com perturbações e ruído branco. .................. 16
Figura 3.6 – Simulação do processo com o selecionador de controlador em malha
fechada. ............................................................................................................................... 18
Figura 4.1 – Interface gráfica que descreve as características de treinamento. ................ 19
Figura 4.2 – Parâmetros do treinamento com trainbr. ....................................................... 21
Figura 4.3 – Parâmetros do treinamento com trainscg. ..................................................... 21
Figura 4.4 – Erro quadrático médio para um treinamento com 200 validações. ............... 22
Figura 4.5 – Saída dos sistemas com referência em 7,5 cm. ............................................... 23
Figura 4.6 – Saída dos sistemas com referência em 20 cm. ................................................ 23
Figura 4.7 – Saída dos sistemas com referência em 7,5 cm. ............................................... 24
Figura 4.8 – Saída dos sistemas com referência em 20 cm. ................................................ 24
Figura 4.9 - Saída dos sistemas com referência em 20 cm.................................................. 25
Figura 4.10 – Saída da RNA, mostrando a alternância entre controladores. ...................... 25
Figura 4.11 – Resposta à perturbação para a configuração da simulação 3, referência em
20 cm. .................................................................................................................................. 26
DEQUI / UFRGS – Aline Thaís Käfer vii
Lista de Tabelas
Tabela 2.1 – Lista das funções de ativação mais usadas em redes neurais artificiais. ......... 4
Tabela 2.2 – Funções de treinamento de redes neurais. ...................................................... 5
Tabela 2.3 – Parâmetros de treinamento de uma rede neural no Matlab®. ........................ 6
Tabela 3.1 - Valores de e para os pontos de operação escolhidos. .......................... 15
Tabela 4.1 – Experimentos variando o número de neurônios da camada oculta. ............. 20
viii Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
Lista de Símbolos
Ki – constante integral do controlador PID
Kp – constante proporcional do controlador PID
Kd – constante derivativa do controlador PID
uk – entradas de uma RNA
yj– saídas de uma RNA
aij – pesos da saída j de uma RNA, no neurônio i
A – matriz contendo os pesos das saídas de uma RNA
bik - pesos daentrada k de uma RNA, no neurônio i
B – matriz contendo os pesos das entradas de uma RNA
wi – peso do bias de uma rede RNA, no neurônio i
w – vetor contendo os valores de biasde todos os neurônios de uma RNA
vi – somatório das entradas e saídas ponderadas, e do bias de uma RNA, no neurônio i
xi – saídas da fase de dinâmica linear de uma RNA, no neurônio i
H(s) – dinâmica linear em uma RNA
g(x(t)) – função de transferência de uma RNA
α e µ- taxa de aprendizagem de uma RNA
M - massa no tanque esférico, em kg
Fout - vazão de saída do tanque esférico, em cm³/s
Fin - vazão de entrada do tanque esférico, em cm³/s
CD - coeficiente de descarga da válvula
A0 - área inicial da abertura da válvula, em cm²
- densidade do líquido, em kg/cm³
D o diâmetro da esfera, em cm
g - aceleração da gravidade, em cm/s²
h - nível no tanque, em cm
µ - escalar utilizado no método deLevenberg-Marquardt
– erro em regime permanente
tr - instante em que a curva cruza o valor de referência
td–tempo de subida (50% da amplitude)
ts- tempo de acomodação
– sobrepasso absoluto
M% - sobrepasso porcentual
tu – tempo de subida (dos 10% aos 90% da amplitude)
DEQUI / UFRGS – Aline Thaís Käfer ix
FCOR – FilteringandCorrelationAlgorithm
DEQUI / UFRGS – Aline Thaís Käfer 1
1 Introdução
O controle de sistemas não lineares é uma área de conhecimento que tem estimulado
várias pesquisas, com a criação e o desenvolvimento de diferentes métodos. Alguns
destes têm como estratégia empregar uma variável interna que represente as variações
do processo, se adaptando a cada instante ao sistema, tais como os conhecidos
GainSchedulinge Controle Adaptativo. Uma família de métodos do tipo
GainSchedulingpropõe o uso de um ou mais controladores lineares ao mesmo tempo ou
agindo em pontos diferentes, como forma de manter a simplicidade inerente a este tipo
de controladores. Dentre estas estratégias, pode-se citar o método dos Múltiplos
Modelos Lineares, no qual se combinam as saídas de controladores lineares ajustados
para cada ponto de operação do sistema, e também o método da seleção de
controladores, que avalia em cada ponto qual o melhor controlador a ser utilizado,
dentro de certo número de controladores candidatos. Há ainda a aplicação de técnicas
oriundas do campo da informática para a resolução do problema de classificação e
aprendizagem das nãolinearidades do processo, como os Controladores Fuzzy, baseados
em regras decididas por um especialista,e o Controle por Redes Neurais Artificiais
(RNAs).Os métodos de seleção de controlador apresentamalgumas vantagens: a seleção é
feita durante a operação, considerando seus valores atuais e os controladores candidatos
podem ser, por exemplo, PIDs, controladores muito utilizados na indústria e de fácil
sintonia.
Existem vários métodos para selecionar o controlador ideal. De modo geral, estes
métodos atribuem ao sistema composto por processo e controlador um critério de
desempenho, e a cada instante determinam qual controlador melhor atende tal objetivo.
Dentre eles, pode-se citar o método (H-infinito), no qual o objetivo é selecionar o
controlador mais robusto dentre um conjunto de controladores. Utilizar uma rede neural
para a seleção não se distancia muito desta prática, com a diferença de que este método
é baseado em dados.
Pretende-se com este método que, a partir de dados da planta, uma rede neural
artificial seja treinada de forma a adquirir a capacidade de selecionar o melhor
controlador, entre os candidatos, para cada ponto de operação. A intensão é controlar
um processo não linear, cujo comportamento varia em função do ponto de operação,
com um melhor desempenho global do que cada um dos controladores candidatos.
2 Revisão Bibliográfica
Nesta seção são apresentadas revisões sobre os principais temas tratados neste
trabalho: Redes Neurais Artificiais (RNA), a seleção de controladores e a utilização de RNA
no controle, bem como quais os principais trabalhos apresentados em relação a estes
temas.
1 1 ( 2.1 )
= 1, = , = , =
1 +
4 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
Já a função g(x) deve ser uma função nãolinear que permita ao neurônio a
representação dos valores que ele deve aprender. Por exemplo, se forem valores
binários, a função deve ter na imagem os valores zero e 1. Para representar uma função
contínua positiva, a imagem deve estar contida entre zero e 1 (as entradas de g(x) sempre
são normalizadas para valores entre zero e 1). As funções mais usadas são descritas na
Tabela2.1:
As redes que possuem H(s) = 1 são as que não apresentam dinâmica. Assim, a função
de transferência entre V(s) e X(s) é igual a um, ou seja:
N M
xi (t ) = vi (t ) = ∑ aij y j (t ) + ∑ bik uk (t ) + wi ( 2.2 )
j =1 k =1
Assim, o valor de x(t) será a soma ponderada dos valores da entrada, dos valores da
saída edo valor de wi, o Bias. O valor da saída será a função não linear dos valores de x(t).
Considerando a soma ponderada como uma multiplicação de uma matriz de pesos por
um vetor de variáveis, pode-se escrever a equação ( 2.2 )conforme consta na equação
(2.3), onde as matrizes A e B são chamadas de matrizes de pesos sinápticos, w representa
o vetor de Bias, u(t) as entradas, e y(t) as saídas.
x(t ) = Ay (t ) + Bu (t ) + w
( 2.3 )
y (t ) = g ( x (t ))
Uma rede como a da Figura 2.2 é chamada de rede Feedforward, pois cada camada
possui conexões somente com a camada anterior, ou seja, ( = 0 . Caso ( ≠ 0, a rede se
chama recorrente.
O treinamento de uma rede segue geralmente um padrão composto por três etapas:
de aprendizado, validação e teste. Cada uma destas etapas utiliza uma parcela diferente
dos dados, para garantir que a rede realmente os caracterize. A configuração padrão da
ferramenta do Matlab® utiliza 70% dos dados para o treinamento, 15% para a validação e
15% para o teste. A distribuição dos dados para cada uma das três etapas pode seguir
uma distribuição randômica (padrão) ou ordenada. Também nesta etapa, pode haver
uma redistribuição dos dados em busca de uma melhor resposta.
uma rede pode ser supervisionada, quando os valores de saída desejados são conhecidos,
ou não supervisionada, quando desconhecidos. Em Artificial Neural Networks: a
ReviewofTrainning Tools(Baptista and Morgado-Dias, 2013), pode-se encontrar uma
extensa lista de denominações representando 52 configurações de redes e 49 diferentes
algoritmos, utilizando variações do modelo mostrado pela Figura2.1.
• Perceptron
O perceptron é uma das configurações mais antigas, em que não há dinâmica (H(s)=1),
não há realimentação (A=0) e a função de ativação é a função do tipo Treshold. Um
perceptron pode ser usado sozinho, com a capacidade de representar funções
linearmente separáveis, como o AND lógico, por exemplo, ou como perceptron de
múltiplas camadas, possuindo a capacidade de representar funções não linearmente
separáveis. Nesse caso, o treinamento é supervisionado, sendo os pesos de cada iteração
atualizados proporcionalmente ao erro da saída (backpropagation).
• Rede de Hopfield:
Aprendizado não supervisionado, não existindo camada de saída. A atualização dos
pesos é feita em relação à diferença entre os pesos e os valores da entrada. Assim, uma
rede treinada, assim que submetida a uma certa saída, irá tender aos valores de entrada
com que foi treinada. A rede também é chamada de memória associativa.
Esta otimização também pode ser feita de diferentes maneiras, utilizando diferentes
funções. Os controladores candidatos podem ser de diferentes naturezas, lineares ou
não, e os métodos podem utilizar a ação de vários controladores ao mesmo tempo, como
soma ponderada, ou de só um deles em cada ponto.
exemplo de uma rede neural utilizada como controlador. Usando duas estruturas de
controle diferentes, a performance do sistema é otimizada.
Como visto nos artigos citados acima, a seleção de controladores é uma prática
altamente aplicada na teoria de controle. Do mesmo modo, a flexibilidade dos algoritmos
neurais faz com que sejam frequentemente aplicados no controle, seja como controlador,
como selecionador, como modelo do processo, etc.
• Tempo de subida: é uma medida que serve para avaliar a velocidade de resposta
da curva. Pode ser o intervalo que a curva leva para atingir metade do valor alvo, ou o
tempo que a resposta do sistema leva dos 10% do seu valor alvo até os 90%, etc.
A Figura 2.3 mostra três dos critérios de desempenho descritos acima, em um caso de
resposta de um sistema subamortecido. Na figura, Mpé o sobrepasso absoluto,ts é o
tempo de acomodação, td é o tempo de subida. Em casos de sistemassub-amortecidos,
em que a curva sempre cruza o valor alvo, o tempo tr em que isto acontece pode ser
utilizado como tempo de subida da mesma maneira.
Além destes critérios mais básicos, existem ainda outros critérios que podem ser
aplicados, tais como os critérios estatísticos, que consideram a variabilidade da malha de
controle ao longo do tempo. Alguns destes critérios são descritos por (Kempf, 2003).
Entre eles, pode-se citar a regra FCOR (filtragem e correlação), que compara a variância
da malha de controle com um padrão de desempenho ideal (controlador de variância
mínima) para calcular um índice de desempenho absoluto.
10 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
3 Metodologia
São três os principais passos para a implementação do método de seleção de
controladores: aquisição de dados para o treinamento da rede, o treinamento em si e a
aplicação da rede no sistema em malha fechada. Neste capítulo, serão detalhados o
método e as etapas que o compõe.
3.1 Descrição
Como já comentado, este método consiste em utilizar uma RNA como selecionador de
controladores para um processo não linear. Assim, tal rede deve ser treinada de forma a
adquirir a capacidade de seleção e os dados para este treinamento devem ser obtidos a
partir da planta que se deseja controlar, podendo ser interpretados e adquiridos de
diversas maneiras.
Após a aquisição dos dados, deve-se compor um conjunto de entradas e saídas para o
treinamento da RNA. Neste método, cada conjunto de entradas corresponde a n saídas
que consistem das notas dos n controladores. Estas notas são calculadas utilizando os
critérios de desempenho adotados, ponderados e somados. A intensão é que a nota mais
alta corresponda a um controlador de melhor desempenho.
O desempenho dos controladores pode ser avaliado a partir dos critérios que se
considerem importantes: tempo de acomodação, tempo de subida, sobrepasso, etc.
Também é possível atribuir pesos diferentes aos critérios.
Em primeiro lugar, como se deseja que a rede calcule os pesos sinápticos tendo como
referência saídas determinadas, por definição, o treinamento deverá ser supervisionado,
ou seja, devem-se apresentar para o treinamento as saídas desejadas. As saídas desejadas
são as notas de cada controlador em cada simulação, obtidas pelo passo anterior.
Como as saídas são contínuas, a função de transferência deve também ser contínua.
Assim, deve ser uma das três últimas apresentadas na Tabela2.1. Podem-se fazer
diferentes simulações para determinar qual a melhor escolha. A função padrão utilizada
natoolboxdo Matlab®é a sigmoide.
• a saída da RNA deve ser interpretada, determinando qual controlador será ativo e
quais inativos;
• os controladores de menor nota devem ter seus sinais desconsiderados;
• ao ser ativado, o controlador deve ter condições iniciais que não causem oscilações no
sistema;
12 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
• deve haver um mecanismo que garanta que qualquer controlador que esteja ativo
possa efetivamente controlar o processo.
• no caso de dois controladores de nota muito próxima, o selecionador pode trocar de
controlador demasiadamente.
O dois primeiros pré-requisitos são atendidos por meio da criação de uma função do
tipo S-function, chamada de interpretano diagrama. Esta função tem como entrada o sinal
de saída da RNA e o valor do nível no tanque. Ela avalia qual controlador tem a maior
nota, multiplica o seu sinal de controle por 1 e dos outros por zero. Este mesmo sinal, que
é utilizado para selecionar um dentre os sinais de controle, reinicia todos os
controladores assim que é selecionado um controlador diferente do atuante.
Como condições iniciais dos controladores se podem usar duas opções: ou uma
realimentação do sinal de controle atuante, ou o sinal de controle correspondente ao
ponto atual do processo. No primeiro caso, tem-se um sinal de controle sempre contínuo,
pois o controlador que será ativado começará a atuar no ponto em que o outro parou. No
segundo caso, tem-se uma saída contínua, pois o sinal de controle inicial é equivalente ao
ponto em que o processo se encontra.
5 ( 3.1 )
= 789 − 7:;< ,
56
DEQUI / UFRGS – Aline Thaís Käfer 13
C 3 ( 3.3 )
= ℎE F G − ℎH ,
3 2
onde M é a massa no tanque, fout é a vazão de saída, fin a vazão de entrada, CD o
coeficiente de descarga, A0 a área inicial de descarga da válvula, a densidade do líquido,
D o diâmetro da esfera, g a aceleração da gravidade e h o nível no tanque. A Figura
3.2demonstra o esquema do tanque esférico.
∆ L =
0,0045 ( 3.5 )
∆K89 MNO,PQ + 0,0145
∆ L =
0,0025 ( 3.6 )
∆K89 MN11,EQ + 0,0046
∆ L =
0,0045 ( 3.7 )
∆K89 MN1U,PQ + 0,0065
14 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
As constantes de tempo nos três casos são respectivamente 68,96 s, 217,4 s e 153,84
s, o que resulta em tempos de acomodação de aproximadamente 275,8 s, 869,6 s e
615,36 s, para saltos unitários Como se pode notar pelos valores, se trata de um processo
de convergência relativamente lenta, já que a menor constante de tempo passa de quatro
minutos.
8 + 8 /V ( 3.8 )
= = V + = V
Y V + 8 /V ( 3.9 )
= X =
+Z
O controlador possui um zero em 8 /V e um polo em zero. O projeto dos valores de
8 e V pode ser feito pelo método do lugar das raízes. A escolha mais simples para o
valor do zero do controlador seria iguala-lo ao valor do polo do processo (Z = 8 /V ),
fazendo com que o sistema em malha fechada tivesse um comportamento de primeira
ordem.
Figura 3.3 – Lugar das raízes para polo e zero próximos, mas diferentes.
DEQUI / UFRGS – Aline Thaís Käfer 15
Por outro lado, se o módulo do zero for muito maior que o do polo, seria necessário
muito esforço de controle para estabilizar o processo. Assim, é feita a escolha do zero
para que seja possível tanto evitar oscilações quanto manter o esforço de controle em
níveis aceitáveis.
O tanque, modelado pela função S-function, possui três parâmetros de entrada. Dois
deles podem ser vistos na estrutura de simulação:a vazão de entrada, funcionando como
ação de controle, e o stepdo coeficiente de vazão da saída. Este último tem efeito sobre a
variação da vazão de saída do tanque, que será considerada como uma perturbação no
processo. O terceiro sinal, dado como parâmetro do tanque, é o seu nível inicial.
16 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
Para que seja possível calcular o critério de variância da resposta dos controladores, é
necessário realizar uma segunda simulação, aplicando perturbações e ruído branco ao
sistema, conforme apresentado na Figura 3.5.
O tempo de acomodação (6 ) é o tempo que a curva leva para estabilizar dentro de
uma margem de 2% da amplitude do salto. Já o tempo de subida, é o tempo que a curva
leva dos 10% aos 90% desta amplitude.
DEQUI / UFRGS – Aline Thaís Käfer 17
A função “interpret” analisa as saídas da rede neural e o valor do nível atual, gerando
os sinais de seleção de controladores e o sinal de condição inicial para os integradores dos
blocos PID. A seleção é efetivada de maneira que os sinais de controle dos blocos inativos
são multiplicados por zero, e do bloco ativo por 1. Cada vez que se alterna entre um bloco
inativo e um ativo, todos os blocos são “resetados”, ou seja, recomeça sua operação a
partir dos pontos iniciais.
Os blocos PID possuem as seguintes entradas: erro entre valor de nível alvo e valor
atual, sinal de reset e condição inicial para o integrador. A quarta entrada apresentada é a
condição inicial do filtro interno, que é considerada nula quando não atribuído um valor a
[Link] sinais dos blocos de PID são somados, e o sinal resultante é o sinal efetivamente
aplicado para controlar o processo. Como somente um controlador terá saída diferente
de zero, somente um atua de cada vez.
4 Resultados
Foram feitas várias simulações de forma que se encontrasse a melhor maneira de
aplicar as redes neurais como [Link] primeiras simulações são feitas como
experimentos, a fim de variar os parâmetros certos para encontrar esta melhor maneira.
Como se pode verificar na Tabela 4.1, o menor erro ocorre com 24 neurônios, assim
como um dos menores gradientes. Também é o treinamento com o maior número de
iterações, o que resulta em um maior custo computacional. No entanto, como este não é
o foco do trabalho, este número de neurônios será utilizado para os demais
experimentos.
Ao exemplo da função trainscge trainbr outras funções foram testadas, mas não
apresentaram um resultado tão satisfatório quanto a função trainlm. Por este motivo esta
é a função de treinamento padrão para uma rede do tipo Fitting, ou seja, de adequação.
Figura 4.4 – Erro quadrático médio para um treinamento com 200 validações.
Para as saídas se pode utilizar as notas de todos os critérios ou somente dos critérios
relacionados ao tempo. Já como condições iniciais dos controladores se pode utilizar o
sinal atuante no instante passado ou as condições calculadas para o nível do tanque.
Cada uma das opções apresenta vantagens e desvantagens, sendo que a escolha
entre uma delas dependerá das características que se considerarem importantes na
resposta do sistema.
Figura 4.5– Saída dos sistemas e sinal de controle com referência em 7,5 cm.
Figura 4.6– Saída dos sistemas e sinal de controle com referência em 20 cm.
4.3.4 Simulações de 5 a 8
Uma opção alternativa à utilização de todas as notas é utilizar somente as notas com
relação ao desempenho temporal do sistema. Em sistemas de nível, certo sobrepasso
pode ser tolerado em função de uma resposta mais rápida. Assim, foram feitos
treinamentos da rede utilizando as notas do tempo de acomodação e do tempo de
subida, para todas as combinações de parâmetros anteriores. As figuras relativas a estas
simulações se encontram no Apêndice B.
Por meio daFigura 4.11, verifica-se que, com o controlador número 3, o nível satura
na presença de perturbação. Já, com a utilização do selecionador neural, a perturbação
causa um pico em 21,1 cm, voltando ao nível de referência em menos de 50 s.
DEQUI / UFRGS – Aline Thaís Käfer 27
Por fim, a utilização de notas diferentes também influencia a saída da malha fechada.
Utilizando somente as notas temporais, é possível acelerar as respostas, mas dependendo
da amplitude do sobrepasso, este pode levar ao transbordo do tanque ou à saturação do
controlador, o que pode não seraceitável.
Desse modo, a configuração usada para a aplicação deste método depende de que
características se considerem importantes, e que custo computacional é possível aceitar
para melhorar o desempenho do sistema.
6 Referências
- OGATA, K. Engenharia de controle moderno, Prentice-Hall do Brasil, Rio de Janeiro,
1997.
-FU, Yue; CHAI, Tianyou. Nonlinear multivariable adaptive control using multiple models
and neural networks.2007. Automatica, v. 43, p. 1101-1110, mai. 2005/ dez. 2006.
-AYALA, Helon Vicente Hultmann; COELHO, Leandro dos Santos. Tuning of PID controller
based on a multiobjective genetic algorithm applied to a robotic manipulator. 2012.
Expert Systems with Applications, v. 39, p. 8968-8974, fev./jul. 2012.
-HUNT, K. J. et al.. Neural networks for control systems - A survey. 1992. Automatica, v.
28,p. 1083-1112, jul./set. 1992.
-LEE, Jong Min; LEE, Jay H..Value function-based approach to the scheduling of multiple
controllers.2008. Journal of Process Control, v. 18, p. 533-542, mai./out. 2007.
-LIN, Jeen; LIAN, Ruey-Jing. Hybrid fuzzy-logic and neural-network controller for MIMO
systems. 2009. Mechatronics,v. 19, p 972-986, jan./jul. 2009.
Apêndices
Apêndice A: Modelo linearizado
A.1-Linearização do modelo
A linearização do modelo do processo é uma etapa importante para configurar os
controladores candidatos. Cada um será projetado para um ponto de operação do tanque
esférico.
5ℎ ( A.1 )
C Gℎ − ℎE + √ℎ = 789
56
5ℎ ( A.2 )
K ℎ = Gℎ − ℎE = ℎ ∗ Gℎ − ℎE
56
5ℎ ( A.3 )
ℎ =
56
Conforme as Equações( A.2 ) e ( A.3 ), o termo que será linearizado é uma função de
duas variáveis, g e h. Para tanto, é necessário utilizar a série de Taylor de duas variáveis
para a linearização. Para esta aplicação, a série de Taylor é truncada no termo que
apresenta a primeira derivada, já que, para pequenas variações, a magnitude dos
próximos termos seria insignificante.
vK vK
Kt rM , ℎM s = L Kx rM , ℎM s = L
( A.5 )
v uNu vℎ uNuw,tNtw
w ,tNtw
5ℎ
M = I =
( A.6 )
L = 0 ; ℎM = I
56 uNM
5ℎ ( A.7 )
K , ℎ ≅ GI − I E
56
30 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
O segundo termo é linearizado pelo mesmo processo, mas utilizando a série de Taylor
para uma função de uma só variável.
5{
{ ℎ = {rℎM s +
( A.8 )
L rℎ − ℎM s
5ℎ uNM
5{
L 5 1
= √ℎL
( A.9 )
=
5ℎ uNM 5ℎ uNM 2√I
1 ( A.10 )
{ ℎ = ?I + ℎ − I
2√I
5ℎ 1 ( A.11 )
789 = C GI − I E + ?I + ℎ − I
56 2 √I
5∆ℎ 5 5ℎ 5I 5ℎ ( A.13 )
= ℎ − I = − =
56 56 56 56 56
Obtém-se a equação a seguir.
5∆ℎ 1 ( A.14 )
∆789 + 789 I = C GI − I E + ?I + ∆ℎ
56 2√I
5∆ℎ 1 ( A.15 )
∆789 = C GI − I E + ∆ℎ
56 2√I
1'
∆
( A.16 )
CI G − I
=
∆K89 F + ' H
2I√IC G − I
Figura B.7 – saídas da RNA e do processo para a simulação 5, referência em 7,5 cm.
Figura B.9 - saídas da RNA e do processo para a simulação 6, referência em 7.5 cm.
Figura B.11 - saídas da RNA e do processo para a simulação 7, referência em 7.5 cm.
DEQUI / UFRGS – Aline Thaís Käfer 35
Figura B.13 - saídas da RNA e do processo para a simulação 8, referência em 7,5 cm.
alvo = [0.1,2,4,6,8,10,12,14,16,18,20,22];
inicial = [0.1,2,4,6,8,10,12,14,16,18,20,22];
36 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
%inicialização as matrizes
ides = zeros(length(alvo)*length(inicial) -12,length(controle));
tempoSubida = ides;
pico = ides;
overshoot = ides;
tempoAcomodacao = ides;
amplitude = ides;
entradasRNA = zeros(length(alvo)*length(inicial)-12,2);
entradasRNA2 = entradasRNA;
count=0;
%%
for x=1:length(alvo)
nivelAlvo = alvo(x);
for y = 1:length(inicial)
xs = inicial(y);
ifxs~=nivelAlvo
count=count+1
entradasRNA2(count,1) = nivelAlvo - xs;
entradasRNA2(count,2) = xs;
entradasRNA(count,1) = nivelAlvo;
entradasRNA(count,2) = xs;
for z = 1:length(controle)
ci = CIPID(y);
kp = controle(1,z);
ki = controle(2,z);
%kd = controle(3,z);
sim('tanque_malha_fechada');
sim('tanque_ruido_perturb');
ides(count,z) = fcor([Link]-nivelAlvo, 20, 2);
else
overshoot(count, z) = 0;
end
end
erro = abs([Link]);
%calcular o tempo de acomodação, considerando 98% do regime
tempo=1;
achou=0;
forind = 1:length([Link])
iferro(ind)>0.02*nivelAlvo+0.01
tempo = ind;
end
end
amplitude(count,z) = abs(nivelAlvo-xs);
tempoSubida(count,z) = abs(tempo90pc-tempo10pc);
tempoAcomodacao(count,z) = [Link](tempo);
end
end
end
end
notaTempo=tempoAcomodacao/max(max(tempoAcomodacao))+tempoSubida/max(max(t
empoSubida));
notaDes= overshoot/max(max(overshoot))+ides/max(max(ides));
notas = 2-notaDes-notaTempo;
inputs = entradasRNA2';
targets = notas4';
[Link] = 15/100;
[Link] = 15/100;
nivelInicial = [0.1,2,4,6,8,10,12,14,16,18,20,22];
armazena = zeros(length(nivelInicial), 2);
CIPID = zeros(length(nivelInicial),1);
cont=0;
mult=0.7;
for x= 1:667
vazao=x/10;
sim('Simulacao_Tanque');
nivelOut = [Link](1399);
DEQUI / UFRGS – Aline Thaís Käfer 39
armazena(x,1) = nivelOut;
armazena(x,2)= vazao;
cont=cont+1
end
function setup(block)
%% Register number of input port and output port
[Link] = 3;
[Link] = 2;
[Link] = 0;
[Link](1).DatatypeID = 0;
[Link](1).Complexity = 'Real';
[Link](1).Dimensions = -1;
[Link](1).SamplingMode = 'Sample';
[Link](1).DirectFeedthrough = 1;
[Link](2).DatatypeID = 0;
[Link](2).Complexity = 'Real';
[Link](2).Dimensions = 1;
[Link](2).SamplingMode = 'Sample';
[Link](2).DirectFeedthrough = 1;
[Link](3).DatatypeID = 0;
[Link](3).Complexity = 'Real';
[Link](3).Dimensions = -1;
[Link](3).SamplingMode = 'Sample';
[Link](3).DirectFeedthrough = 1;
[Link](2).DatatypeID = 0;
[Link](2).Complexity = 'Real';
[Link](2).Dimensions = 1;
[Link](2).SamplingMode = 'Sample';
[Link](2).DirectFeedthrough = 1;
[Link](1).DatatypeID = 0;
[Link](1).Complexity = 'Real';
[Link](1).Dimensions = -1;
[Link](1).SamplingMode = 'Sample';
[Link](2).DatatypeID = 0;
[Link](2).Complexity = 'Real';
[Link](2).Dimensions = 1;
[Link](2).SamplingMode = 'Sample';
%% Reg methods
[Link]('PostPropagationSetup', @DoPostPropSetup);
[Link]('Outputs', @Outputs);
[Link]('Start', @Start);
[Link]('Terminate', @Terminate);
[Link]('Update', @Update);%
%endfunction
functionDoPostPropSetup(block)
[Link] = 1;
[Link](1).Name = 'x1';
[Link](1).Dimensions = 3;
[Link](1).DatatypeID = 0; % double
[Link](1).Complexity = 'Real'; % real
[Link](1).UsedAsDiscState = true;
function Start(block)
[Link](1).Data = [1 0 0];
function Outputs(block)
x1 = [Link](1).Data;
u1 = [Link](1).Data;
u2 = [Link](2).Data;
u3 = [Link](3).Data;
u4 = [Link](4).Data;
if u4 = 0.7
[~, ind] = min(abs(ci(:,1)-u2));
y2 = ci(ind,2);
else
[~, ind] = min(abs(ci2(:,1)-u2));
y2 = ci2(ind,2);
%
x2 = x1;
[max1, index_max] = max(x2);
x2(index_max) = [];
[max2, ~] = max(x2);
[Link](1).Data = y;
[Link](2).Data = y2;
%endfunction
DEQUI / UFRGS – Aline Thaís Käfer 41
function Update(block)
[Link](1).Data = [Link](1).Data;
%%
functionTerminate(block)
%endfunction
sizes = simsizes;
[Link] = 1;
[Link] = 0;
[Link] = 1;
[Link] = 2;
[Link] = 0;
[Link] = 1;
% Intitial Conditions
sys = simsizes(sizes);
x0 = xs;
str = [];
ts = [0 0];
%========================================================================
% mdlDerivatives
% Return the derivatives for the continuous states.
%========================================================================
function sys = mdlDerivatives(t,x,u)
% Estados dos Sistema => H; [cm]
% Parâmetros do Modelo
% Coeficientes de Descarga (19/01/11)
% fact é um fator de ajuste (empírico)
fact = u(2);
42 Estratégia baseada em Redes Neurais Artificiais para a seleção on-line de controlador
% Equações Diferenciais
if x(1) > D(1)-1e-1
x(1)= D(1)-1e-1; % Limite de Nível Máximo
else
if x(1) < 1e-1
x(1)= 1e-1; % Limite de Nível Mínimo
end
end
%if x(1) > 1e-3 && x(1) <= D(1)-1e-3
sys = (F(1) - CD(1)*sqrt(x(1)))/(pi*x(1)*(D(1) - x(1)));
%========================================================================
% mdlOutputs
% Return the block outputs.
%========================================================================
function sys = mdlOutputs(t,x,u)
if x(1) > 22.5- 1e-1
sys = 22.5- 1e-1; % Limite de Nível Máximo
else
if x(1) < 1e-1
sys = 1e-1; % Limite de Nível Mínimo
else
sys = x(1);
end
end
Anexos
Anexo A: Código da função fcor()
function [perfind, sigmv, F] = fcor(yt, m, d)
% [IDES, MV, F] = FCOR(YT, M, D)
% Implementaçao do algoritmo FCOR (FilteringandCorrelationAnalysis)
% para sistemas SISO.
%
% Estimação do ruído através do "pre-whitening" do sinal de saída yt
% usando AR;
% O ruído é o resíduo da modelagem da série temporal:r = YT - Yest
%
% M: é a ordem do modelo a ser estimado para Yest.
% D: é o tempo morto do sistema.
% IDES: é o índice de performance da malha segundo Desborough e Harris
(1992).
% MV: é a mínima variança (variança do controlador de variança mínima).
% F: é o polinômio de ordem N resultante da modelagem de YT.
dim = size(yt);
if dim(1) == 1;
yt = yt';
end
yv = yt(m+d : end);
for k=1:d
ind = m + d - k + 1;
%% Rotina %%
% Criado por:
% P.R.B.F @GIMSCOP/DEQUI
% 26-06-2012
% Modificado por: Aline Kafer, 12-10-2014
switchflag,
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(xs);
%%%%%%%%%%%%%%%
% Derivatives %
%%%%%%%%%%%%%%%
case 1,
sys = mdlDerivatives(t,x,u);
%%%%%%%%%%%
% Outputs %
%%%%%%%%%%%
case 3,
sys = mdlOutputs(t,x,u);
%%%%%%%%%%%%%%%%%%%
% Unhandled flags %
%%%%%%%%%%%%%%%%%%%
case { 2, 4, 9 },
sys = [];
DEQUI / UFRGS – Aline Thaís Käfer 45
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
%%
%
%========================================================================
=====
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-
function.
%========================================================================
=====
%
sizes = simsizes;
[Link] = 1;
[Link] = 0;
[Link] = 1;
[Link] = 2;
[Link] = 0;
[Link] = 1;
% Intitial Conditions
sys = simsizes(sizes);
x0 = xs;
str = [];
ts = [0 0];
% end mdlInitializeSizes
%
%========================================================================
=====
% mdlDerivatives
% Return the derivatives for the continuous states.
%========================================================================
=====
%
% Parâmetros do Modelo
% Coeficientes de Descarga (19/01/11)
% fact é um fator de ajuste (empírico)
fact = u(2);
CD(1) = fact*17.6980; % Coeficiente de Descarga =>
CD[(cm^(5/2))/s]
% Estados
h = x;
% Variáveis de Entrada
% Vazões
F = zeros(1,1);
F(1) = u(1); % Vazão de Entrada F => [L/min]
% Modelo
% Equações Diferenciais
%========================================================================
=====
% mdlOutputs
% Return the block outputs.
%========================================================================
=====
%
% endmdlOutputs