Você está na página 1de 19

Relatrio

Controlador Sliding Mode de um Motor DC










Electrnica Industrial
Mestrado de Engenharia e Gesto Industrial
Universidade da Beira Interior
11 / Janeiro / 2013


Joo Nuno Oliveira Filipe - M5923
johnnyfilipe@gmail.com

I. Introduo
O presente relatrio descreve a implementao em Matlab de alguns controladores
em Modo de Deslizamento (Sliding Mode) para um motor DC.
Em termos simples, o Sliding Mode um sistema de controlo que est sempre a
comutar entre dois estados. O valor que se pretende sada do controlador ser
dado pelo tempo mdio entre os dois estados. No caso do motor DC, esses estados
sero as tenses positiva e negativa mximas que lhe fornecemos.
Como veremos, este tipo de controlador mais fcil de implementar do que um
controlador difuso, embora apresente resultados semelhantes.

II. 1 Controlador Sliding Mode: Controlo da Velocidade


Implementou-se em Simulink o controlador Sliding Mode que se apresenta de
seguida, utilizando para isso o motor DC previamente modelado, o qual manteve a
mesma configurao internamente. Segue-se o grfico do modelo do controlador
mais o motor:


Fig. 1 - Controlador em Modo de Deslizamento da velocidade


De forma semelhante experincia com controladores difusos, trata-se de um
sistema de controlo em malha fechada. Repare-se que o valor do erro continua a ser
dado pela expresso: Referncia - velocidade de sada do motor.
Como se pode ver, o modelo tem ento uma Referncia (Step), um bloco para
clculo do erro, o motor DC, e um elemento novo - o bloco de histerese (Relay).


Fig. 2 - Funcionamento da Histerese

A histerese ser o bloco responsvel pelo controlo em Modo de Deslizamento. Logo,


o seu input ser o erro. Atravs do grfico acima, possvel perceber que o seu
funcionamento relativamente simples.
Quando o bloco est no estado ligado, assim permanece at o valor de input cair
abaixo do ponto de desligar (Switch off point). Quando est desligado, assim persiste
at que o input exceda o ponto de ligar (Switch on point). A banda entre estes dois
pontos determinar a velocidade de comutao. Como ser fcil de perceber, se esta
banda diminuir, ento o controlador comutar mais rapidamente em cada perodo
de tempo, ou seja, a frequncia de comutao aumenta.
Estes dois parmetros (Switch on e Switch off) vm configurados por defeito com o
valor eps, um valor extremamente pequeno, de modo que ao mnimo erro o bloco
de histerese mudar de estado.
Para configurarmos este bloco, precisamos tambm de definir os valores de Output
quando ligado e quando desligado, que neste caso sero as tenses positiva e
negativa mximas, 100V e -100V, respectivamente. Como veremos mais frente, o
controlador ir comutar a grande velocidade entre estes dois valores, at atingir um
valor mdio para o qual o erro (input) seja nulo ou desprezvel.
Configurao da histerese:


Switch on point: eps

Switch off point: eps

Output when on: 100

Output when off: -100

Correndo uma simulao verificamos que o controlador actua rapidamente e livre de
erros, apresentando apenas uns ligeiros picos de velocidade a incio, mas
estabilizando pouco tempo depois no valor de Referncia, onde se mantm a partir
da.
Ao analisar o grfico da tenso, pode confirmar-se que a frequncia de comutao
realmente elevada, com comutaes na ordem das centenas de vezes por segundo.
Se de seguida compararmos este grfico com o da velocidade, constatamos que se
espelham um ao outro, como se pode ver abaixo:


Fig. 3 - Grficos da tenso e da velocidade em paralelo


At ao momento do degrau (Step time = 1s) a Referncia 0, por isso o controlador
est a comutar entre -100 e 100 permanecendo 50% do tempo de cada ciclo em
cada valor, o que dar um valor mdio de 0V. Logo, a velocidade mantm-se nula
como pretendido.
Depois disso, passando a Referncia a 1, o controlador comuta para o estado ligado
(100V) e l se mantm enquanto o erro positivo, da a "clareira" sem comutaes
que observamos entre o 1s e os 1,5s, aproximadamente. H ainda por essa altura
algumas diminutas comutaes at a velocidade estabilizar.
Ao mesmo tempo que a velocidade estabiliza, tambm a frequncia de comutao
estabiliza, sendo o seu valor mdio de 10V para manter a velocidade no valor
constante de 1 rad/s.

