Professional Documents
Culture Documents
Controle I
Sumrio
1 Introduo
2 Programando em SCILAB
2.1
2.2
2.3
Modos de programao . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1
Modo imediato . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2
10
2.1.3
Arquivos de funes
. . . . . . . . . . . . . . . . . . . . . .
11
13
2.2.1
15
2.2.2
16
2.2.3
Manipulao de vetores . . . . . . . . . . . . . . . . . . . . .
17
2.2.4
Funes polinomiais
. . . . . . . . . . . . . . . . . . . . . .
19
Representao grca . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.1
O comando plot . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.2
26
2.3.3
27
2.3.4
27
Controle de uxo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.4.1
Declarao if . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.4.2
Lao while . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.4.3
Lao for . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.4.4
A funo nd . . . . . . . . . . . . . . . . . . . . . . . . . .
36
2.5
Xcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
2.6
Comentrios nais . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
2.4
3 Modelagem e Identicao
3.1
45
Fundamentos tericos . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.1.1
46
3.1.2
Ajuste de um conjunto de p-pares cartesianos por um polinmio utilizando o mtodo dos mnimos quadrados . . . . . . .
49
3.1.3
52
3.1.4
3.1.5
3.1.6
53
55
Identicao dos parmetros K e da funo de transferncia de primeira ordem de um SLIT utilizando diagrama de
mdulo de Bode . . . . . . . . . . . . . . . . . . . . . . . . .
ii
58
3.2
61
3.3
64
3.3.1
64
3.3.2
Identicao de Kt . . . . . . . . . . . . . . . . . . . . . . .
64
3.3.3
Identicao de Ka e . . . . . . . . . . . . . . . . . . . . .
66
67
3.4
3.4.1
3.4.2
68
68
Validao do modelo . . . . . . . . . . . . . . . . . . . . . . . . . .
70
3.4.3
3.5
Fundamentos tericos . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1
4.2
4.3
73
74
74
4.1.2
Sensibilidade . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.1.3
Complementos
. . . . . . . . . . . . . . . . . . . . . . . . .
81
83
4.2.1
84
4.2.2
85
Comentrios nais . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
iii
5 Implementao do controlador
5.1
5.2
89
Amplicadores Operacionais . . . . . . . . . . . . . . . . . . . . . .
90
5.1.1
Conceitos bsicos . . . . . . . . . . . . . . . . . . . . . . . .
90
5.1.2
Conguraes bsicas . . . . . . . . . . . . . . . . . . . . . .
91
99
5.2.1
5.2.2
5.2.3
5.3
5.4
iv
Captulo 1
Introduo
Um projeto de um sistema de controle compreende, de uma maneira geral, as seguintes etapas [1,2]:
1. Modelagem/identicao do sistema a ser controlado;
2. Projeto de um controlador que satisfaa as especicaes de desempenho e
estabilidade relativa exigidas;
3. Simulao utilizando computadores digitais;
4. Implementao do controlador no sistema real.
Note que as fases acima podem vir a constituir um ciclo com diversas iteraes,
uma vez que durante a modelagem do sistema a ser controlado (planta), vrias
hipteses simplicadoras como, por exemplo, linearidade so feitas. Assim, ao se
implementar um sistema de controle utilizando-se um controlador projetado a partir
de um certo modelo matemtico, o sistema real pode vir a ter um comportamento
diferente daquele inicialmente previsto na simulao, isto , as especicaes de
desempenho/estabilidade podem no ser satisfeitas quando da implementao do
controlador no sistema real, embora tivessem sido plenamente vericadas nas simulaes. Neste caso, torna-se necessrio projetar um novo controlador ou at
mesmo desenvolver um novo modelo matemtico para a planta. Outro aspecto a
ser observado que, se durante a etapa de projeto/simulao as especicaes de
desempenho/estabilidade no forem atendidas para um determinado compensador
com uma certa estrutura (controlador PI, por exemplo), uma nova estrutura para
o controlador ou at mesmo uma nova metodologia de projeto deve ser ado1
Captulo 1.
Introduo
Ra
va (t)
La
vt (t)
Figura 1.1: Circuito eltrico equivalente para o motor CC com sensor de velocidade
(tacmetro).
3
programas computacionais tais como o SCILAB [3]. Em nosso projeto utilizaremos o SCILAB como ferramenta auxiliar de projeto e, em particular, uma de suas
ferramentas, o XCOS, que ser importante na simulao do sistema projetado, na
gerao de sinais a serem aplicados no motor CC e na aquisio de sinais necessrios
provenientes do motor e do sistema de controle projetado. Uma breve introduo
programao em ambiente SCILAB ser apresentada no captulo 2. No captulo 3
ser desenvolvido um modelo matemtico para a planta e em seguida os parmetros
da funo de transferncia do sistema sero identicados utilizando-se mtodos de
resposta ao degrau e de resposta em frequncia. No captulo 4 ser feito o projeto de um sistema de controle de velocidade para o motor CC cujos parmetros
foram determinados de acordo com o captulo anterior. Sero tambm realizadas
simulaes com o objetivo no s de ilustrar os benefcios da realimentao como
tambm vericar o desempenho esperado do sistema com o controlador projetado.
Finalmente, no captulo 5 ser feita a implementao do controlador de velocidade
desenvolvido no captulo 4.
importante ressaltar que a abordagem aqui apresentada, embora aplicada a
um sistema especco, pode ser utilizada no projeto de sistemas de controle realimentado para outros sistemas fsicos. Assim sendo, caso o aluno venha a se deparar
com um processo diferente daquele que estamos considerando neste laboratrio,
poder seguir os mesmos passos que descritos neste laboratrio para a soluo do
problema em questo.
Captulo 1.
Introduo
Captulo 2
Programando em SCILAB
O SCILAB um software cientco de acesso livre para computao numrica semelhante ao Matlab que fornece um poderoso ambiente computacional aberto para
aplicaes cientcas. Alm da possibilidade de ser livremente utilizado, uma das
principais razes do sucesso da programao em ambiente SCILAB nos meios cientcos certamente a possibilidade que o usurio tem de manipular matrizes,
vetores, polinmios e diversas funes matemticas de forma idntica a que est
acostumado a fazer no dia-a-dia. Para tanto, o SCILAB no s dispe de funes
pr-denidas como tambm permite que o usurio desenvolva suas prprias funes.
Isto fez com que essa linguagem crescesse, uma vez que mais e mais funes foram
desenvolvidas, aumentando cada vez mais o seu potencial e a sua aplicabilidade a
diversos campos da cincia.
No projeto de sistemas de controle, o SCILAB tambm uma poderosa ferramenta. Alm de realizar clculos que, em geral, so longos, tediosos e com grande
probabilidade de ocorrncia de erro quando realizados pelo ser humano, o SCILAB
tem uma excelente interface grca que auxilia o engenheiro de controle a vericar se
o sistema compensado com o controlador projetado satisfaz as especicaes de projeto. Outro aliado importante do engenheiro de controle o programa XCOS, que
faz simulaes de sistemas lineares e no-lineares, discretos e contnuos no tempo.
Quando se dispe de uma placa de converso analgica/digital e digital/analgica,
pode-se estabelecer uma comunicao entre os diagramas de blocos desenvolvidos
no Xcos e a planta real, permitindo, assim, que sinais gerados no Xcos sejam aplica5
Captulo 2.
Programando em SCILAB
2.1
Modos de programao
Programando em SCILAB
Captulo 2.
Exemplo 2.1
de
variveis.
a=2
b=5
exibida na tela.
c <enter>
<enter>.
Por exemplo:
c = 7.
2.1
Modos de programao
Exemplo 2.2
Realize as operaes a seguir no SCILAB, observando ao nal de cada uma delas
os valores das variveis no Workspace.
1. Dena trs variveis
a, b
da seguinte forma:
c=a*b
2. Salve as variveis no arquivo
3. Salve somente as variveis
4. Apague a varivel
aula1v
a, b
no arquivo
aula1ab
do seu Workspace
aula1ab
para
b=2*b
do arquivo
aula1v
do arquivo
aula1v,
9. Repita as operaes 5, 6 e 7
10. Carregue somente a varivel
renomeando-a para
10
Captulo 2.
Programando em SCILAB
Exemplo 2.3
Suponha que no arquivo
seq1.sci,
c=[1:2:10];d=[2:2:10];
e=c0 ;f=c0 *d;g=c*d0 ;
h=c.*d;l=c./d;
Ao se digitar, na janela de comandos do SCILAB,
exec('seq1') <enter>
o programa SCILAB ento procura no diretrio de trabalho por um arquivo de comandos de nome
seq1.sci.
seq1.sci,
sagem
seq1.sci
2.1
Modos de programao
11
Exemplo 2.4
function n=pares(N)
n=0;
for i=1:N
if modulo(i,2)==0
n=n+1;
end
end
endfunction
A partir da execuo deste script, a funo pares pode ser executada normal-
mente, como se fosse um comando interno do Scilab. Caso se tenha uma relao
direta entre o output e os inputs, mais conveniente fazer uso da funo de.
Exemplo 2.5
def f (0 r = quadr(a, b, c)0 ,0 r = [(1/(2 a) (b + sqrt(b2 4 a c))); (1/(2 a)
(b sqrt(b2 4 a c)))]0 );
>quadr(1,-5,6)
ans =
3.
2.
A denio anterior retorna as razes de uma equao quadrtica em funo dos
coecientes.
O comando de requer duas strings: o escopo da funo (r=quadr(a,b,c)) e a
relao entre o output e os inputs.
12
Captulo 2.
Programando em SCILAB
Exemplo 2.6
Exemplo 2.7
2) de um vetor
x = [ x1 x2 . . . xn ]t .
q
k x k2 = x21 + x22 + + x2n = (xt x)1/2
A funo que calcula
k x k2
(2.1)
x.
Se
norma2
e a sada um
esta funo ser editada, ento esse arquivo poderia ter o contedo mostrado na
gura 2.2.
2.2
13
faz com que SCILAB execute a funo norma2 para o vetor x, armazenando na
varivel y o valor 3. Verique!
Para que o resultado da funo acima seja realmente a norma euclideana do
vetor x, x deve ser um vetor coluna. Caso contrrio x0 *x ser uma matriz e a sada
y ser uma matriz m m cujos elementos so as razes quadradas de xi xj , onde xi e
xj denotam as componentes i e j do vetor x. Uma outra particularidade da funo
acima o uso do comando sqrt, que uma funo pr-denida pelo SCILAB.
Em um arquivo de funo podem ser usadas outras funes quer sejam denadas
anteriormente pelo usurio ou pr-denidas pelo SCILAB. Essas ltimas permitem
a manipulao de matrizes, vetores, polinmios e outras funes matemticas de
uma forma robusta, isto por algoritmos que no so susceptveis a problemas de
mau condicionamentos.
Na seo seguinte sero apresentadas algumas funes pr-denidas pelo SCILAB. Essas funes foram escolhidas tendo em vista sua importncia no desenvolvimento de programas para o projeto de sistemas de controle.
a(1,1)=1;a(1,2)=2.2;a(1,3)=3; <enter>
a(2,1)=4.6;a(2,2)=5;a(2,3)=6; <enter>
14
Captulo 2.
Programando em SCILAB
Entrando com os elementos da matriz entre colchetes ([ ]), sendo os elementos de uma mesmas linha separados por vrgula (,) ou espaos em branco e as
linhas da matriz por ponto-e-vrgula (;):
(ii)
a=[1,2.2,3;4.6,5,6] <enter>
a=[1 2.2 3;4.6 5 6] <enter>
Deve-se tomar o cuidado para, no caso de nmeros com parte decimal, separar a
parte inteira da parte decimal usando ponto (.);
O acesso a qualquer elemento de uma matriz que tenha sido anteriormente denida, e que ainda esteja armazenada no espao de trabalho, feito de forma
semelhante, isto , fornecendo-se a posio do elemento desejado. Suponha, ento,
que os elementos de uma matriz M : p q tenham sido armazenados na varivel m.
(i) Para se ter acesso ao elemento (i, j) de m faz-se m(i,j). Por exemplo, para
modicar o elemtno (1, 3) da varivel a, acima, fazendo-o igual a 7, basta digitar:
a(1,3)=7 <enter>
Para se armazenar o elemento (1, 2) na varivel x, faz-se:
x = a(1,2) <enter>
(ii) Fazendo-se m(vetorlinha,vetorcoluna) forma-se uma submatriz de uma
dada matriz m, formada pelos elementos comuns s linhas cujos ndices so dados no
vetor vetorlinha e s colunas indicadas pelas componentes do vetor vetorcoluna.
Por exemplo, para se tomar os elementos da interseo das linhas 1 e 2 e das colunas
2 e 3 de a e armazen-las em x, deve-se fazer:
x = a([1 2],[2 3]) <enter>
(iii) Para ter acesso coluna j da matriz m faz-se m(:,j). Por exemplo, para
atribuir a terceira coluna da matriz a, acima, varivel x, faz-se:
x = a(:,j) <enter>
(iv) Analogamente, a coluna i de uma matriz m pode ser acessada fazendo-se
m(i,:). Por exemplo, suponha que se queira armazenar a linha 2 da matriz a,
acima, em x. Para tanto, deve-se fazer
x = a(i,:) <enter>
Algumas matrizes no requerem que o usurio entre com todos os seus elementos.
So elas: as matrizes identidade e diagonal, a matriz cujos elementos so todos iguais
a 1 ou zero. A atribuio dessas matrizes a variveis feita da seguinte forma:
2.2
15
A=
a11
a21
..
.
a12
a22
..
.
. . . a1n
. . . a2n
..
.
e B=
..
..
..
.
.
.
bp1 bp2 . . . bpq
16
Captulo 2.
Programando em SCILAB
2.2
17
v(1,1)=1;v(1,2)=2.5;v(1,3)=7; <enter>
(1.ii) v=[1 2.5 7]; <enter>
(1.iii) v=[1,2.5,7]; <enter>
Caso se tratasse de um vetor coluna, (w = v t ), poder-se-ia denir uma varivel
w como se segue:
(2.i) w(1,1)=1;w(2,1)=2.5;w(3,1)=7; <enter>
0
(2.ii) w=[1 2.5 7] ; <enter>
(2.iii) w=[1;2.5;7]; <enter>
Apesar de considerar todas as variveis como sendo matrizes, o SCILAB capaz
de reconhecer quando se trata de um vetor. Para isso, basta que uma das dimenses
seja igual a 1 ou que, ao se denir o vetor, apenas uma das dimenses seja dada.
Neste ltimo caso, o SCILAB armazenar o vetor como sendo um vetor linha. Desta
forma, para se denir os vetores v e w, acima, poder-se-ia substituir as intrues
(1.i) e (2.i) por:
v(1)=1;v(2)=2.5;v(3)=7;w=v0 ; <enter>.
Outro aspecto importante na denio de um vetor quando as componentes
formam uma sequncia. Por exemplo, para armazenar a sequncia
(1.i)
fn =
a1 a1 + r a1 + 2r . . . an
18
Captulo 2.
Programando em SCILAB
x1 x2 . . . xn
y1
y2
y = ..
.
ym
x =
vetores de dimenses n e m, respectivamente, e suponha que x e y estejam armazenados nas variveis x e y. Os seguintes comandos so especialmente usados na
manipulao de vetores:
(i) length(x) e length(y) retornam as dimenses dos vetores x e y (n e m,
respectivamente);
(ii) norm(x,p) retorna a norma-p do vetor x (kxkp ). Deve ser ressaltado que
a funo norm permite que o vetor, cuja norma-p se deseja calcular, seja linha ou
coluna. Lembre-se de que, a norma-p de um vetor x denida como
n
X
kxkp = (
| xi |p )1/p
i=1
e, portanto:
kxk1 =
n
X
| xi |
i=1
n
X
kxk2 = (
| xi |2 )1/2
i=1
2.2
19
xn xn1 . . . x2 x1
ym
ym1
..
v ip = .
y2
y1
hip =
Observao 2.1
x. Isso pode ser feito de duas formas: a primeira, que utiliza a funo length, isto ,
x(length(x)), e a segunda que utiliza a palavra reservada end, isto , x(end). Por
exemplo, suponha que tenha sido denido o vetor x=[1 3 5 9 -2]. O comando
y=[3 x(end)] <enter>
3 2 . Por outro lado, o comando
faz com que o SCILAB crie o vetor y =
z=[3 x(2:end)] <enter>
3 3 5 9 2
cria o vetor y =
20
Captulo 2.
Programando em SCILAB
Exemplo 2.8
G(s) =
s2
0, 6618
.
+ 1, 0069s + 0, 6618
20s.
t=[0:0.1:20]; <enter>
O vetor y obtido usando-se a funo csim que pertence caixa de ferramentas de
controle (control toolbox). A funo step calcula a resposta ao degrau de um sistema, sendo conhecida a funo de transferncia do sistema (basta usar o comando
2.2
21
syslin para um polinmio racional. O segundo argumento da funo csim o vetor contendo os instantes de simulao. As linhas de comando seguintes permitem
obter y e tambm o tempo de pico (tp), o percentual de ultrapassagem (po), o valor
mximo de y (ymax) e o valor de estado permanente de y(t) (yinf):
s=%s;
G=syslin('c',(0.6618)/(s2+1.0069s+0.6618));<enter>
y = csim( 'step', t, G ) ;<enter>
[tp,po,ymax,yinf]=indices(t,y); <enter>
22
Programando em SCILAB
Captulo 2.
importante observar que quando o intervalo de simulao no for sucientemente grande, o valor de estado permanente yinf poder no ser o correto, isto
, igual ao valor de limt y(t). Portanto, o uso da funo indices somente faz
sentido quando se dispe da representao grca de t y ou ento vericando-se
o vetor y est, de fato, convergindo para o valor nal esperado.
Exemplo 2.9
A funo SCILAB cujo cdigo est listado na gura 2.5 pode ser
G(s) =
0 1 . . . q , no qual
para as quais desejamos calcular G(jw). Os
parmetros de entrada so a funo de transferncia G(s), e o vetor w, cujas componentes so as frequncias i , i = 0, 1, . . . , q .
frequncias
2.2
23
T (s) =
s2
20
.
+ 3s + 5
Para tanto, o primeiro passo denir um vetor w contendo as frequncias nas quais
se deseja calcular T (j). Supondo que a menor frequncia seja 0 = 0 e a maior
seja igual a f = 100. Utilizando as seguintes linhas de comando:
G=syslin('c',(20)/(s2+3*s+5));w=[0:1:100];
tjw=respfreq(G,w);plot(w,tjw) <enter>
obtm-se a resposta em frequncia de T (s) para os pontos considerados, cuja representao grca dada na gura 6.
Nas baixas frequncias a representao grca grosseira. Isto se deve ao fato
de que, como T (j) varia muito rapidamente nessas frequncias, os pontos imagens
estaro bastante separados uns dos outros, fazendo com que as retas que os ligam
sejam mais ressaltadas. Este problema no ocorrer se o vetor w for denido usando
o comando logspace, cuja forma geral logspace(exp1,exp2,n). Este comando,
cria um vetor de n elementos espaados logaritmicamente, cujo primeiro elemento
10exp1 e o ltimo 10exp2 . Quando n for omitido, o comando acima criar um vetor
composto de 50 elementos. Assim sendo, se substituirmos a linha de comandos
acima por
n=20;d=[1 3 5];w=logspace(-2,2,100);
tjw=respfreq(n,d,w);plot(tjw) <enter>
24
Captulo 2.
Programando em SCILAB
2.3
Representao grca
25
plot(x,y,0 <cor><forma>0 )
em que <cor> dene a cor usada na representao grca (conforme tabela 2.1(a))
e <forma> dene como o ponto ser representado, isto se ser usado um ponto,
crculo, um 'x', uma cruz ou um asteriscos, de acordo com as primeiras cinco linhas
da tabela 2.1(b).
Tabela 2.1: Cores usadas para representao grca em SCILAB (a); formas de se
representar pontos e curvas em SCILAB (b)
(b)
(a)
Cor
Amarelo
Magenta
Azul claro
Vermelho
Verde
Azul escuro
Branco
Preto
Smbolo
y
m
c
r
g
b
w
k
Forma
Ponto
Crculo
x
Cruz
Asteriscos
Linha contnua
Linha pontilhada
Linha tracejada
Linha trao-pontilhada
Smbolo
.
o
x
+
*
:
--.
26
Captulo 2.
Programando em SCILAB
2.3
Representao grca
27
t=[0:2*pi/100:2*pi]; <enter>
y=sin(t); clf(); z=cos(t); <enter>
Quando o grco possui mais de uma curva , v-se que, embora o usurio no
tenha denido nenhuma cor para as abscissas y e z, o SCILAB utiliza o azul para
representar os dois (preto no caso do comando plot2d. De fato, deal quando se
usa do comando plot com mltiplas entradas, denir <cor> e <forma> para cada
curva, para uma melhor visualizao utilizando a tabela 2.1(a)).
subplot(m,n,k)
e gera uma matriz de grcos de dimenso m n, e faz com que todos os comandos
associados representao grca tenham efeito somente sobre o grco da posio
k . Esta posio denida como 1 para o grco correspondente posio (1, 1)
da matriz, 2 para o grco da posio (1, 2), n para o grco da posio (1, n),
n + 1 para o grco da posio (2, 1) da matriz e assim por diante. Por exemplo,
para se representar as duas funo do exemplo 2.10 em dois grcos diferentes, um
situado no topo da gura (y(t) = Sen (t)) e o outro na parte inferior da gura
(z(t) = Cos (t)) procede-se da seguinte forma:
subplot(2,1,1);plot(t,y) <enter>
subplot(2,1,2);plot(t,z) <enter>
28
Captulo 2.
Programando em SCILAB
Figura 2.7: Diagramas de Bode para a funo de transferncia G(s) = 1/(s2 +2s+4)
2.3
Representao grca
Exemplo 2.10
29
Soluo:
Denominemos
diagbode
G,
As sadas sero
gjwdb
fasegjw,
w.
diagbode
que
G(j)
w.
G(s) = 1/(s2 +
30
nos vetores
Captulo 2.
gjwdb
fasegjw
Programando em SCILAB
2.4.1 Declarao if
A forma geral para o uso da declarao if a seguinte:
if <expresso booleana>
<sequncia de comandos 1>
else
<sequncia de comandos 2>
end
A declarao if funciona da seguinte forma: quando a <expresso booleana> for
verdadeira, as linhas de comandos denidas em <sequncia de comandos 1> sero
executadas e, caso contrrio, sero executadas os comandos denidos na <sequncia
de comandos 2>. Uma forma mais simples da declarao if :
if <expresso booleana>
<sequncia de comandos>
end
Neste caso, a <sequncia de comandos> ser executada somente quando a <expresso
booleana> for verdadeira.
O resultado da <expresso booleana> (verdadeiro ou falso) denido a partir
de operadores lgicos &(e), |(ou) e ~(no), cujas tabelas verdades so mostradas na
tabela 2.2 e dos operadores relacionais: < (menor que), > (maior que), =< (menor
ou igual), >= (maior ou igual), == (igual) e = (diferente).
Usando a declarao if then else, estamos em condies melhorar a entrada
de dados para o usurio na funo norma2 e tambm corrigir o erro da funo
2.4
Controle de uxo
&
V
F
V
V
F
(a)
31
F
F
F
|
V
F
V
V
V
~
V
F
F
V
F
(b)
V
F
V
(b)
Tabela 2.2: Tabelas verdades para os operadores lgicos &(e), |(ou) e (no)
Exemplo 2.11
norma2
correto quando a entrada for um vetor coluna. Para que o usurio possa utiliz-lo
tambm para calcular a norma euclideana de um vetor linha, o arquivo deve ter
linhas que veriquem se o vetor do tipo linha ou coluna. Uma outra decincia
da funo
norma2
if,
32
Captulo 2.
Programando em SCILAB
v=
1
1
e
w=
1 2
3 4
1 1
e para a matriz
A=
????
.
2.4
Controle de uxo
33
i = 1
Deseja continuar (sim/nao)?
e o programa permanecer parado at que o usurio digite sim, para continuar e
nao, para parar denitivamente a execuo do programa. Isto se deve ao comando
input, que permite que o usurio atribua um valor a uma varivel. A forma geral
do comando input
<varivel> = input(0 <texto>0 );
quando a <varivel> numrica ou
<varivel> = input(0 <texto>0 ,0 s0 );
quando a <varivel> do tipo cadeia de caracteres. Observe, no exemplo acima
que, como a expresso booleana resp==0 sim0 , o programa, na verdade, interromper sua execuo sempre o usurio digitar qualquer expresso que no seja sim.
34
Captulo 2.
Programando em SCILAB
if <incremento> > 0
while <contador> <= <valor final>
<sequncia de comandos>
<contador> = <contador> + <incremento>
end
else
while <contador> >= <valor final>
<sequncia de comandos>
<contador> = <contador> + <incremento>
end
end
Exemplo 2.12
= Ax(t) + bu(t)
x(t)
x(t) Rn1
o vetor de estados,
u(t)
xf .
Para tanto
C=
tem posto igual a
n.
b Ab A2 b . . . An1 b
listado na gure 2.10 pode ser utilizado para vericar se o sistema controlvel ou
no.
Agora verique se os seguintes sistemas so controlveis:
(a)
x(t)
1 2
3 4
x(t) +
1
0
u(t)
2.4
Controle de uxo
35
36
Captulo 2.
Programando em SCILAB
(b)
x(t)
1 2
0 4
x(t) +
2
0
u(t)
yss=y(length(y));ind=find(y>yss);
// instante de tempo imediatamente posterior a tr
trp=t(ind(1));yrp=y(ind(1));
// instante de tempo imediatamente anterior ou igual a ts
tra=t(ind(1)-1);yra=y(ind(1)-1);
// calculo do tempo de subida (por interpolao)
tr=tra+(trp-tra)*(yss-yra)/(yrp-yra)
Use os vetores y e t do exemplo 2.8 para vericar se os comandos acima esto, de
fato, levando a uma correta determinao do tempo de subida da resposta.
2.5 Xcos
Para simular sistemas de controle, normalmente utiliza-se o Xcos, que uma ferramenta do Scilab. Para abrir o Xcos no SCILAB, bastar clicar no icone aplicativos
da barra de ferramentas. Feito isso, aberta a janela da biblioteca do Xcos representada na gura 2.11.
Xcos
2.5
37
Exemplo 2.13
so:
K = 1.36.
aplicado em t = 1.
e
Para criar um arquivo para simulao no Xcos, o primeiro passo criar um ar-
janela em que podemos ajustar os parmetros de cada bloco. Diferentemente de outros programas, para qualquer simulao necessria a presena do
Clock
que tem
TOWS.
entradas: uma vinda do clock e outra da varivel da simulao que se quer enviar
38
Captulo 2.
Programando em SCILAB
plot
e mostrado na
Scope,
lao.
Os parmetros de simulao so congurados na janela mostrada na gura 2.14,
que aberta ao selecionar a opo
Cada simulao Xcos tem parmetros para denir o tempo de incio, tempo nal
e tolerncias da simulao.
Play
Exerccios propostos
39
[htb]
(a)
(b)
Exerccios propostos
1. Entre com a matriz
Z=
e execute os comandos
(i)
1 j 1 + 2j 2 j
2 1 + 2j
3j
(vi)
da seo 2.2.2.
2. Para o vetor
x=
execute os comandos
(vii)
(ix)
1 10 7 0.1
da seo 2.2.2.
G(s) =
n(s)
d(s)
40
Captulo 2.
Programando em SCILAB
Exerccios propostos
41
j
6
j1
1 6
1 -
j1
Figura 2.15: Contorno para o exerccio 2.4
Escreva arquivos de funes que permitem calcular as seguintes funes de
transferncias para o sistema cujo diagrama de blocos est representado na
gura 2.16: (a) TRY (s) = Y (s)/R(s), (b) TRE (s) = E(s)/R(s) e (c) TRU (s) =
U (s)/R(s)
Nota: a funo SCILAB que calcula a funo de transferncia TRY (s), poderia
ser denida como [T] = try(G,K).
R(s) +
E(s)
K(s)
U (s)
G(s)
Y (s)
42
Captulo 2.
Programando em SCILAB
Q(s) = G(s)K(s) = K
nQ (s)
,
dQ (s)
Exerccios propostos
43
yn
..
.
y3
yn
..
.
y3
y2
y2
y1
y1
x1
x2
x3 xn
y = x
x1
x2
(a)
x3 xn
(b)
Figura 2.17: Representao dos pontos (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn ) e da reta ajustada y = x referentes ao exerccio 2.11.
D(s)
K
R(s)
+
K(s)
Kt
s+1
Y (s)
44
Captulo 2.
Programando em SCILAB
0 1 . . . q
0 1 . . . q
h =
H(s) =
b0 sm + b1 sm1 + . . . + bm1 s + bm
b(s)
,
= n
a(s)
s + a1 sn1 + . . . + an1 s + an
r(t) = 12u0 (t) e d(t) = 0 e K(s) = 5.4/s, onde u0 (t) representa um degrau
unitrio aplicado no instante t = 0.
(a)
(b)
(c)
Reptita os itens
Nota:
2s.
(a)
(b)
Captulo 3
Modelagem e identicao dos
parmetros da funo de
transferncia motor CC
Neste captulo iremos obter um modelo matemtico para o motor CC controlado
pela armadura. O modelo adotado ser o de um sistema linear descrito por uma
funo de transferncia cuja entrada a tenso de armadura e cuja sada a velocidade angular. Supor que o sistema como linear representa uma restrio muito forte
pois exige que este tenha um comportamento linear em todas as faixas de operao.
Na prtica, contudo, o que ocorre que os sistemas tm, em geral, comportamento
aproximadamente linear em faixas de valores da varivel de entrada. Assim sendo,
torna-se necessrio determinar experimentalmente uma faixa de operao na qual
o comportamento do motor possa ser considerado linear. Uma importante ferramenta matemtica utilizada na determinao da regio linear o chamado mtodo
dos mnimos quadrados, uma vez que permite ajustar um conjunto de pontos por
uma funo polinomial p(x) cujo grau deve ser arbitrado pelo projetista. Aps a
determinao da regio linear ser possvel proceder identicao dos parmetros
da funo de transferncia. Para tanto, iremos realizar experimentos baseados tanto
na resposta ao degrau como na resposta em frequncia.
O restante desse captulo est estruturado da seguinte forma. Na seo 3.1
vamos apresentar uma breve reviso dos principais fundamentos tericos que sero
utilizados no captulo. Em seguida, na seo 3.2 iremos desenvolver o modelo
45
46
Captulo 3.
Modelagem e Identicao
Ax = b,
(3.1)
b = Ax,
(3.2)
e = b b.
(3.3)
e dena
Considere o seguinte problema: encontre x tal que kek22 seja mnima. Note que,
se existir x tal que Ax = b ento kek22 = 0, o que implica que mesmo no caso em que
o sistema de equaes (3.1) tem soluo, o mtodo dos mnimos quadrados tambm
levar a essa soluo.
A partir das equaes (3.2) e (3.3) tem-se:
(3.4)
kek22 = xt At Ax 2bt Ax + bt b.
(3.5)
3.1
Fundamentos tericos
47
min kek22 ,
xRn
(3.6)
y
x1
y
y
x
2 .
(3.7)
=
x
...
xn
De acordo com a notao introduzida na equao (3.7), tem-se que:
t
n
(a) Se y = b x, em que b R , ento
2.
Prova:
e portanto:
(b)
Seja bt =
b1 b2
y
= b.
(3.8)
x
. . . bn . Ento y = bt x = b1 x1 + b2 x2 + . . . + bn xn ,
y
x1
y
x2
..
.
b1
b2
y
= .
=
= b.
..
x
bn
y
xn
t
Se y = x Hx, onde H uma matriz simtrica, isto H t = H , ento
y
= 2Hx.
x
Prova:
(3.9)
(3.10)
48
Captulo 3.
(i)
Modelagem e Identicao
y
dy
=
= 2h11 x1 = 2Hx.
x
dx1
(3.12)
h11
h12
h1n
h1,n+1
h12
h22
h2n
h2,n+1
.
.
.
.
.
.
.
.
(3.13)
H=
.
.
.
.
.
h1n
h2,n
hnn
hn,n+1
h1,n+1 h2,n+1 hn,n+1 hn+1,n+1
(ii)
Denindo
Hn =
htn+1 =
xn
h11
h12
..
.
h12
h22
..
.
h1n
h2n
..
.
h1n h2,n
hnn
(3.14)
ento y = xt Hx equivalente a:
t
Hn
hn+1
xn
xn xn+1
y =
htn+1 hn+1,n+1
xn+1
t
xn
t
t
xn Hn + xn+1 hn+1 xn hn+1 + xn+1 hn+1,n+1
=
xn+1
(3.15)
Note que para a obteno da ltima expresso usamos o fato de que como xtn hn+1
R ento xtn hn+1 = (xtn hn+1 )t = htn+1 xn .
3.1
Fundamentos tericos
49
y
y
2Hn xn + 2xn+1 hn+1
xn
= y =
2htn+1 xn + 2hn+1,n+1 xn+1
x
x
n+1
xn
Hn
hn+1
= 2
= 2Hx.
htn+1 hn+1,n+1
xn+1
(3.16)
Vamos retornar ao problema de otimizao (3.6). Usando os resultados (3.8) e
(3.10), podemos escrever:
(3.17)
(3.18)
x = (At A)1 At b.
(3.19)
(3.20)
50
Captulo 3.
Modelagem e Identicao
y1 = a0 xn1 + a1 xn1
+ . . . + an1 x1 + an
1
(3.21)
+ . . . + an1 x2 + an
y2 = a0 xn2 + a1 xn1
2
..
.
yp = a0 xnp + a1 xn1
+ . . . + an1 xp + an
p
fcil vericar que a equao (3.21) pode ser escrita na seguinte forma matricial:
xn1
xn2
x1n1
x2n1
= ..
..
.
.
n
n1
xp xp
yp
y1
y2
..
.
x1
x2
..
.
xp
1
1
..
.
a0
a1
..
.
a0
a1
..
.
an1
1
an
(3.22)
Denindo
b=
xn1
xn2
x1n1
x2n1
, A = ..
..
.
.
n
n1
xp xp
yp
y1
y2
..
.
x1
x2
..
.
xp
1
1
..
.
ex=
an1
1
an
(3.23)
Ax = b.
(3.24)
x = (AT A)1 AT b
(3.25)
Note que se o ponto (0, 0) for um dos pontos a serem ajustados, ento o grco do
polinmio resultante deve passar pela origem. Dessa forma an = 0, isto , somente
3.1
Fundamentos tericos
51
os n primeiros parmetros devem ser encontrados. Nesse caso, fcil vericar que
a matriz A toma a seguinte forma:
xn1 x1n1 x1
xn xn1 x2
2
2
(3.26)
A = ..
..
..
.
.
.
xnp xpn1 xp
Em resumo, o ajuste de um conjunto de p pontos (x1 , y1 ), (x2 , y2 ), . . . , (xp , yp ),
por um polinmio de grau n, n << p, pode ser feito da seguinte forma:
Algoritmo 3.1
Entrada
do polinmio,
e o grau desejado
n.
(0, 0)
Forme a matriz
Calcule o vetor
Faa
x =
x
0
.
Fim
Sada
Forme a matriz
Calcule o vetor
Faa
Fim
Vetor
x = x.
x =
polinmio.
a0 a1
an
52
Captulo 3.
Modelagem e Identicao
f (t) = a0 +
(3.27)
n=1
sendo
a0
1
=
T
an =
bn =
2
T
2
T
t0 +T
f (t)dt
(3.28)
(3.29)
(3.30)
t0
Z t0 +T
t0
Z t0 +T
t0
f (t) = a0 +
cn sin(n0 t + n ),
(3.31)
n=1
Algoritmo 3.2
Entrada
3.1
Fundamentos tericos
53
p+1
pontos
denido
a0 = inttrap(t,ft)/T
Passo 3 Para
variando de 1 a
N,
calcular:
an = (2/T)*inttrap(t,(cos(2* *n)*t/T).*ft)
bn = (2/T)*inttrap(t,(sin(2* *n)*t/T).*ft)
Sada
G(s) =
Y (s)
,
U (s)
(3.32)
(3.33)
|G(jk )| =
Ym k
e G(jk ) = k k .
Umk
(3.34)
54
Captulo 3.
Modelagem e Identicao
Algoritmo 3.3
Passo 1 Selecione um nmero nito
de frequncias angulares
k , k = 1, 2, . . . , p.
de entrada e
dos sinais de
Passo 4 Calcule
(3.35)
(3.36)
sendo
C yk
Cuk
= yk uk
|G(jk )| =
k
(3.37)
(3.38)
3.1
Fundamentos tericos
55
3.1.5 Identicao dos parmetros K e da funo de transferncia de primeira ordem de um SLIT utilizando resposta ao degrau
Considere um SLIT com resposta ao degrau monotonicamente crescente com entrada u(t) e sada y(t). Uma das formas de se modelar esse sistema por meio de
uma funo de transferncia de primeira ordem
G(s) =
K
Y (s)
=
,
U (s)
s + 1
(3.39)
(3.40)
Determinao do parmetro K
Note, inicialmente que:
(3.41)
lim y(t) = KA = y .
Portanto:
y
.
(3.42)
A
Assim como no caso da resposta senoidal, na prtica, porm, o sinal de resposta
corrompido por rudos o que impede que valor de regime permanente de y(t) seja
determinado diretamente como na equao (3.42). Assim, o seguinte algoritmo deve
ser usado para a determinao do parmetro K .
K=
Algoritmo 3.4
(Determinao do parmetro
K)
resposta
y(t).
e faa a aquisio da
56
Captulo 3.
ts
Modelagem e Identicao
y
sendo
N
1 X
y(ti ),
=
N i=1
o nmero de pontos
K=
e calcule
y
.
A
Determinao do parmetro
A determinao do parmetro pode ser feita utilizando os seguintes mtodos:
1. Mtodo da rea
Considere a rea A0 na gura 3.1, cuja curva representa a resposta real y(t) de
um sistema que desejamos modelar de acordo com a funo de transferncia (3.39).
Note que A0 pode ser escrita como:
Z
[KA y(t)]dt.
A0 =
0
Substituindo y(t) na equao acima pela equao (3.40) e, aps manipulaes algbricas simples, obtm-se:
A0 = KA.
Assim, o seguinte algoritmo pode ser usado para a determinao do parmetro
Algoritmo 3.5
(Determinao do parmetro
resposta
e faa a aquisio da
y(t).
ts
3.1
Fundamentos tericos
57
y(t)
y1
A0
t
Figura 3.1: Resposta ao degrau monotonicamente crescente.
A0
utilizando a funo
Passo 4. Calcule
A0
.
y
y y(t)
que pode, ainda, ser reescrita da seguinte forma:
at = b,
(3.44)
(3.45)
em que
a=
e
b = b[y(t)] = ln
y
y y(t)
.
(3.46)
58
Captulo 3.
Modelagem e Identicao
Algoritmo 3.6
(Determinao do parmetro
ano)
Passo 1. Aplique ao sistema um degrau de amplitude
resposta
e fazer a aquisio da
y(t).
tr
tal que
y(tr ) < y
e isole os pontos
ti tr
t e b cujos i-simos elementos so, respectiva(ti , y(ti )), ti tr , foram obtidos no passo 4.
mente,
ti
b[y(ti )],
Passo 4. Calcule
em que
a=
tT b
,
ktk2
e, em seguida, determine
1
= .
a
Observao 3.1
por meio do
mtodo da tangente, que consiste na determinao da abscissa do ponto de interseo da reta tangente de maior coeciente angular curva de resposta ao degrau.
Esse mtodo no ser, contudo, aqui considerado por ser extremamente dependente
do traado da reta tangente e, portanto, muito susceptvel a erros.
3.1.6 Identicao dos parmetros K e da funo de transferncia de primeira ordem de um SLIT utilizando diagrama de mdulo de Bode
Uma outra maneira de se obter a funo de transferncia de um SLIT estvel
(3.47)
3.1
Fundamentos tericos
59
em que G(s) possui somente polos e zeros reais, utilizando as curvas de resposta em
frequncia. Nesse caso, ao invs de utilizar as curvas de mdulo e fase, |G(j)| e
G(j), utilizamos os diagramas de Bode de mdulo e fase, (log)|G(j)|dB e
(log)G(j), nos quais o eixo das abscissas representado em escala logartmica,
|G(j)|dB = 20 log |G(j)| e G(j) dada em graus. A grande vantagem de se
utilizar os diagramas de Bode que possvel determinar assntotas da curva de
mdulo cujas intersees determinam as frequncias de canto que correspondem aos
polos e zeros de G(s).
Considere novamente a equao (3.39) repetida abaixo:
G(s) =
Como
G(j) =
K
.
s + 1
(3.48)
K
K/
=
,
1 + j
1/ + j
|G(j)|dB = 20 log
K/
= 20 log(K/ ) 20 log |1/ + j|.
|1/ + j|
(3.49)
(3.51)
Com base no exposto acima, podemos propor o seguinte algoritmo para a obteno dos parmetros K e de um sistema de primeira ordem estvel a partir da
sua resposta em frequncia.
60
Captulo 3.
Modelagem e Identicao
Algoritmo 3.7
Entrada
(k , |G(jk )|), k = 1, 2, . . . , p,
Conjunto de pontos
obtidos utilizando o
algoritmo (3.3).
Passo 2 Ajuste os pontos de baixa frequncia por uma reta horizontal utilizando
Kdb.
Passo 3 Ajuste os pontos denidos pelos vetores
gjwdb
lizando o mtodo dos mnimos quadrados cujo melhor grau deve ser determinado por tentativa-e-erro da seguinte forma:
3.1 Dena um vetor
ww
grau
n0
n0
e ajuste os pontos
p .
por um polinmio
de
3.3 Calcule
nido
gjwdb
3.4 Se a curva determinada no passo 3.3 for uma boa aproximao para os
Kdb - 3.
wc.
Passo 5 Calcule
K = 10Kdb/20
Saida
Ganho
e constante de tempo
= wc.
3.2
61
ia (t)
Ra
La
(t)
va (t)
e(t)
f
Sabe-se que o torque produzido pelo motor, tm (t), proporcional ao uxo magntico no entreferro ((t)) e corrente de armadura (ia (t)), isto ,
(3.52)
va (t) = Ra ia (t) + La
d
ia (t) + e(t)
dt
(3.53)
e(t) = Ke (t)
(3.54)
62
Captulo 3.
Modelagem e Identicao
Tm (s) = Km Ia (s)
W (s) =
Km /(Ra f )
Va (s)
(e s + 1)(m s + 1) + Ke Km /(Ra f )
(e s + 1)/f
Td (s)
(e s + 1)(m s + 1) + Ke Km /(Ra f )
(3.57)
W (s) =
Ka
Kd
Va (s)
Td (s)
s + 1
s + 1
(3.58)
3.2
63
La
va (t)
vt (t)
Figura 3.3: Circuito eltrico equivalente para o motor CC com sensor de velocidade
(tacmetro)
vt (t) = Kt (t),
onde Kt uma constante. Portanto, a relao entre Vt (s) e Va (s) pode ser expressa
pela seguinte equao:
Vt (s) =
Ka Kt
Va (s),
s + 1
(3.61)
Va (s)
Ka
s+1
W (s)
Kt
Vt (s)
64
Captulo 3.
Modelagem e Identicao
Algoritmo 3.8
Passo 1 Aplique uma tenso constante no terminal de armadura
Va
Va Vt
Vt ;
e mea o valor
p(Va )
p(Va )
de ordem desejada;
em relao a
Va .
3.3.2 Identicao de Kt
Para a determinao de Kt , observe a equao (3.60),
vt (t) = Kt (t).
(3.62)
3.3
65
A resposta do sistema entrada descrita em (3.63) pode ser obtida calculandose a transformada inversa de Laplace da equao (3.64). Procedendo desta forma
obtemos:
1
(3.65)
(t) = Ka Va (1 e t ), t 0
Quando t , a equao acima se reduz a (ver equao (3.41))
(3.66)
(t) = W = Ka Va ,
o que mostra que quando uma tenso de valor constante aplicada a um motor CC,
a velocidade angular em regime permanente tambm ser constante e proporcional
ao valor da tenso aplicada.
Portanto, retornando a determinar do ganho do tacmetro Kt , considere a equao (3.62), cujo valor de tenso, em estado permanente, para uma entrada igual ao
degrau de amplitude W dado por:
(3.67)
Vt = Kt W.
Isto sugere que a identicao dos parmetros de Kt pode ser feita pelo ajuste
dos pontos (Wi , Vti ) por uma reta passando pela origem, conforme a gura 3.5.
Portanto, basta um nico procedimento para obter tanto a regio linear de operao
e Kt .
Algoritmo 3.9
Passo 1 Excite o motor CC com tenses constantes e iguais a
calcule a regio
= Kt W )
66
Captulo 3.
Vtn
..
.
Vt3
Vt
Vtn
..
.
Vt3
Vt2
Vt2
Vt1
Vt1
Vt
W1
W2
W3 Wn
Modelagem e Identicao
Vt = Kt W
W1
(a)
W2
W3 Wn
(b)
Figura 3.5: Representao (a) cartesiana dos pontos (W1 , Vt1 ), (W2 , Vt2 ), . . .,
(Wn , Vtn ) e (b) da reta Vt = Kt W
3.3.3 Identicao de Ka e
Uma vez que se dispe da regio linear e do ganho Kt , o prximo passo a identicao do ganho Ka e da constante de tempo . Denindo K = Ka Kt , ento a equao (3.61) se torna idntica equao (3.39 em que Vt (s) = Y (s) e Va (s) = U (s).
Assim, para a determinao do parmetro Ka basta determinar o valor de K utilizando os algoritmos das sees 3.1.5 e 3.1.6. Os mesmos algoritmos podem ser
usados para a determinao do parmetro , conforme descrito a seguir:
1. Utilizando a resposta ao degrau
3.4
67
68
Captulo 3.
Modelagem e Identicao
Excite o motor com uma tenso de onda quadrada com dois estgios, um
de valor acima da regio linear e outro de aproximadamente 6, 7, 8V de amplitude.
Em seguida, armazene a resposta v( t) para cada caso.
3.
3.4
Va (V) sugerida
0,0
0,5
1,0
1,5
2,0
2,3
2,6
2,9
3,3
3,6
3,9
4,0
5,0
6,0
7,0
8,0
9,0
10,0
11,0
12,0
13,0
14,0
15,0
Va (V) medida
69
Vt (V) (rpm )
70
Captulo 3.
Modelagem e Identicao
Validao do modelo
3.5
71
ana. Caso o erro seja maior que 1%, deve-se, inicialmente, vericar se os resultados
obtidos nos ensaios de laboratrio foram de fato utilizados no clculo de Ka , Kt
e Ka Kt . Isto permitir que se encontre possveis discrepncias entre os valores
obtidos pelos trs mtodos, evitando que todos os experimentos realizados para a
determinao de Ka , Kt e K tenham que ser realizados novamente. Caso no tenha
sido encontrado qualquer erro de manipulao dos dados, o aluno deve retornar
ao laboratrio para realizar novamente aqueles experimentos cujos valores obtidos
inicialmente apresentam maiores discrepncias.
Excite o motor CC com um degrau de tenso de amplitude igual a 7V e faa
a aquisio dos sinais1 de entrada (va (t)) e de sada (vt (t)) e dos correspondentes
instantes de tempo (t).
2
de se esperar que as curvas obtidas no trabalho de simulao no sejam exatamente coincidentes com as curvas obtidas para o sistema real. Porm, para que o
1 Esta aquisio de dados pode ser feita utilizando-se um computador com placas de aquisio
de dados ou um osciloscpio digital com capacidade de armazenamento em disco.
72
Captulo 3.
Modelagem e Identicao
modelo adotado possa ser considerado satisfatrio, essas curvas devem ser bastante
prximas. Qualquer discrepncia mais acentuada pode desqualicar o experimento
de identicao ou at mesmo o modelo matemtico; por exemplo, levando necessidade de escolha de um modelo no-linear.
Captulo 4
Projeto do controlador de velocidade
Obtido um modelo matemtico para o sistema, o passo seguinte projetar um controlador que satisfaa as seguintes exigncias: (i) estabilidade; (ii) rastreamento
assinttico de um sinal de referncia (i.e. para uma dada velocidade, o motor deve,
em estado permanente, girar nessa velocidade); (iii) rejeio assinttica de perturbaes (i.e. quando uma carga for inserida nos terminais do gerador, o motor,
aps um `pequeno' transitrio, deve permanecer com a mesma rotao de antes
da introduo da carga); (iv) o sistema compensado no deve ter o seu desempenho comprometido por eventuais erros no modelo, cometidos durante a fase de
identicao, o que signica dizer que o sistema tem elevada robustez ou equivalentemente pouca sensibilidade a variaes nos parmetros da funo de transferncia
da planta) e, nalmente, (v) bom desempenho transitrio.
O objetivo deste captulo desenvolver o projeto de um controlador de velocidade para o grupo motor-gerador que satisfaa as condies (i) a (v) acima.
Como nalidade didtica, ser, inicialmente, considerada a possibilidade de se fazer
a compensao em malha aberta para, em seguida, projetar um sistema de controle realimentado. Esta abordagem ter a nalidade de ilustrar os benefcios da
realimentao num sistema de controle.
Este captulo est estruturado da seguinte forma: na seo 4.1 sero apresentados os fundamentos tericos necessrios para o projeto de um controlador que
rastreie assintoticamente um sinal de referncia, R(s), e rejeite (tambm assintoticamente) uma perturbao, D(s), conforme a gura 4.1. Outro tpico a ser abor73
74
Captulo 4.
R(s)
E(s)
+
K(s)
G(s)
Y (s)
G(s) =
nG (s)
nK (s)
e K(s) =
,
dG (s)
dK (s)
(4.1)
4.1
Fundamentos tericos
75
R(s) =
(s)
(s)
e D(s) =
,
(s)
(s)
(4.2)
(4.3)
e, conseqentemente:
Y (s) =
G(s)
G(s)K(s)
R(s)
D(s).
1 + G(s)K(s)
1 + G(s)K(s)
(4.4)
A partir da equao (4.4), pode-se observar que o sinal de sada Y (s) possui
duas componentes: (i) YR (s), que devida ao sinal de referncia R(s) e (ii) YD (s),
que se deve perturbao externa D(s). Portanto, Y (s) pode ser escrito como:
YR (s) =
G(s)K(s)
G(s)
R(s) e YD (s) =
D(s)
1 + G(s)K(s)
1 + G(s)K(s)
(4.5)
(4.6)
O rastreamento e a rejeio de perturbaes externas (assintoticamente) requerem que y(t) r(t) quando t , o que equivale a exigir que
lim yD (t) = 0
(4.7)
lim eR (t) = 0
(4.8)
(4.9)
e
t
onde
Os problemas do rastreamento assinttico de um sinal de referncia e da rejeio
assinttica de um sinal externo de perturbao (ambos de dinmicas conhecidas)
76
Captulo 4.
Teorema 4.1
Prova:
YD (s) =
nG (s)dK (s)
(s)
+
[nG (s)dK (s) + dG (S)dK (s)] (s) (s)
(4.12)
Note que
(4.13)
onde pC (s) denota o polinmio caracterstico de malha fechada. Como, por hiptese,
K(s) estabiliza G(s) ento pC (s) um polinmio de Hurwitz e, portanto,
s0
(4.14)
4.1
Fundamentos tericos
77
K(s) =
1
+ (s)
K(s)
(4.15)
onde K(s)
=n
K (s)/dK (s), n
K (s) e dK (s) sero escolhidos de tal forma que nG (s)
nK (s)+
+
Teorema 4.2
lim eR (t) = 0,
(4.16)
(4.17)
onde + (s) um polinmio formado com os zeros de (s) com parte real positiva
ou nula e (s) um polinmio qualquer.
78
Prova:
Captulo 4.
(4.18)
ER (s) =
dG (s)dK (s)
(s)
.
+
[nG (s)nK (s) + dG (s)dK (S)] (s) (s)
(4.19)
Como, por hiptese, G(s) estabiliza K(s), ento pc (s) = nG (s)nK (s) + dG (s)dK (s)
um polinmio de Hurwitz e, portanto,
(4.20)
K(s) =
1
+ (s)
K(s)
(4.21)
onde K(s)
=n
K (s)/dK (s), n
K (s) e dK (s) sero tais que nG (s)
nK (s)+dG (s)dK (s) + (s)
seja estvel.
Finalmente, note que os objetivos de rastreamento assinttico de um sinal de
referncia R(s) = (s)/[ (s) + (s)] e a rejeico assinttica de um sinal externo de
perturbao D(s) = (s)/[ + (s) (s)] sero, em geral, atingidos simultaneamente,
com um mesmo controlador, fazendo-se
K(s) =
1
mmc[ + (s), + (s)]
K(s)
(4.22)
4.1
Fundamentos tericos
79
onde mmc[ + (s), + (s)] denota o mnimo mltiplo comum de + (s) e + (s) e K(s)
=
n
K (s)/dK (s), com n
K (s) e dK (s) sendo calculados de forma que
pC (s) = nG (s)
nK (s) + dG (s)dK (s)mmc[ + (s), + (s)]
(4.23)
Exemplo 4.1:
1
(4.24)
K(s) = K(s)
s
K(s)
sendo calculado de tal sorte que o sistema realimentado seja estvel com bom
desempenho transitrio. Guarde bem este resultado! Ele ser importante quando
do projeto de um controlador de velocidade para o grupo motor-gerador.
4.1.2 Sensibilidade
A sensibilidade de um sistema est associada no manuteno do desempenho e
da estabilidade em presena de variaes nos parmetros da planta. Essas variaes so, em geral, devidas a: (i) erros de identicao da funo de transferncia
do sistema, uma vez que os valores dos parmetros, obtidos a partir da identicao, jamais representaro exatamente o sistema real e (ii) envelhecimento dos
componentes do sistema. Desta forma, importante analisar como o sistema ir
se comportar em presena de tais variaes (comumente denominadas de incertezas
no modelo), seja no que se refere ao desempenho do sistema compensado, ou com
relao manuteno da estabilidade.
A sensibilidade de um sistema em relao variao em um determinado elemento quanticada pela razo entre a variao percentual da funo de transferncia do sistema e a variao percentual da funo de transferncia do elemento
considerado, i.e.,
T (s)
100%
T (s)
T
SG (s) = G(s)
(4.25)
100%
G(s)
80
Captulo 4.
G(s) T (s)
.
(4.27)
T (s) G(s)
A reduo da sensibilidade do sistema variao dos parmetros da funo de
transferncia da planta uma das razes para se usar a realimentao. Este fato
ser evidenciado no exemplo seguinte.
SGT (s) =
Exemplo 4.2:
4.1
Fundamentos tericos
R(s)
81
K(s)
G(s)
Y (s)
(a)
R(s)
+
K(s)
G(s)
Y (s)
(b)
(a)
(b)
sistema reali-
4.1.3 Complementos
(a) Compensao em malha aberta
Suponha que se deseje fazer uma compensao em malha aberta conforme o diagrama de blocos da gura 4.3 e seja K(s) = Kp . Nessas condies:
(1) Para quais valores de Kp , o sistema ser estvel?
(2) Entre os valores de Kp que tornam o sistema estvel, encontre aquele que
faz com que o sistema tenha um erro de regime permanente nulo para uma entrada
igual ao degrau de amplitude Vr .
82
Captulo 4.
Ig
Kg
Vtr (s)
K(s)
Va(s)
Ka
1
s+1
Kt
Vt(s)
Ig
Vtr (s)
K(s)
Va(s)
K
Kt
s+1
Vt(s)
Para quais valores de KI , o sistema realimentado ser: (i) superamortecido; (ii) criticamente amortecido; (iii) sub-amortecido e (iv) subamortecido com
percentual menor ou igual a 5%.
(2)
4.2
83
s+z
z
1
K(s) = Kp
= Kp 1 +
= Kp 1 +
s
s
Ti s
(4.31)
vtr (t) =
Vr (V ), t 0
0, t < 0
(4.32)
ig (t) =
Ig (A), t t0
0, t < t0
(4.33)
onde, t0 0.
2. Baixa sensibilidade a erros de identicao dos parmetros do modelo do
grupo motor gerador.
84
Captulo 4.
3. Bom desempenho transitrio. Como se trata de uma planta didtica, o desempenho do sistema ser denido unicamente um termos do tempo de acomodao da resposta ao degrau do sistema em malha aberta.
sabido que os objetivos de um sistema de controle somente sero alcanados
com sistemas realimentados. Porm, como forma de ilustrar os benefcios da realimentao, iremos, inicialmente, considerar a possibilidade de se usar um controle
em malha aberta e, em seguida, projetar um sistema de controle realimentado.
Vt (s) =
K
K
K(s)Vtr (s)
Ig (s).
s + 1
s + 1
(4.34)
fcil vericar que o sistema de controle em malha aberta ser estvel se e somente
se K(s) for estvel. Como, por simplicidade foi adotado como satisfatrio o tempo
de acomodao do sistema sem compensao, pode-se utilizar um controlador esttico, isto :
K(s) = KP
(4.35)
onde KP deve ser determinado de acordo com a seo 4.1.3(a) de tal sorte que, em
regime permanente, vt (t) = Vr .
Uma vez obtido KP , o passo seguinte fazer a anlise do desempenho do sistema
compensado, utilizando o XCOS. Para tanto, construa um modelo, em XCOS,
equivalente ao diagrama de blocos da gura 4.3. Em seguida, tendo 0s e 2s como
instantes inicial e nal de simulao, proceda seguinte simulao:
1. Para uma corrente ig (t) = 0 (A), aplique um degrau de amplitude igual a
10 V com incio em t = 0s. Em seguida, encontre o erro de estado permanente
e o valor do tempo de acomodao (ts ) da resposta.
2. Suponha, agora, que tenha havido um erro de 10% na identicao de Ka , isto
Ka
= 0, 9Ka . Ainda com ig (t) = 0 (A), aplique um degrau de amplitude
real
igual a 10 V com incio em t = 0s e encontre o erro de estado permanente.
4.2
85
3. Retorne Ka ao valor obtido na identicao e, em seguida, aplique simultaneamente as entradas vtr (t) e ig (t), ambas degraus, com amplitudes respectivamente iguais a 10 V e 0, 450 A e incios em t = 0 e t = 1 s (s). Realizada a
simulao, encontre o erro de regime permanente.
K(s) =
KI
s
(4.36)
onde KI deve ser calculado de tal forma que o sistema realimentado seja estvel
com desempenho transitrio satisfatrio, isto , que satisfaa as especicaes de
desempenho. Lembre-se de que, no presente caso, requer-se que o tempo de acomodao da resposta ao degrau para o sistema realimentado seja aproximadamente
igual ao do sistema em malha aberta.
Para vericar os benefcios da introduo da realimentao acrescida de uma
compensao dinmica, vamos inicialmente considerar os seguintes casos: (i) sistema realimentado criticamente amortecido e (ii) sistema realimentado subamortecido com percentual de ultrapassagem menor ou igual a 5%. Para tanto, proceda
da seguinte forma:
1. Calcule o valor de KI de tal forma que o sistema realimentado seja criticamente amortecido.
86
Captulo 4.
4.3
Comentrios nais
87
Assim sendo, para que o desempenho do sistema realimentado seja aproximadamente igual ao do sistema em malha aberta, os plos de malha fechada devem
ter parte real aproximadamente igual a 1/ (plo da planta). Isto implica que
o diagrama dos lugar das razes deve se deslocar para a esquerda e, para tanto,
necessrio que exista um zero igual a z (z > 0) esquerda de 1/ . Portanto,
K(s) deve ter a seguinte forma:
z
1
Kp (s + z)
= Kp 1 +
= Kp 1 +
(4.37)
K(s) =
s
s
Ti s
onde Ti = 1/z . Note, pela equao 4.37 acima, que a introduo do zero no controlador equivale a dot-lo de ao proporcional, resultando num controlador PI.
Finalmente, para vericar se tal controlador, de fato, tornou o sistema realimentado mais rpido, proceda da seguinte forma:
1. Calcule o valor de Kp e Ti de tal sorte que os plos do sistema realimentado
tenham parte real igual a 1/ .
2. Substitua a funo de transferncia do bloco referente ao controlador pela
equao 4.37, com os valores de Kp e Ti calculados no item anterior.
3. Para uma corrente ig (t) = 0 (A), aplique um degrau de amplitude igual a 10 V
com incio em t = 0s. Em seguida, encontre o valor do tempo de acomodao
(ts ) da resposta.
88
Captulo 4.
Captulo 5
Implementao do controlador de
velocidade
Neste captulo trataremos da implementao do controlador projetado no captulo
anterior. Como se trata de um laboratrio para um primeiro curso de Sistemas
de Controle, ser desenvolvido um controlador analgico, em cuja construo sero
utilizados amplicadores operacionais1 . Esses amplicadores, pelas suas caractersticas de resposta e preo, so frequentemente utilizados na implementao de
controladores analgicos.
Antes de entrarmos na implementao do controlador faremos um breve estudo
introdutrio sobre amplicadores operacionais. Neste estudo no consideraremos
detalhes construtivos (que geralmente feito nos cursos de Eletrnica), nos preocupando somente com os aspectos externos do dispositivo e com as suas caractersticas
que, quando exploradas, nos permitiro construir circuitos que tenham um determinado comportamento. Isso ser realizado na seo 5.1. Caso o aluno j possua
conhecimentos sucientes desse assunto, pode omitir esse estudo e caso o aluno
deseje obter maiores detalhes sobre teoria e prtica de amplicadores operacionais
deve consultar [6]. Dotado dos fundamentos necessrios utilizao dos amplicadores operacionais, o passo seguinte ser a construo de um circuito eletrnico
para o controlador, o que ser feito na seo 5.2.
1 Este mesmo controlador poderia ser implementado digitalmente, isto , utilizando-se computadores digitais.
89
90
Captulo 5.
1
2
3
4
5
6
7
8
Implementao do controlador
NC (no conectar)
Entrada inversora
Entrada no inversora
Tenso de polarizao (Vcc )
NC
Sada
Tenso de polarizao(+Vcc )
NC
v0 = A(v2 v1 )
(5.1)
5.1
Amplicadores Operacionais
91
v1 (t)
v0 (t)
v2 (t)
v0 (t) = A(v1 v2 )
Figura 5.2: Simbologia adotada para amplicadores operacionais
onde A o ganho de malha aberta (A > 45.000), sendo denido pelos transistores
internos do amplicador. Usualmente, na prtica, este ganho considerado innito
(A ). Outras caractersticas, geralmente adotadas na prtica so: (i) v0 = 0
quando v1 = v2 (tenso `oset' de entrada nula); (ii) impedncia de entrada innita,
que permite baixa ou nenhuma interferncia com os elementos colocados em cascata
no circuito (Zin = ); (iii) impedncia de sada nula (Zout = 0); (iv) largura
de faixa innita; e (v) atraso de resposta nulo. Na tabela 5.1 so mostrados os
valores reais de algumas dessas grandezas para os amplicadores operacionais 741
e LF356. importante ressaltar que o valor da impedncia de entrada para o
LF356 'e aproximadamente 1012 , isto , praticamente innita2 . Em face disso,
o LF356 ser utilizado na implementao do controlador de velocidade do grupo
motor-gerador.
92
Captulo 5.
Implementao do controlador
741
200
2
2
15
1
5
LF356
200
3
106
15
1
5
Circuito inversor
Considere o circuito da gura 5.3. Aplicando-se a lei das correntes de Kirchho ao
n 1 e lembrando que, como o amplicador operacional tem impedncia de entrada
innita, a corrente que ui para a entrada inversora nula, pode-se escrever:
ei (t)es (t)
Ri
eo (t)es (t)
Rf
=0
(5.2)
ei (t)
1
Ri Rf
+ eo (t)(
+
+
) = 0.
Ri
Rf
A
A
(5.3)
eo (t) =
Rf
ei (t)
Ri
(5.4)
As seguintes observaes podem ser feitas a partir da equao 5.4 acima: (i) o
ganho no mais determinado pelo amplicador e sim pelos elementos externos Ri
5.1
Amplicadores Operacionais
93
Rf
Ri
6
es (t)
6
6
ei (t)
eo (t)
|es (t)| =
|e0 (t)|
0.
A
(5.5)
Circuito no-inversor
Considere agora o circuito da gura 5.4(a), que difere do circuito inversor da gura
5.3 principalmente pelo fato do sinal externo ei (t) estar agora conectado entrada
no-inversora. Aplicando a lei das correntes de Kirchho ao n 1 e levando em
conta os fatos de que a corrente que entra no amplicador operacional nula e que
os terminais + e esto em terra virtual pode-se escrever:
(5.6)
94
Captulo 5.
Implementao do controlador
Rf
Ri
1
6
ei (t)
eo (t)
ei (t)
(a)
Figura 5.4:
(a)
eo (t)
(b)
Circuito no-inversor;
(b)
Seguidor de tenso
eo (t) =
Rf + Ri
ei (t)
Ri
(5.7)
Note, na equao 5.7 acima que o ganho de malha fechada ser sempre maior ou
igual a 1 e , mais uma vez, determinado por Ri e Rf . Observe ainda que, se Rf
feito igual a zero (curto-circuito) e Ri = (circuito aberto), conforme mostrado
na gura 5.4(b), tem-se que o ganho ser exatamente igual a 1. Nesse caso, o
amplicador atua como um `seguidor de tenso', isto , a tenso de sada segue
exatamente a tenso de entrada. A congurao de seguidor de tenso largamente
utilizada para prover isolamento entre os sinais da fonte e da carga, evitando assim
interaes indesejveis.
Circuito comparador
Uma das maneiras de se fazer a comparao entre dois sinais utilizando-se o
circuito da gura 5.5. Aplicando-se a lei das correntes de Kirchho ao n A e
lembrando que os pontos A e B tm o mesmo potencial (terra virtual), pode-se
escrever:
3
eB (t) = eA (t) = R2R+R
e2 (t)
3
(5.8)
e1 (t)eB (t) + eo (t)eB (t) = 0.
R1
Rf
5.1
Amplicadores Operacionais
95
Rf
R1
6
R2
e1 (t)
e2 (t)
6
6
vB (t)
R3
eo (t)
eo (t) =
R3 (R1 + Rf )
Rf (R2 + R3 )
e1 (t) +
e2 (t).
R1 (R2 + R3 )
R1 (R2 + R3 )
(5.9)
(5.10)
Deve ser ressaltado que, na prtica, quase impossvel ter quatro resistores de
valores exatamente iguais e, portanto, a igualdade (5.10) no pode, a princpio, ser
implementada sicamente. Este problema pode ser superado inserindo-se potencimetros de valores R10 , R20 , R30 e Rf0 em srie com os resistores R1 , R2 , R3 e Rf . Esses
potencimetros devem ser ajustados de tal sorte que R1 +R10 = R2 +R20 = R3 +R30 =
Rf + Rf0 . Para se vericar de que a igualdade (5.10) est sendo vericada (a menos
de um `oset'), aplica-se sinais iguais em e1 (t) e e2 (t) e mede-se o sinal eo (t), que
nesse caso deve ser aproximadamente igual a zero (a menos de um `oset').
Circuito integrador
O circuito da gura 5.6(a) representa uma maneira de se calcular analogicamente
a integral de um sinal. Pode-se mostrar que a funo de transferncia do circuito
96
Captulo 5.
Implementao do controlador
Cf
Cf
Ri
Rf
Ri
ei (t)
eo (t)
ei (t)
eo (t)
(a)
(b)
(a)
ideal;
1
Eo (s)
=
Ei (s)
Ri Cf s
e, portanto,
1
eo (t) =
Ri Cf
(b)
prtico.
(5.11)
ei ()d.
(5.12)
Eo (s)
Rf
1
=
Ei (s)
Ri Rf Cf s + 1
(5.13)
5.1
Amplicadores Operacionais
97
(j)
| EEoi (j)
|dB
20 log
Rf
Ri
(log)
1/Rf Cf
Figura 5.7: Assntotas do diagrama de mdulo de Bode para o circuito integrador
prtico da gura 5.6(b)
Rf
Rf
Ci
Ri
Ci
ei (t)
eo (t)
ei (t)
eo (t)
(a)
(b)
(a)
ideal;
(b)
prtico
Circuito derivador
A derivao de um sinal analgico pode ser feita idealmente utilizando-se o circuito
da gura 5.8(a). Para esse circuito, tem-se que:
eo (t) = Rf Ci
d
ei (t).
dt
(5.14)
98
Captulo 5.
Implementao do controlador
(j)
| EEoi (j)
|dB
20 log
Rf
Ri
(log)
1/Ri Ci
Figura 5.9: Assntotas do diagrama de mdulo de Bode para o circuito derivador
prtico da gura 5.8(b)
transferncia dada por:
sRf Ci
Eo (s)
=
,
Ei (s)
Ri Ci s + 1
(5.15)
Rf
Ri
= Ri Ci
Kp =
Td
Ti = Rf Cf .
para Ti >> Td .
(5.17)
5.2
99
Rf
Cf
Ri
Ci
ei (t)
eo (t)
VtR (s)
+
K(s)
G(s)
Vt (s)
100
Captulo 5.
vtR (t)
Implementao do controlador
vt (t)
5.2
101
102
Captulo 5.
Implementao do controlador
5.3
Experimento nal
103
104
Captulo 5.
Implementao do controlador
vericado que o ferramental terico pode ser aplicado, efetivamente, na prtica, para
levar o sistema real a ter um comportamento bastante prximo daquele previsto
durante a simulao. Outro aspecto a ser ressaltado, ao m desse curso, que as
ferramentas utilizadas na identicao da funo de transferncia do grupo motorgerador e no projeto do controlador de velocidade no se aplicam somente ao sistema
utilizado nesse laboratrio, podendo ser utilizadas em uma grande variedade de
outros sistemas fsicos e devem se usadas no futuro quando ao aluno for solicitado
o projeto de um sistema de controle.
Referncias Bibliogrcas
[1] N. A. Kheir, K. J. Astrm, D. Auslander, K. C. Cheok, G. F. Franklin, M. Masten, e M. Rabins, Control systems engineering education, Automatica, vol.
32, pp. 147166, 1991.
[2] R. M. Stephan,
[3] Mario Leite,
2008.
Laboratrio de Controle I,
Cincia Moderna,
Ampliers: Design
[5] R. C. Dorf,
Addison-Wesley, 1986.
105
UFRJ - Escola da