Professional Documents
Culture Documents
CENTRO TECNOLGICO
DEPARTAMENTO DE INFORMTICA
Mini-curso de Simulink
Controle Automtico I
Agosto de 2009
Sumrio
1
Introduo
Acessando o Simulink
.
.
.
.
.
6
6
6
8
8
8
Criando Simulaes
4.1 Gerador de Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Problema com uma Equao Diferencial . . . . . . . . . . . . . . . . . . . . .
4.3 Crescimento de Bactrias . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
11
13
Utilizando o Workspace
15
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
21
23
23
25
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
29
29
30
31
Aplicao
8.1 Especificaes dos parmetros . . . . . . . . . . . .
8.2 Equaes do Sistema dinmico . . . . . . . . . . . .
8.2.1 Do potencimetro detector de erros . . . . .
8.2.2 Do Amplificador . . . . . . . . . . . . . . .
8.2.3 Da armadura controlada do motor . . . . . .
8.3 Funo de Transferncia do Motor (Planta) . . . . .
8.3.1 Fora contra eletromotriz no motor . . . . .
8.3.2 Do circuito da armadura podemos escrever .
8.3.3 Torque desenvolvido . . . . . . . . . . . . .
8.3.4 Torque resultante na armadura do motor . . .
8.4 Funo de transferncia do motor (FTMF) . . . . . .
8.5 Diagrama de Blocos do Sistema . . . . . . . . . . .
8.6 Ajuste de Kp . . . . . . . . . . . . . . . . . . . . .
8.7 Anlise do efeito de uma no linearidade - Saturao
8.7.1 Anlise . . . . . . . . . . . . . . . . . . . .
8.7.2 Concluses . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
34
34
34
35
35
35
35
35
35
36
36
37
37
38
38
39
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8.8
8.9
40
40
41
41
41
42
46
Introduo
Acessando o Simulink
>> s i m u l i n k
Ou pode-se clicar no seguinte cone da barra de ferramentas toolbar:
3.1
Fontes
So as entradas do sistema e esto presentes na biblioteca de fontes (sources). A seguir, apresentamos as fontes mais comuns:
O bloco Constante (Constant) produz um sinal uniforme. A magnitude pode ser escolhida
com um duplo clique sobre o bloco.
O bloco Degrau (Step) produz uma funo degrau. Pode-se configurar o instante em que
se aplica o degrau, assim como sua magnitude antes e depois da transio.
O bloco de Onda Senoidal (Sine Wave) gera uma senide com os seguintes parmetros a
serem configurados: amplitude, fase e freqncia da onda senoidal.
O Gerador de Sinais (Signal Generator) pode produzir ondas senoidais, quadradas, dente
de serra ou sinais aleatrios.
Outros sinais podem ser gerados a partir de combinaes destes blocos apresentados.
3.1.1
Para criar um sinal de entrada personalizado, devemos inicialmente definir os pares coordenados em uma matriz, e import-lo para o Simulink. A seguir, apresentamos duas formas de se
obter um sinal personalizado.
>> t = 0 : 0 . 1 : 1 0 0 ;
>> u = 2 t ;
>> A = [ t , u ] ;
Definida a matriz a ser usada, deve-se adicionar o bloco From Workspace Block da biblioteca Sources ao modelo. Com um duplo clique sobre o bloco deve-se digitar o nome da matriz
definida no MATLAB no campo Data, neste caso A. Pronto, o bloco j est configurado e
pode ser usado.
Caso o sinal de entrada tenha mais que uma dimenso, deve-se definir os valores de entrada
usando-se uma struct. O tempo deve ser definido como um vetor no campo time, enquanto
que os valores referentes varivel independente devem ser definidos como colunas no campo
signals.values. Ainda deve ser informado o nmero de dimenses no campo signals.dimensions.
Usando-se os mesmos valores do exemplo 2, pode-se definir uma struct a com os comandos
apresentados no exemplo 3.
Exemplo 3: Matriz de pares coordenados
1
2
3
>> a . t i m e = t ;
>> a . s i g n a l s . v a l u e s = u ;
>> a . s i g n a l s . d i m e n s i o n s = 1 ;
From File Input Block
A matriz agora carregada a partir de um arquivo gerado pelo MATLAB, assim o sinal de
entrada pode ser salvo. Uma diferena importante que que os sinais devem agora ser carregados em linhas.
Exemplo
A partir do mesmo exemplo, deve-se salvar a matriz gerada em um arquivo com extenso
.mat (arquivo usado pelo MAtlab).
Exemplo 4: Salvando em um arquivo
1
2
>> B = A ;
>> s a v e exemplo . mat B ;
7
No simulink, deve-se adicionar o bloco From File Input Block da biblioteca Sources. Com
um duplo clique sobre o bloco deve-se digitar no campo File Name o nome do arquivo, neste
caso exemplo.mat.
3.1.2
Combinando Entradas
3.2
Diagrama de blocos
3.3
Sadas
Criando Simulaes
Os Exemplos a seguir mostram os passos para se criar modelos de sistemas dinmicos no Simulink.
4.1
Gerador de Sinais
1. Carregue o Simulink:
Execute o MATLAB;
Em seguida chame o Simulink, e uma janela em branco para a construo do sistema;
2. Insira o Signal Generator (Gerador de sinais)
Entre a lista de opes do Library Browser (Browser de biblioteca), clique em Simulink, que uma biblioteca de blocos;
Clique em Source, que um tipo de bloco de fonte de sinal;
Selecione Signal Generator e arraste este bloco para a rea de trabalho do novo
documento aberto;
3. Insira os blocos do sistema modelado
Qualquer bloco no simulink pode ser pesquisado na linha de comando, basta entrar
com o nome do bloco na caixa de edio que fica abaixo da barra de ferramentas e
clicar no cone Find block:
O bloco tambm pode ser adicionado ao modelo clicando-se com o boto direito
sobre o bloco e escolhendo-se a opo Add to Untitled, sendo que Untitled ser
substitudo pelo nome do seu projeto.
4. Insira os dispositivos de sada, por exemplo, o Scope (Osciloscpio)
Clique em Commonly Used Blocks (blocos usados comumente);
E insira o Scope;
5. Faa a conexo entre os blocos
Faa um caminho com o mouse ligando os dois componentes;
Outra opo para ligar os blocos clicar no bloco de origem, segurar a tecla ctrl e
clicar no bloco destino. Um caminho automtico ser feito.
6. Propriedades do Gerador de Sinais (SignalGenerator)
D um duplo clique sobre o signal generator ou clique com o boto direito e escolha
SignalGenerator Parameter...;
Escolha a forma de onda (wave form) dente de serra (sawtooth) com frequncia de
1 Hz com uma amplitude de 2;
7. Propriedades da Simulao (Scope)
10
4.2
x(t) =
sen(t)dt
0
11
12
4.3
Crescimento de Bactrias
14
Utilizando o Workspace
15
>> kp = 3 ;
16
>>
>>
>>
>>
>>
plot
hold
plot
grid
axis
(u)
on
(y)
( [ 0 50 0.5 4 ] )
17
1
2
3
18
Sistemas contnuos so aqueles que so modelados por equaes diferenciais. Os sistemas mais
simples so escalares e pode-se dizer que so lineares e invariantes no tempo.
6.1
Bloco Integrador
19
20
Exemplo
c x k x = m x
Sendo um sistema de segunda ordem, necessitamos de dois integradores para modelar seu
comportamento.
Reescrevendo a equao, teremos:
x =
c
k
x x
m
m
Deve-se configurar a condio inicial do bloco integrador que corresponde velocidade para
0 e a condio inicial do bloco integrador que corresponde posio para 1.
A resposta da posio ser como na Figura 19.
A Funo de Transferncia pode ser definida como a razo da transformada de Laplace da entrada de um sistema pela transformada de Laplace da sada, considerando as condies iniciais
nulas.
O bloco Funo de Transferncia tem em sua caixa de dilogo dois campos: Numerator
(Numerador) e Denominator (denominador). O numerador contm os coeficientes do numerador da funo de transferncia em ordem decrescente de potncias de s. O denominador contm
os coeficientes do denominador de forma semelhante ao numerador.
6.1.4
Exemplo
Figura 20: Sistema Amortecido de Segunda Ordem excitado por uma fora
A fora aplicada ao sistema pode ser modelada por um degrau. Assim, teremos a seguinte
modelagem para o problema:
23
F c x k x = m x
Considerando as condies iniciais: x(0) = 0 e x(0) = 0.
Realizando a transformada de Laplace, teremos:
F(s) c s X(s) k X(s) = m s2 X(s)
Logo, a funo de transferncia do sistema ser dada por:
X(s)
=
G(s) =
F(s)
1
m
s2 +
c
k
s+
m
m
Utilizando o bloco funo de transferncia o numerador deve conter o vetor [0.2] e o denominador o vetor [1 0.2 0.4]. O modelo segue na Figura 21.
Figura 21: Modelo do Sistema Amortecido de Segunda Ordem excitado por uma fora
A resposta do sistema segue na Figura 22.
24
Figura 22: Resposta do Sistema Amortecido de Segunda Ordem excitado por uma fora
6.2
O SIMULINK fornece uma gama de blocos para sistemas no lineares. Esses blocos esto presentes na biblioteca Nonlinear. O exemplo a seguir ilustrar melhor esta classe de problemas e
ainda apresentar alguns componentes para a modelagem no-linear.
Exemplo
Considere um carrinho de massa M = 5 kg que parte do repouso e que acelera e freia
atravs de uma fora F = 1 N. O carrinho acelera durante 10 s e nos prximos 10 segundos
freia at parar. Vamos determinar a resposta das grandezas fsicas relacionadas ao problema.
Considerando a massa do carro e a fora de propulso do motor, pela segunda Lei de Newton,
teremos:
x =
F
m
A velocidade e a posio podem ser obtidas atravs de dois integradores sobre a acelerao.
Durante o movimento acelerado a fora F positiva e no movimento retardado a fora F
negativa. A simulao deve ser parada quando o automvel chegar ao repouso.
O componente Sign da biblioteca Math Operations retorna 1 para uma entrada positiva, 0
para entrada nula e -1 para entrada negativa. Assim, a fora muda de direo quando o clock
ao ponto de quebra de 10 s. O componente clock pode ser obtido da biblioteca Sources. Este
componente apresenta o tempo corrente da simulao no sistema. O valor do clock observado
em um display.
O ponto de quebra ainda multiplicado por dois, que o tempo total de movimento, assim
obtemos o carrinho parado no final de seu movimento. O tempo total comparado com o clock
para finalizar a simulao.
Deve-se ligar na entrada X do componente XY Graph a posio e na entrada Y a velocidade,
com um duplo clique sobre este componente deve-se alterar o intervalo de variao de X para 0
a 20 e o intervalo de variao de Y para 0 a 2.
A massa representada no bloco constant da biblioteca Sources, o valor da constante
alterado para 5.
As condies iniciais so: x(0) = 0 e x(0) = 0.
25
26
27
A velocidade em funo da posio pode ser verificada atravs do grfico da Figura 25.
Um sistema discreto um sistema que pode ser representado utilizando equaes a diferenas.
Na maioria das vezes, obtemos o sistema discreto de um sinal contnuo no tempo. Este processo
denominado amostragem. Um exemplo de um sinal discreto obtido atravs de amostragem
apresentado na Figura 26.
28
7.1
y(k) = y(k 1) +
T (k)
u(t)dt
T (k1
S (k) = S (k 1) +
T (k)
(i S (k 1) p)dt
T (k1
Analisando o integrado, pode-se ver que o problema pode ser resolvido utilizando a integrao de Euller adiantado (Forward Euller).
30
O novo modelo apresentado na Figura 29. Note que, neste caso, o ganho de retroao
i = 3%.
A funo de transferncia a razo entre a transformada Z do sinal de sada pela transformada Z do sinal de entrada. A biblioteca Discreta fornece 3 blocos que implementam funes
de transferncia discreta: Discrete Filter (Filtro Discreto), Discrete Transfer Fcn (Funo de
Transferncia Discreta) e Discrete Zero-Pole (Zeros-Plos Discretos). Todos estes blocos so
equivalentes, diferindo somente nos coeficientes dos polinmios do numerador e do denominador.
O bloco Filtro Discreto necessita de coeficientes dos polinmios em potncias ascendentes de Z 1 . O bloco Funo de Transferncia Discreta requer coeficientes dos polinmios em
potncias descendentes de Z. Os dois blocos so equivalentes, diferindo somente no modo de
representar a funo de transferncia. O bloco Plos-Zeros Discreto requerem vetores de zeros
(numerador) e plos (denominador) da funo de transferncia e o ganho. Note que esses blocos possuem os seus equivalentes para sistema contnuos e podem ser encontrados na biblioteca
Continuos.
Exemplo
Geralmente, filtros so empregados para remover rudos em altas frequncias dos sinais de
entrada. O MATLAB possui uma Toolbox de processamento de sinais que fornece uma grande
variedade de algoritmos de projetos de filtros. O projetista pode simular um filtro projetado no
MATLAB em um modelo do SIMULINK utilizando um bloco Discrete Transfer Fcn (Funo
de Transferncia Discreta).
Suponha que se deseja projetar um sistema de controle com um rudo senoidal na entrada e
precisa-se filtrar este rudo. O perodo de amostragem (Sampling Period) 0.1 segundos e se
deseja remover sinais com uma frequncia superior a 0.2 Hz.
Os comandos apresentados no Exemplo 8 fornecem os coeficientes da funo de transferncia do filtro Butterworth de quarta ordem com frequncia de corte em 0.2 Hz.
31
1
2
3
4
5
32
Aplicao
Nesta seo, usou-se o trabalho de Controle Automtico I proposto pelo professor Edson de
Paula Ferreira (Dept de Eng. Eltrica - UFES) e feito pelo aluno Rodrigo Lopes Batista (Engenharia de Computao e ento bolsista PET Eng Comp), em 2006 / 2. Neste trabalho, usou-se
o Simulink para projetor um servo posicionador e estudar o efeito da variao de alguns componentes do modelo.
Enunciado:
Um servomotor constitui um modelo de um sistema eletromecnico atravs de um motor
dc projetado especificamente para ser usado em um sistema de controle de malha fechada. O
diagrama do circuito de um servomotor apresentado na Figura 32.
automaticamente, onde o ngulo de sada (c) corrigido para que ele esteja orientado com a
aeronave.
8.1
Segue abaixo a lista dos valores nominais dos parmetros fornecidos, no S.I. (Sistema Internacional).
r: ngulo do eixo da entrada de referncia (em radianos).
c: ngulo do eixo de sada (em radianos).
: ngulo do eixo do motor (em radianos).
kV : Ganho do detector de erro do potencimetro, kV =
24
V/rad.
8.2
N1
1
= .
N2 33
8.2.2
Do Amplificador
O amplificador amplifica a tenso de entrada E(s) para a tenso de entrada do motor dc Ea (s).
Ea (s) = kP E(s)
8.2.3
8.3
8.3.1
d
d
= Km
dt
dt
Ea (s) Eb (s)
Ra
Torque desenvolvido
(t) = k1 ia (t) = k ia (t)
35
8.3.4
(s) =
T (s)
J s2 + f s
8.4
G1 (s) k G2 (s)
(s)
=
Ea (s) 1 + G1 (s) k G2 (s) H(s)
Assim:
G(s) =
s2
k
Rb J + s (Rb f + k kb )
Simplificando, teremos:
G(s) =
km
s (s T m + 1)
Onde:
Km =
k
Rb f + k kb
Tm =
Rb J
Rb f + k kb
5, 63
s (s 0, 26 + 1)
36
8.5
8.6
Ajuste de Kp
Enunciado:
Ajuste o ganho Kp para que a resposta c(t) a um degrau unitrio r(t) = 1 ou R(s) = 1/S, seja
oscilatria com o primeiro pico (sobrelevao mxima ou overshoot) 15% acima do seu valor
final c(). Verifique se o valor de sada confere com o valor calculado pelo teorema do valor
final:
c() = lim C(t) = lim S C(s)
t
t0
Para que o primeiro pico (sobrelevao mxima ou overshoot) seja 15% acima de seu valor
final o overshoot (M p ) deve ser de 0,15. Alterando-se o valor de k p at que se atingisse este
overshoot encontramos, aproximadamente, k p = 2.8. A sada do sistema, c(t), mostrada na
Figura 35. Variando-se o ganho K p , foi possvel observar que Mp maior tanto quanto maior
for o ganho proporcional (K p ).
8.7
Enunciado:
Considere uma saturao na sada do controlador, limitado por um valor mximo (umax ),
variando adequadamente este mximo, conforme a Figura 37. Para que valor de umax , voc
considera que a resposta se tornou muito ruim?
Anlise
Testes:
38
8.7.2
Concluses
8.8
Enunciado:
Considere um atraso em caminho direto (esT em srie com a FT da planta), de T segundos,
variando T, conforme a Figura 44. Para que valor de T voc considera que a resposta se tornou
muito ruim?
Anlise
Testes:
40
8.8.2
Concluses
Verificamos que quando o atraso cresce a partir de T = 0, o seu overshoot cresce juntamente
com o tempo de estabilizao, assim o sistema oscila mais. Quanto maior for o delay, maior
ser a oscilao e maior o overshoot. No entanto, a partir de, aproximadamente, T = 0,33 o
sistema se torna instvel, divergindo para todo atraso maior que 0,33.
8.9
Enunciado:
Considerando o controle digital sobre um motor, que a planta do sistema de controle,
inclua um amostrador, com perodo de amostragem T e um hold de ordem zero na sada do
controlador, como conversor DA. Inclua tambm um rudo, devido codificao do sinal no
conversor AD, na malha de realimentao da posio c(t).
8.9.1
Modificaes
Na sada do controlador foi colocado um Hold de ordem zero, como conversor D/A.
Na malha de realimentao de c(t) um rudo foi somado.
41
Anlise
A sada do sistema como definido no ajuste, sem a influncia do rudo, verifica na Figura 35.
Logo o erro mximo do sistema de 1,4; e o Noise Power pode ser definido por:
Noise Power =
1, 4
2n+1
1, 4
= 0, 04375
24+1
42
43
44
Palavra de 16 bits
Noise Power =
1, 4
= 0, 00001068115234
216+1
Concluses
Observa-se que quanto maior o nmero de bits da palavra (menor o noise power) menor
ser a amplitude do rudo.
Observa-se que para uma mesma palavra, ao aumentar o perodo, a amplitude do rudo
diminui.
Observa-se que para palavras de 4 bits, o sistema instvel.
Para palavras de 16 bits, os grficos para T = 0,01 e T = 0,1 apresentam uma tima
estabilizada.
Conclui-se que o sistema ser estvel quo grande for a palavra.
46