Se substituirmos a Referncia por um gerador de sinal, podemos testar o
controlador com uma onda sinusoidal, obtendo-se o seguinte grfico:


Fig. 4 - Grfico da Referncia e Velocidade de uma onda sinusoidal


Neste caso, o controlador comporta-se optimamente, seguindo a onda sinusoidal
quase na perfeio. O Sliding Mode parece assim ser um sistema de controlo ideal
para uma Referncia com este tipo de onda.
J quando se trata de uma onda quadrada ou de uma onda serra, o comportamento
do controlador deixa a desejar, como se pode observar:


Fig. 5 - Grfico da Referncia (onda quadrada) e da velocidade


Fig. 6 - Grfico da Referncia (onda serra) e da velocidade


Como se pode ver, o controlador tem alguma dificuldade em acompanhar estes dois
tipos de ondas. No caso particular da onda quadrada, nota-se maior dificuldade do
controlador: nunca chega a ter tempo de estabilizar no valor mnimo ou mximo da
Referncia pois esta varia mais rpido do que o controlador consegue acompanhar,
mesmo a uma baixa frequncia.

III. Anlise de Fourier


Voltando a usar a ter por Referncia um Step, foram guardados os dados dos valores
de tenso medidos sada do controlador (bloco de histerese). Aplicou-se depois a
estes a Transformada discreta de Fourier (algoritmo FFT), obtendo de seguida o
grfico da sua parte real:


Fig. 7 - Anlise de Fourier da tenso


Explicada de maneira simples, a transformada de Fourier um processo de
decomposio de uma funo complexa numa soma de funes mais simples.
Permite-nos ento ver as vrias ondas que compem uma onda mais complexa.
Cada onda simples corresponder ento a uma frequncia e sua respectiva
amplitude.
No entanto, podemos isolar algumas frequncias especficas, a ttulo experimental.
Para esse efeito, criou-se um script:


t=[0:0.001:2];

u1=10*sin(2*pi*50*t);

u2=10*sin(2*pi*100*t);

u3=10*sin(2*pi*200*t);

u=u1+u2+u3;

FFT=fft(u);

plot(abs(FFT))

Ao correr o script, obtivemos o seguinte grfico:


Fig. 8 - Anlise de Fourier de algumas frequncias: 100Hz, 200Hz e 400Hz


Como podemos ver, isolamos assim as frequncias aos 100, 200 e 400 Hz.
Verificamos de novo uma simetria, fruto da natureza do sinal analisado.

IV. 2 Controlador Sliding Mode: Controlo da Corrente


Depois de criar o controlador Sliding Mode da velocidade, interessava agora
controlar o perfil da corrente do motor. Deste modo, a Referncia passar a ser a
corrente.
Antes de mais, como necessitamos do valor da corrente para clculo do erro,
necessrio alterar o motor DC para que este passe a ter uma segunda sada com esse
valor, tal como se segue:


Fig. 9 - Motor DC com duas sadas: velocidade e corrente


Seguidamente alterou-se o modelo do controlador anterior para que o valor do erro
seja agora dado pela expresso: Referncia - corrente, como se pode ver pelo grfico
abaixo:


Fig. 10 - Controlador em Modo de Deslizamento da corrente

Por ltimo, configurou-se o bloco de histerese da seguinte forma:




Switch on point: 0.001

Switch off point: -0.001

Output when on: 100

Output when off: 0

de notar que estes valores de switch on e switch off so muitos superiores aos que
tnhamos com o controlador anterior. Estamos agora a ser mais permissivos no
nosso controlo, pois ao aumentarmos a banda, consequentemente diminuir a
frequncia de comutao.

