Professional Documents
Culture Documents
Controle I
2014
Sumário
1 Introdução 1
2 Programando em SCILAB 5
2.1 Modos de programação . . . . . . . . . . . . . . . . . . . . . . . . . 6
i
2.3.4 Outros comandos para representação gráca . . . . . . . . . 27
2.4.1 Declaração if . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5 Xcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3 Modelagem e Identicação 45
3.1 Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . 46
módulo de Bode . . . . . . . . . . . . . . . . . . . . . . . . . 58
ii
3.2 Motor CC controlado pela armadura . . . . . . . . . . . . . . . . . 61
3.3.2 Identicação de Kt . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.3 Identicação de Ka e τ . . . . . . . . . . . . . . . . . . . . . 66
resposta ao degrau . . . . . . . . . . . . . . . . . . . . . . . 68
nhecida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.2 Sensibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.1.3 Complementos . . . . . . . . . . . . . . . . . . . . . . . . . 81
iii
5 Implementação do controlador 89
5.1 Amplicadores Operacionais . . . . . . . . . . . . . . . . . . . . . . 90
iv
Capítulo 1
Introdução
1
2 Capítulo 1. Introdução
Ra La
va (t) vt (t)
Figura 1.1: Circuito elétrico equivalente para o motor CC com sensor de velocidade
(tacômetro).
(ii) tenha erro de estado permanente nulo para uma determinada velocidade de
referência;
(iii) rejeite assintoticamente (quando o tempo tende para innito) sinais exter-
5
6 Capítulo 2. Programando em SCILAB
Exemplo 2.1
a=2; b=5; <enter>. Neste caso, o SCILAB armazena 2 e 5 nas posições
de memória a e b, respectivamente, porém não exibe os valores armazenados das
variáveis.
a=2, b=5 <enter>. Esta linha de comandos produz o mesmo efeito que a
linha de comando anterior, exceto que a mensagem a=2 e b=5 é exibida na tela.
Variáveis salvas podem ser recarregadas através do comando load. Ainda utilizando
o comando save, pode-se determinar o tipo de arquivo utilizando como entrada '-
lename.sci' ou 'lename.sce'. Embora ambos os tipos de arquivo contenham código,
eles são muito diferentes. Arquivos `sce' são executados enquanto arquivos `sci' são
carregados para serem usados quando precisamos deles. Esta diferença cará mais
clara quando falarmos sobre as funções.
Exemplo 2.2
Realize as operações a seguir no SCILAB, observando ao nal de cada uma delas
c=a*b
mando
9. Repita as operações 5, 6 e 7
Exemplo 2.3
Suponha que no arquivo seq1.sci, sejam editados os seguintes comandos:
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 então procura no diretório de trabalho por um arquivo de co-
nele. Caso o SCILAB não encontre um arquivo seq1.sci, exibirá na tela a men-
sagem
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 execução deste script, a função pares pode ser executada normal-
mente, como se fosse um comando interno do Scilab. Caso se tenha uma relação
direta entre o output e os inputs, é mais conveniente fazer uso da função 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.
coecientes.
relação entre o output e os inputs. Este tipo de função que retorna apenas um
Exemplo 2.6
// função que calcula as diferenças entre elementos sucessivos de
um vetor x
function x=diff(X)
n=length(X);
for i=1:(n-1)
x(i)=X(i+1)-X(i);
end
endfunction
Exemplo 2.7 Crie um arquivo de funções para calcular a norma euclideana (norma-
2) de um vetor x = [ x1 x2 . . . xn ]t .
Inicialmente, lembre-se de que a norma euclideana de um vetor é denida como:
q
k x k2 = x21 + x22 + · · · + x2n = (xt x)1/2 (2.1)
esta função será editada, então esse arquivo poderia ter o conteúdo mostrado na
gura 2.2.
O comando
x=[1 2 2]0 ;y=norma2(x);<enter>
2.2 Funções pré-denidas pelo SCILAB 13
faz com que SCILAB execute a função norma2 para o vetor x, armazenando na
variável y o valor 3. Verique!
Para que o resultado da função acima seja realmente a norma euclideana do
vetor x, x deve ser um vetor coluna. Caso contrário x0 *x será uma matriz e a saída
y será uma matriz m × m cujos elementos são as raízes quadradas de xi xj , onde xi e
xj denotam as componentes i e j do vetor x. Uma outra particularidade da função
acima é o uso do comando sqrt, que é uma função pré-denida pelo SCILAB.
Em um arquivo de função podem ser usadas outras funções quer sejam denadas
anteriormente pelo usuário ou pré-denidas pelo SCILAB. Essas últimas permitem
a manipulação de matrizes, vetores, polinômios e outras funções matemáticas de
uma forma robusta, isto é por algoritmos que não são susceptíveis a problemas de
mau condicionamentos.
Na seção seguinte serão apresentadas algumas funções pré-denidas pelo SCI-
LAB. Essas funções foram escolhidas tendo em vista sua importância no desenvol-
vimento 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 Capítulo 2. Programando em SCILAB
mentos de uma mesmas linha separados por vírgula (,) ou espaços em branco e as
linhas da matriz por ponto-e-vírgula (;):
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 números com parte decimal, separar a
parte inteira da parte decimal usando ponto (.);
O acesso a qualquer elemento de uma matriz que tenha sido anteriormente de-
nida, e que ainda esteja armazenada no espaço de trabalho, é feito de forma
semelhante, isto é, fornecendo-se a posição do elemento desejado. Suponha, então,
que os elementos de uma matriz M : p × q tenham sido armazenados na variável m.
(i) Para se ter acesso ao elemento (i, j) de m faz-se m(i,j). Por exemplo, para
dada matriz m, formada pelos elementos comuns às linhas cujos índices são dados no
vetor vetorlinha e às colunas indicadas pelas componentes do vetor vetorcoluna.
Por exemplo, para se tomar os elementos da interseção 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
iguais a zero.
O SCILAB possui um conjunto de funções pré-denidas que permitem manipular
matrizes e vetores de semelhante a que o engenheiro está acostumado a fazer no seu
dia-a-dia. Estas funções são apresentadas a seguir.
e armazena na variável c.
16 Capítulo 2. Programando em SCILAB
matrizes a e b e as armazena em c.
(vii) [w,l]=spec(a) : retorna a matriz w, cuja i-ésima coluna é formada pelo
(v) w = conj(z) retorna uma matriz w tal que wij = xij − jyij ;
(viii) w = log(z) retorna uma matriz tal que wij = ln(xij + jyij );
culam matrizes W tais que wij = Sen (zij ), wij = Cos (zij ), wij = tg (zij ), wij =
arc Cos (zij ), wij = arc Sen (zij ) e wij = arc tg (zij ), respectivamente, armaze-
nando o resultado na variável w. Note que: (a) as funções sin, cos e tan requerem
que os argumentos sejam expressos em radianos; (b) os ângulos retornados pelas
funções acos, asin e atan são expressos em radianos.
É importante salientar os seguintes pontos relativos ao uso dos comandos acima:
2.2 Funções pré-denidas pelo SCILAB 17
v(1)=1;v(2)=2.5;v(3)=7;w=v0 ; <enter>.
Outro aspecto importante na denição de um vetor é quando as componentes
formam uma sequência. Por exemplo, para armazenar a sequência
fn = a1 a1 + r a1 + 2r . . . an ,
18 Capítulo 2. Programando em SCILAB
respectivamente);
(ii) norm(x,p) retorna a norma-p do vetor x (kxkp ). Deve ser ressaltado que
a função 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
Xn
kxkp = ( | xi |p )1/p
i=1
e, portanto:
n
X
kxk1 = | xi |
i=1
Xn
kxk2 = ( | xi |2 )1/2
i=1
hip = xn xn−1 . . . x2 x1
ym
ym−1
..
v ip = .
y2
y1
x. Isso pode ser feito de duas formas: a primeira, que utiliza a função 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
A gura 2.3 ilustra algumas das funções utilizadas para a manipulação de po-
linômios denidas acima.
Exemplo 2.8 Escreva uma função SCILAB para calcular o instante de pico, o
0, 6618
G(s) = .
s2 + 1, 0069s + 0, 6618
Considere que o intervalo de simulação seja de 0 a 20s.
Exemplo 2.9 A função SCILAB cujo código está listado na gura 2.5 pode ser
plot(x,y,0 <cor><forma>0 )
em que <cor> dene a cor usada na representação gráca (conforme tabela 2.1(a))
e <forma> dene como o ponto será representado, isto é se será usado um ponto,
círculo, 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 representação gráca em SCILAB (a); formas de se
representar pontos e curvas em SCILAB (b)
(a) (b)
Cor Símbolo Forma Símbolo
Amarelo y Ponto .
Magenta m Círculo o
Azul claro c x x
Vermelho r Cruz +
Verde g Asteriscos *
Azul escuro b Linha contínua -
Branco w Linha pontilhada :
Preto k Linha tracejada --
Linha traço-pontilhada -.
Figura 2.7: Diagramas de Bode para a função de transferência G(s) = 1/(s2 +2s+4)
das.
(iv) locate : é usado para obter as coordenadas de um ou mais pontos sele-
As saídas serão gjwdb e fasegjw, que são vetores cujas componentes são, respecti-
Note que os parâmetros de saída da função são os vetores cujos elementos são o
de entrada w.
Figura 2.8: Listagem da função diagbode para o cálculo dos diagramas de Bode
de uma função de transferência.
2.4.1 Declaração if
A forma geral para o uso da declaração if é a seguinte:
if <expressão booleana>
<sequência de comandos 1>
else
<sequência de comandos 2>
end
A declaração if funciona da seguinte forma: quando a <expressão booleana> for
verdadeira, as linhas de comandos denidas em <sequência de comandos 1> serão
executadas e, caso contrário, serão executadas os comandos denidos na <sequência
de comandos 2>. Uma forma mais simples da declaração if é:
if <expressão booleana>
<sequência de comandos>
end
Neste caso, a <sequência de comandos> será executada somente quando a <expressão
booleana> for verdadeira.
O resultado da <expressão booleana> (verdadeiro ou falso) é denido a partir
de operadores lógicos &(e), |(ou) e ~(não), cujas tabelas verdades são mostradas na
tabela 2.2 e dos operadores relacionais: < (menor que), > (maior que), =< (menor
ou igual), >= (maior ou igual), == (igual) e = (diferente).
Usando a declaração if then else, estamos em condições melhorar a entrada
de dados para o usuário na função norma2 e também corrigir o erro da função
2.4 Controle de uxo 31
& V F | V F ~ V
V V F V V V V F
F F F F V F F V
Tabela 2.2: Tabelas verdades para os operadores lógicos &(e), |(ou) e (não)
Exemplo 2.11 O resultado encontrado pela função norma2 do exemplo 2.7 estará
correto quando a entrada for um vetor coluna. Para que o usuário possa utilizá-lo
também 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 deciência
ou uma matriz. Utilizando-se declarações if, todos esses problemas são sanados,
1
v= e w= 1 1
1
e para a matriz
1 2
A= .
3 4
Note que, ao se fazer
faz com que a mensagem contida em <texto> seja impressa na janela do SCILAB.
No arquivo acima usou-se, além do comando disp que contém a mensagem de erro
a ser impressa na tela, outros dois contendo espaços em branco como texto. Eles
foram usados para que o SCILAB deixe uma linha em branco entre a última linha
de comando digitada pelo usuário e a mensagem impressa na tela e uma outra linha
if <incremento> > 0
while <contador> <= <valor final>
<sequência de comandos>
<contador> = <contador> + <incremento>
end
else
while <contador> >= <valor final>
<sequência de comandos>
<contador> = <contador> + <incremento>
end
end
existe uma entrada u(t) capaz de levar o sistema a qualquer estado xf . Para tanto
b Ab A2 b . . . An−1 b
C=
listado na gure 2.10 pode ser utilizado para vericar se o sistema é controlável ou
não.
(a)
1 2 1
ẋ(t) = x(t) + u(t)
3 4 0
2.4 Controle de uxo 35
(b)
1 2 2
ẋ(t) = x(t) + u(t)
0 4 0
2.5 Xcos
Para simular sistemas de controle, normalmente utiliza-se o Xcos, que é uma ferra-
menta 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 repre-
sentada na gura 2.11.
2.5 Xcos 37
Para criar um arquivo para simulação no Xcos, o primeiro passo é criar um ar-
quivo utilizando-se opçãoFile > New. Uma vez criado o arquivo, o próximo passo
é adicionar os seguintes blocos: Step, Clock, CLR , Summation, Toworkspace
(TOWS) e CFScope. Esses blocos são arrastados das bibliotecas Sources, Continuous
time systems, Mathematical operations, Sinks. Para realizar a conguração
de um bloco Scope deve-se dar um duplo click no bloco e, em seguida, aparecerá uma
tros programas, para qualquer simulação é necessária a presença do Clock que tem
partida). Outro bloco essencial para obtenção de dados é o TOWS. Ele possui duas
entradas: uma vinda do clock e outra da variável da simulação que se quer enviar
38 Capítulo 2. Programando em SCILAB
que é ilustrado numa janela idêntica a produzida pelo comando plot e mostrado na
gura 2.13(b) . Porém, os dados são obtidos de modo online. A gura 2.13(a)
lação.
[htb]
(a) (b)
zar o SCILAB e tenha a ferramenta mínima necessária para que possa vir a usar
com sucesso linguagem. Para se ter acesso a comandos/recursos mais poderos,
recomenda-se a consulta aos manuais do SCILAB e do XCOS.
Exercícios propostos
1. Entre com a matriz
1 − j 1 + 2j 2 − j
Z=
2 1 + 2j 3j
2. Para o vetor
x= 1 10 7 0.1
n(s)
G(s) =
d(s)
40 Capítulo 2. Programando em SCILAB
jω
6
j1 -
−1 6 1 -
?
σ
−j1
y y y = αx
yn yn
.. ..
. .
y3 y3
y2 y2
y1 y1
x x
x1 x2 x3 · · ·xn x1 x2 x3 · · ·xn
(a) (b)
Figura 2.17: Representação dos pontos (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn ) e da reta ajus-
tada y = αx referentes ao exercício 2.11.
D(s)
K̄
−
R(s) Kt Y (s)
+ − K(s) K + τ s+1
13. Construa um arquivo XCOS para fazer a simulação do sistema da gura 2.18,
onde K = 127.9, Kt = 0.0056, τ = 0.026 e K̄ = 451.8, para as seguintes
situações:
(a) r(t) = 12u0 (t) e d(t) = 0 e K(s) = 5.4/s, onde u0 (t) representa um degrau
unitário aplicado no instante t = 0.
(b) r(t) = 12u0 (t) e d(t) = 0 e K(s) = (s + 30)/s.
(c) Reptita os itens (a) e (b) para d(t) = 0.2u0 (t − 1)
Nota: Em todos os casos acima, o intervalo de simulação deve ser de -0.5 a
2s.
Capítulo 3
Modelagem e identicação dos
parâmetros da função de
transferência motor CC
45
46 Capítulo 3. Modelagem e Identicação
Ax = b, (3.1)
em que a matriz A tem dimensão m × n (m n). Esse sistema, em geral, não tem
solução, isto é, Ax 6= b, uma vez que o número de linhas de A é muito maior do
que o de colunas. Assim, em raras ocasiões o vetor b irá pertencer ao espaço gerado
pelas colunas de A.
Quando o sistema (3.1) não tem solução, é comum em engenharia, buscar um
vetor x que, embora não seja solução do sistema, seja tal que minimize a norma
quadrática do erro entre Ax e b. Seja, portanto,
b̂ = Ax, (3.2)
e dena
e = b̂ − b. (3.3)
Considere o seguinte problema: encontre x tal que kek22 seja mínima. Note que,
se existir x tal que Ax = b então kek22 = 0, o que implica que mesmo no caso em que
o sistema de equações (3.1) tem solução, o método dos mínimos quadrados também
levará a essa solução.
A partir das equações (3.2) e (3.3) tem-se:
∂y
= b. (3.8)
∂x
Seja bt = . . . bn . Então y = bt x = b1 x1 + b2 x2 + . . . + bn xn ,
Prova: b1 b2
e portanto:
∂y
∂x1
b1
∂y
b2
∂y ∂x2
= = .
..
.. = b. (3.9)
∂x .
∂y
bn
∂xn
(b) Se y = x Hx, onde H é uma matriz simétrica, isto é H t = H , então
t
∂y
= 2Hx. (3.10)
∂x
Prova: Por indução nita sobre n.
48 Capítulo 3. Modelagem e Identicação
Portanto:
∂y dy
= = 2h11 x1 = 2Hx. (3.12)
∂x dx1
Suponha que a expressão (3.10) seja válida quando H ∈ Rn×n , isto é, se
(ii)
h11 h12 · · · h1n h1,n+1
h12 h22 · · · h2n h2,n+1
. . . .
H=
.
. .
. .
. .
. .
(3.13)
h1n h2,n · · · hnn hn,n+1
h1,n+1 h2,n+1 · · · hn,n+1 hn+1,n+1
Denindo
h11 h12 ··· h1n
h12 h22 ··· h2n
Hn = .. .. .. ,
. . .
h1n h2,n · · · hnn
htn+1 = (3.14)
h1,n+1 h2,n+1 · · · hn,n+1 ,
xn = x1 x2 · · · x n ,
então y = xt Hx é equivalente a:
t Hn hn+1 xn
y = xn xn+1
htn+1 hn+1,n+1 xn+1
t t t
xn
= xn Hn + xn+1 hn+1 xn hn+1 + xn+1 hn+1,n+1
xn+1
= xtn Hn xn + xn+1 htn+1 xn + xtn hn+1 xn+1 + x2n+1 hn+1,n+1
= xtn Hn xn + 2xn+1 htn+1 xn + x2n+1 hn+1,n+1 . (3.15)
Note que para a obtenção da última expressão usamos o fato de que como xtn hn+1 ∈
R então xtn hn+1 = (xtn hn+1 )t = htn+1 xn .
3.1 Fundamentos teóricos 49
∂y
∂y ∂xn 2Hn xn + 2xn+1 hn+1
= ∂y =
∂x 2htn+1 xn + 2hn+1,n+1 xn+1
∂x
n+1
Hn hn+1 xn
= 2 = 2Hx. (3.16)
htn+1 hn+1,n+1 xn+1
Vamos retornar ao problema de otimização (3.6). Usando os resultados (3.8) e
(3.10), podemos escrever:
∂
kek22 = 2(At A)x − 2At b, (3.17)
∂x
y1 = a0 xn1 + a1 xn−1
1 + . . . + an−1 x1 + an
y2 = a0 xn2 + a1 xn−1
2 + . . . + an−1 x2 + an (3.21)
..
.
yp = a0 xnp + a1 xn−1
p + . . . + an−1 xp + an
É fácil vericar que a equação (3.21) pode ser escrita na seguinte forma matricial:
a0
x1n−1
y1 xn1
··· x1 1 a1
y2 xn2
··· x2n−1 x2 1
..
.. = .. .. .. .. . (3.22)
. . . . .
n n−1
an−1
yp xp xp ··· xp 1
an
Denindo
a0
x1n−1
y1 xn1
··· x1 1 a1
y2 xn2
··· x2n−1 x2 1
..
b= .. , A = .. .. .. .. ex= . , (3.23)
. . . . .
n n−1
an−1
yp xp xp ··· xp 1
an
Ax = b. (3.24)
Como p >> n, a equação (3.24) não tem, em geral, solução. Utilizando o método
do mínimos quadrados para encontrar a solução que minimiza a norma quadrática
do erro e = Ax − b, obtém-se, utilizando a equação (3.18), a seguinte solução
Note que se o ponto (0, 0) for um dos pontos a serem ajustados, então o gráco do
polinômio resultante deve passar pela origem. Dessa forma an = 0, isto é, somente
3.1 Fundamentos teóricos 51
os n primeiros parâmetros devem ser encontrados. Nesse caso, é fácil vericar que
a matriz A toma a seguinte forma:
xn1 x1n−1 · · · x1
xn xn−1 · · · x2
2 2
A = .. .. .. (3.26)
. . .
xnp xpn−1 · · · xp
Algoritmo 3.1
Entrada Pontos a serem ajustados, (x1 , y1 ), (x2 , y2 ), . . . , (xp , yp ), e o grau desejado
do polinômio, n.
• Faça
∗ x
x = .
0
• Fim
• Faça x∗ = x.
• Fim
Saída x∗ =
Vetor a0 a1 · · · an , cujas componentes são os coecientes do
polinômio.
52 Capítulo 3. Modelagem e Identicação
sendo
Z t0 +T
1
a0 = f (t)dt (3.28)
T t0
Z t0 +T
2
an = f (t) cos(nω0 t)dt (3.29)
T t0
Z t0 +T
2
bn = f (t) sin(nω0 t)dt (3.30)
T t0
Algoritmo 3.2
Entrada N : número de harmônicos a serem determinados
3.1 Fundamentos teóricos 53
Passo 1 Obtenha um conjunto de p+1 pontos (tk , f (tk )), em que tk = t0 + kh,
k = 0, 1, . . . , p, que descrevem a função no intervalo [t0 , t0 + T ] e armazene
a0 = inttrap(t,ft)/T
• an = (2/T)*inttrap(t,(cos(2*π *n)*t/T).*ft)
• bn = (2/T)*inttrap(t,(sin(2*π *n)*t/T).*ft)
• zn = bn + j*an ⇒ cn = abs(zn), φn = angle(zn)
Saída
Vetores c = a0 c1 c2 · · · cN e φ = φ1 φ2 · · · φN
de saída, (ti , uk (ti )) e (ti , yk (ti )), respectivamente, para cada um dos sinais de
Passo 3 Utilize o algritmo 3.2 para obter os termos fundamentais das séries de
C yk
|G(jωk )| = (3.37)
Cuk
φk = φyk − φuk (3.38)
3.1 Fundamentos teóricos 55
Y (s) K
G(s) = = , (3.39)
U (s) τs + 1
Determinação do parâmetro K
Note, inicialmente que:
lim y(t) = KA = y∞ . (3.41)
t→∞
Portanto:
y∞
K=. (3.42)
A
Assim como no caso da resposta senoidal, na prática, porém, o sinal de resposta é
corrompido por ruídos o que impede que valor de regime permanente de y(t) seja
determinado diretamente como na equação (3.42). Assim, o seguinte algoritmo deve
ser usado para a determinação do parâmetro K .
resposta y(t).
56 Capítulo 3. Modelagem e Identicação
Passo 3. Encontre
N
1 X
y∞ = y(ti ),
N i=1
sendo N o número de pontos (ti , y(ti )), ti ≥ ts , e calcule
y∞
K= .
A
Determinação do parâmetro τ
A determinação do parâmetro τ pode ser feita utilizando os seguintes métodos:
1. Método 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 função de transferência (3.39).
Note que A0 pode ser escrita como:
Z ∞
A0 = [KA − y(t)]dt.
0
Substituindo y(t) na equação acima pela equação (3.40) e, após manipulações algé-
bricas simples, obtém-se:
A0 = KAτ.
resposta y(t).
y(t)
y1
A0
t
Figura 3.1: Resposta ao degrau monotonicamente crescente.
Passo 4. Calcule
A0
τ= .
y∞
at = b, (3.44)
em que
1
a= (3.45)
τ
e
y∞
b = b[y(t)] = ln . (3.46)
y∞ − y(t)
58 Capítulo 3. Modelagem e Identicação
ano)
resposta y(t).
Passo 2. Determine um instante tr tal que y(tr ) < y∞ e isole os pontos (ti , y(ti )),
ti ≤ tr
tT b
a= ,
ktk2
e, em seguida, determine
1
τ= .
a
Observação 3.1 Uma outra forma de se determinar o parâmetro τ é por meio do
Esse método não será, contudo, aqui considerado por ser extremamente dependente
em que G(s) possui somente polos e zeros reais, é utilizando as curvas de resposta em
frequência. Nesse caso, ao invés de utilizar as curvas de módulo e fase, ω ×|G(jω)| e
ω×∠G(jω), utilizamos os diagramas de Bode de módulo e fase, ω(log)×|G(jω)|dB e
ω(log)×∠G(jω), nos quais o eixo das abscissas é representado em escala logarítmica,
|G(jω)|dB = 20 log |G(jω)| e ∠G(jω) é dada em graus. A grande vantagem de se
utilizar os diagramas de Bode é que é possível determinar assíntotas da curva de
módulo cujas interseções determinam as frequências de canto que correspondem aos
polos e zeros de G(s).
Considere novamente a equação (3.39) repetida abaixo:
K
G(s) = . (3.48)
τs + 1
Como
K K/τ
G(jω) = = ,
1 + jωτ 1/τ + jω
então é fácil vericar que
K/τ
|G(jω)|dB = 20 log = 20 log(K/τ ) − 20 log |1/τ + jω|. (3.49)
|1/τ + jω|
Não é difícil vericar que as assíntotas se interceptam no ponto (1/τ, 20 log K),
isto é, a abscissa do ponto de interseção das assíntotas, denominada frequência de
canto, é numericamente igual ao polo de G(s). A partir da equação (3.49, vemos
que |G(j1/τ )|dB = 20 log K − 20 log |1 + j| ≈ 20 log K − 3. Assim sendo,
Com base no exposto acima, podemos propor o seguinte algoritmo para a ob-
tenção dos parâmetros K e τ de um sistema de primeira ordem estável a partir da
sua resposta em frequência.
60 Capítulo 3. Modelagem e Identicação
Algoritmo 3.7
Entrada Conjunto de pontos (ωk , |G(jωk )|), k = 1, 2, . . . , p, obtidos utilizando o
algoritmo (3.3).
Passo 2 Ajuste os pontos de baixa frequência por uma reta horizontal utilizando
essa reta no mesmo gráco obtido no passo anterior. Denote esse valor por
Kdb.
Passo 3 Ajuste os pontos denidos pelos vetores w e gjwdb por um polinômio uti-
lizando o método dos mínimos quadrados cujo melhor grau deve ser determi-
3.4 Se a curva determinada no passo 3.3 for uma boa aproximação para os
passo 3.4 cuja ordenada é igual a Kdb - 3. Denote a abscissa encontrada por
wc.
Saida Ganho K e τ
3.2 Motor CC controlado pela armadura 61
ia (t) Ra La
ω(t) J
va (t) e(t)
f
Sabe-se que o torque produzido pelo motor, tm (t), é proporcional ao uxo mag-
nético no entreferro (φ(t)) e à corrente de armadura (ia (t)), isto é,
d
va (t) = Ra ia (t) + La ia (t) + e(t) (3.53)
dt
sendo e(t) a força contra-eletromotriz, que é proporcional à velocidade angular do
motor, sendo dada por:
e(t) = Ke ω(t) (3.54)
62 Capítulo 3. Modelagem e Identicação
Ra La
va (t) vt (t)
Figura 3.3: Circuito elétrico equivalente para o motor CC com sensor de velocidade
(tacômetro)
onde Kt é uma constante. Portanto, a relação entre Vt (s) e Va (s) pode ser expressa
pela seguinte equação:
Ka Kt
Vt (s) = Va (s), (3.61)
τs + 1
Algoritmo 3.8
Passo 1 Aplique uma tensão constante no terminal de armadura Va e meça o valor
3.3.2 Identicação de Kt
Para a determinação de Kt , observe a equação (3.60),
ω(t) = W = Ka Va , (3.66)
o que mostra que quando uma tensão de valor constante é aplicada a um motor CC,
a velocidade angular em regime permanente também será constante e proporcional
ao valor da tensão aplicada.
Portanto, retornando a determinar do ganho do tacômetro Kt , considere a equa-
ção (3.62), cujo valor de tensão, em estado permanente, para uma entrada igual ao
degrau de amplitude W é dado por:
Vt = Kt W. (3.67)
Isto sugere que a identicação dos parâmetros 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 região linear de operação
e Kt .
Algoritmo 3.9
Passo 1 Excite o motor CC com tensões constantes e iguais a Va1 , Va2 , . . ., Van ,
e meça os valores de tensão correspondentes, Vt1 , Vt2 , . . . , Vtn , nos terminais
do tacômetro e as velocidades angulares do motor W1 , W2 , . . ., Wn (rpm),
Passo 2 Utilizando os pontos (Va1 , Vt1 ), (Va2 , Vt2 ), . . ., (Van , Vtn ) calcule a região
Passo 3 Use o método dos mínimos quadrados para ajustar por uma reta passando
pela origem (Vt = Kt W ) aos pontos obtidos no passo anterior (veja gura
3.5).
66 Capítulo 3. Modelagem e Identicação
Vt Vt Vt = Kt W
Vtn Vtn
.. ..
. .
Vt3 Vt3
Vt2 Vt2
Vt1 Vt1
W W
W1 W2 W3· · ·Wn W1 W2 W3· · ·Wn
(a) (b)
Figura 3.5: Representação (a) cartesiana dos pontos (W1 , Vt1 ), (W2 , Vt2 ), . . .,
(Wn , Vtn ) e (b) da reta Vt = Kt W
3.3.3 Identicação de Ka e τ
Uma vez que se dispõe da região linear e do ganho Kt , o próximo passo é a identi-
cação do ganho Ka e da constante de tempo τ . Denindo K = Ka Kt , então a equa-
ção (3.61) se torna idêntica á equação (3.39 em que Vt (s) = Y (s) e Va (s) = U (s).
Assim, para a determinação do parâmetro Ka basta determinar o valor de K uti-
lizando os algoritmos das seções 3.1.5 e 3.1.6. Os mesmos algoritmos podem ser
usados para a determinação do parâmetro τ , conforme descrito a seguir:
2. Gerador de funções;
4. Tacômetro óptico;
6. Amplicador de potência;
gulares de retas de acordo com o algoritmo 3.9. A exatidão dos valores encontrados
para Ka e Kt pôde ser vericada a partir da comparação com o produto Ka Kt e K .
2. A constante de tempo τ foi calculada de duas formas: (i) a partir da deter-
isto é:
Ka Kt − K
EKa Kt (%) = 100(%) (3.68)
Ka K t
Se o erro for menor que 1%, os valores de Ka e Kt obtidos experimentalmente
podem ser adotados como representativos do modelo, com razoável grau de con-
3.5 Validação do modelo 71
ança. Caso o erro seja maior que 1%, deve-se, inicialmente, vericar se os resultados
obtidos nos ensaios de laboratório foram de fato utilizados no cálculo de Ka , Kt
e Ka Kt . Isto permitirá que se encontre possíveis discrepâncias entre os valores
obtidos pelos três métodos, evitando que todos os experimentos realizados para a
determinação de Ka , Kt e K tenham que ser realizados novamente. Caso não tenha
sido encontrado qualquer erro de manipulação dos dados, o aluno deve retornar
ao laboratório para realizar novamente aqueles experimentos cujos valores obtidos
inicialmente apresentam maiores discrepâncias.
Excite o motor CC com um degrau de tensão de amplitude igual a 7V e faça
2
a aquisição dos sinais1 de entrada (va (t)) e de saída (vt (t)) e dos correspondentes
instantes de tempo (t).
Com os valores de Ka e Kt , obtidos no passo 1, e com o valor de τ , obtido a
3(a)
escolha aquela que mais se aproxima da resposta do sistema real t×vt (t). O valor de
τ que corresponde ao modelo que produziu a curva mais próxima será o escolhido.
É de se esperar que as curvas obtidas no trabalho de simulação não sejam exa-
tamente coincidentes com as curvas obtidas para o sistema real. Porém, para que o
1 Esta aquisição de dados pode ser feita utilizando-se um computador com placas de aquisição
de dados ou um osciloscópio digital com capacidade de armazenamento em disco.
72 Capítulo 3. Modelagem e Identicação
modelo adotado possa ser considerado satisfatório, essas curvas devem ser bastante
próximas. Qualquer discrepância mais acentuada pode desqualicar o experimento
de identicação ou até mesmo o modelo matemático; por exemplo, levando à ne-
cessidade de escolha de um modelo não-linear.
Capítulo 4
Projeto do controlador de velocidade
73
74 Capítulo 4. Projeto do controlador de velocidade
D(s)
−
R(s) E(s) + Y (s)
+
K(s) G(s)
−
nG (s) nK (s)
G(s) = e K(s) = , (4.1)
dG (s) dK (s)
nG (s) e dG (s) são polinômios conhecidos e nK (s) e dK (s) são polinômios a serem
determinados. Sejam R(s), D(s) e Y (s) as transformadas de Laplace dos sinais de
4.1 Fundamentos teóricos 75
e, conseqüentemente:
G(s)K(s) G(s)
Y (s) = R(s) − D(s). (4.4)
1 + G(s)K(s) 1 + G(s)K(s)
A partir da equação (4.4), pode-se observar que o sinal de saída Y (s) possui
duas componentes: (i) YR (s), que é devida ao sinal de referência R(s) e (ii) YD (s),
que se deve à perturbação externa D(s). Portanto, Y (s) pode ser escrito como:
onde
G(s)K(s) G(s)
YR (s) = R(s) e YD (s) = D(s) (4.6)
1 + G(s)K(s) 1 + G(s)K(s)
O rastreamento e a rejeição de perturbações externas (assintoticamente) reque-
rem que y(t) → r(t) quando t → ∞, o que equivale a exigir que
e
lim eR (t) = 0 (4.8)
t→∞
onde
eR (t) = yR (t) − r(t). (4.9)
Os problemas do rastreamento assintótico de um sinal de referência e da rejeição
assintótica de um sinal externo de perturbação (ambos de dinâmicas conhecidas)
76 Capítulo 4. Projeto do controlador de velocidade
Teorema 4.1 Seja K(s) um controlador que estabiliza G(s), isto é, K(s) é tal
que o sistema realimentado da gura 4.1 é estável e seja D(s) = γ(s)/δ(s), δ(s)
conhecido. Então
lim yD (t) = 0, (4.10)
t→∞
onde δ + (s) é um polinômio formado com os zeros de δ(s) com parte real positiva
ou nula e χ(s) é um polinômio qualquer.
Prova: Usando as notações das equações (4.1) e (4.2), tem-se que, a expressão
(4.6) pode ser escrita como:
Note que
nG (s)dK (s) + dG (S)dK (s) = pC (s), (4.13)
onde pC (s) denota o polinômio característico de malha fechada. Como, por hipótese,
K(s) estabiliza G(s) então pC (s) é um polinômio de Hurwitz e, portanto,
0 teorema 4.1 acima mostra que para que haja rejeição assintótica de um sinal
externo de perturbação aplicado na entrada da planta, as dinâmicas desse sinal
que possuem parte real positiva ou nula devem ser zeros da planta ou pólos do
controlador. Vale ressaltar que, somente em casos especiais, essas dinâmicas serão
também zeros da função de transferência da planta e portanto, para se conseguir a
rejeição assintótica de um sinal de perturbação, é mais comum fazer com que essas
dinâmicas sejam também pólos do controlador, isto é,
1
K(s) = K̄(s) (4.15)
δ + (s)
onde K̄(s) = n̄K (s)/d¯K (s), n̄K (s) e d¯K (s) serão escolhidos de tal forma que nG (s)n̄K (s)+
dG (s)d¯K (s)δ + (s) seja um polinômio de Hurwitz.
Uma vez obtida uma condição necessária e suciente para a rejeição assintótica
de um sinal externo de perturbação, o passo seguinte é considerar o problema do
rastreamento assintótico de um sinal de referência. A abordagem deste problema
é feita de forma análoga à anterior, levando à condição necessária e suciente do
teorema seguinte.
onde β + (s) é um polinômio formado com os zeros de β(s) com parte real positiva
ou nula e η(s) é um polinômio qualquer.
78 Capítulo 4. Projeto do controlador de velocidade
Como, por hipótese, G(s) estabiliza K(s), então pc (s) = nG (s)nK (s) + dG (s)dK (s)
é um polinômio de Hurwitz e, portanto,
De acordo com o teorema 4.2, para que haja rastreamento assintótico de um sinal
de referência, as dinâmicas desse sinal com parte real positiva ou nula devem ser
pólos do controlador ou da planta. Observe que, somente em casos muito especiais
haverá coincidência dos pólos da planta com essas dinâmicas. Portanto, de uma
forma geral, o rastreamento assintótico será obtido fazendo-se:
1
K(s) = K̄(s) (4.21)
β + (s)
onde K̄(s) = n̄K (s)/d¯K (s), n̄K (s) e d¯K (s) serão tais que nG (s)n̄K (s)+dG (s)d¯K (s)β + (s)
seja estável.
Finalmente, note que os objetivos de rastreamento assintótico de um sinal de
referência R(s) = α(s)/[β − (s)β + (s)] e a rejeicão assintótica de um sinal externo de
perturbação D(s) = γ(s)/[δ + (s)δ − (s)] serão, em geral, atingidos simultaneamente,
com um mesmo controlador, fazendo-se
1
K(s) = K̄(s) (4.22)
mmc[β + (s), δ + (s)]
4.1 Fundamentos teóricos 79
onde mmc[β + (s), δ + (s)] denota o mínimo múltiplo comum de β + (s) e δ + (s) e K̄(s) =
n̄K (s)/d¯K (s), com n̄K (s) e d¯K (s) sendo calculados de forma que
pC (s) = nG (s)n̄K (s) + dG (s)d¯K (s)mmc[β + (s), δ + (s)] (4.23)
seja um polinômio de Hurwitz.
Exemplo 4.1: Suponha que para o sistema realimentado da gura 4.1, R(s) =
A/s e D(s) = B/s, onde A, B ∈ R são as amplitudes dos degraus de referência
e de perturbação, respectivamente. Portanto, para que sejam atingidos, simul-
taneamente, os objetivos de rastreamento assintótico de r(t) e rejeição, também
assintótica, de d(t), o controlador deve possuir ação integral, isto é,
1
K(s) = K̄(s) (4.24)
s
K̄(s) sendo calculado de tal sorte que o sistema realimentado seja estável com bom
desempenho transitório. 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 à não manutenção do desempenho e
da estabilidade em presença de variações nos parâmetros da planta. Essas varia-
ções são, em geral, devidas a: (i) erros de identicação da função de transferência
do sistema, uma vez que os valores dos parâmetros, obtidos a partir da identi-
cação, jamais representarão exatamente o sistema real e (ii) envelhecimento dos
componentes do sistema. Desta forma, é importante analisar como o sistema irá
se comportar em presença de tais variações (comumente denominadas de incertezas
no modelo), seja no que se refere ao desempenho do sistema compensado, ou com
relação à manutenção da estabilidade.
A sensibilidade de um sistema em relação à variação em um determinado ele-
mento é quanticada pela razão entre a variação percentual da função de transfe-
rência do sistema e a variação percentual da função de transferência do elemento
considerado, i.e.,
∆T (s)
T (s)
100%
T
SG (s) = ∆G(s) (4.25)
G(s)
100%
80 Capítulo 4. Projeto do controlador de velocidade
R(s) Y (s)
K(s) G(s)
(a)
R(s) Y (s)
+ K(s) G(s)
−
(b)
Figura 4.2: Diagrama de blocos: (a) sistema em malha aberta; (b) sistema reali-
mentado
4.1.3 Complementos
(a) Compensação em malha aberta
Suponha que se deseje fazer uma compensação em malha aberta conforme o dia-
grama de blocos da gura 4.3 e seja K(s) = Kp . Nessas condições:
(1) Para quais valores de Kp , o sistema será estável?
(2) Entre os valores de Kp que tornam o sistema estável, encontre aquele que
faz com que o sistema tenha um erro de regime permanente nulo para uma entrada
igual ao degrau de amplitude Vr .
Ig
Kg
Ig
K̄
na seção 4.1.1, exemplo 4.1, a estrutura mais simples para K(s) de tal sorte que
o sistema realimentado rastreie e rejeite assintoticamente um degrau é K(s) =
KI /s, onde KI é calculado para que o sistema realimentado seja estável e com
bom desempenho transitório. Construa o gráco do lugar das raízes do sistema e
responda:
(1) Para quais valores de KI , o sistema realimentado será estável?
(2)Para quais valores de KI , o sistema realimentado será: (i) superamorte-
cido; (ii) criticamente amortecido; (iii) sub-amortecido e (iv) subamortecido com
percentual menor ou igual a 5%.
4.2 Projeto do controlador de velocidade 83
onde, t0 ≥ 0.
K K̄
Vt (s) = K(s)Vtr (s) − Ig (s). (4.34)
τs + 1 τs + 1
É fácil vericar que o sistema de controle em malha aberta será estável se e somente
se K(s) for estável. Como, por simplicidade foi adotado como satisfatório o tempo
de acomodação do sistema sem compensação, pode-se utilizar um controlador está-
tico, isto é:
K(s) = KP (4.35)
onde KP deve ser determinado de acordo com a seção 4.1.3(a) de tal sorte que, em
regime permanente, vt (t) = Vr .
Uma vez obtido KP , o passo seguinte é fazer a análise 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 simulação, proceda à seguinte simulação:
KI
K(s) = (4.36)
s
onde KI deve ser calculado de tal forma que o sistema realimentado seja estável
com desempenho transitório satisfatório, isto é, que satisfaça as especicações de
desempenho. Lembre-se de que, no presente caso, requer-se que o tempo de aco-
modação da resposta ao degrau para o sistema realimentado seja aproximadamente
igual ao do sistema em malha aberta.
Para vericar os benefícios da introdução da realimentação acrescida de uma
compensação dinâmica, vamos inicialmente considerar os seguintes casos: (i) sis-
tema realimentado criticamente amortecido e (ii) sistema realimentado subamorte-
cido com percentual de ultrapassagem menor ou igual a 5%. Para tanto, proceda
da seguinte forma:
O aluno deve ter observado nas simulações realizadas que o sistema realimentado
com o controlador integral, em ambos os casos (criticamente amortecido e subamor-
tecido com percentual de ultrapassagem menor ou igual que 5%), eliminou a sinal
externo de perturbação e teve erro de regime permanente nulo, mesmo quando se
supôs um erro de 10% no ganho da função de transferência da planta. Contudo, o
tempo de acomodação da resposta ao degrau para o sistema realimentado é, para
ambos os casos, o dobro do tempo de acomodação da resposta ao degrau do sistema
em malha aberta. Para se justicar esse fato, construa o diagrama do lugar das
raízes do sistema realimentado para K(s) = KI /s e, a partir do valor da parte
real dos pólos, mostre que, de fato, o tempo de acomodação da resposta ao degrau
deveria ser o dobro daquele obtido para o sistema em malha aberta.
4.3 Comentários nais 87
onde Ti = 1/z . Note, pela equação 4.37 acima, que a introdução do zero no contro-
lador equivale a dotá-lo de ação proporcional, resultando num controlador PI.
Finalmente, para vericar se tal controlador, de fato, tornou o sistema realimen-
tado mais rápido, proceda da seguinte forma:
1 Este mesmo controlador poderia ser implementado digitalmente, isto é, utilizando-se compu-
tadores digitais.
89
90 Capítulo 5. Implementação do controlador
1 - NC (não conectar)
2 - Entrada inversora
3 - Entrada não inversora
4 - Tensão de polarização (−Vcc )
5 - NC
6 - Saída
7 - Tensão de polarização(+Vcc )
8 - NC
A
6
v1 (t) 6
v0 (t)
v2 (t)
6
v0 (t) = A(v1 − v2 )
onde A é o ganho de malha aberta (A > 45.000), sendo denido pelos transistores
internos do amplicador. Usualmente, na prática, este ganho é considerado innito
(A → ∞). Outras características, geralmente adotadas na prática são: (i) v0 = 0
quando v1 = v2 (tensão `oset' de entrada nula); (ii) impedância de entrada innita,
que permite baixa ou nenhuma interferência com os elementos colocados em cascata
no circuito (Zin = ∞); (iii) impedância de saída nula (Zout = 0); (iv) largura
de faixa innita; e (v) atraso de resposta nulo. Na tabela 5.1 são mostrados os
valores reais de algumas dessas grandezas para os amplicadores operacionais 741
e LF356. É importante ressaltar que o valor da impedância de entrada para o
LF356 'e aproximadamente 1012 Ω, isto é, praticamente innita2 . Em face disso,
o LF356 será utilizado na implementação do controlador de velocidade do grupo
motor-gerador.
741 LF356
Ganho de malha aberta (V /mV ) 200 200
Tensão `oset' de entrada (mV ) 2 3
Impedância de entrada (M Ω) 2 106
Tensão de polarização (V ) ±15 ±15
Banda passante (M Hz ) 1 1
Corrente de saída máxima (mA) 5 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 impedância de entrada
innita, a corrente que ui para a entrada inversora é nula, pode-se escrever:
( ei (t)−es (t) eo (t)−es (t)
Ri
+ Rf
=0
(5.2)
eo (t) = −Aes (t) (A → ∞)
ei (t) 1 Ri Rf
+ eo (t)( + + ) = 0. (5.3)
Ri Rf A A
Rf
eo (t) = − ei (t) (5.4)
Ri
As seguintes observações podem ser feitas a partir da equação 5.4 acima: (i) o
ganho não é mais determinado pelo amplicador e sim pelos elementos externos Ri
5.1 Amplicadores Operacionais 93
Rf
Ri 1
6 6
es (t)
6
ei (t)
eo (t)
e Rf ; (ii) quando o sinal de entrada for limitado, isto é, |e1 (t)| < Ei , tem-se que
|e0 (t)| < (Rf /Ri )Ei = E0 e, portanto limitado. Como A → ∞, resulta:
|e0 (t)|
|es (t)| = → 0. (5.5)
A
Por essa razão, os terminais referentes às entradas inversora e não-inversora são
dito estarem em terra virtual, isto é, para efeitos de análises de redes contendo
amplicadores, es (t) pode ser feito identicamente nulo.
Circuito não-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
não-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 − estão em terra virtual pode-se escrever:
Rf
Ri
1
6 6
6 eo (t) 6 eo (t)
ei (t) ei (t)
(a) (b)
Circuito comparador
Uma das maneiras de se fazer a comparação 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 têm o mesmo potencial (terra virtual), pode-se
escrever:
eB (t) = eA (t) = R2R+R 3
3
e2 (t)
(5.8)
e1 (t)−eB (t) + eo (t)−eB (t) = 0.
R1 Rf
5.1 Amplicadores Operacionais 95
Rf
R1
6
R2 6
e1 (t)
eo (t)
6 6
e2 (t) vB (t) R3
Rf (R2 + R3 ) R3 (R1 + Rf )
eo (t) = − e1 (t) + e2 (t). (5.9)
R1 (R2 + R3 ) R1 (R2 + R3 )
Finalmente, fazendo R1 = R2 = R3 = Rf = R na equação 5.9 acima, resulta:
Deve ser ressaltado que, na prática, é quase impossível ter quatro resistores de
valores exatamente iguais e, portanto, a igualdade (5.10) não pode, a princípio, ser
implementada sicamente. Este problema pode ser superado inserindo-se potenciô-
metros de valores R10 , R20 , R30 e Rf0 em série com os resistores R1 , R2 , R3 e Rf . Esses
potenciômetros 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 função de transferência do circuito é
96 Capítulo 5. Implementação do controlador
Cf
Cf
Ri Ri Rf
6 6
ei (t) 6
ei (t) 6
eo (t) eo (t)
(a) (b)
dada por:
Eo (s) 1
=− (5.11)
Ei (s) Ri Cf s
e, portanto, Z t
1
eo (t) = − ei (λ)dλ. (5.12)
Ri Cf 0
Eo (s) Rf 1
=− (5.13)
Ei (s) Ri Rf Cf s + 1
cujas assíntotas do diagrama de módulo de Bode estão representadas na gura 5.7.
Note que aumentando-se o valor do resistor Rf , o pólo −1/Rf Cf se aproxima de zero
ao mesmo tempo em que o ganho DC torna-se cada vez maior. Nestas condições, a
resposta em freqüência do sistema assemelha-se cada vez mais à de um integrador
ideal e, portanto, o circuito da gura 5.6(b) pode ser usado com razoável precisão
para se efetuar a integração de um sinal.
5.1 Amplicadores Operacionais 97
| EEoi (jω)
(jω)
|dB
Rf
20 log Ri
ω(log)
1/Rf Cf
Rf Rf
Ci Ri Ci
6 6
ei (t) 6 ei (t) 6
eo (t) eo (t)
(a) (b)
Circuito derivador
A derivação de um sinal analógico pode ser feita idealmente utilizando-se o circuito
da gura 5.8(a). Para esse circuito, tem-se que:
d
eo (t) = −Rf Ci ei (t). (5.14)
dt
| EEoi (jω)
(jω)
|dB
Rf
20 log Ri
ω(log)
1/Ri Ci
para Ti >> Td .
5.2 Controlador automático de velocidade 99
Rf Cf
Ri
6
Ci
ei (t)
6
eo (t)
1. Selecione quatro resistores de mesmo valor (de acordo com seu código de
barras coloridas) com valores entre 1kΩ e 10kΩ. Valores de resistores mais
5.2 Controlador automático de velocidade 101
3. Ajuste os quatro potenciômetros R10 , R20 , R30 e R40 de tal modo que R1 + R10 =
R2 + R20 = R3 + R30 = Rf + Rf0 .
6. Finalmente, como eo (t) = e2 (t) − e1 (t) (equação 5.10), faça e1 (t) = vt (t) (a
tensão de saída do tacômetro) e e2 (t) = vtR (t) (a tensão de referência).
posta?
(iii) O tempo de acomodação para o sistema real está próximo daquele obtido
4. Conecte agora uma carga nos terminais do gerador e feche este circuito num
instante próximo do meio do pulso. Verique se o sistema rejeita esta pertur-
bação assim como na simulação realizada no capítulo 4.
vericado que o ferramental teórico pode ser aplicado, efetivamente, na prática, para
levar o sistema real a ter um comportamento bastante próximo daquele previsto
durante a simulação. Outro aspecto a ser ressaltado, ao m desse curso, é que as
ferramentas utilizadas na identicação da função de transferência do grupo motor-
gerador e no projeto do controlador de velocidade não se aplicam somente ao sistema
utilizado nesse laboratório, podendo ser utilizadas em uma grande variedade de
outros sistemas físicos e devem se usadas no futuro quando ao aluno for solicitado
o projeto de um sistema de controle.
Referências Bibliográcas
[1] N. A. Kheir, K. J. Aström, D. Auslander, K. C. Cheok, G. F. Franklin, M. Mas-
ten, e M. Rabins, Control systems engineering education, Automatica, vol.
32, pp. 147166, 1991.
[3] Mario Leite, Scilab, Uma Abordagem Prática e Didática, Ciência Moderna,
2008.
105