Antes de simular, temos de saber quantos amperes devemos dar como Referncia
para obter uma dada velocidade. J sabamos anteriormente que com uma voltagem
de 10V obtnhamos uma velocidade de 1 rad/s. Sabendo tambm que a Resistncia
do nosso motor de 1, pela lei de Ohm:

10V = 1 x i i = 10A


Logo, para obter uma velocidade de 1 rad/s, necessitamos de ter por Referncia uma
corrente de 10A.

Ao correr uma simulao utilizando um Step de 10, obtemos o seguinte grfico da
velocidade:


Fig. 11 - Grfico da velocidade para controlador Sliding Mode da corrente - banda de erro entre -0.001 e 0.001


Como se pode ver, o motor acelera at estabilizar na velocidade de 1 rad/s, tal como
seria de esperar para uma corrente de 10A.



Vejamos agora o grfico da corrente em comparao com a Referncia:


Fig. 12 - Grfico da Referncia e da corrente - banda de erro entre -0.001 e 0.001


primeira vista, a resposta do controlador parece praticamente perfeita, j que o
valor da corrente acompanha sempre a Referncia. No entanto, se virmos a seguir o
mesmo grfico da corrente/Referncia, mas ampliado:


Fig. 13 - Ampliao do grfico da Referncia e corrente - banda de erro entre -0.001 e 0.001


A esta escala, detectamos variaes na corrente, embora sejam to pequenas que as
possamos considerar desprezveis. Estas variaes devem-se largura de banda, a
qual maior que a usada no controlador de velocidade implementado
anteriormente.
Contudo, podemos considerar que a resposta do controlador ainda bastante boa,
pois se experimentarmos ser progressivamente mais permissivos e alterarmos os
valores da histerese para:


Switch on point: 0.1

Switch off point: -0.1

Output when on: 100

Output when off: 0

10

Vejamos o que acontece corrente ao simular de novo:



Fig. 14 - Grfico da Referncia e da corrente - banda de erro entre -0.1 e 0.1


Ampliando o mesmo grfico:


Fig. 15 - Ampliao do Grfico da Referncia e da corrente - banda de erro entre -0.1 e 0.1


Observa-se agora uma frequncia de comutao ainda mais baixa, e uma corrente
com variaes ainda maiores.

Faz-se agora um ltimo teste. Para sermos ainda mais permissivos, configura-se a
histerese da seguinte forma:


Switch on point: 1

Switch off point: -1

Output when on: 100

Output when off: 0




11

Ao correr nova simulao, obtemos o grfico da corrente:



Fig. 16 - Grfico da Referncia e da corrente - banda de erro entre -1 e 1


Neste caso, as variaes de corrente so bastante elevadas, podendo ser observadas
a olho nu, sem necessidade de ampliar o grfico. Como ltima curiosidade, vejamos
o grfico da velocidade obtido com a mesma simulao:


Fig. 17 - Grfico da velocidade - banda de erro entre -1 e 1


Constatamos que para esta largura da banda de erro, a velocidade sofre aceleraes
e desaceleraes continuamente. Embora ronde o valor pretendido, nunca estvel.

Pode ento concluir-se que quanto menor for a banda, ou seja, quanto menor for o
erro permitido, maior ser a frequncia de comutao, o que significar tanto uma
corrente como uma velocidade mais estveis.
No entanto, se implementssemos este motor e controlador na prtica, haveria
certamente componentes que no suportariam uma frequncia de comutao to
elevada. Logo, na vida real torna-se necessrio encontrar um meio-termo entre a
frequncia de comutao e os componentes.


12

V. 3 Controlador Sliding Mode: s=K1e+k2


Por ltimo, implementou-se um terceiro controlador em modo de deslizamento para
controlo da velocidade. Tendo por base o primeiro controlador da velocidade que
crimos, pretende-se agora ter um maior controlo sobre o arranque do motor. Para
esse efeito, foi acrescentado um bloco derivativo para obter a taxa de variao do
erro. Foram adicionados ainda blocos de ganho para o erro (K1) e para a derivada do
erro (K2), ambos de valor 1 inicialmente, e um Scope XY, conforme o esquema que se
segue:


Fig. 18 - Controlador em Modo de Deslizamento da velocidade com derivada do erro


Como se pode ver, o input que o rel agora recebe a soma do erro com a taxa de
variao do mesmo (tendo ambas sido multiplicadas por um ganho), dada pela
expresso s = K1e + k2. A histerese ento configurada da seguinte forma:


Switch on point: 0.000001

Switch off point: -0.000001

Output when on: 100

Output when off: 0

Ao correr uma simulao para uma Referncia de 10 rad/s, obtemos o seguinte
grfico da velocidade:

13


Fig. 19 - Grfico da velocidade para controlador Sliding mode com derivada do erro


Como podemos ver pelo grfico acima, o motor tem agora uma resposta mais lenta
quando comparado com o primeiro controlador de velocidade que implementmos,
o que se deve taxa de variao do erro.

Se agora analisarmos o grfico XY, podemos observar o resultado da expresso
s=e+, para k2=1:


Fig. 20 - Grfico XY de s=e+, para k2=1


Como se pode ver o sistema aparenta "deslizar" ao longo da superfcie s, at atingir
zero, momento em que o erro se anula por completo, ou seja, foi atingida a
velocidade de referncia. O nome de modo de deslizamento deve-se, portanto, a
este movimento do sistema ao longo das estruturas de controlo.



14

Se agora experimentarmos diferentes valores para K2 podemos manipular a resposta


do controlador. Por exemplo, com K2=0.1, obtemos o seguinte grfico XY:


Fig. 21 - Grfico XY de s=e+, para k2=0.1


Como se pode constatar, a linha descrita pelo grfico tende para zero mais
rapidamente, apresentando uma inclinao superior quando comparada ao grfico
para K2=1. Naturalmente, isso significa que a resposta do motor mais clere. De
facto, possvel observar essa maior imediatez no grfico da velocidade:


Fig. 22 - Grfico da velocidade para k2=0.1

15

Se agora experimentarmos aumentar o ganho da derivada, obteremos o efeito


contrrio. O grfico XY, para K2=2, apresenta o seguinte aspecto:


Fig. 23 - Grfico XY de s=e+, para k2=2


Como seria de esperar, obtemos agora uma inclinao muito inferior da recta s, o
que se traduz numa resposta bem mais lenta.


Fig. 24 - Grfico da velocidade para k2=2


De facto, para um K2 elevado, a velocidade do motor evolui muito lentamente, tanto
que neste caso a simulao de 10 segundos no sequer tempo suficiente para
atingir a velocidade de Referncia.





16

Se agora compararmos os grficos obtidos para os vrios valores de K2, podemos


observar melhor a diferena entre eles:


Fig. 25 - Grfico XY de de s=e+ para diferentes valores de k2: k2=0.1, k2=1 e k2=2


Fig. 26 - Grfico da velocidade para diferentes valores de k2: k2=0.1, k2=1 e k2=2


O ganho da derivada do erro portanto usado para controlar a resposta do
controlador. Se queremos que o motor arranque mais rapidamente, usamos um K2
baixo. Se pelo contrrio desejamos um arranque mais suave, K2 tem de ser elevado.
Geralmente, o que se pretende evitar um arranque demasiado rpido para que
no hajam sobreelevaes de tenso, o que poderia danificar o motor. No caso de
haver uma proteco contra estes picos de tenso, no conseguiramos sequer pr o
motor a trabalhar. Assim, a manipulao de K2 permite chegar a um equilbrio ideal,
consoante o motor que pretendemos controlar.

17

VI. Concluso
O Controlo em Modo de Deslizamento um mtodo de controlo no-linear de
grande robustez. Apresenta grande simplicidade, pois basta-lhe alternar entre dois
estados. Logo no necessita de ser preciso no seu output. Por outro lado, no
susceptvel a perturbaes no input, garantindo sempre estabilidade.
Naturalmente, no perfeito. O efeito de chattering algo indesejvel, pois tende a
causar desgaste no sistema, entre outros problemas.
Ainda assim, o seu desempenho considerado ptimo para muitas aplicaes, em
particular para sistemas no-lineares, muito comuns no meio industrial, o que o
torna um mtodo de controlo bastante usado.

18

Você também pode gostar