Laborat´orio de Sistemas de

Controle I
Jo˜ao Carlos Basilio
Universidade Federal do Rio de Janeiro
Escola de Engenharia – Depto. de Eletrot´ecnica
3a
¯
Edi¸ c˜ao: 2004
Sum´ario
1 Introdu¸ c˜ao 1
2 Programando em MATLAB 5
2.1 Modos de programa¸ c˜ao . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Modo imediato . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Arquivo de comandos . . . . . . . . . . . . . . . . . . 9
2.1.3 Arquivos de fun¸ c˜oes . . . . . . . . . . . . . . . . . . . 10
2.2 Fun¸ c˜oes pr´e-definidas pelo MATLAB . . . . . . . . . . . . . . 12
2.2.1 Fun¸ c˜oes para manipula¸ c˜ao de matrizes . . . . . . . . . 14
2.2.2 Fun¸ c˜oes matem´aticas elementares . . . . . . . . . . . . 15
2.2.3 Manipula¸ c˜ao de vetores . . . . . . . . . . . . . . . . . 15
2.2.4 Fun¸ c˜oes polinomiais . . . . . . . . . . . . . . . . . . . 19
2.3 Controle de fluxo . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Declara¸ c˜ao if . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 La¸ co while . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.3 La¸ co for . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.4 A fun¸ c˜ao find . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Representa¸ c˜ao gr´ afica . . . . . . . . . . . . . . . . . . . . . . 27
2.4.1 O comando plot . . . . . . . . . . . . . . . . . . . . . 27
2.4.2 Representa¸ c˜ao de diversas curvas num mesmo gr´ afico . 29
2.4.3 Representa¸ c˜ao de diversos gr´ aficos numa mesma figura 30
2.4.4 Outros comandos para representa¸ c˜ao gr´ afica . . . . . . 31
2.5 Coment´arios finais . . . . . . . . . . . . . . . . . . . . . . . . 33
3 Modelagem e Identifica¸ c˜ao 39
3.1 Motor CC controlado pela armadura . . . . . . . . . . . . . . 39
3.2 Identifica¸ c˜ao dos parˆ ametros . . . . . . . . . . . . . . . . . . . 43
3.2.1 Identifica¸ c˜ao de K
t
, K e
¯
K . . . . . . . . . . . . . . . 43
i
3.2.2 Identifica¸ c˜ao de τ . . . . . . . . . . . . . . . . . . . . . 53
3.3 Ajuste da f.t. por m´ınimos quadrados . . . . . . . . . . . . . 53
3.4 Experimento para identifica¸ c˜ao . . . . . . . . . . . . . . . . . 60
3.4.1 Experimento para determina¸ c˜ao de K,
¯
K e K
t
. . . . 61
3.4.2 Experimento para obten¸ c˜ao da resposta em freq¨ uˆencia 62
3.5 Valida¸ c˜ao do modelo . . . . . . . . . . . . . . . . . . . . . . . 62
4 Projeto do controlador de velocidade 67
4.1 Fundamentos te´oricos . . . . . . . . . . . . . . . . . . . . . . 68
4.1.1 Rastreamento e rejei¸ c˜ao assint´otica de sinais de dinˆ a-
mica conhecida . . . . . . . . . . . . . . . . . . . . . . 68
4.1.2 Sensibilidade . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.3 Complementos . . . . . . . . . . . . . . . . . . . . . . 75
4.2 Projeto do controlador de velocidade . . . . . . . . . . . . . . 76
4.2.1 Sistema de controle em malha aberta . . . . . . . . . . 78
4.2.2 Sistema de controle com realimenta¸ c˜ao . . . . . . . . . 78
4.3 Coment´arios finais . . . . . . . . . . . . . . . . . . . . . . . . 81
5 Implementa¸ c˜ao do controlador 83
5.1 Amplificadores Operacionais . . . . . . . . . . . . . . . . . . . 84
5.1.1 Conceitos b´ asicos . . . . . . . . . . . . . . . . . . . . . 84
5.1.2 Configura¸ c˜oes b´ asicas . . . . . . . . . . . . . . . . . . 85
5.2 Controlador autom´atico de velocidade . . . . . . . . . . . . . 93
5.2.1 Implementa¸ c˜ao do comparador . . . . . . . . . . . . . 94
5.2.2 Implementa¸ c˜ao do controlador . . . . . . . . . . . . . 95
5.2.3 Amplificador de potˆencia . . . . . . . . . . . . . . . . 96
5.3 Experimento final . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4 Coment´arios finais . . . . . . . . . . . . . . . . . . . . . . . . 97
ii
Cap´ıtulo 1
Introdu¸ c˜ao
Um projeto de um sistema de controle compreende, de uma maneira geral,
as seguintes etapas (Kheir et al., 1991; Stephan, 1991):
1. Modelagem/identifica¸ c˜ao do sistema a ser controlado;
2. Projeto de controladores que satisfa¸ cam as especifica¸ c˜oes de desem-
penho e estabilidade relativa exigidas;
3. Simula¸ c˜ao utilizando computadores digitais;
4. Implementa¸ c˜ao do controlador no sistema real.
Note que as fases acima podem vir a constituir um ciclo com diversas
repeti¸ c˜oes. Isto se deve ao fato de que durante a modelagem de um sistema
f´ısico (planta), s˜ao feitas v´ arias hip´ oteses simplificadoras (linearidade, por ex-
emplo) . Assim, ao se implementar um sistema de controle utilizando-se um
controlador projetado a partir de um certo modelo matem´atico, o sistema real
pode vir a ter um comportamento diferente daquele inicialmente previsto na
simula¸ c˜ao. Algumas vezes, as especifica¸ c˜oes de desempenho/estabilidade po-
dem n˜ ao ser satisfeitas quando da implementa¸ c˜ao do controlador no sistema
real, embora tivessem sido plenamente verificadas nas simula¸ c˜oes. Neste caso,
torna-se necess´ario projetar um novo controlador ou at´e mesmo desenvolver
um novo modelo matem´atico para a planta. Outro aspecto a ser observado
´e que, se durante a etapa de projeto/simula¸ c˜ao as especifica¸ c˜oes de desem-
penho/estabilidade n˜ ao forem atendidas para um determinado compensador
com uma certa estrutura (controlador PI, por exemplo), uma nova estrutura
para o controlador — ou at´e mesmo uma nova metodologia de projeto — deve
ser adotada. Pode-se, at´e mesmo, em alguns casos, verificar se h´ a alguma
possibilidade de se relaxar as especifica¸ c˜oes.
No Laborat´orio de Sistemas de Controle I, procuraremos abranger todas
1
2 CAP
´
ITULO 1. INTRODUC¸
˜
AO
v
a
(t)
R
a
L
a
i
g
(t)
v
t
(t)
Figura 1.1: Circuito el´etrico equivalente para o grupo motor-gerador com
sensor de velocidade (tacˆometro)
as fases de um projeto de um sistema de controle por realimenta¸ c˜ao. A planta
a ser adotada ´e a de um grupo motor-gerador cujo circuito equivalente est´a
representado na figura 1.1, onde v
a
(t) representa a tens˜ao nos terminais da
armadura do motor, v
t
(t) a tens˜ao nos terminais do tacˆometro (proporcional
` a velocidade angular do gerador) e i
g
(t) denota a corrente fornecida pelo
gerador quando uma carga ´e conectada aos seus terminais.
Ao se formular um problema de controle, o primeiro passo ´e a defini¸ c˜ao
da grandeza a ser controlada. Em nosso caso, a grandeza escolhida ser´a a
velocidade angular do gerador. A motiva¸ c˜ao para esta escolha est´a no fato de
que na gera¸ c˜ao de tens˜oes alternadas senoidais, a freq¨ uˆencia angular deve ser
mantida dentro de um intervalo bastante r´ıgido. Como a freq¨ uˆencia angular ´e
proporcional ` a rota¸ c˜ao do motor, o controle da velocidade angular do gerador
surge como um objetivo claro de projeto. Nos sistemas de potˆencia, a ´ unica
diferen¸ ca da planta aqui adotada ´e a substitui¸ c˜ao do gerador de corrente
cont´ınua (CC) por um de corrente alternada (CA).
De uma forma mais detalhada, o problema de controle a ser perseguido
aqui pode ser enunciado da seguinte forma: projete um controlador de tal
forma que o sistema realimentado: (i) seja est´avel; (ii) tenha erro de estado
permanente nulo para uma determinada velocidade de referˆencia; (iii) rejeite
assintoticamente (quando o tempo tende para infinito) perturba¸ c˜oes que, no
sistema em estudo, s˜ao decorrentes da introdu¸ c˜ao de cargas nos terminais
do gerador; tais cargas, ao demandarem corrente do gerador, aumentam o
torque resistivo no eixo do motor, fazendo com que a velocidade de rota¸ c˜ao
3
do grupo diminua.
No projeto de sistemas de controle, o engenheiro ´e geralmente assis-
tido por programas computacionais tais como o MATLAB ou SIMULINK
(MathWorks, 1996). Em nosso projeto utilizaremos o SIMULINK para a
simula¸ c˜ao do sistema projetado e o MATLAB como ferramenta auxiliar de
projeto. Uma breve introdu¸ c˜ao ` a programa¸ c˜ao em ambiente MATLAB ser´a
apresentada no cap´ıtulo 2. No cap´ıtulo 3 ser´a desenvolvido um modelo
matem´atico para a planta e em seguida os parˆ ametros da fun¸ c˜ao de trans-
ferˆencia do sistema ser˜ao identificados. O m´etodo de identifica¸ c˜ao adotado ´e o
da resposta em freq¨ uˆencia, utilizando-se dois procedimentos distintos: (i) os
diagramas de Bode, que permitem a determina¸ c˜ao dos p´ olos e zeros da fun¸ c˜ao
de transferˆencia do sistema a partir do tra¸ cado de ass´ıntotas e (ii) o m´etodo
dos m´ınimos quadrados, que ajustam as curvas de resposta em freq¨ uˆencia
de uma fun¸ c˜ao de transferˆencia de uma certa ordem aos pontos obtidos em
laborat´orio de tal sorte que a soma dos quadrados das distˆancias entre os
pontos obtidos experimentalmente e aqueles a partir da fun¸ c˜ao identificada
(ambos tomados em freq¨ uˆencias idˆenticas) seja m´ınima. No cap´ıtulo 4 ser´a
feito o projeto de um sistema de controle de velocidade para um grupo motor-
gerador. Ser˜ao tamb´em realizadas simula¸ c˜oes objetivando-se n˜ ao s´o ilustrar
os objetivos da realimenta¸ c˜ao como tamb´em mostrar a importˆancia de pro-
gramas computacionais tais como o MATLAB e o SIMULINK no projeto de
sistemas de controle. Finalmente, no cap´ıtulo 5 ser´a feita a implementa¸ c˜ao
do controlador de velocidade desenvolvido no cap´ıtulo 4.
´
E importante ressaltar que, embora aplicado a um sistema espec´ıfico, a
abordagem aqui apresentada pode ser aplicada a diversos outros sistemas
f´ısicos. Assim sendo, caso o aluno venha a se deparar com um processo
diferente daquele que estamos considerando neste laborat´ orio, os mesmos
passos que levaram ` a solu¸ c˜ao do problema aqui apresentado poder˜ao ser
seguidos na solu¸ c˜ao do problema em quest˜ao.
4 CAP
´
ITULO 1. INTRODUC¸
˜
AO
Cap´ıtulo 2
Programando em MATLAB
Uma das principais raz˜oes do sucesso da programa¸ c˜ao em ambiente MAT-
LAB nos meios cient´ıficos ´e certamente a possibilidade que o usu´ario tem de
manipular matrizes, vetores, polinˆ omios e diversas fun¸ c˜oes matem´aticas de
forma idˆentica a que est´a acostumado a fazer no dia-a-dia. A id´eia central
dessa linguagem ´e transportar para um ambiente computacional os mesmos
s´ımbolos e conven¸ c˜oes da matem´atica – da´ı o nome MATLAB. Para tanto, o
MATLAB n˜ ao s´ o disp˜oe de fun¸ c˜oes pr´e-definidas como tamb´em permite que
o usu´ario desenvolva suas pr´oprias fun¸ c˜oes. Isto fez com que essa linguagem
crescesse, uma vez que mais e mais fun¸ c˜oes foram desenvolvidas, aumentando
cada vez mais o potencial e a sua aplicabilidade a diversos campos da ciˆencia.
No projeto de sistemas de controle, o MATLAB ´e tamb´em uma poderosa
ferramenta. Al´em de realizar os c´alculos, que em geral s˜ao longos, tediosos
e de grande probabilidade de ocorrˆencia de erro quando realizados pelo ser
humano, o MATLAB tem uma excelente interface gr´ afica que auxilia o en-
genheiro de controle a verificar se o sistema compensado com o controlador
projetado satisfaz as especifica¸ c˜oes de projeto. Outro aliado importante do
engenheiro de controle ´e o programa SIMULINK, que faz simula¸ c˜oes de sis-
temas lineares e n˜ ao-lineares, discretos e cont´ınuos no tempo. Uma vez pro-
jetado um controlador, pode-se inseri-lo no sistema e realizar a simula¸ c˜ao,
quando se poder´a verificar se tal controlador satisfaz as especifica¸ c˜oes de
desempenho.
Neste cap´ıtulo apresentaremos alguns t´opicos sobre programa¸ c˜ao em am-
biente MATLAB visando o seu uso em desenvolvimento de programas para
identifica¸ c˜ao de sistemas e no projeto de sistemas de controle. Evidentemente
h´ a muito mais do que ser´a apresentado aqui. Recomenda-se ao aluno mais
5
6 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
interessado consultar os manuais do MATLAB e do SIMULINK.
2.1 Modos de programa¸ c˜ao
Ao iniciar o MATLAB, estando o usu´ario em ambiente WINDOWS, ser´a
aberta uma janela. Esta janela define um espa¸ co de trabalho. O espa¸ co de
trabalho nada mais ´e do que uma ´ area de mem´oria onde ser˜ao armazenadas
as vari´ aveis que vierem a ser definidas pelo usu´ario. Al´em dessas vari´ aveis, o
usu´ario, dentro de um espa¸ co de trabalho tem acesso a: (i) fun¸ c˜oes definidas
pelo MATLAB; (ii) fun¸ c˜oes desenvolvidas pelo usu´ario, desde que estejam
armazenadas no pr´oprio diret´orio em que o usu´ario esteja trabalhando ou em
diret´orios que constem do caminho de busca do MATLAB.
A programa¸ c˜ao em ambiente MATLAB pode ser feita nas seguintes for-
mas:
1. Modo imediato;
2. Utilizando um arquivo de comandos;
3. Utilizando arquivos de fun¸ c˜oes.
No modo imediato, uma linha de comando ´e executada t˜ao logo a tecla
<enter> ´e pressionada. Com um arquivo de comandos pode-se executar uma
s´erie de instru¸ c˜oes como se estivesse no modo imediato. A vantagem do ar-
quivo de comandos sobre o modo imediato ´e que todos os comandos ficam
guardados para uso futuro. A ´ unica desvantagem desse tipo de arquivo ´e
que, rigorosamente falando, o usu´ario continua no modo imediato e, por-
tanto, todas as vari´ aveis que apare¸ cam em um arquivo de comando vir˜ao a
fazer parte do espa¸ co de trabalho do usu´ario. Isto aumenta a ´ area de mem´oria
em uso pelo MATLAB e pode ter o incoveniente de alterar o valor de alguma
vari´ avel caso um novo valor seja atribu´ıdo a ela quando da execu¸ c˜ao do ar-
quivo de comando. Este problema n˜ ao ocorre quando se utiliza um arquivo
de fun¸ c˜oes. Neste caso o MATLAB define uma nova ´ area de mem´oria para
armazenamento das vari´ aveis a serem definidas no arquivo de fun¸ c˜oes, per-
mitindo assim que vari´ aveis de mesmo nome que aquelas em uso no espa¸ co
de trabalho sejam definidas em um arquivo de fun¸ c˜oes sem, contudo, alterar
o valor daquelas definidas pelo usu´ario.
2.1. MODOS DE PROGRAMAC¸
˜
AO 7
2.1.1 Modo imediato
Uso de v´ırgula(,), ponto-e-v´ırgula (;) e reticˆencias (...)
Comandos em uma mesma linha de comando podem ser separados por v´ırgula
(,) ou ponto-e-v´ırgula (;) produzindo o mesmo efeito, exceto que no primeiro
caso o resultado da opera¸ c˜ao ´e mostrado na tela. Caso uma linha de coman-
dos seja demasiadamente longa, ela pode ser continuada na linha seguinte
bastando para isso que a linha anterior termine com reticˆencias seguida de
<enter>. Neste caso o MATLAB somente ir´a executar a seq¨ uˆencia de co-
mandos quando a tecla enter for pressionada sem que tenha sido precedida
de reticˆencias.
Exemplo 2.1
>> a=2; b=5; <enter>. Neste caso, o MATLAB armazena 2 e 5 nas
posi¸ c˜oes de mem´oria a e b, respectivamente, por´em n˜ ao exibe os valores
armazenados das vari´ aveis.
>> a=2, b=5 <enter>. Esta linha de comandos produz o mesmo efeito
que a linha de comando acima, exceto que a mensagem a=2 e b=5 ´e exibida
na tela.
>> c = a+b; <enter>. Aqui o MATLAB armazena o valor 7 na posi¸ c˜ao
de mem´oria c, mas n˜ ao exibe na tela o seu conte´ udo.
Caso se deseje, posteriormente, saber o valor de uma determinada vari´ a-
vel, basta digitar o nome dessa vari´ avel seguida de <enter>. Por exemplo:
>> c <enter> faz com que o MATLAB exiba na tela a mensagem c = 7.
2
Comandos importantes no modo imediato
Iremos agora apresentar alguns comandos que s˜ao geralmente usados no modo
imediato. Esses comandos s˜ao usualmente empregados para mudan¸ ca do di-
ret´orio de trabalho (chdir), para listar todas as vari´ aveis que est˜ao sendo
utilizadas pelo usu´ario (who e whos), para gravar as vari´ aveis em um arquivo
.mat (save), para carregar no espa¸ co de trabalho as vari´ aveis armazenadas
em um arquivo .mat (load), para apagar determinadas vari´ aveis do espa¸ co
de trabalho (clear) e para gravar em um arquivo de texto todos os co-
mandos e mensagens de uma dada se¸ c˜ao (diary). Na forma geral dos co-
mandos a serem apresentados a seguir, <caminho> denota um determinado
atalho, como por exemplo, c:\usu´ ario\matlab\labcont1, <vari´ aveis> de-
nota uma lista contendo uma ou mais vari´ aveis definidas pelo usu´ario, <ar-
8 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
quivo> representa um nome de arquivo cuja termina¸ c˜ao (.txt, .mat ou .m)
ficar´a clara no contexto. Uma descri¸ c˜ao mais detalhada desses comandos ´e
dada a seguir:
1. chdir, cd: mostram o diret´orio de trabalho atual;
chdir <caminho>: muda para o diret´orio especificado em <caminho>.
O comando cd, tem a mesma sintaxe de chdir e produz o mesmo efeito.
2. who: lista todas as vari´ aveis em uso no espa¸ co de trabalho. Note que
vari´ aveis definidas pelo usu´ario, mas j´ a apagadas, n˜ ao s˜ao listadas.
3. whos: lista na tela todas as vari´ aveis em uso e as correspondentes
dimens˜oes.
4. save: armazena todas as vari´ aveis em uso no arquivo matlab.mat;
save <arquivo> <vari´ aveis>: guarda todas as vari´ aveis da lista
<vari´ aveis> no arquivo <arquivo>.mat.
O exemplo seguinte ilustra o uso do comando save. Note que os valores
atribu´ıdos ` as vari´ aveis s˜ao aqueles do exemplo 2.1, acima.
Exemplo 2.2
>> save aula a b <enter>. Inicialmente, MATLAB cria um arquivo de-
nominado aula.mat e em seguida armazena as vari´ aveis a e b nesse arquivo.
Caso o arquivo aula.mat j´ a existe, MATLAB apaga o seu conte´ udo antes de
guardar as vari´ aveis.
>> save aula <enter>. Armazena as vari´ aveis a, b e c no arquivo
aula.mat.
>> save <enter>. Cria um arquivo matlab.mat e armazena nele as va-
ri´aveis a, b e c. 2
5. load <arquivo>: transfere todas as vari´ aveis armazenadas em <ar-
quivo>.mat para o espa¸ co de trabalho. Por exemplo, o comando
>> load <enter>
localiza o arquivo matlab.mat e em seguida traz para o espa¸ co de trabalho as
vari´ aveis nele armazenadas. Caso haja alguma vari´ avel no espa¸ co de trabalho
de mesmo nome que uma outra armazenada em <arquivo>.mat, ela ser´a
substitu´ıda pela vari´ avel que est´a sendo carregada, isto ´e, aquela armazenada
em <arquivo>.mat.
6. clear: apaga todas as vari´ aveis do espa¸ co de trabalho.
clear <vari´ aveis>: apaga somente as vari´ aveis listadas em <vari´ a-
veis>. Por exemplo, ao se digitar
2.1. MODOS DE PROGRAMAC¸
˜
AO 9
>> clear a <enter>
o usu´ario ir´a apagar somente a vari´ avel a.
7. diary <caminho\arquivo>: grava no arquivo <caminho><arquivo>
todos os comandos e mensagens de uma se¸ c˜ao. Note que a termina¸ c˜ao do
arquivo, .txt por exemplo, deve fazer parte de <arquivo>. Este comando
difere do comando save no seguinte aspecto: enquanto o comando save
apaga o conte´ udo do arquivo onde ser˜ao armazenadas as vari´ aveis, diary
acrescenta a mais recente mensagem ao conte´ udo do arquivo. O comando
diary ´e ´ util quando se deseja fazer um memorial do trabalho para consulta
posterior.
diary off suspende a grava¸ c˜ao dos comandos e mensagens no arquivo
<arquivo>.
2.1.2 Arquivo de comandos
Os comandos editados em um arquivo de comandos podem ser executados
diversas vezes. Para isso, basta digitar o nome do arquivo, sem a termina¸ c˜ao
.m, que o MATLAB executar´a todos as linhas de comandos do arquivo como
se estivesse no modo imediato. A constru¸ c˜ao e a execu¸ c˜ao um arquivo de
comandos segue os seguintes passos:
1. A partir do MATLAB, criar um bloco de notas <arquivo>.m;
2. Editar o arquivo <arquivo>.m com comandos a serem executados
como se estivesse no modo imediato. Ap´os alguma modifica¸ c˜ao no arquivo
<arquivo>.m, deve-se gravar o arquivo, para que a altera¸ c˜ao possa ser con-
siderada pelo MATLAB na pr´oxima vez que esse arquivo for executado.
3. Para executar os comandos do arquivo <arquivo>.m basta digitar
<arquivo> <enter>.
Exemplo 2.3: Suponha que no arquivo seq1.m, sejam editados os seguintes
comandos:
c=[1:2:10];d=[2:2:10];
e=c’;f=c’*d;g=c*d’;
h=c.*d;l=c./d;
Ao se digitar, na janela de comandos do MATLAB,
>> seq1 <enter>
o programa MATLAB, inicialmente, verifica se existe no espa¸co de trabalho
alguma vari´ avel denominada seq1. Caso n˜ ao encontre, MATLAB ent˜ao
procura no diret´orio de trabalho por um arquivo de comandos de nome
10 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
seq1.m. Encontrando o arquivo, executa os comandos editados nele. Caso
contr´ario, procura em todos os caminhos de busca por um arquivo de coman-
dos seq1.m. Exemplos de caminhos de busca s˜ao:
c:\usu´ ario\matlab\labcont1
c:\usu´ ario\matlab\labcont2 2
No exemplo considerado, se o usu´ario estiver no mesmo diret´orio em que
armazenou o arquivo seq1.m, ent˜ao a seq¨ uˆencia de comandos acima ser´a
executada ap´ os seq1 <enter>. Caso contr´ario, o MATLAB iniciar´a uma
procura em todos os caminhos de busca. N˜ao achando, a mensagem
??? Undefined function or variable seq1.
ser´a exibida na tela.
´
E importante ressaltar que, se o arquivo seq1.m for
gravado em dois diret´orios, MATLAB executar´a aquele que estiver armaze-
nado no diret´orio pertencente ao caminho de busca que aparece em primeiro
lugar.
2.1.3 Arquivos de fun¸c˜oes
Quando um arquivo de comandos ´e executado, todas as vari´ aveis nele defi-
nidas passam a fazer parte do espa¸ co de trabalho. Al´em de aumentar a ´ area
de mem´oria utilizada pelo MATLAB (o que pode muitas vezes torna lenta a
execu¸ c˜ao de comandos, visto que o MATLAB pode vir a ter que armazenar
vari´ aveis no disco r´ıgido), isto faz com que o usu´ario tenha no seu espa¸ co de
trabalho um n´ umero, ` as vezes, excessivamente grande de vari´ aveis. Outro
aspecto a ser ressaltado ´e que, ao se usar arquivos de comandos, deve-se ter o
cuidado de usar nomes de vari´ aveis diferentes daquelas do espa¸ co de trabalho,
no caso de n˜ ao se querer modificar o conte´ udo delas.
Esses problemas s˜ao, em parte, solucionados com o emprego de arquivos
de fun¸ c˜oes. Ao se executar uma fun¸ c˜ao, o MATLAB define um novo espa¸ co de
trabalho diferente daquele definido inicialmente pelo usu´ ario. Isto permite
que vari´ aveis de mesmo nome sejam definidas simultaneamente no espa¸ co
de trabalho e num arquivo de fun¸ c˜oes. O espa¸ co de trabalho definido ao
se executar uma fun¸ c˜ao ir´a, como no caso da execu¸ c˜ao de um arquivo de
comandos, aumentar a ´ area de mem´oria utilizada pelo MATLAB. Contudo,
diferentemente do que ocorre quando se usa um arquivo de comandos, essa
´ area ser´a liberada ap´ os a execu¸ c˜ao da fun¸ c˜ao.
Para se criar uma fun¸ c˜ao, procede-se da seguinte forma:
1. Cria-se um arquivo <fun¸ c~ ao>.m;
2. A primeira linha de execu¸ c˜ao desse arquivo deve ser:
2.1. MODOS DE PROGRAMAC¸
˜
AO 11
function [y1,y2,...,yn] = <fun¸ c~ ao>(x1,x2,...,xm);
onde x1,x2,...,xm s˜ao as vari´ aveis de entrada e y1,y2,...,yn s˜ao as va-
ri´aveis de sa´ıda. Note que o nome da fun¸ c˜ao, definido em <fun¸ c~ ao>, deve ser
o mesmo do arquivo onde ela foi editada.
3. Antes do primeiro comando a ser executado, pode-se escrever alguns
coment´arios para orienta¸ c˜ao dos poss´ıveis usu´arios daquela fun¸ c˜ao. Toda
linha de coment´ario se inicia com o sinal %.
4. Ao se digitar
>> help <fun¸ c~ ao> <enter>
s˜ao exibidos, na janela aberta para o MATLAB, os coment´arios iniciais do
arquivo <fun¸ c~ ao>.m, isto ´e, aquelas iniciadas com % que precedem uma linha
de comandos ou uma linha totalmente em branco.
Exemplo 2.4: Criar um arquivo de fun¸ c˜oes para calcular a norma euclideana
(norma-2) de um vetor x = [ x
1
x
2
. . . x
n
]
t
.
Inicialmente, lembre-se de que a norma euclideana de um vetor ´e definida
como:
x
2
=
_
x
2
1
+x
2
2
+· · · +x
2
n
= (x
t
x)
1/2
(2.1)
A fun¸ c˜ao que calcula x
2
deve, portanto, executar a equa¸ c˜ao (2.1), o
que requer que a vari´ avel de entrada seja um vetor (x) de dimens˜ao n e a
sa´ıda um escalar (y) representativo da norma-2 de x. Se norma2.m ´e o nome
do arquivo onde esta fun¸ c˜ao ser´a editada, ent˜ao esse arquivo poderia ter o
seguinte conte´ udo:
% y=norma2(x) : calcula a norma euclideana de um vetor
% onde: x : vetor de entrada (vetor coluna)
% y : norma euclideana de x
%
function y=norma2(x);
y=sqrt(x’*x); 2
Observe que digitando-se
>> help norma2 <enter>
as 4 primeiras linhas do arquivo ser˜ao exibidas na janela do MATLAB, por´em
o s´ımbolo % n˜ ao ser´a exibido. Por exemplo
>> x=[1 2 2]’;y=norma2(x);<enter>
faz com que MATLAB execute a fun¸ c˜ao norma2 para o vetor x, armazenando
na vari´ avel y o valor 3. Verifique!
12 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
Para que o resultado da fun¸ c˜ao acima seja realmente a norma euclideana
do vetor x, x deve ser um vetor coluna. Caso contr´ario x’*x ser´a uma
matriz e a sa´ıda y ser´a uma matriz m × m cujos elementos s˜ao as ra´ızes
quadradas de x
i
x
j
, onde x
i
e x
j
denotam as componentes i e j do vetor x.
Uma outra particularidade da fun¸ c˜ao acima ´e o uso do comando sqrt, que
´e uma fun¸ c˜ao pr´e-definida pelo MATLAB. Em um arquivo de fun¸ c˜ao podem
ser usadas outras fun¸ c˜oes quer sejam definadas anteriormente pelo usu´ario
ou pr´e-definidas pelo MATLAB. Essas ´ ultimas permitem a manipula¸ c˜ao de
matrizes, vetores, polinˆ omios e outras fun¸ c˜oes matem´aticas de uma forma
robusta, isto ´e por algoritmos que n˜ ao s˜ao suscept´ıveis a problemas de mau
condicionamentos.
Na se¸ c˜ao seguinte ser˜ao apresentadas algumas fun¸ c˜oes pr´e-definidas pelo
MATLAB. Essas fun¸ c˜oes foram escolhidas tendo em vista sua importˆancia
no desenvolvimento de programas para o projeto de sistemas de controle.
2.2 Fun¸ c˜oes pr´e-definidas pelo MATLAB
A caracter´ıstica principal do MATLAB ´e tratar indistintamente escalares,
vetores e matrizes como sendo matrizes. Por exemplo, a vari´avel a=3 ´e para
o MATLAB uma matriz de dimens˜ao 1 × 1; um vetor de dimens˜ao n ´e, na
verdade, uma matriz de dimens˜oes n × 1 ou 1 × n, dependendo de se tratar
de um vetor coluna ou de um vetor linha. Assim sendo, tanto o argumento
(entrada) de uma fun¸ c˜ao como o valor que ela retorna (sa´ıda) s˜ao matrizes,
embora para o usu´ario tratam-se simplesmente de vetores ou at´e mesmo
escalares.
Para se definir uma matriz, deve-se fornecer cada um dos seus elementos.
Por exemplo, a matriz
A =
_
1 2, 2 3
4, 6 5 6
_
pode ser armazenada na vari´ avel a das seguintes formas:
(i) Fornecendo-se cada um dos elementos da matriz:
>> 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>
(ii) Entrando com os elementos da matriz entre colchetes ([ ]), sendo
os elementos de uma mesmas linha separados por v´ırgula (,) ou espa¸ cos em
branco e as linhas da matriz por ponto-e-v´ırgula (;):
>> a=[1,2.2,3;4.6,5,6] <enter>
2.2. FUNC¸
˜
OES PR
´
E-DEFINIDAS PELO MATLAB 13
>> a=[1 2.2 3;4.6 5 6] <enter>
Deve-se tomar o cuidado para, no caso de n´ umeros com parte decimal, separar
a parte inteira da parte decimal usando ponto (.);
O acesso a qualquer elemento de uma matriz que tenha sido anterior-
mente definida, e que ainda esteja armazenada no espa¸ co de trabalho, ´e feito
de forma semelhante, isto ´e, fornecendo-se a posi¸ c˜ao do elemento desejado.
Suponha, ent˜ao, que os elementos de uma matriz M : p × q tenham sido
armazenados na vari´ avel m.
(i) Para se ter acesso ao elemento (i, j) de m faz-se m(i,j). Por exemplo,
para modificar o elemtno (1, 3) da vari´ avel a, acima, fazendo-o igual a 7,
basta digitar:
>> a(1,3)=7 <enter>
Para se armazenar o elemento (1, 2) na vari´ avel 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 ` as linhas cujos ´ındices
s˜ao dados no vetor vetorlinha e ` as colunas indicadas pelas componentes do
vetor vetorcoluna. Por exemplo, para se tomar os elementos da interse¸ c˜ao
das linhas 1 e 2 e das colunas 2 e 3 de a e armazen´a-las em x, deve-se fazer:
>> x = a([1 2],[2 3]) <enter>
(iii) Para ter acesso ` a coluna j da matriz m faz-se m(:,j). Por exemplo,
para atribuir a terceira coluna da matriz a, acima, ` a vari´ avel 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 n˜ ao requerem que o usu´ario entre com todos os seus
elementos. S˜ ao elas: as matrizes identidade e diagonal, a matriz cujos ele-
mentos s˜ao todos iguais a 1 ou zero. A atribui¸ c˜ao dessas matrizes a vari´ aveis
´e feita da seguinte forma:
(i) i = eye(m) : atribui-se ` a vari´ avel i uma matriz identidade de ordem
m;
(ii) d = diag([d1 d2 ... dm]) : forma uma matriz diagonal d, m×m,
cujos elementos da diagonal principal s˜ao d1,d2,...,dm;
(iii) um = ones(m,n) : cria uma vari´ avel um, m × n, em que todos os
elementos s˜ao iguais ` a unidade;
14 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
(iv) z = zeros(m,n) : forma uma matriz z, m×n, cujos elementos s˜ao
todos iguais a zero.
O MATLAB possui um conjunto de fun¸ c˜oes pr´e-definidas que permitem
manipular matrizes e vetores de forma an´ aloga a que o engenheiro est´a acos-
tumado a fazer no seu dia-a-dia. Estas fun¸ c˜oes s˜ao apresentadas a seguir.
2.2.1 Fun¸c˜oes para manipula¸c˜ao de matrizes
Sejam
A =
_
¸
¸
¸
_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_
¸
¸
¸
_
e B =
_
¸
¸
¸
_
b
11
b
12
. . . b
1q
b
21
b
22
. . . b
2q
.
.
.
.
.
.
.
.
.
b
p1
b
p2
. . . b
pq
_
¸
¸
¸
_
matrizes de dimens˜oes m× n e p × q, respectivamente, com elementos per-
tencentes ao conjunto dos n´ umeros complexos. Suponha que as matrizes A
e B tenham sido armazenadas nas vari´ aveis a e b, respectivamente. Ent˜ao:
(i) [m,n]=size(a) : armazena, respectivamente, nas vari´ aveis m e n, o
n´ umero de linhas e de colunas da matriz a ;
m=size(a,1) : armazena na vari´ avel m o n´ umero de linhas de a;
n=size(a,2) : armazena em n o n´ umero de colunas de a.
(ii) c=a*b : calcula o produto das matrizes a e b (se n = p) e armazena
na vari´ avel c. Quando n = p, MATLAB retorna uma mensagem de erro.
(iii) c=a.*b e c=a./b : forma uma matriz C tal que c
ij
= a
ij
b
ij
e c
ij
=
a
ij
/b
ij
, respectivamente, e armazena o resultado na vari´ avel c. Este comando
requer m = p e n = q.
(iv) c=inv(a) : calcula a inversa da matriz armazenada na vari´ avel a (se
m = n) e armazena na vari´ avel c.
(v) c=det(a) : calcula o determinante da matriz armazenada em a, ar-
mazenando o resultado na vari´ avel c.
(vi) c=a+b e c=a-b : computa, respectivamente, a soma e a subtra¸ c˜ao das
matrizes a e b e as armazena em c.
(vii) [w,l]=eig(a) : retorna a matriz w, cuja i-´esima coluna ´e formada
pelo o i-´esimo autovetor de a associado ao i-´esimo autovalor e uma matriz
diagonal l, cujo elemento (i, i) corresponde ao i-´esimo autovalor de a.
l=eig(a) : retorna um vetor de dimens˜ao n cujas componentes s˜ao
os autovalores de a.
2.2. FUNC¸
˜
OES PR
´
E-DEFINIDAS PELO MATLAB 15
2.2.2 Fun¸c˜oes matem´aticas elementares
Seja Z : m×n, uma matriz cujo elemento i, j ´e z
ij
=| z
ij
| e

ij
= x
ij
+jy
ij
e assuma que a matriz Z tenha sido armazenada na vari´ avel z. Tem-se que:
(i) w = abs(z) retorna uma matrix w cujo elemento (i, j) ´e w
ij
=| z
ij
|;
(ii) w = angle(z) retorna uma matriz w cujo elemento (i, j) ´e w
ij
= θ
ij
,
em radianos;
(iii) w = real(z) ´e uma matriz onde w
ij
= x
ij
;
(iv) w = imag(z) ´e tal que w
ij
= y
ij
;
(v) w = conj(z) retorna uma matriz w tal que w
ij
= x
ij
−jy
ij
;
(vi) w = z’ calcula uma matriz W = Z

=
¯
Z
t
(associada da matriz Z),
isto ´e w
ij
= x
ji
−jy
ji
e armazena na vari´ avel w;
(vii) w = exp(z) retorna uma matriz cujo elemento (i, j) ´e w
ij
=exp(z
ij
);
(viii) w = log(z) retorna uma matriz onde w
ij
= ln(x
ij
+jy
ij
);
(ix) w = log10(z) produz uma matriz em que w
ij
= log(x
ij
+jy
ij
);
(x) w=sin(z), w=cos(z), w=tan(z), w=acos(z), w=asin(z) e w=atan(z)
calculam matrizes W tais que w
ij
= Sen (z
ij
), w
ij
= Cos (z
ij
), w
ij
= tg (z
ij
),
w
ij
= arc Cos (z
ij
), w
ij
= arc Sen (z
ij
) e w
ij
= arc tg (z
ij
), respectivamente,
armazenando o resultado na vari´ avel w. Note que: (a) as fun¸ c˜oes sin, cos e
tan assumem que os argumentos s˜ao expressos em radianos; (b) os ˆ angulos
retornados pelas fun¸ c˜oes acos, asin e atan s˜ao expressos em radianos.
´
E importante salientar os seguintes pontos relativos ao uso dos comandos
acima:
(1) quando se desejar obter a transposta de uma matriz e n˜ ao o conju-
gado complexo da sua transposta (associada), deve-se proceder de uma das
seguintes formas: w = z.’ ou ent˜ao w = conj(z’);
(2) deve-se tomar cuidado ao usar os comandos log e log10 — o primeiro
calcula o logaritmo neperiano, enquanto o ´ ultimo retorna o logaritmo decimal.
Os exerc´ıcios propostos 2.1 e 2.2, ao final deste cap´ıtulo, servir˜ao para ilustrar
o uso dos comandos apresentados acima.
2.2.3 Manipula¸c˜ao de vetores
Para o MATLAB, vetores s˜ao, na verdade, matrizes nas quais uma das di-
mens˜oes (n´ umero de linhas ou colunas) ´e igual a 1. Portanto, podem ser
manipulados de forma idˆentica a que ´e feito para as matrizes. Por exemplo,
o vetor v =
_
1 2, 5 7
¸
pode ser definido das seguintes formas:
(1.i) >> v(1,1)=1;v(1,2)=2.5;v(1,3)=7; <enter>
(1.ii) >> v=[1 2.5 7]; <enter>
16 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
(1.iii) >> v=[1,2.5,7]; <enter>
Caso se tratasse de um vetor coluna, (w = v
t
), poder-se-ia definir uma
vari´ avel w como se segue:
(2.i) >> w(1,1)=1;w(2,1)=2.5;w(3,1)=7; <enter>
(2.ii) >> w=[1 2.5 7]’; <enter>
(2.iii) >> w=[1;2.5;7]; <enter>
Apesar de considerar todas as vari´ aveis como sendo matrizes, o MATLAB
´e capaz de reconhecer quando se trata de um vetor. Para isso, basta que uma
das dimens˜oes seja igual a 1 ou que, ao se definir o vetor, apenas uma das
dimens˜oes seja dada. Neste ´ ultimo caso, o MATLAB armazenar´a o vetor
como sendo um vetor linha. Desta forma, para se definir os vetores v e w,
acima, poder-se-ia substituir as intru¸ c˜oes (1.i) e (2.i) por:
>> v(1)=1;v(2)=2.5;v(3)=7;w=v’; <enter>.
Outro aspecto importante na defini¸ c˜ao de um vetor ´e quando as compo-
nentes formam uma seq¨ uˆencia. Por exemplo, para armazenar a seq¨ uˆencia
s
f =
_
a
1
a
1
+r a
1
+ 2r . . . a
n
¸
,
onde a
n
= a
1
+nr, na vari´ avel sf faz-se
>> sf=[a1:r:an] <enter>;
Deve-se salientar que, caso a
n
n˜ ao fosse um elemento da seq¨ uˆencia, o ´ ultimo
elemento do vetor sf seria o maior valor tal que a
1
+kr < a
n
, para um dado
k.
´
E importante lembrar que pode tamb´em ser feito o armazenamento de
uma seq¨ uˆencia decrescente. Para tanto, a
1
deve ser maior que a
n
e r deve
ser negativo.
MATLAB tamb´em possui fun¸ c˜oes especiais para a manipula¸c˜ao de ve-
tores. Sejam
x =
_
x
1
x
2
. . . x
n
¸
y =
_
¸
¸
¸
_
y
1
y
2
.
.
.
y
m
_
¸
¸
¸
_
vetores de dimens˜oes n e m, respectivamente, e assuma que x e y estejam
armazenados nas vari´ aveis x e y. Os seguintes comandos s˜ao especialmente
usados na manipula¸ c˜ao de vetores:
(i) length(x) e length(y) retornam as dimens˜oes dos vetores x e y (n
e m, respectivamente);
2.2. FUNC¸
˜
OES PR
´
E-DEFINIDAS PELO MATLAB 17
(ii) norm(x,p) retorna a norma-p do vetor x (x
p
). Deve ser ressaltado
que a fun¸ c˜ao 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 ´e definida como
x
p
= (
n

i=1
| x
i
|
p
)
1/p
e, portanto:
x
1
=
n

i=1
| x
i
|
x
2
= (
n

i=1
| x
i
|
2
)
1/2
(iii) [mx,i]=max(x). Se x ´e um vetor cujas componentes s˜ao n´ umeros
reais, ent˜ao mx ´e o maior valor de x e i corresponde ` a posi¸ c˜ao onde o m´aximo
ocorre. Caso x tenha duas componentes onde os valores m´aximos ocorrem, i
corresponder´a ` a componente onde o valor m´aximo ocorre primeiro. Quando x
´e um vetor complexo, mx correponder´a ` a componente de maior valor absoluto
de x e i correponder´a ao ´ındice dessa componente.
(iv) hflip=fliplr(x) e vflip=flipud(y) retornam os seguintes vetores:
h
flip
=
_
x
n
x
n−1
. . . x
2
x
1
¸
v
flip
=
_
¸
¸
¸
¸
¸
_
y
m
y
m−1
.
.
.
y
2
y
1
_
¸
¸
¸
¸
¸
_
Exemplo 2.5: Escreva um arquivo do tipo fun¸ c˜oes para calcular a derivada
de um polinˆ omio de qualquer grau.
Seja
p(x) = p
0
x
n
+p
1
x
n−1
+p
2
x
n−2
+. . . +p
n−1
x +p
n
um polinˆ omio de grau n. Sabe-se que a derivada de p(x) ´e dada por:
d
dx
= np
0
x
n−1
+ (n −1)p
1
x
n−2
+. . . + 2p
n−2
x +p
n−1
18 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
sendo, portanto, um polinˆ omio de grau n − 1. A fun¸ c˜ao a seguir calcula a
derivada de p(x) em rela¸ c˜ao a x:
% DERIVADA : calcula a derivada de um polinomio p(x)
% pderiv = derivada(p)
%
% onde p = [po p1 p2 ... pn] sao os coeficientes do
% polinomio
%
function pderiv = derivada(p);
n=length(p)-1;pderiv=[n:-1:1].*p(1:n);
Agora, verifique se o programa est´a correto, calculando a derivada em
rela¸ c˜ao a x do polinˆ omio p(x) = 5x
3
+ 2x
2
−x + 1. 2
Exemplo 2.6: Escreva um arquivo de comandos para calcular o instante
de pico, o percentual de ultrapassagem, o valor m´aximo e o valor de estado
permanente da resposta ao degrau do sistema cuja fun¸ c˜ao de transferˆencia ´e
G(s) =
0, 6618
s
2
+ 1, 0069s + 0, 6618
.
Considere que o intervalo de simula¸ c˜ao seja de 0 a 20s
% INDICES : calcula indices de desempenho de um sistema
% [tp,po,ymax,yss] = indices(t,y)
%
% onde : y : vetor contendo as repostas correspondentes
% aos instantes de simulacao armazenados no
% vetor t
% t : vetor contendo os instantes de simulacao
% tp : tempo de pico
% po : percentual de ultapassagem
% ymax : valor maximo da resposta
% yinf : valor de estado permanente da
%
function [tp,po,ymax,yinf] = indices(t,y);
% calculando o ponto de maximo e o instante onde
%o maximo ocorre:
[ymax,i]=max(y);tp=t(i);
% calculando o valor de estado permanente:
yinf=y(length(y));
2.2. FUNC¸
˜
OES PR
´
E-DEFINIDAS PELO MATLAB 19
% calculando o percentual de ultrapassagem:
po=(ymax-yinf)/yinf*100; 2
Para se executar este programa, torna-se necess´ario, inicialmente, definir
os vetores t e y. Supondo que os instantes de simula¸ c˜ao estejam espa¸ cados
de 0.1s, tem-se que t ser´a definido da forma seguinte:
>> t=[0:0.1:20]; <enter>
Para obter y, deve-se usar a fun¸ c˜ao step, pertencente ` a caixa de ferra-
mentas de controle (control toolbox), que calcula a resposta ao degrau de um
sistema, sendo conhecidos os polinˆ omios do numerador e do denominador da
fun¸ c˜ao de transferˆencia do sistema. O terceiro argumento da fun¸ c˜ao step ´e
o vetor contendo os instantes de simula¸ c˜ao. As linhas de comando seguintes
permitem obter y e tamb´em o tempo de pico (tp), o percentual de ultrapas-
sagem (po), o valor m´aximo de y (ymax) e o valor de estado permanente de
y(t) (yinf):
>> n=0.6618;d=[1 1.0069 0.6618];y=step(n,d,t); <enter>
>> [tp,po,ymax,yinf]=indices(t,y); <enter>
´
E importante observar que quando o intervalo de simula¸ c˜ao n˜ ao for su-
ficientemente grande, o valor de estado permanente yinf poder´a n˜ ao ser o
correto, isto ´e, o valor do lim
t→∞
y(t). Portanto, o uso da fun¸ c˜ao acima
s´o faz sentido quando se disp˜oe da representa¸ c˜ao gr´ afica de t × y ou ent˜ao
verificando-se o vetor y est´a, de fato, convergindo para o valor final esperado.
2
2.2.4 Fun¸c˜oes polinomiais
Sejam p(x) = p
0
x
n
+ p
1
x
n−1
+ . . . + p
n−1
x + p
n
e q(x) = q
0
x
m
+ q
1
x
m−1
+
. . . +q
m−1
x+q
m
polinˆ omios de graus n e m, (n ≥ m) respectivamente. Para
se trabalhar com polinˆ omios no MATLAB, devem ser definidos vetores cujas
componentes s˜ao os coeficientes dos polinˆ omios. Assim, os polinˆ omios p(x) e
q(x) ser˜ao, para o MATLAB, referidos como p =
_
p
0
p
1
. . . p
n−1
p
n
¸
e q =
_
q
0
q
1
. . . q
n−1
q
n
¸
. MATLAB permite que polinˆ omios sejam
multiplicados ou dividos, que suas ra´ızes sejam calculadas, ou o oposto, que
se obtenha os coeficientes de um polinˆ omio a partir de suas ra´ızes, ou ainda,
calcular o valor de p(x), para diversos valores de x, conforme ser´a descrito a
seguir:
(i) Se o usu´ario desejar obter as ra´ızes de p(x) e armazen´a-las no vetor y
deve executar o seguinte comando: y=roots(p).
20 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
(ii) O produto r(x) = p(x)q(x) ´e efetuado pelo comando r=conv(p,q).
(iii) Para se dividir p(x) por q(x), obtendo-se como quociente a(x) e resto
r(x) faz-se [a,r]=deconv(p,q). Se o usu´ario n˜ ao desejar obter o resto, basta
fazer a=deconv(p,q).
(iv) Suponha que se deseje saber o valor de p(x) nos pontos x
1
, x
2
, . . ., x
q
.
Para isso deve-se, inicialmente, definir um vetor x = [x1 x2 ... xq] e, em
seguinda, fazer y=polyval(p,x), obtendo y = [p(x1) p(x2) ... p(xq)].
(v) Finalmente o comando p=poly(raizes) fornece um vetor p formado
pelos coeficientes do polinˆ omio cujas ra´ızes s˜ao as componentes do vetor
raizes. Por exemplo, p=poly([-1 -2]) retorna o vetor p=[1 3 2], formado
pelos coeficientes do polinˆ omio p(x) = (x + 1)(x + 2) = x
2
+ 3x + 2.
Exemplo 2.7: Programa para calcular a resposta em freq¨ uˆencia de uma
dada fun¸ c˜ao de transferˆencia G(s) = n(s)/d(s), sendo dado um vetor ω =
_
ω
0
ω
1
. . . ω
q
¸
, onde ω
i
, i = 0, 1, . . . , q s˜ao as freq¨ uˆencias onde se deseja
calcular G(jw).
% RESPFREQ : calcula a resposta em frequencia
% de G(s)=n(s)/d(s)
% gjw = respfreq(n,d,w)
% onde: n,d : vetores cujas componentes sao os
% coeficientes de n(s) e d(s)
% w : vetor cujas componentes sao as frequencias
% onde se deseja calcular g(jw)=n(jw)/d(jw)
function gjw = respfreq(n,d,w);
jw = j*w;gjw=polyval(n,jw)./polyval(d,jw); 2
Suponha agora que se queira calcular a resposta em freq¨ uˆencia do sistema
cuja fun¸ c˜ao de transferˆencia seja
T(s) =
20
s
2
+ 3s + 5
.
Para tanto, o primeiro passo ´e a defini¸ c˜ao de um vetor w contendo as freq¨ uˆen-
cias nas quais se deseja calcular T(jω). Supondo que a menor freq¨ uˆencia seja
ω
0
= 0 e a maior seja igual a ω
f
= 100. Neste caso fazendo-se:
>> n=20;d=[1 3 5];w=[0:1:100];
>> tjw=respfreq(n,d,w);plot(tjw) <enter>
obt´em a resposta em freq¨ uˆencia de T(s) para os pontos considerados, cuja
representa¸ c˜ao gr´ afica ´e dada na figura 2.1(a). Note que, nas baixas freq¨ uˆen-
cias, a representa¸ c˜ao gr´ afica ´e grosseira. Isto se deve ao fato de que, como
2.3. CONTROLE DE FLUXO 21
T(jω) varia muito rapidamente nessas freq¨ uˆencias, os pontos imagens estar˜ao
bastante separados uns dos outros, fazendo com que as retas que os ligam
sejam mais ressaltadas. Este problema n˜ ao ocorrer´a se o vetor w for definido
usando o comando logspace, cuja forma geral ´e logspace(exp1,exp2,n).
Este comando, cria um vetor de n elementos espa¸ cados logaritmicamente,
cujo primeiro elemento ´e 10
exp1
e o ´ ultimo 10
exp2
. Quando n for omitido,
o comando acima criar´a 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>
teremos uma representa¸ c˜ao gr´ afica da resposta em freq¨ uˆencia de T(s) mais
uniforme, conforme mostrado na figura 2.1(b).
2.3 Controle de fluxo
`
As vezes, em um determinado programa, torna-se necess´ario mudar a ordem
de execu¸ c˜ao dos comandos ou ainda repetir uma seq¨ uˆencia de comandos at´e
que uma determinada condi¸ c˜ao seja verificada. Isto ´e feito, em MATLAB,
usando-se as declara¸ c˜oes if e os la¸ cos for ... end e while ... end,
conforme ser´a visto a seguir.
2.3.1 Declara¸c˜ao if
A forma geral para o uso da declara¸ c˜ao if ´e a seguinte:
if <express~ ao booleana>
<seq¨ u^ encia de comandos no
¯
1>
else
<seq¨ u^ encia de comandos no
¯
2>
end
A declara¸ c˜ao if funciona da seguinte forma: quando a <express~ ao boo-
leana> for verdadeira, as linhas de comandos definidas em <seq¨ u^ encia de
comandos no
¯
1> ser˜ao executadas e, caso contr´ario, ser˜ao executadas os co-
mandos definidos na <seq¨ u^ encia de comandos no
¯
2>. Uma forma mais
simples da declara¸ c˜ao if ´e:
if <express~ ao booleana>
<seq¨ u^ encia de comandos>
end
22 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
−1 −0.5 0 0.5 1 1.5 2 2.5 3 3.5 4
−4
−3
−2
−1
0
(a)
−1 −0.5 0 0.5 1 1.5 2 2.5 3 3.5 4
−4
−3
−2
−1
0
(b)
Figura 2.1: Representa¸ c˜ao gr´ afica de resposta em freq¨ uˆencia de T(s) =
20/(s
2
+ 3s + 5) para (a) w=[0:1:100] e (b) w=logspace(-2,2,100)
Neste caso, a <seq¨ u^ encia de comandos> ser´a executada somente quando a
<express~ ao booleana> for verdadeira.
O resultado da <express~ ao booleana> (verdadeiro ou falso) ´e definido a
partir de operadores l´ ogicos &(e), |(ou) e ~(n˜ao), cujas tabelas verdades s˜ao
mostradas na tabela 2.1 e dos operadores relacionais (< (menor que), > (maior
que), =< (menor ou igual), >= (maior ou igual), == (igual) e ~= (diferente).
Exemplo 2.8: O resultado encontrado pela fun¸ c˜ao norma2 do exemplo 2.4
estar´a correto quando a entrada for um vetor coluna. Para que o usu´ario
& V F
V V F
F F F
| V F
V V V
F V F
~ V
V F
F V
(a) (b) (b)
Tabela 2.1: Tabelas verdades para os operadores l´ ogicos &(e), |(ou) e ˜(n˜ ao)
2.3. CONTROLE DE FLUXO 23
possa utiliz´a-lo tamb´em para calcular a norma euclideana de um vetor linha,
o arquivo deve ter linhas que verifiquem se o vetor ´e do tipo linha ou coluna.
Uma outra deficiˆencia da fun¸ c˜ao norma2 ´e que ela ´e incapaz de distinguir
se o usu´ario forneceu um vetor ou uma matriz. Todas essas deficiˆencias s˜ao
suprimidas utilizando-se declara¸ c˜oes if, conforme mostrado abaixo:
% y=norma2(x) : calcula a norma euclideana de um vetor
% onde: x : vetor de entrada
% y : norma euclideana de x
%
function y=norma2(x);
[m,n]=size(x);
if m>1 & n>1;
disp(’ ’);disp(’????ERRO: a entrada deve ser um vetor’);
disp(’ ’);
y=[];
else
if m==1;y=sqrt(x*x’);else;y=sqrt(x’*x);end
end 2
Agora verifique o programa para os vetores
v =
_
1
1
_
e w =
_
1 1
¸
e para a matriz
A =
_
1 2
3 4
_
.
Note que, ao se fazer
>> a=[1 2;3 4];na=norma2(a);<enter>
o MATLAB retornou a mensagem
???? ERRO: a entrada deve ser um vetor.
Isto se deve ao comando disp, cuja forma geral ´e disp(’<texto>’). Este
comando faz com que a mensagem contida em <texto> seja impressa na
janela do MATLAB. No arquivo acima usou-se, al´em do comando disp que
cont´em a mensagem de erro a ser impressa na tela, outros dois contendo
espa¸ cos em branco como texto. Eles foram usados para que o MATLAB
deixe uma linha em branco entre a ´ ultima linha de comando digitada pelo
usu´ario e a mensagem impressa na tela e uma outra linha em branco entre
essa mensagem e o pr´oximo sinal de solicita¸ c˜ao >>.
24 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
2.3.2 La¸co while
A estrutura de um la¸ co while ´e a seguinte:
while <express~ ao booleana>
<seq¨ u^ encia de comandos>
end
Na estrutura acima, a <seq¨ u^ encia de comandos> ser´a executada enquanto
a <express~ ao booleana> retornar um valor verdadeiro. Por exemplo, con-
sidere um arquivo de comandos (comandos.m), cujo conte´ udo ´e o seguinte:
resp=’sim’;i=0;
while resp==’sim’
i=i+1
resp=input(’Deseja continuar (sim/nao)? ’,’s’);
end
Crie um arquivo denominado comandos.m e digite os comandos acima.
Em seguida execute o arquivo digitando
>> comandos <enter>.
Observe que foram impressas na tela as seguintes mensagens:
i = 1
Deseja continuar (sim/nao)?
e o programa permanecer´a parado at´e que o usu´ario digite sim, para continuar
e nao, para parar definitivamente a execu¸ c˜ao do programa. Isto se deve ao
comando input, que permite que o usu´ario atribua um valor a uma vari´ avel.
A forma geral do comando input ´e
<vari´ avel> = input(’<texto>’);
quando a <vari´ avel> ´e num´erica ou
<vari´ avel> = input(’<texto>’,’s’);
quando a <vari´ avel> ´e do tipo cadeia de caracteres. Observe, no exemplo
acima que, como a express˜ao booleana ´e resp==’sim’, o programa, na ver-
dade, interromper´a sua execu¸ c˜ao sempre o usu´ario digitar qualquer express˜ao
que n˜ ao seja sim.
2.3.3 La¸co for
A forma geral do la¸ co for ´e a seguinte:
for <contador>=<valor inicial>:<incremento>:<valor final>
<seq¨ u^ encia de comandos>
end
onde
2.3. CONTROLE DE FLUXO 25
<contador> : vari´ avel de controle;
<valor inicial> : valor inicial da vari´ avel;
<incremento> : incremento dado ` a vari´ avel <contador>, podendo ser
positivo ou negativo; quando o incremento for igual a 0, o la¸ co for n˜ ao ser´a
executado;
<valor final> : maior ou menor valor que a vari´ avel <contador> pode
assumir.
O funcionamento do la¸ co for pode ser explicado com a ajuda das estru-
turas if e while, conforme mostrado abaixo:
<contador> = <valor inicial>;
if <incremento> > 0
while <contador> <= <valor final>
<seq¨ u^ encia de comandos>
<contador> = <contador> + <incremento>
end
else
while <contador> >= <valor final>
<seq¨ u^ encia de comandos>
<contador> = <contador> + <incremento>
end
end
Exemplo 2.9: Uma das formas de se representar matematicamente um sis-
tema f´ısico ´e atrav´es das chamadas equa¸ c˜oes de estados. Nesta representa¸ c˜ao,
um sistema de ordem n ser´a epresentado por um sistema de n equa¸ c˜oes difer-
enciais de primeira ordem, dado por:
˙ x(t) = Ax(t) +bu(t)
y(t) = c x(t) +du(t)
onde x(t) ∈ R
n×1
´e o vetor de estados, u(t) ∈ R e y(t) ∈ R denotam,
respectivamente a entrada e a sa´ıda do sistema, A ∈ R
n×n
, b ∈ R
n×1
e
c ∈ R
1×n
. As equa¸ c˜oes de estados permitem, por exemplo, verificar se o
sistema ´e control´avel, isto ´e, se existe uma entrada u(t) capaz de levar o
sistema a qualquer estado x
f
. Para tanto ´e necess´ario verificar se a matriz
de controlabilidade
C =
_
b Ab A
2
b . . . A
n−1
b
¸
26 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
tem posto igual a n. O seguinte arquivo de comandos (controle.m pode ser
utilizado para verificar se o sistema ´e control´avel ou n˜ ao:
% CONTROLE : verifica se um SLIT ´ e control´ avel ou n~ ao
% onde : a:n X n (matriz de transi¸ c~ ao de estados) e
% b:n X 1 (matriz de entrada)
[ma,na]=size(a);[mb,nb]=size(b);
% verificando se as dimensoes das matrizes
% a e b sao compativeis
if ma==na & mb==na
n=ma;ci=b;c=ci;
% construindo a matriz controlabilidade
for i=1:n-1
ci=a*ci;c=[c ci];
end
% verificando se o sistema ´ e controlavel
disp(’ ’);
if rank(c)==n
disp(’O sistema e controlavel’);disp(’ ’);
else
disp(’O sistema nao e controlavel’);disp(’ ’);
end
else
disp(’ ’);
disp(’As dimensoes das matrizes nao sao compativeis’);
disp(’ ’);
end
Agora verifique se os seguintes sistemas s˜ao control´aveis:
(a)
˙ x(t) =
_
1 2
3 4
_
x(t) +
_
1
0
_
u(t)
(b)
˙ x(t) =
_
1 2
0 4
_
x(t) +
_
2
0
_
u(t)
2.4. REPRESENTAC¸
˜
AO GR
´
AFICA 27
2.3.4 A fun¸c˜ao find
Embora n˜ ao tenha o poder de alterar a seq¨ uˆencia de execu¸ c˜ao de um arquivo,
a fun¸ c˜ao find, pr´e-definida pelo MATLAB, tem como argumento uma ex-
press˜ao boolena. Sua forma geral ´e a seguinte:
<vari´ avel> = find(<expressao booleana contendo um vetor>) .
A func˜ao find retorna todos os ´ındices das componentes do vetor para os
quais a express˜ao booleana ´e verdadeira. Por exemplo, suponha que os ve-
tores t e y contˆem os instantes de simula¸ c˜ao e os correspondentes valores da
sa´ıda de um sistema de segunda ordem sub-amortecido para uma entrada
igual ao degrau unit´ario. A fun¸ c˜ao find pode ser usada para determinar os
instantes de tempo imediatamente anterior e posterior ` aquele em que a sa´ıda
atinge y
ss
pela primeira vez e, conseq¨ uentemente permite que se determine
o tempo de subida da resposta, conforme mostra a seguinte seq¨ uˆencia de
comandos:
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 interpolacao)
tr=tra+(trp-tra)*(yss-yra)/(yrp-yra)
Use os vetores y e t do exemplo 2.6 para verificar se os comandos acima
est˜ao, de fato, levando a uma correta determina¸ c˜ao do tempo de subida da
resposta.
2.4 Representa¸ c˜ao gr´afica
2.4.1 O comando plot
Suponha que se deseje representar graficamente um ponto de coordenadas
(x, y) no plano cartesiano. Isto pode ser feito em MATLAB utilizando-se o
comando plot, cuja forma geral ´e a seguinte:
plot(x,y,’<cor><forma>’)
onde <cor> define a cor usada na representa¸ c˜ao gr´ afica (conforme tabela 2.2)
e <forma> define como o ponto ser´a representado, isto ´e se ser´a usado um
ponto, c´ırculo, um ’x’, uma cruz ou um asteriscos, de acordo com as primeiras
cinco linhas da tabela 2.3. Por exemplo, caso se deseje representar grafica-
28 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
Cor S´ımbolo
Amarelo y
Magenta m
Azul claro c
Vermelho r
Verde g
Azul escuro b
Branco w
Preto k
Tabela 2.2: Cores usadas para representa¸ c˜ao gr´ afica em MATLAB
Forma S´ımbolo
Ponto .
C´ırculo o
x x
Cruz +
Asteriscos *
Linha cont´ınua -
Linha pontilhada :
Linha tracejada --
Linha tra¸ co-pontilhada -.
Tabela 2.3: Formas de se representar pontos e curvas em MATLAB
mente o ponto de coordenadas (−2, 1), na cor azul claro e com uma cruz,
faz-se
>> plot(-2,1,’c+’) <enter>
´
E importante ressaltar que, caso a forma de representa¸ c˜ao n˜ ao esteja presente
no comando plot, o MATLAB assumir´ a, como padr˜ao, o ponto (.). Por
exemplo, caso a linha de comando acima seja substitu´ıda por
>> plot(-2,1,’c’) <enter>
ent˜ao, o MATLAB utilizar´a o ponto (.) em vez de + para representar o ponto
(−2, 1) no plano cartesiano.
Suponha, agora, que se deseje representar graficamente os pontos de co-
ordenadas (x
,
y
1
), (x
2
, y
2
), . . . , (x
n
, y
n
) num mesmo gr´ afico. Para tanto, o
2.4. REPRESENTAC¸
˜
AO GR
´
AFICA 29
primeiro passo ´e definir dois vetores, x e y por exemplo, cujas componentes
s˜ao, respectivamente, as abscissas e as ordenadas dos pontos que se deseja
representar. Em seguida, usar o comando plot, de acordo com a forma geral
dada acima, onde x e y s˜ao agora vetores e n˜ ao as coordenadas de um ponto,
conforme consta da forma geral do comando plot. Por exemplo, suponha que
se queira representar graficamente os pontos (−1, 1), (0, 2), (1, −1) e (2, 2). A
linha de comando seguinte permite represent´a-los na cor amarela, unindo-os
com retas:
>> x=[-1,0,1,2];y=[1 2 -1 2];plot(x,y) <enter>
Note que, no comando plot acima, n˜ ao foram definidas a <cor> e a <forma>
dos pontos. Quando isto ocorre, o MATLAB utiliza a cor amarela (definida
como padr˜ao) e liga os pontos por meio de retas. Para se representar os
mesmos pontos acima sem uni-los, isto ´e, isoladamente, com asteriscos e na
cor azul escuro, substitui-se a linha de comando acima por:
>> x=[-1,0,1,2];y=[1 2 -1 2];plot(x,y,’b*’) <enter>
Finalmente, para representar aqueles pontos, unindo-os com linhas verdes
tracejadas, deve-se digitar a seguinte linha de comando:
>> x=[-1,0,1,2];y=[1 2 -1 2];plot(x,y,’g--’) <enter>
2.4.2 Representa¸c˜ao de diversas curvas num mesmo gr´afico
Vocˆe deve ter observado que, toda vez que foi digitado um novo comando
plot, o gr´ afico anterior foi apagado, sendo substitu´ıdo pelo gr´ afico cujas co-
ordenadas dos pontos foram fornecidas no comando plot mais recente. A rep-
resenta¸ c˜ao gr´ afica de diversas curvas em um mesmo gr´ afico se faz necess´aria
em muitos problemas, principalmente quando se deseja analisar simultanea-
mente o comportamento de diversas grandezas ou, ainda, quando se deseja
analisar a resposta de um sistema a diferentes entradas. Suponha, portanto,
que se deseje utilizar um ´ unico gr´ afico para representar as curvas C
1
, C
2
, . . .,
C
n
, cujas abscissas e ordenadas est˜ao armazenadas nos vetores x
1
, y
1
, x
2
, y
2
,
. . . e x
n
, y
n
. Isto pode ser feito de duas formas: (i) atrav´es de um comando
plot com v´ arios pares de vetores, isto ´e
>> plot(x1,y1,’<cor1><forma1>’,...,xn,yn,’<corn><forman>’)
ou (ii) utilizando-se o comando hold. A forma geral do comando hold ´e a
seguinte:
hold on
para fazer com que todos os comandos plots ap´ os o uso do comando hold
on representem graficamente os pontos sobre o ´ ultimo gr´ afico criado antes do
30 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
comando hold on. Para se desativar o comando hold basta digitar
>> hold off <enter>
Exemplo 2.10: Para se representar em um mesmo gr´ afico as fun¸ c˜oes y(t) =
Sen (t) e z(t) = Cos (t), t ∈ [0, 2π] deve-se, inicialmente, definir um vetor t
cujas componentes s˜ao os instantes em que devem ser calculados y(t) e z(t)
e, em seguida, calcular y(t) = Sen (t) e z(t) = Cos (t), conforme as linhas de
comando a seguir:
>> t=[0:2*pi/100:2*pi]; <enter>
>> y=sin(t);z=cos(t); <enter>
Caso queira utilizar o comando plot com m´ ultiplas entradas para repre-
sentar y(t) e z(t) nos pontos definidos nas linhas de comando acima, o usu´ario
deve digitar:
>> plot(t,y,t,z) <enter>
A partir do gr´ afico obtido com o comando acima, vˆe-se que, embora o usu´ario
n˜ ao tenha definido nenhuma cor para as abscissas y e z, o MATLAB utili-
zou o amarelo para representar y(t) e a magenta para representar z(t). De
fato, quando do uso do comando plot com m´ ultiplas entradas, caso n˜ ao se-
jam definidos <cor> e <forma> para cada curva, o MATLAB atribuir´a cores
diferentes a cada uma das curvas (na seq¨ uˆencia das linhas da tabela 2.2) e
utilizar´a linhas cont´ınuas (isto ´e, ligar´ a os pontos por retas).
Uma maneira alternativa de representar as fun¸ c˜oes y(t) e z(t) num mesmo
gr´ afico ´e usando o comando hold, conforme a linha de comando a seguir:
>> plot(t,y);hold on;plot(t,z);hold off
A diferen¸ ca principal entre as duas formas de se representar diversas curvas
em um mesmo gr´ afico est´a no fato de que, ao se usar o comando hold on,
e n˜ ao havendo defini¸ c˜ao de <cor> e <forma>, ent˜ao o MATLAB usar´a a cor
amarela para representar a curva e utilizar´a linha cont´ınuas. Isto faz com
que visualiza¸ c˜ao de curvas representadas em um mesmo gr´ afico com o aux´ılio
do comando hold n˜ ao ´e t˜ao boa quanto aquela fornecida pelo comando plot
com m´ ultiplas entradas, a menos que o usu´ario forne¸ ca detalhes referentes ` a
<cor> e <forma> cada vez que usar o comando plot. 2
2.4.3 Representa¸c˜ao de diversos gr´aficos numa mesma figura
V´arios gr´ aficos podem ser representados numa mesma figura com a ajuda do
comando subplot. Este comando tem a forma geral
subplot(m,n,k)
2.4. REPRESENTAC¸
˜
AO GR
´
AFICA 31
e gera uma matriz de gr´ aficos de dimens˜ao m × n, e faz com que todos os
comandos associados ` a representa¸ c˜ao gr´ afica tenham efeito somente sobre o
gr´ afico da posi¸ c˜ ao k. Esta posi¸ c˜ao ´e definida como 1 para o gr´ afico corre-
spondente ` a posi¸ c˜ao (1, 1) da matriz, 2 para o gr´ afico da posi¸ c˜ao (1, 2), n
para o gr´ afico da posi¸ c˜ao (1, n), n + 1 para o gr´ afico da posi¸ c˜ao (2, 1) da
matriz e assim por diante. Por exemplo, para se representar as duas fun¸ c˜ao
do exemplo 2.10 em dois gr´ aficos diferentes, um situado no topo da figura
(y(t) = Sen (t)) e o outro na parte inferior da figura (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>
2.4.4 Outros comandos para representa¸c˜ao gr´afica
Muitas vezes, a representa¸ c˜ao gr´ afica, por si s´o, n˜ ao ´e auto-explicativa. Ela
requer legendas para que se visualize, com maior clareza, o que significa cada
gr´ afico (no caso de m´ ultiplos gr´ aficos) ou cada linha do gr´ afico (quando se
trara de um gr´ afico com diversas curvas). Para tanto, utiliza-se os seguintes
comandos:
(i) title(’<texto>’) : coloca um t´ıtulo (<texto>) na parte superior do
gr´ afico.
(ii) xlabel(’<texto>’) : escreve o <texto> imediatamente abaixo do
eixo das abscissas.
(iii) ylabel(’<texto>’) : escreve o <texto> ` a esquerda do do eixo das
ordenadas.
(iv) gtext(’<texto>’) : escreve na tela o <texto> em posi¸ c˜ao a ser
definida pelo usu´ario. Ap´os teclar <enter>, o MATLAB apresenta a figura
e um sinal +, para ser posicionado, com o aux´ılio do mouse, sobre o ponto
do gr´ afico onde se deseja escrever o <texto>. Deve-se tomar o cuidado de
maximizar a janela que cont´em a figura para que o ponto escolhido para se
colocar o <texto> corresponda ` aquele em que ele, de fato, ser´a posicionado.
(v) grid : quadricula a tela com linhas tracejadas.
Finalmente, deve ser ressaltado que o MATLAB permite representar
gr´ aficos em escala logar´ıtmica (muito importante na an´ alise da resposta em
freq¨ uˆencia de sistemas lineares est´aveis). Isto ´e feito utilizando-se os seguintes
comandos:
(vi) semilogx(x,y,’<cor><forma>’), semilogy(x,y,’<cor><forma>’)
e, ainda, loglog(x,y,’<cor><forma>’) : permitem represntar gr´ aficos nos
32 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
10
−1
10
0
10
1
−40
−35
−30
−25
−20
−15
−10
Diagramas de Bode
Frequencia angular − w
M
o
d
u
l
o

e
m

d
B
10
−1
10
0
10
1
−200
−150
−100
−50
0
Frequencia angular − w
A
n
g
u
l
o

e
m

G
r
a
u
s
Figura 2.2: Diagramas de Bode para a fun¸ c˜ao de transferˆencia G(s) = 1/(s
2
+
2s + 4)
quais as abscissas, ordenadas e ambas, respectivamente, est˜ao em escalas
logar´ıtmicas.
Exemplo 2.11: Escreva um arquivo de fun¸ c˜oes para calcular e tra¸ car os
diagramas de m´odulo e fase de Bode de uma dada fun¸ c˜ao de transferˆencia.
Solu¸ c˜ao: Denominemos diagbode a fun¸ c˜ao que calcula os diagramas de
Bode de m´odulo e de fase. Como entradas da fun¸ c˜ao, temos os vetores
formados pelos coeficientes dos polinˆ omios do numerador e denominador da
fun¸ c˜ao de transferˆencia, n e d, respectivamente, e o vetor w contendo as
freq¨ uˆencias onde se deseja calcular os diagramas de Bode. As sa´ıdas ser˜ao
gjwdb e fasegjw, que s˜ao vetores cujas componentes s˜ao, respectivamente,
o m´odulo, em decib´eis, e a fase, em graus, da fun¸ c˜ao de transferˆencia nas
freq¨ uˆencias dadas em w.
% DIAGBODE : Calcula e traca os diagramas de Bode de uma
funcao de transferencia G(s)=b(s)/a(s), onde
b(s) = b0.s^m + b1.s^(m-1) + ... + bm
a(s) = a0.s^n + a1.s^(n-1) + ... + an
% [gjwdb,fasegjw] = diagbode(b,a,w);
2.5. COMENT
´
ARIOS FINAIS 33
% onde b = [b0 b1 ... bm]
% a = [a0 a1 ... an]
% w = [w1 w2 ... wp]
function [gjwdb,fasegjw] = diagbode(b,a,w);
jw=j*w;gjw=polyval(b,jw)./polyval(a,jw);
gjwdb=20*log10(abs(gjw));fasegjw=angle(gjw)*180/pi;
subplot(2,1,1);semilogx(w,gjwdb);grid;
title(’Diagramas de Bode’);xlabel(’Frequencia angular - w’);
ylabel(’Modulo em dB’);
subplot(2,1,2);semilogx(w,fasegjw);grid
xlabel(’Frequencia angular - w’);ylabel(’Angulo em Graus’);
2
Para se obter os diagrmas de Bode da fun¸ c˜ao de transferˆencia G(s) =
1/(s
2
+ 2s + 4), procede-se da seguinte forma:
>> n=1;d=[1 2 4];w=logspace(-1,1,100);
>> [gjwdb,fasegjw]=diagbode(n,d,w);
A fun¸ c˜ao diagbode retornar´a o m´odulo de G(jω) em decib´eis e a fase de
G(jω), em graus, nas freq¨ uˆencias definidas no vetor w, armazenando-os, re-
spectivamente, nos vetores gjwdb e fasegjw e, tamb´em, produzir´a os diagra-
mas de m´odulo e fase, representados na figura 2.2.
2.5 Coment´arios finais
Conforme foi mencionado na introdu¸ c˜ao deste cap´ıtulo, o MATLAB possui
muito mais recursos do que foi apresentado aqui. O objetivo principal deste
cap´ıtulo foi introduzir os comandos b´ asicos para que o usu´ario se sinta con-
fort´avel ao utilizar o MATLAB e tenha a ferramenta m´ınima necess´aria para
que possa vir a usar com sucesso linguagem. Para se ter acesso a coman-
dos/recursos mais poderos, recomenda-se a consulta aos manuais do MAT-
LAB e do SIMULINK.
Exerc´ıcios propostos
2.1 Entre com a matriz
Z =
_
1 −j 1 + 2j 2 −j
2 1 + 2j 3j
_
34 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
-
6
-
?

6

σ
1 −1
j1
−j1
Figura 2.3: Contorno Γ para o exerc´ıcio 2.4
e execute os comandos (i) a (vi) da se¸ c˜ao 2.2.2.
2.2 Para o vetor
x =
_
1 10 7 0.1
¸
execute os comandos (vii) a (ix) da se¸ c˜ao 2.2.2.
2.3 Fa¸ ca um programa MATLAB (arquivo de fun¸ c˜ao) para tra¸ car o dia-
grama de Nyquist de uma determinada fun¸ c˜ao de transferˆencia
G(s) =
n(s)
d(s)
sendo dados os coeficientes de n(s) e d(s) e um vetor ω contendo as freq¨ uˆencias
de interesse. Por exemplo, a fun¸ c˜ao poder-se-ia chamar de meunyq sendo de-
scrita por gjw = meunyq(n,d,w).
2.4 Seja s = σ +jω uma vari´ avel complexa e seja
F(s) =
s
s + 2
.
Escreva um arquivo de comandos em MATLAB para calcular e representar
graficamente o mapeamento de F(s) sobre Γ, onde Γ ´e o contorno represen-
tado na figura 2.3.
EXERC
´
ICIOS PROPOSTOS 35
K(s) G(s)
R(s) Y (s)
+
E(s) U(s)

Figura 2.4: Diagrama de blocos para o exerc´ıcio 2.6
2.5 Escrever um arquivo de fun¸ c˜ao que permita somar dois polinˆ omios
p(s) = p
0
s
m
+p
1
s
m−1
+· · ·+p
m−1
s+p
m
e q(s) = q
0
s
n
+q
1
s
n−1
+· · ·+q
n−1
s+q
n
.
Teste a fun¸ c˜ao para os polinˆ omios p(s) = s + 1 e q(s) = s
2
+ 2s −1
2.6 Suponha que sejam dadas as fun¸ c˜oes de transferˆencias da planta e do
controlador
G(s) =
n
G
(s)
d
G
(s)
e K(s) =
n
K
(s)
d
K
(s)
.
Escreva arquivos de fun¸ c˜oes que permitem calcular as seguintes fun¸ c˜oes de
transferˆencias para o sistema cujo diagrama de blocos est´a representado na
figura 2.4: (a) T
RY
(s) = Y (s)/R(s), (b) T
RE
(s) = E(s)/R(s) e (c) T
RU
(s) =
U(s)/R(s)
Nota: As entradas para as fun¸ c˜oes ser˜ao os vetores formados pelos coefi-
cientes dos polinˆ omios n
G
(s), d
G
(s), n
K
(s) e d
K
(s) e as sa´ıdas ser˜ao vetores
formados pelos coeficientes dos polinˆ omios do numerador e do denominador
da fun¸ c˜ao de transferˆencia considerada. Por exemplo, a fun¸ c˜ao MATLAB
que calcula o numerador e o denominador da fun¸ c˜ao de transferˆencia T
RY
(s),
poderia ser definida como [ntry,dtry] = try(ng,dg,nk,dk).
2.7 Suponha que sejam conhecidas as coordenadas de dois pontos P
1
=
(x
1
, y
1
) e P
2
= (x
2
, y
2
) e a abscissa de um terceiro ponto P
3
= (x
3
, y
3
), onde
x
1
< x
3
< x
2
. Escreva um arquivo do tipo fun¸ c˜ao que permita encontrar y
3
interpolando-se os pontos P
1
e P
2
por uma reta, isto ´e, a ordenada de P
3
ser´a
y
3
= ax
3
+b, onde a e b s˜ao, respectivamente, os coeficientes angular e linear
da reta que passa pelos pontos P
1
e P
2
.
36 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
2.8 Suponha que sejam conhecidas as coordenadas de dois pontos P
1
=
(x
1
, y
1
) e P
2
= (x
2
, y
2
) e a ordenada de um terceiro ponto P
3
= (x
3
, y
3
), onde
y
1
< y
3
< y
2
. Escreva um arquivo do tipo fun¸ c˜ao que permita encontrar x
3
interpolando-se os pontos P
1
e P
2
por uma reta.
2.9 Escreva um arquivo do tipo fun¸ c˜ao que permita calcular: (i) os tem-
pos de subida (t
r
) e de acomoda¸ c˜ao (t
s
) para um sistema superamortecido
ou criticamente amortecido e (ii) os tempos de subida (t
r
), de pico (t
p
) e
de acomoda¸ c˜ao (t
s
) e o percentual de ultrapassagem (PO) para um sistema
subamortecido.
Nota: Assuma que sejam conhecidos t e y(t), estando armazenados nos ve-
tores t =
_
t
1
t
2
. . . t
n
¸
e y =
_
y(t
1
) y(t
2
) . . . y(t
n
)
¸
, respectiva-
mente.
Aten¸c˜ ao: Use o comando find e interpola¸ c˜ao.
2.10 Suponha que
Q(s) = G(s)K(s) = K
n
Q
(s)
d
Q
(s)
,
onde n
Q
(s) e d
Q
(s) s˜ao conhecidos e K deve ser arbitrado. Escreva um
arquivo de fun¸ c˜oes que:
(a) Verifique se o sistema realimentado (realimenta¸ c˜ao negativa) ´e est´avel
para um dado valor de K.
(b) Caso o sistema seja est´avel, encontre as margens de fase e de ganho
do sistema.
Nota: Use o comando find e fa¸ ca interpola¸ c˜ao para achar os valores corretos.
2.11 Dado um conjunto de pontos (x
1
, y
1
), (x
2
, y
2
), . . . , (x
n
, y
n
), escreva um
arquivo de fun¸ c˜oes em MATLAB que utilize o m´etodo dos m´ınimos quadrados
para calcular o coeficiente angular da reta y = αx, conforme a figura 2.5.
Nota: Veja cap´ıtulo 3, equa¸ c˜ao 3.41
2.12 Suponha que a partir de um experimento, obt´em-se os vetores
ω =
_
ω
0
ω
1
. . . ω
q
¸
φ =
_
φ
0
φ
1
. . . φ
q
¸
h =
_
| H(jω
0
) | | H(jω
1
) | . . . | H(jω
q
) |
¸
onde ω
i
, i = 0, 1, . . . , q s˜ao as freq¨ uˆencias angulares e H(jω
i
) =| H(jω
i
) |
exp(jφ
i
). Escreva um arquivo de fun¸ c˜oes que utilize o m´etodo dos m´ınimos
EXERC
´
ICIOS PROPOSTOS 37
x x
x
1
x
2
x
3
· · · x
n
x
1
x
2
x
3
· · · x
n
y
y
n
.
.
.
y
3
y
2
y
1
y
1
y
2
y
3
.
.
.
y
n
y y = αx
(a) (b)
Figura 2.5: Representa¸ c˜ao cartesiana dos pontos (x
1
, y
1
), (x
2
, y
2
),. . .,(x
n
, y
n
)
e da reta ajustada y = αx referentes ao exerc´ıcio 2.11
K
t
τs+1
K K(s)
R(s) Y (s)
+

+

¯
K
D(s)
Figura 2.6: Diagrama de blocos para o sistema do exerc´ıcio 2.13
38 CAP
´
ITULO 2. PROGRAMANDO EM MATLAB
quadrados (veja cap´ıtulo 3, algoritmo 5) para calcular os coeficientes da
fun¸ c˜ao de transferˆencia
H(s) =
b(s)
a(s)
=
b
0
s
m
+b
1
s
m−1
+. . . +b
m−1
s +b
m
s
n
+a
1
s
n−1
+. . . +a
n−1
s +a
n
,
onde os graus dos polinˆ omios do numerador e do denominador, m e n, re-
spectivamente, s˜ao arbitrados.
2.13 Construa um arquivo SIMULINK para fazer a simula¸ c˜ao do sistema
da figura 2.6, onde K = 127.9, K
t
= 0.0056, τ = 0.026 e
¯
K = 451.8, para as
seguintes situa¸ c˜oes:
(a) r(t) = 12u
0
(t) e d(t) = 0 e K(s) = 5.4/s, onde u
0
(t) representa um
degrau unit´ario aplicado no instante t = 0.
(b) r(t) = 12u
0
(t) e d(t) = 0 e K(s) = (s + 30)/s.
(c) Reptita os itens (a) e (b) para d(t) = 0.2u
0
(t −1)
Nota: Em todos os casos acima, o intervalo de simula¸ c˜ao deve ser de -0.5 a
2s.
Cap´ıtulo 3
Modelagem e identifica¸ c˜ao
dos parˆametros da fun¸ c˜ao de
transferˆencia do grupo
motor-gerador
3.1 Modelo matem´atico de um motor CC contro-
lado pela armadura
Para se modelar o grupo motor-gerador, cujo circuito equivalente ´e aquele
da figura 3.1, basta realizar a modelagem de um motor CC controlado pela
armadura (Dorf, 1986). A influˆencia do gerador CC no modelo do motor ser´a
levada em conta pelos seguintes fatores: (i) aumento do momento de in´ercia
da carga mecˆanica e (ii) aparecimento de um torque de perturba¸ c˜ao, resul-
tado da introdu¸ c˜ao de cargas de natureza el´etrica nos terminais do gerador.
Isto mostra que, conforme ressaltado no cap´ıtulo 1, o fato de termos um ger-
ador CC no lugar de um CA, como seria o caso de um sistema real, n˜ ao traz
qualquer altera¸ c˜ ao no que se refere ` a modelagem do sistema. Considere, por-
tanto, o circuito equivalente de um motor-CC controlado pela armadura da
figura 3.2, onde i
a
(t) e v
a
(t) denotam, respectivamente, a corrente e a tens˜ao
de armadura, V
f
e I
f
representam, respectivamente, a tens˜ao e a corrente de
campo (constantes, por hip´ otese), ω(t) ´e a velocidade angular do motor e J
e f s˜ao o momento de in´ercia da carga e o coeficiente de atrito nos mancais,
respectivamente.
39
40 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
v
a
(t)
R
a
L
a
i
g
(t)
v
t
(t)
Figura 3.1: Circuito el´etrico equivalente para o grupo motor-gerador com
sensor de velocidade (tacˆometro)
v
a
(t)
R
a
L
a
i
a
(t)
f
ω(t)
J
e(t)
Figura 3.2: Circuito equivalente de um motor CC controlado pela armadura
3.1. MOTOR CC CONTROLADO PELA ARMADURA 41
Sabe-se que o torque produzido pelo motor, t
m
(t), ´e proporcional ao fluxo
magn´etico no entreferro (φ(t)) e ` a corrente de armadura (i
a
(t)), isto ´e,
t
m
(t) = K
f
φ(t)i
a
(t) = K
m
i
a
(t) (3.1)
onde K
m
= K
f
φ = K
f
K
φ
I
f
, com K
f
, K
φ
e I
f
constantes. Aplicando-se a lei
das tens˜oes de Kirchhoff ao circuito da armadura, obt´em-se:
v
a
(t) = R
a
i
a
(t) +L
a
d
dt
i
a
(t) +e(t) (3.2)
onde e(t) representa a for¸ ca contra-eletromotriz, que ´e proporcional ` a veloci-
dade angular do motor, sendo dada por:
e(t) = K
e
ω(t) (3.3)
Finalmente, usando-se a lei de Newton para o movimento rotacional,
pode-se escrever:
t
m
(t) −t
d
(t) −fω(t) = J
d
dt
ω(t) (3.4)
onde t
d
(t) representa um torque externo (perturba¸ c˜ao).
As equa¸ c˜oes (3.1) a (3.4) nos permitem obter a fun¸ c˜ao de transferˆencia que
relaciona as transformadas de Laplace da entrada (V
a
(s)) da sa´ıda (W(s)).
Para tanto, aplicando-se a transformada de Laplace a ambos os membros das
equa¸ c˜oes (3.1) a (3.4), resulta:
T
m
(s) = K
m
I
a
(s)
V
a
(s) = R
a
I
a
(s) +L
a
sI
a
(s) +E(s)
E(s) = K
e
W(s)
T
m
(s) −T
d
(s) −fW(s) = JsW(s)
_
¸
¸
_
¸
¸
_
(3.5)
e ap´ os alguma manipula¸ c˜ao alg´ebrica, obt´em-se:
W(s) =
K
m
/(R
a
f)

e
s + 1)(τ
m
s + 1) +K
e
K
m
/(R
a
f)
V
a
(s) −


e
s + 1)/f

e
s + 1)(τ
m
s + 1) +K
e
K
m
/(R
a
f)
T
d
(s) (3.6)
onde τ
e
= L
a
/R
a
e τ
m
= J/f. Note que a fun¸ c˜ao de transferˆencia da
equa¸ c˜ao (3.6) modela o motor CC como um sistema de 2a
¯
ordem. Por´em,
42 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
V
a
(s)
K
+
¯
K
I
g
(s)

1
τs+1
W(s)
Figura 3.3: Diagrama de blocos do sistema composto pelo grupo motor-
gerador
este sistema pode ser bem aproximado por um modelo de 1a
¯
ordem, se levar-
mos em conta que L
a
/R
a
≪1 e portanto, τ
e
s +1 ≈ 1 para as freq¨ uˆencias de
interesse. Desta forma, o modelo matem´atico do grupo motor-gerador que
iremos adotar ser´a o seguinte:
W(s) =
K
τs + 1
V
a
(s) −
K
d
τs + 1
T
d
(s) (3.7)
onde K = K
m
/(R
a
f +K
e
K
m
) e K
d
= R
a
/(R
a
f +K
e
K
m
) e τ = JR
a
/(R
a
f +
K
e
K
m
).
Note ainda que, como t
d
(t) = K
g
i
g
(t), a equa¸ c˜ao acima pode ser escrita
como:
W(s) =
K
τs + 1
V
a
(s) −
¯
K
τs + 1
I
g
(s) (3.8)
onde
¯
K = K
d
K
g
. A representa¸ c˜ao por diagramas de blocos para este sistema
est´a mostrada na figura 3.3.
´
E importante ressaltar que a medi¸ c˜ao da velocidade angular ´e feita por
meio de tacˆometros. Um tacˆometro nada mais ´e do que um gerador CC de
pequena potˆencia, cuja tens˜ao gerada ´e constante e proporcional ` a velocidade
do eixo ao qual ele est´a acoplado. Desta forma, a tens˜ao nos terminais do
tacˆometro, v
t
(t), ser´a:
v
t
(t) = K
t
ω(t), (3.9)
3.2. IDENTIFICAC¸
˜
AO DOS PAR
ˆ
AMETROS 43
V
a
(s)
K
+
¯
K
I
g
(s)

1
τs+1
W(s)
K
t
V
t
(s)
Figura 3.4: Diagrama de blocos representativo do modelo matem´atico do
grupo motor-gerador-tacˆometro
onde K
t
´e uma constante. Portanto, a rela¸ c˜ao entre V
t
(s), V
a
(s) e I
g
(s) pode
ser expressa pela seguinte equa¸ c˜ao:
V
t
(s) =
KK
t
τs + 1
V
a
(s) −
¯
KK
t
τs + 1
I
g
(s), (3.10)
cujo diagrama de blocos est´a representado na figura 3.4.
3.2 Identifica¸ c˜ao dos parˆametros K
t
, K,
¯
K e τ
3.2.1 Identifica¸c˜ao de K
t
, K e
¯
K
Uma vez que se disp˜oe de um modelo matem´atico da planta, o pr´oximo passo
´e a identifica¸ c˜ao dos ganhos K
t
, K e
¯
K e da constante de tempo τ. Os ganhos
ser˜ao identificados a partir da resposta em estado permanente a uma entrada
igual ao degrau. A identifica¸ c˜ao de τ ser´a feita utilizando-se m´etodos de
resposta em freq¨ uˆencia, em particular o diagrama de m´odulo de Bode e o
diagrama polar. Nesta se¸ c˜ao procederemos ` a identifica¸ c˜ao dos ganhos K
t
, K
e
¯
K, ficando a identifica¸ c˜ao de τ adiada para a se¸ c˜ao seguinte.
Suponha que um degrau de tens˜ao de amplitude V
a
seja aplicado aos
terminais do motor, isto ´e,
v
a
(t) =
_
0, t < 0
V
a
, t ≥ 0
(3.11)
44 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
e assuma, inicialmente, que n˜ ao h´ a cargas conectadas nos terminais do ger-
ador. Neste caso V
a
(s) = V
a
/s e I
g
(s) = 0, e portanto a equa¸ c˜ao (3.10) pode
ser re-escrita da seguinte forma:
V
t
(s) =
KK
t
V
a
s(τs + 1)
. (3.12)
A resposta do sistema ` a entrada descrita em (3.11) pode ser obtida
calculando-se a transformada inversa de Laplace da equa¸ c˜ ao (3.12). Proce-
dendo desta forma obtemos:
v
t
(t) = KK
t
V
a
(1 −e

1
τ
t
), t ≥ 0 (3.13)
Quando t →∞, a equa¸ c˜ao acima se reduz a
v
t
(t) = V
t
= KK
t
V
a
, (3.14)
o que mostra que quando uma tens˜ao de valor constante ´e aplicada a um mo-
tor CC, a tens˜ao em regime permanente nos terminais do tacˆometro acoplado
ao eixo deste motor tamb´em ser´a constante e proporcional ao valor da tens˜ao
aplicada.
Definindo
K
ta
= KK
t
(3.15)
pode-se escrever:
V
t
= K
ta
V
a
. (3.16)
O desenvolvimento acima sugere o seguinte procedimento para a identi-
fica¸ c˜ao de K
ta
:
Algoritmo 3.1
1. Excita-se o motor CC com tens˜oes constantes e iguais a V
a
1
, V
a
2
, . . .,
V
an
, medindo-se os valores de tens˜ao correspondentes, V
t
1
, V
t
2
, . . . , V
tn
, nos
terminais do tacˆometro. Note que, ao final deste passo, ter˜ ao sido obtidos n
pares cartesianos: (V
a
1
, V
t
1
), (V
a
2
, V
t
2
), . . ., (V
an
, V
tn
), conforme ilustrado na
figura 3.5(a).
2. Utilize o m´etodo dos m´ınimos quadrados para ajustar K
ta
de tal forma
que a soma dos quadrados das diferen¸ cas entre os valores observados exper-
imentalmente (V
t
1
,V
t
2
,. . .,V
tn
) e (K
ta
V
a
1
,K
ta
V
a
2
,. . .,K
ta
V
an
), computados a
partir da reta ajustada, seja m´ınima. A figura 3.5(b) mostra a representa¸ c˜ao
cartesiana dos pontos (V
a
1
, V
t
1
), (V
a
2
, V
t
2
), . . ., (V
an
, V
tn
) bem como a fun¸ c˜ao
linear V
t
= K
ta
V
a
, cujo valor de K
ta
se deseja ajustar. 2
3.2. IDENTIFICAC¸
˜
AO DOS PAR
ˆ
AMETROS 45
V
a
V
a
V
a
1
V
a
2
V
a
3
· · · V
an
V
a
1
V
a
2
V
a
3
· · ·V
an
V
t
V
tn
.
.
.
V
t
3
V
t
2
V
t
1
V
t
1
V
t
2
V
t
3
.
.
.
V
tn
V
t
V
t
= K
ta
V
a
(a) (b)
Figura 3.5: Representa¸ c˜ao (a) cartesiana dos pontos (V
a
1
, V
t
1
), V
a
2
, V
t
2
), . . . ,
(V
an
, V
tn
) e (b) da reta V
ta
= K
ta
V
a
O m´etodo dos m´ınimos quadrados ´e um procedimento bastante utilizado
devido a sua simplicidade, o que faz com que o ajuste proposto no algoritmo
3.1 n˜ ao imponha qualquer complica¸ c˜ao adicional ao c´alculo de K
ta
. A esta al-
tura n˜ ao iremos nos deter nos aspectos te´oricos relacionados com a obten¸ c˜ao
de uma express˜ ao matem´atica que nos permita obter K
ta
em fun¸ c˜ao dos
pontos (V
a
1
, V
t
1
), (V
a
2
, V
t
2
), . . ., (V
an
, V
tn
) obtidos experimentalmente. Ao
inv´es disso, apresentaremos ao final desta se¸ c˜ao um algoritmo gen´erico que
permite ajustar o coeficiente angular α de uma fun¸ c˜ao linear y = αx a partir
de um conjunto de pontos (x
1
, y
1
), (x
2
, y
2
), . . . , (x
n
, y
n
) tal que a soma dos
quadrados das diferen¸ cas entre as ordenadas (y
1
, y
2
, . . . , y
n
) dos pontos ob-
servados e aquelas computadas a partir da reta ajustada (αx
1
, αx
2
, . . . , αx
n
)
seja m´ınima. A raz˜ao para se adiar a solu¸ c˜ao at´e o final desta se¸ c˜ao se deve
ao fato de que, conforme ser´a visto mais adiante, as identifica¸ c˜oes de K, K
t
e
¯
K ser˜ao feitas a partir da solu¸ c˜ao de problemas idˆenticos ao descrito no
passo 2 do algoritmo 3.1.
Uma vez que o valor de K
ta
tenha sido determinado e se, por exemplo,
o valor de K vier a ser encontrado, ent˜ao de acordo com a equa¸ c˜ao (3.15),
o valor de K
t
pode ser calculado dividindo-se K
ta
por K. Analogamente, se
K
t
vier a ser determinado ent˜ao K pode ser determinado fazendo-se K =
K
ta
/K
t
. Para o problema que estamos considerando, tanto a identifica¸ c˜ao
46 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
de K como a de K
t
pode ser feita de maneira imediata, conforme ser´a visto
a seguir. Assim sendo faremos a identifica¸ c˜ao de ambos os ganhos (K e
K
t
) e usaremos o valor obtido para K
ta
para verificar se os resultados est˜ao
corretos, isto ´e, identificando-se K, K
t
e K
ta
independentemente, deve-se ter:
K
ta
≈ KK
t
. (3.17)
Vamos inicialmente proceder ` a identifica¸ c˜ao de K. A partir da equa¸ c˜ao
(3.8), com I
g
(s) = 0 e V
a
(s) = V
a
/s, tem-se:
W(s) =
KV
a
s(τs + 1)
(3.18)
e portanto, a velocidade angular do motor, em estado permanente, ser´a:
ω(t) = W = KV
a
. (3.19)
Um procedimento an´ alogo ao algoritmo 3.1 pode ser adotado tamb´em
para a determina¸ c˜ao de K, conforme ilustrado na figura 3.6, qual seja:
Algoritmo 3.2
1. Excita-se o motor com tens˜oes constantes de valores iguais a V
a
1
, V
a
2
,
. . ., V
an
(V ) e mede-se as correspondentes velocidades angulares do motor
W
1
, W
2
, . . ., W
n
(rpm), utilizando-se para isso tacˆometros digitais ´ opticos.
2. Utilizando o m´etodo dos m´ınimos quadrados, calcule o valor de K. 2
Vamos agora a determinar do ganho do tacˆometro (K
t
). Para tanto,
considere a equa¸ c˜ao (3.9), cujo valor de tens˜ao, em estado permanente, para
uma entrada igual ao degrau de amplitude W ´e dado por:
V
t
= K
t
W. (3.20)
A equa¸ c˜ao (3.20) acima mostra que os passos para a identifica¸ c˜ao de K
t
s˜ao
idˆenticos aos seguidos na determina¸ c˜ao dos ganhos K
ta
e K, sendo descritos
no seguinte algoritmo.
Algoritmo 3.3
1. Excita-se o motor com tens˜oes constantes e iguais a V
a
1
, V
a
2
, . . . , V
an
e para cada um desses valores me¸ ca os correspondentes valores de W e V
t
,
obtendo-se os pares cartesianos (W
1
, V
t
1
), (W
2
, V
t
2
), . . . , (W
3
, V
t
3
).
2. Use o m´etodo dos m´ınimos quadrados para ajusta a reta V
t
= K
t
W
aos pontos obtidos no passo anterior (veja figura 3.7). 2
3.2. IDENTIFICAC¸
˜
AO DOS PAR
ˆ
AMETROS 47
V
a
V
a
V
a
1
V
a
2
V
a
3
· · · V
an
V
a
1
V
a
2
V
a
3
· · ·V
an
W
W
n
.
.
.
W
3
W
2
W
1
W
1
W
2
W
3
.
.
.
W
n
W W = KV
a
(a) (b)
Figura 3.6: Representa¸ c˜ao (a) cartesiana dos pontos (V
a
1
, W
1
), (V
a
2
, W
2
),
. . . , (V
an
, W
n
) e (b) da reta W = KV
a
´
E importante ressaltar mais uma vez que, embora K
t
pudesse ter sido
determinado a partir dos ganhos K
ta
e K pela simples divis˜ao de K
ta
por K,
o procedimento descrito no algoritmo 3.3 nos permite verificar se os valores
obtidos para K e K
t
s˜ao compat´ıveis.
Finalmente, vamos considerar a identifica¸ c˜ao de
¯
K. Para tanto, suponha
que seja conectada uma carga resistiva
1
nos terminais do gerador. Neste
caso, haver´a a circula¸ c˜ao de uma corrente cont´ınua de valor I
g
que ´e fun¸ c˜ao
da tens˜ao aplicada nos terminais do motor conforme mostra a equa¸ c˜ao abaixo:
V
t
(s) =
KK
t
V
a
s(τs + 1)

¯
KK
t
I
g
s(τs + 1)
(3.21)
que foi obtida a partir da equa¸ c˜ao (3.10) substituindo-se V
a
(s) por V
a
/s e
I
g
(s) por I
g
/s
Aplicando-se o teorema do valor final ` a express˜ao acima, tem-se que
quando t →∞:
v
t
(t) = V

t
= V
t

¯
KK
t
I
g
(3.22)
onde V
t
= KK
t
V
a
, ´e o valor da tens˜ao nos terminais do tacˆometro para
1
Verifique o que aconteceria se uma carga indutiva ou capacitiva fosse conectada aos
terminais do gerador.
48 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
W W
W
1
W
2
W
3
· · · W
n
W
1
W
2
W
3
· · ·W
n
V
t
V
tn
.
.
.
V
t
3
V
t
2
V
t
1
V
t
1
V
t
2
V
t
3
.
.
.
V
tn
V
t
V
t
= K
t
W
(a) (b)
Figura 3.7: Representa¸ c˜ao (a) cartesiana dos pontos (W
1
, V
t
1
), (W
2
, V
t
2
), . . .,
(W
n
, V
tn
) e (b) da reta V
t
= K
t
W
uma entrada igual ao degrau, assumindo-se que n˜ ao h´ a cargas conectadas ao
gerador (conforme equa¸ c˜ao 3.14).
Definindo
¯
V
t
= V
t
−V

t
(3.23)
pode-se escrever a equa¸ c˜ao acima como
¯
V
t
=
¯
KK
t
I
g
(3.24)
que nos permite desenvolver o seguinte algoritmo para a identifica¸ c˜ao de
¯
K:
Algoritmo 3.4
1. Inicialmente, sem carga alguma conectada aos terminais do gerador,
aplica-se ao motor CC uma tens˜ao de valor igual a V
a
1
(V ) e mede-se a tens˜ao
resultante nos terminais do tacˆometro V
t
1
(v).
2. Mantendo a mesma tens˜ao aplicada ao motor, conecte uma carga
resistiva ao gerador, medindo-se: (i) a corrente que passa a circular por essa
resistˆencia (I
g
1
(A)) e (ii) a tens˜ao nos terminais do tacˆometro ap´ os a inser¸ c˜ao
da carga (V

t
1
(V )).
3. Defina
¯
V
t
1
= V
t
1
−V

t
1
e forme o par ordenado (I
g
1
,
¯
V
t
1
).
3.2. IDENTIFICAC¸
˜
AO DOS PAR
ˆ
AMETROS 49
I
g
I
g
I
g
1
I
g
2
I
g
3
· · · I
gn
I
g
1
I
g
2
I
g
3
· · ·I
gn
¯
V
t
¯
V
tn
.
.
.
¯
V
t
3
¯
V
t
2
¯
V
t
1
¯
V
t
1
¯
V
t
2
¯
V
t
3
.
.
.
¯
V
tn
¯
V
t
¯
V
t
=
¯
KK
t
I
g
(a) (b)
Figura 3.8: Representa¸ c˜ao (a) cartesiana dos pontos (I
g
1
,
¯
V
t
1
), (I
g
2
,
¯
V
t
2
), . . .,
(I
gn
,
¯
V
tn
) e (b) da reta
¯
V
t
=
¯
KK
t
I
g
4. Repita os passo 1 a 3 acima para outros valores de V
a
, obtendo, ao
final, os pares cartesianos (I
g
1
,
¯
V
t
1
), (I
g
2
,
¯
V
t
2
), . . ., (I
gn
,
¯
V
tn
).
5. Utilize o m´etodo dos m´ınimos quadrados para obter
¯
KK
t
, conforme
mostrado na figura 3.8. 2
Observa¸ c˜ao 3.1
´
E interessante notar que, para uma carga fornecida por um
resistor R, existe uma rela¸ c˜ao entre a corrente I
g
e a tens˜ao nos terminais do
gerador (V
g
), dada por:
V
g
I
g
= R.
Como V
g
tamb´em ´e proporcional ` a tens˜ao V
t
, pode-se escrever:
V
g
= K
G
V
t
,
e, finalmente, usando a equa¸ c˜ao (3.20),
I
g
=
K
G
R
V
t
=
K
G
K
t
R
W, (3.25)
ou seja, a carga resistiva tem o mesmo efeito que o atrito viscoso, representado
por f, na equa¸ c˜ao (3.5). 2
50 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
x x
x
1
x
2
x
3
· · · x
n
x
1
x
2
x
3
· · ·x
n
y
y
n
.
.
.
y
3
y
2
y
1
y
1
y
2
y
3
.
.
.
y
n
y y = αx
(a) (b)
Figura 3.9: Representa¸ c˜ao (a) cartesiana dos pontos (x
1
, y
1
), (x
2
, y
2
), . . .,
(x
n
, y
n
) e (b) da reta ajustada y = αx
Os passos 2, dos algoritmos 3.1 a 3.3, e 5, do algoritmo 3.4, se resumem
a utilizar o m´etodo dos m´ınimos quadrados para o ajuste do coeficiente an-
gular de uma fun¸ c˜ao linear y = αx dado n-pares cartesianos. Este problema
pode ser formulado da seguinte forma: suponha que sejam dados n-pares
cartesianos (x
1
, y
1
), (x
2
, y
2
), . . ., (x
n
, y
n
), conforme mostra a figura 3.9(a) e
considere o problema de se ajustar o coeficiente angular de uma reta y = αx
de tal sorte que a soma dos quadrados das diferen¸ cas entre as ordenadas
y
1
, y
2
, . . . , y
n
e αx
1
, αx
2
, . . . , αx
n
seja m´ınima, onde αx
i
representa a orde-
nada do ponto imagem de x
i
para a fun¸ c˜ao y = αx (veja figura 3.9(b)).
Inicialmente, note que se os pontos (x
1
, y
1
), (x
2
, y
2
), . . . , (x
n
, y
n
) perten-
cessem ` a reta y = αx ter´ıamos:
y
1
= αx
1
y
2
= αx
2
. (3.26)
.
.
.
y
n
= αx
n
3.2. IDENTIFICAC¸
˜
AO DOS PAR
ˆ
AMETROS 51
´
E f´ acil verificar que, definindo-se
x =
_
x
1
x
2
· · · x
n
¸
t
(3.27)
y =
_
y
1
y
2
· · · y
n
¸
t
pode-se escrever a equa¸ c˜ao (3.26) na forma vetorial:
y = αx (3.28)
onde α ∈ R ´e o coeficiente angular a ser determinado.
Uma an´ alise mais minunciosa do sistema de equa¸ c˜oes (3.28) revela que
quando os pontos (x
1
, y
1
), (x
2
, y
2
), . . . , (x
n
, y
n
) pertencem a uma reta, ent˜ao
os vetores x e y est˜ao em um mesmo espa¸ co vetorial, ou equivalentemente,
s˜ao colineares. Neste caso, definindo
α
i
=
y
i
x
i
, i = 1, 2, . . . , n (3.29)
pode-se facilmente concluir que
α
i
= α
j
, i, j = 1, 2, . . . , n, i = j (3.30)
e, portanto,
α = α
i
, i = 1, 2, . . . , n (3.31)
Contudo, em geral, o sistema de equa¸ c˜oes (3.28) n˜ ao tem solu¸ c˜ao, uma
vez que y −αx = 0. Seja, portanto,
e = y − ˆ y (3.32)
um vetor representativo do erro entre o vetor y e o vetor
ˆ y = αx =
_
αx
1
αx
2
· · · αx
n
¸
t
(3.33)
onde α ´e o coeficiente angular a ser determinado.
O problema dos m´ınimos quadrados pode ser enunciado como se segue:
calcule α tal que
e
2
2
= y − ˆ y
2
2
= y −αx
2
2
(3.34)
seja minimizada, onde e
2
representa a norma euclideana do vetor e, qual
seja:
e
2
=< e, e >
1/2
= (e
t
e)
1/2
= (
n

i=1
e
2
i
)
1/2
(3.35)
52 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
onde e = [ e
1
e
2
· · · e
n
]
t
e < ., . > denota produto produto escalar. A
partir das express˜oes (3.34) e (3.35) tem-se que
e
2
2
= (y
1
−αx
1
)
2
+ (y
2
−αx
2
)
2
+· · · + (y
n
−αx
n
)
2
(3.36)
que mostra que ao se minimizar e
2
2
estamos, de fato, minimizando a soma
dos quadrados das diferen¸ cas entre y
i
e αx
i
, i = 1, 2, . . . , n.
Usando a defini¸ c˜ao (3.35) na equa¸ c˜ao (3.34), obt´em-se:
e
2
2
= < e, e >=< y −αx, y −αx >
= y
t
y −αy
t
x −αx
t
y +α
2
x
t
x
= x
t

2
−2y
t
xα +y
t
y. (3.37)
No desenvolvimento acima foi feito uso do fato que y
t
y, x
t
x, y
t
x, x
t
y ∈ R
e portanto y
t
x = (y
t
x)
t
= x
t
y. O valor de α pode ent˜ao ser calculado
utilizando-se ferramentas b´ asicas de c´alculo diferencial, isto ´e, calulando-se
o valor de α para o qual a fun¸ c˜ao definida pela equa¸ c˜ao (3.37) atinge o seu
m´ınimo. Como a fun¸ c˜ao (3.37) ´e quadr´ atica e o coeficiente de α
2
´e positivo,
a abscissa do seu ponto de m´ınimo corresponde ao valor de α para o qual a
derivada de e
2
2
em rela¸ c˜ao a α se anula, isto ´e:
d

e
2
2
= 2x
t
xα −2y
t
x = 0 (3.38)
e portanto
α =
y
t
x
x
t
x
=
y
t
x
x
2
2
(3.39)
Em resumo, podemos dizer que dado um conjunto de pontos (x
1
, y
1
),
(x
2
, y
2
), . . ., (x
n
, y
n
) n˜ ao alinhados, ent˜ao o valor de α que minimiza a norma
euclideana do erro entre os vetores
y =
_
¸
¸
¸
_
y
1
y
2
.
.
.
y
n
_
¸
¸
¸
_
e ˆ y = αx =
_
¸
¸
¸
_
αx
1
αx
2
.
.
.
αx
n
_
¸
¸
¸
_
(3.40)
´e dado por:
α =
y
t
x
x
2
2
. (3.41)
3.3. AJUSTE DA F.T. POR M
´
INIMOS QUADRADOS 53
3.2.2 Identifica¸c˜ao de τ
Fazendo-se I
g
(s) = 0 na equa¸ c˜ao (3.10) obt´em-se:
G(s) =
V
t
(s)
V
a
(s)
=
KK
t
τs + 1
(3.42)
que representa a fun¸ c˜ao de transfereˆencia de um sistema de 1a
¯
ordem com
p´ olo em 1/τ. Uma maneira imediata de se obter τ ´e a partir do tra¸ cado
das ass´ıntotas da curva de m´odulo dos diagramas de Bode
2
determinando-se,
portanto, a freq¨ uˆencia de canto ω = 1/τ. Deve ser ressaltado ainda que a
ass´ıntota de baixa freq¨ uˆencia (20 log(KK
t
)) deve ser tra¸ cada utilizando-se os
valores de KK
t
determinados a partir do algoritmo 3.1 da se¸ c˜ao 3.2.1.
3.3 O m´etodo dos m´ınimos quadrados no ajuste
dos parˆametros de uma fun¸ c˜ao de transferˆencia
Seja
Y (s) = G(s)U(s) (3.43)
onde
G(s) =
b(s)
a(s)
=
b
0
s
m
+b
1
s
m−1
+. . . +b
m−1
s +b
m
s
n
+a
1
s
n−1
+. . . +a
n−1
s +a
n
(3.44)
representa a fun¸ c˜ao de transferˆencia de um sistema linear invariante no tempo
cujos parˆ ametros a
i
, b
j
, i = 1, 2, . . . , n, j = 0, 1, . . . , m devem ser deter-
minados. Suponha ainda que os graus dos polinˆ omios do numerador e do
denominador (m e n respectivamente) ou sejam conhecidos ou ser˜ao arbitra-
dos pelo engenheiro de controle. Por exemplo, a fun¸ c˜ao de transferˆencia do
grupo motor-gerador que estamos considerando, de acordo com a nota¸ c˜ao da
equa¸ c˜ao (3.44), ´e dada por:
G(s) =
KK
t

s + 1/τ
(3.45)
e portanto m = 0, n = 1, b
0
= KK
t
/τ e a
1
= 1/τ. Caso a modelagem do
sistema n˜ ao tivesse sido realizada, os valores de m e n poderiam ser arbitrados
2
O aluno ´e aconselhado a realizar uma revis˜ao sobre diagramas de Bode (Basilio, 1995)
com vistas a ter a base necess´aria para justificar formalmente as conclus˜oes aqui apresen-
tadas.
54 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
a partir de um compromisso entre a exatid˜ao do ajuste e a complexidade do
modelo obtido
3
.
Sabe-se que a resposta em estado permanente (y
ss
(t)) a uma entrada
senoidal u(t) = U
m
0
Sen ω
0
t aplicada ao sistema cuja fun¸ c˜ao de transferˆencia
´e aquela da equa¸ c˜ao (3.43) ´e:
y
ss
(t) = Y
m
0
Sen (ω
0
t +φ
0
) (3.46)
onde Y
m
0
= |G(jω
0
)|U
m
0
e φ
0
´e a defasagem entre as senoides de entrada e
de sa´ıda. Portanto, para uma dada freq¨ uˆencia ω
0
G(jω
0
) = |G(jω
0
)|e

0
(3.47)
onde |G(jω
0
)| = Y
m
0
/U
m
0
e φ
0
´e obtido medindo-se a defasagem entre os
sinais de entrada e de sa´ıda.
Substituindo s = jω
0
na equa¸ c˜ao (3.44), obt´em-se:
G(jω
0
) =
(jω
0
)
m
b
0
+ (jω
0
)
m−1
b
1
+. . . + (jω
0
)b
m−1
+b
m
(jω
0
)
n
+ (jω
0
)
n−1
a
1
+. . . + (jω
0
)a
n−1
+a
n
(3.48)
onde, de acordo com a equa¸ c˜ao (3.47), G(jω
0
) = |G(jω
0
)|e

0
. Multiplicando-
se ambos os membros da equa¸ c˜ao (3.48) por (jω
0
)
n
+ (jω
0
)
n−1
a
1
+ . . . +
(jω
0
)a
n−1
+a
n
resulta:
G(jω
0
)(jω
0
)
n
+
n

i=1
G(jω
0
)(jω
0
)
n−i
a
i
=
m

i=0
(jω
0
)
m−i
b
i
(3.49)
que ´e equivalente a:
n

i=1
G(jω
0
)(jω
0
)
n−i
a
i

m

i=0
(jω
0
)
m−i
b
i
= −G(jω
0
)(jω
0
)
n
(3.50)
Definindo
x
t
=
_
a
1
a
2
. . . a
n
b
0
b
1
. . . b
n
¸
(3.51)
pode-se escrever:
3
Pode-se mostrar que quanto maiores os valores de m e n, melhor o ajuste da curva de
resposta em freq¨ uˆencia do modelo aos pontos obtidos experimentalmente. Por´em, valores
grandes de n d˜ao origem a modelos de ordem elevada, o que torna dif´ıcil o projeto do
controlador.
3.3. AJUSTE DA F.T. POR M
´
INIMOS QUADRADOS 55
[ G(jω
0
)(jω
0
)
n−1
. . . G(jω
0
)(jω
0
) G(jω
0
) −(jω
0
)
m
. . . −(jω
0
) −1 ]x =
= G(jω
0
)(jω
0
)
n
(3.52)
Repetindo-se tamb´em para as freq¨ uˆencias ω
i
, i = 1, 2, . . . , q, obt´em-se a
seguinte equa¸ c˜ao matricial:
Mx = y (3.53)
onde M =
_
M
1
M
2
¸
,
M
1
=
_
¸
¸
¸
_
G(jω
0
)(jω
0
)
n−1
. . . G(jω
0
)(jω
0
) G(jω
0
)
G(jω
1
)(jω
1
)
n−1
. . . G(jω
1
)(jω
1
) G(jω
1
)
.
.
.
.
.
.
.
.
.
G(jω
q
)(jω
q
)
n−1
. . . G(jω
q
)(jω
q
) G(jω
q
)
_
¸
¸
¸
_
, (3.54)
M
2
=
_
¸
¸
¸
_
−(jω
0
)
m
. . . −(jω
0
) −1
−(jω
1
)
m
. . . −(jω
1
) −1
.
.
.
.
.
.
.
.
.
−(jω
q
)
m
. . . −(jω
q
) −1
_
¸
¸
¸
_
, (3.55)
y =
_
¸
¸
_
−G(jω
0
)(jω
0
)
n
−G(jω
1
)(jω
1
)
n
· · ·
−G(jω
q
)(jω
q
)
n
_
¸
¸
_
, (3.56)
M ∈ C
(q+1)×(m+n+1)
e y ∈ C
q+1
. Uma vez que a matriz M e o vetor y s˜ao
complexos, podem ser escritos como:
M = Re(M) +jIm(M) e y = Re(y) +jIm(y) (3.57)
e, portanto, a equa¸ c˜ao (3.56) ´e idˆentica a:
[Re(M) +jIm(M)]x = Re(y) +jIm(y). (3.58)
Comparando as partes real e imagin´aria, resulta:
Re(M)x = Re(y) (3.59)
Im(M)x = Im(y)
56 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
que ´e equivalente a:
Ax = b (3.60)
onde
A =
_
Re(M)
Im(M)
_
e b =
_
Re(y)
Im(y)
_
, (3.61)
A ∈ R
2(q+1)×(m+n+1)
, b ∈ R
2(q+1)
e x ∈ R
m+n+1
.
Antes de se propor uma solu¸ c˜ao para a equa¸ c˜ao (3.60) ´e oportuno fazer
uma an´ alise das dimens˜oes das matrizes envolvidas. Para tanto, lembre-se
de que q +1 representa o n´ umero de freq¨ uˆencias usadas no experimento para
a obten¸ c˜ao da resposta em freq¨ uˆencia do sistema e m e n denotam, respec-
tivamente, os graus dos polinˆ omios do numerador e denominador de G(s).
Para um melhor ajuste da curva de resposta em freq¨ uˆencia do modelo aos
valores obtidos experimentalmente, q deve ser grande o suficiente para varrer
todas as freq¨ uˆencias de interesse. Em contrapartida, m e n n˜ ao devem ser
demasiadamente grandes pois aumentam significativamente a complexidade
do modelo. Portanto, na pr´atica, q ≫ m + n, o que implica que a matriz
A possui, em geral, um n´ umero de linhas muito maior que o n´ umero de col-
unas. Observe ainda que, para o sistema de equa¸ c˜oes (3.60) ter solu¸ c˜ao ´e
necess´ario que o vetor b possa ser escrito como uma combina¸ c˜ao linear das
colunas de A. O fato da matriz A ter um n´ umero de linhas muito maior que
o n´ umero de colunas torna essa possibilidade bastante remota, o que implica
que, geralmente Ax = b.
Seja, portanto,
ˆ
b = Ax (3.62)
e defina
e =
ˆ
b −b. (3.63)
Considere o seguinte problema: encontre x tal que e
2
2
seja m´ınima.
Note que, se existir x tal que Ax = b ent˜ao e
2
2
= 0, o que implica que
mesmo no caso em que o sistema de equa¸ c˜oes (3.60) tem solu¸ c˜ao, o m´etodo
dos m´ınimos quadrados tamb´em levar´ a a essa solu¸ c˜ao.
A partir das equa¸ c˜oes (3.62) e (3.63) tem-se:
e
2
2
= < Ax −b, Ax −b >
= (Ax −b)
t
(Ax −b) (3.64)
= x
t
A
t
Ax −x
t
A
t
b −b
t
Ax +b
t
b
3.3. AJUSTE DA F.T. POR M
´
INIMOS QUADRADOS 57
e como x
t
A
t
b ∈ R ent˜ao x
t
A
t
b = (x
t
A
t
b)
t
= b
t
Ax, o que nos permite escrever:
e
2
2
= x
t
A
t
Ax −2b
t
Ax +b
t
b (3.65)
Antes de abordar o problema de minimiza¸ c˜ao proposto em (3.65), alguns
conceitos devem ser relembrados:
1. Seja y = f(x
1
, x
2
, . . . , x
n
) uma fun¸ c˜ao de R
n
em R. A derivada de y
em rela¸ c˜ao ao vetor x ´e definida como:
∂y
∂x
=
_
¸
¸
¸
¸
¸
¸
¸
¸
_
∂y
∂x
1
∂y
∂x
2
.
.
.
∂y
∂x
n
_
¸
¸
¸
¸
¸
¸
¸
¸
_
(3.66)
2. De acordo com a nota¸ c˜ao introduzida na equa¸ c˜ao (3.66), tem-se que:
(a) Se y = b
t
x, onde b ∈ R
n
ent˜ao
∂y
∂x
= b (3.67)
Prova: Seja b
t
=
_
b
1
b
2
. . . b
n
¸
. Ent˜ao y = b
t
x = b
1
x
1
+b
2
x
2
+. . . +
b
n
x
n
, e portanto:
∂y
∂x
=
_
¸
¸
¸
¸
¸
¸
¸
¸
_
∂y
∂x
1
∂y
∂x
2
.
.
.
∂y
∂x
n
_
¸
¸
¸
¸
¸
¸
¸
¸
_
=
_
¸
¸
¸
_
b
1
b
2
.
.
.
b
n
_
¸
¸
¸
_
= b. (3.68)
(b) Se y = x
t
Hx, onde H ´e uma matriz sim´etrica, isto ´e H
t
= H, ent˜ao
∂y
∂x
= 2Hx (3.69)
Prova: Por indu¸ c˜ao finita sobre n.
(i) n = 2. Neste caso
y =
_
x
1
x
2
¸
_
h
11
h
12
h
12
h
22
_ _
x
1
x
2
_
= h
11
x
2
1
+ 2h
12
x
1
x
2
+h
22
x
2
2
(3.70)
58 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
Portanto:
∂y
∂x
=
_
_
∂y
∂x
1
∂y
∂x
2
_
_
=
_
2h
11
x
1
+ 2h
12
x
2
2h
12
x
1
+ 2h
22
x
2
_
= 2
_
h
11
h
12
h
12
h
22
_ _
x
1
x
2
_
= 2Hx (3.71)
(ii) Assuma que a express˜ao (3.69) seja v´ alida quando H ∈ R
n×n
, isto ´e,
se y = x
t
Hx ent˜ao ∂y/∂x = 2Hx.
(iii) Seja agora H ∈ R
(n+1)×(n+1)
, isto ´e:
H =
_
¸
¸
¸
¸
¸
_
h
11
h
12
· · · h
1n
h
1,n+1
h
12
h
22
· · · h
2n
h
2,n+1
.
.
.
.
.
.
.
.
.
.
.
.
h
1n
h
2,n
· · · h
nn
h
n,n+1
h
1,n+1
h
2,n+1
· · · h
n,n+1
h
n+1,n+1
_
¸
¸
¸
¸
¸
_
. (3.72)
Definindo
H
n
=
_
¸
¸
¸
_
h
11
h
12
· · · h
1n
h
12
h
22
· · · h
2n
.
.
.
.
.
.
.
.
.
h
1n
h
2,n
· · · h
nn
_
¸
¸
¸
_
h
t
n+1
=
_
h
1,n+1
h
2,n+1
· · · h
n,n+1
¸
(3.73)
x
n
=
_
x
1
x
2
· · · x
n
¸
ent˜ao y = x
t
Hx ´e equivalente a:
y =
_
x
t
n
x
n+1
¸
_
H
n
h
n+1
h
t
n+1
h
n+1,n+1
_ _
x
n
x
n+1
_
=
_
x
t
n
H
n
+x
n+1
h
t
n+1
x
t
n
h
n+1
+x
n+1
h
n+1,n+1
¸
_
x
n
x
n+1
_
= x
t
n
H
n
x
n
+x
n+1
h
t
n+1
x
n
+x
t
n
h
n+1
x
n+1
+x
2
n+1
h
n+1,n+1
= x
t
n
H
n
x
n
+ 2x
n+1
h
t
n+1
x
n
+x
2
n+1
h
n+1,n+1
(3.74)
onde para a obten¸ c˜ao da ´ ultima express˜ ao fez-se uso do fato de que como
x
t
n
h
n+1
∈ R ent˜ao x
t
n
h
n+1
= (x
t
n
h
n+1
)
t
= h
t
n+1
x
n
.
3.3. AJUSTE DA F.T. POR M
´
INIMOS QUADRADOS 59
Desta forma, ∂y/∂x ser´a:
∂y
∂x
=
_
¸
_
∂y
∂x
n
∂y
∂x
n+1
_
¸
_ =
_
2H
n
x
n
+ 2x
n+1
h
n+1
2h
t
n+1
x
n
+ 2h
n+1,n+1
x
n+1
_
= 2
_
H
n
h
n+1
h
t
n+1
h
n+1,n+1
_ _
x
n
x
n+1
_
= 2Hx (3.75)
2
Estamos, agora, em condi¸ c˜oes de considerar o problema de encontrar
x ∈ R
m+n+1
que minimiza e
2
2
expressa pela equa¸ c˜ao (3.65). A partir dos
resultados 2(a) e 2(b), podemos escrever:

∂x
e
2
2
= 2(A
t
A)x −2A
t
b (3.76)
e, portanto, o valor de x que minimiza e
2
2
ser´a tal que
2(A
t
A)x −2A
t
b = 0. (3.77)
Observe que, como, em geral, m + n + 1 ≪ 2(q + 1), o posto de A ´e,
geralmente, igual a m + n + 1 e, portanto, A
t
A ´e n˜ ao singular, sendo desta
forma invers´ıvel. Conseq¨ uentemente, o vetor x que minimiza e
2
2
ser´a:
x = (A
t
A)
−1
A
t
b. (3.78)
O desenvolvimento acima nos permite escrever o seguinte algoritmo para
a identifica¸ c˜ao dos parˆ ametros da fun¸ c˜ao de transferˆencia G(s) = b(s)/a(s),
onde b(s) = b
0
s
m
+ b
1
s
m−1
+ . . . + b
m−1
s +b
m
e a(s) = s
n
+ a
1
s
n−1
+. . . +
a
n−1
s +a
n
:
Algoritmo 3.5
1. Arbitre valores para m e n e forme o vetor
x =
_
a
1
a
2
. . . a
n
b
0
b
1
. . . b
m−1
b
m
¸
t
2. Excite o sistema com fun¸ c˜oes senoidais u(t) = U
m
i
Sen (ω
i
t), i =
0, 1, . . . , q, medindo-se as amplitudes das respostas correspondentes (Y
m
i
) e
as defasagens em rela¸ c˜ao ` as respectivas senoides de entrada (φ
i
) e forme
G(jω
i
) =
Y
m
i
U
m
i
e

i
, i = 1, 2, . . . , n
60 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
3. Construa as matrizes M =
_
M
1
M
2
¸
e A,
M
1
=
_
¸
¸
¸
_
G(jω
0
)(jω
0
)
n−1
. . . G(jω
0
)(jω
0
) G(jω
0
)
G(jω
1
)(jω
1
)
n−1
. . . G(jω
1
)(jω
1
) G(jω
1
)
.
.
.
.
.
.
.
.
.
G(jω
q
)(jω
q
)
n−1
. . . G(jω
q
)(jω
q
) G(jω
q
)
_
¸
¸
¸
_
,
M
2
=
_
¸
¸
¸
_
−(jω
0
)
m
. . . −(jω
0
) −1
−(jω
1
)
m
. . . −(jω
1
) −1
.
.
.
.
.
.
.
.
.
−(jω
q
)
m
. . . −(jω
q
) −1
_
¸
¸
¸
_
e
A =
_
Re(M)
Im(M)
_
,
e os vetores y e b,
y =
_
¸
¸
_
−G(jω
0
)(jω
0
)
n
−G(jω
1
)(jω
1
)
n
· · ·
−G(jω
q
)(jω
q
)
n
_
¸
¸
_
e
b =
_
Re(y)
Im(y)
_
.
4. Calcule x = (A
t
A)
−1
A
t
b. Observe que os coeficientes de a(s) corre-
spondem ` as n primeiras componentes de x e os coeficientes de b(s) s˜ao obtidos
tomando-se as m+ 1 ´ ultimas componentes de x. 2
3.4 Experimento para identifica¸ c˜ao da fun¸ c˜ao de
transferˆencia do grupo motor-gerador
Uma vez que j´ a dispomos do modelo matem´atico do sistema, podemos passar
agora ao laborat´orio para realizarmos os ensaios necess´arios ` a identifica¸ c˜ao
da fun¸ c˜ao de transferˆencia do grupo motor-gerador. Este experimento ´e com-
posto, basicamente de duas partes: (i) excita¸ c˜ao do motor CC com tens˜oes
constantes com vistas ` a identifica¸ c˜ao dos ganhos K, K
t
e
¯
K; (ii) excita¸ c˜ao do
sistema com sinais senoidais de diferentes freq¨ uˆencias objetivando-se obter a
3.4. EXPERIMENTO PARA IDENTIFICAC¸
˜
AO 61
resposta em freq¨ uˆencia do sistema para que, a partir da curva de m´odulo dos
diagramas de Bode e, tamb´em utilizando-se o diagrama polar, identificar τ.
No experimento para a identifica¸ c˜ao da fun¸ c˜ao de transferˆencia do grupo
motor-gerador, ser˜ao utilizados os seguintes equipamentos:
1. Oscilosc´opio digital com, pelo menos, dois canais;
2. Gerador de fun¸ c˜oes;
3. Fonte de tens˜ao CC (regul´avel);
4. Tacˆometro ´ optico;
5. Mult´ımetros digitais (3);
6. Amplificador de potˆencia;
7. Resistˆencia de 0, 5Ω
3.4.1 Experimento para determina¸c˜ao de K,
¯
K e K
t
S˜ ao os seguintes os passos necess´arios para a obten¸ c˜ao dos dados que levam
` a determina¸ c˜ao dos parˆ ametros K,
¯
K e K
t
:
1. Conecte as sa´ıdas da fonte de tens˜ao CC aos terminais do motor.
2. Conecte um mult´ımetro (funcionando como volt´ımetro) ` a sa´ıda da fonte
de tens˜ao e um outro mult´ımetro (funcionando tamb´em como volt´ımetro) aos
terminais do tacˆometro.
3. Conecte um dos terminais do mult´ımetro (funcionando como amper´ı-
metro) a um dos terminais da carga (resistˆencia de 0, 5Ω) o outro terminal
da resistˆencia a um dos terminais do gerador. Note que para que o circuito
seja fechado, o terminal de entrada do mult´ımetro dever´a ser conectado ao
outro terminal do gerador. N˜ao o fa¸ ca agora. Isto ser´a feito mais adiante.
4. Excite o motor com o primeiro valor de tens˜ao (V
a
) sugerido na primeira
coluna da tabela 3.4.1, anotando na segunda coluna o valor da tens˜ao efeti-
vamente aplicada. Em seguida, me¸ ca a tens˜ao nos terminais do tacˆometro
(V
t
) e a velocidade angular do motor (ω), utilizando um tacˆometro ´ optico,
preenchendo, respectivamente, as colunas 3 e 4 da tabela 3.4.1.
5. Mantendo a mesma tens˜ao V
a
, feche o circuito formado pelo gerador,
mult´ımetro e pela resistˆencia de 10Ω, medindo a corrente que circula na carga
(I
g
) e o novo valor da tens˜ao nos terminais do tacˆometro (V

t
), anotando-os,
respectivamente nas colunas 5 e 6 da tabela 3.4.1. Deve-se tomar o cuidado
de certificar de que n˜ ao houve altera¸ c˜ao no valor de V
a
ap´ os a introdu¸ c˜ao
da carga no circuito. Tendo a leitura sido feita, abra o circuito gerador-
mult´ımetro-resistˆencia.
62 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
V
a
(V) sugerida V
a
(V) medida V
t
(V) ω (rpm) I
g
(mA) V

t
(V)
6,0
7.5
9,0
10,5
12,0
Tabela 3.1: Experimento para determina¸ c˜ao dos parˆ ametros K, K
t
e
¯
K
6. Repita os passos 4 e 5 para os demais valores de tens˜ao sugeridos na
tabela 3.4.1.
3.4.2 Experimento para obten¸c˜ao da resposta em freq¨ uˆencia
Para a obten¸ c˜ao da curva de resposta em freq¨ uˆencia do sistema ´e necess´ario
excitar o motor com uma tens˜ao senoidal. Os geradores de fun¸ c˜oes de que o
laborat´orio disp˜oe n˜ ao tˆem potˆencia suficiente para fazer o motor funcionar.
Para superar este problema, faz-se passar o sinal fornecido pelo gerador de
fun¸ c˜oes por um amplificador de potˆencia, que fornecer´a, ent˜ao, a potˆencia
necess´aria para o motor girar. Com isso em mente, siga os passos seguintes
para obter os dados necess´arios para o levantamento da curva de resposta em
freq¨ uˆencia do sistema:
1. Conecte os terminais do gerador de fun¸ c˜oes aos terminais de entrada
do amplificador de potˆencia. Em seguida conecte os terminais de sa´ıda do
amplificador de potˆencia aos terminais do motor.
2. Conecte os terminais de sa´ıda do amplificador de potˆencia ao canal 1
do digitalizador e os terminais do tacˆometro ao canal 2 do digitalizador.
3. Excite o motor com uma tens˜ao senoidal de aproximadamente 10V de
amplitude, variando a freq¨ uˆencia da tens˜ao senoidal fornecida pelo gerador
de fun¸ c˜oes de forma a excitar o motor com valores de freq¨ uˆencia pr´oximos
daqueles sugeridos na primeira coluna da tabela 3.2. Em seguida, complete
as demais colunas da tabela.
3.5 Valida¸ c˜ao do modelo
Tendo sido determinados os parˆ ametros da fun¸ c˜ao de transferˆencia do sis-
tema, o passo seguinte ´e a valida¸ c˜ao do modelo obtido, i.e, verificar se os
3.5. VALIDAC¸
˜
AO DO MODELO 63
f (Hz) sugerida f (Hz) medida V
a
(V) V
t
(V) V
t
/V
a
φ (rad)
0,10
0,20
0,30
0,40
0,50
0,65
0,85
1,10
1,50
1,85
2,40
3,10
4,10
5,30
6,90
9,50
11,8
13,5
15,3
18,0
20,0
Tabela 3.2: Tabela para levantamento da resposta em freq¨ uˆencia do sistema
motor-gerador-tacˆometro
valores calculados a partir dos experimentos de identifica¸ c˜ao s˜ao tais que
o modelo matem´atico adotado represente, com precis˜ao aceit´avel, o sistema
real. No caso do grupo motor-gerador (sistema adotado para este laborat´orio)
foram realizados ensaios para se determinar os parˆ ametros K, K
t
,
¯
K e τ.
Note que:
1. Os ganhos K e K
t
foram identificados a partir do ajuste dos coeficientes
angulares de retas que passam pela origem, de acordo com os algoritmos 3.2
e 3.3. A exatid˜ ao dos valores encontrados para K e K
t
pˆ ode ser verificada
a partir da compara¸ c˜ao com o produto KK
t
, identificado de acordo com o
algoritmo 3.1.
64 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
2. O valor de
¯
K, por sua vez, foi identificado de uma maneira apenas
(algoritmo 3.4). Isto requer, ent˜ao, que sejam realizadas algumas simula¸ c˜oes
em computador e comparar o resultado destas com o desempenho do sistema
real.
3. A constante de tempo τ foi calculada de duas formas: (i) a partir
da determina¸ c˜ao da freq¨ uˆencia de canto do diagrama de m´ odulo de Bode e
(ii) a partir do ajuste do diagrama polar de KK
t
/(τs + 1) a um conjunto
de pontos obtidos experimentalmente. O valor de τ ser´a escolhido a partir
de simula¸ c˜oes em computador, comparando-se os resultados dessas com o
desempenho do sistema real.
Assim sendo, para a valida¸ c˜ao do modelo matem´atico do grupo motor-
gerador, dado na figura 3.4 e representado novamente na figura 3.9, proceda
da seguinte forma:
1 Encontre o erro percentual (E
KKt
(%)) entre os produtos de K eK
t
,
obtidos a partir dos algoritmos 3.2 e 3.3 e de K
ta
, obtido de acordo com o
algoritmo 3.1, isto ´e:
E
KKt
(%) =
KK
t
−K
ta
KK
t
100(%) (3.79)
Se o erro for menor que 1%, os valores de K e K
t
obtidos experimentalmente
podem ser adotados como representativos do modelo, com razo´avel grau de
confian¸ ca. Caso o erro seja maior que 1%, deve-se, inicialmente, verificar
se os resultados obtidos nos ensaios de laborat´orio foram de fato utilizados
no c´alculo de K, K
t
e KK
t
. Isto permitir´a que se encontre poss´ıveis dis-
crepˆancias entre os valores obtidos pelos trˆes m´etodos, evitando que todos
os experimentos realizados para a determina¸ c˜ao de K, K
t
e K
ta
tenham que
ser realizados novamente. Caso n˜ ao tenha sido encontrado qualquer erro de
manipula¸ c˜ao dos dados, o aluno deve retornar ao laborat´orio para realizar no-
vamente aqueles experimentos cujos valores obtidos inicialmente apresentam
maiores discrepˆancias.
2 Excite o grupo motor-gerador com um pulso de tens˜ao de amplitude
igual a 10V com freq¨ uˆencia de aproximadamente 0, 3Hz e fa¸ ca a aquisi¸ c˜ao dos
sinais
4
de entrada (v
a
(t)) e de sa´ıda (v
t
(t)) e dos correspondentes instantes
de tempo (t).
3 Excite novamente o grupo motor-gerador com um pulso de tens˜ ao de
amplitude igual a 10V com freq¨ uˆencia de aproximadamente 0, 3Hz. No meio
4
Esta aquisi¸c˜ao de dados pode ser feita utilizando-se um computador com placas de
aquisi¸c˜ao de dados ou um oscilosc´opio digital com capacidade de armazenamento em disco.
3.5. VALIDAC¸
˜
AO DO MODELO 65
V
a
(s)
K
+
¯
K
I
g
(s)

1
τs+1
W(s)
K
t
V
t
(s)
Figura 3.10: Diagrama de blocos representativo do modelo matem´atico do
grupo motor-gerador-tacˆometro
do pulso, conecte a resistˆencia de 0, 5Ω aos terminais do motor e me¸ ca a
corrente de carga. Em seguida, fa¸ ca, como no item anterior, a aquisi¸ c˜ao dos
sinais de entrada (v
a
(t) e i
g
(t)) e de sa´ıda (v
t
(t)).
4(a) Com os valores de K e K
t
, obtidos no passo 1, e com o valor de
τ, obtido a partir do diagrama de m´odulo de Bode, construa um modelo
em SIMULINK equivalente ao diagrama de blocos representativo do grupo
motor-gerador dado pela figura 3.10 no qual o sinal de entrada se´a t ×v
a
(t)
(obtidos no passo 2). Para tanto, crie dois vetores colunas t e va, cujas
componentes s˜ao as correspondentes abscissas e ordenadas do sinal de en-
trada e utilize o bloco from workspace como entrada, sendo t e va os
parˆ ametros. Realize uma simula¸ c˜ao tendo como instantes inicial e final, t(1)
e t(length(t)), respectivamente. Note que, ap´ os a simula¸ c˜ao ser˜ao gera-
dos dois vetores: ts, que corresponde aos instantes de tempo utilizados na
simula¸ c˜ao e vts, que corresponde ` a tens˜ao nos terminais do tacˆometro para
o modelo obtido. Represente, em um mesmo gr´ afico, as curvas t × v
a
(t),
t × v
t
(t) e t
s
× v
t
(t
s
), onde t
s
´e um intervalo cujos extemos s˜ao ts(1) e
ts(length(ts).
4(b) Proceda de forma idˆentica ` a anterior, por´em com o valor de τ obtido
a partir do ajuste do diagrama polar.
4(c) Entre as curvas t
s
×v
t
(t
s
) (representadas graficamente nos item 4(a)
e 4(b)), escolha aquela que mais se aproxima da resposta do sistema real
t ×v
t
(t). O valor de τ que corresponde ao modelo que produziu a curva mais
66 CAP
´
ITULO 3. MODELAGEM E IDENTIFICAC¸
˜
AO
pr´oxima ser´a o escolhido.
5 A partir dos dados obtidos ao final do passo 3, crie agora quatro ve-
tores colunas, t, va, ig e vt correspondente aos dados armazenados para t,
v
a
(t), i
g
(t) e v
t
(t), respectivamente. Em seguida, utilizando o mesmo modelo
constru´ıdo no item 4(a), excite o sistema com blocos from workspace cujos
parˆ ametros ser˜ao: (i) t e va (entrada de referˆencia); (ii) t e ig (perturba¸ c˜ao).
Represente, em um mesmo gr´ afico, as curvas t × v
a
(t), t × i
g
(t), t × v
t
(t) e
t
s
×v
t
(t
s
), onde t
s
´e um intervalo cujos extemos s˜ao ts(1) e ts(length(ts)).
Ao final deste passo ficar´a claro se h´ a algum erro em
¯
K.
´
E de se esperar que as curvas obtidas no trabalho de simula¸ c˜ ao n˜ ao sejam
exatamente coincidentes com as curvas obtidas para o sistema real. Por´em,
para que o modelo adotado possa ser considerado satisfat´orio, essas cur-
vas devem ser bastante pr´oximas. Qualquer discrepˆancia mais acentuada
pode desqualificar o experimento de identifica¸ c˜ao ou at´e mesmo o modelo
matem´atico; por exemplo, levando ` a necessidade de escolha de um modelo
n˜ ao-linear.
Cap´ıtulo 4
Projeto do controlador de
velocidade
Obtido um modelo matem´atico para o sistema, o passo seguinte ´e proje-
tar um controlador que satisfa¸ ca as seguintes exigˆencias: (i) estabilidade;
(ii) rastreamento assint´otico de um sinal de referˆencia (i.e. para uma dada
velocidade, o motor deve, em estado permanente, girar nessa velocidade);
(iii) rejei¸ c˜ao assint´otica de perturba¸ c˜oes (i.e. quando uma carga for in-
serida nos terminais do gerador, o motor, ap´ os um ‘pequeno’ transit´orio,
deve permanecer com a mesma rota¸ c˜ao de antes da introdu¸ c˜ao da carga);
(iv) o sistema compensado n˜ ao deve ter o seu desempenho comprometido
por eventuais erros no modelo, cometidos durante a fase de identifica¸ c˜ao, o
que significa dizer que o sistema tem elevada robustez ou equivalentemente
pouca sensibilidade a varia¸ c˜oes nos parˆ ametros da fun¸ c˜ao de transferˆencia da
planta) e, finalmente, (v) bom desempenho transit´orio.
O objetivo deste cap´ıtulo ´e desenvolver o projeto de um controlador de
velocidade para o grupo motor-gerador que satisfa¸ ca as condi¸ c˜oes (i) a (v)
acima. Como finalidade did´ atica, ser´a, inicialmente, considerada a possibili-
dade de se fazer a compensa¸ c˜ao em malha aberta para, em seguida, projetar
um sistema de controle realimentado. Esta abordagem ter´a a finalidade de
ilustrar os benef´ıcios da realimenta¸ c˜ao num sistema de controle.
Este cap´ıtulo est´a estruturado da seguinte forma: na se¸ c˜ao 4.1 ser˜ao
apresentados os fundamentos te´oricos necess´arios para o projeto de um con-
trolador que rastreie assintoticamente um sinal de referˆencia, R(s), e rejeite
(tamb´em assintoticamente) uma perturba¸ c˜ao, D(s), conforme a figura 4.1.
67
68 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
R(s)
+

E(s)
K(s)
+
D(s)

G(s)
Y (s)
Figura 4.1: Diagrama de blocos para o projeto de controladores com objeticos
de rastreamento assint´otico de um sinal referˆencia e rejei¸ c˜ao assint´otica de
perturba¸ c˜ao
Outro t´opico a ser abordado na se¸ c˜ao 4.1 ´e a chamada sensibilidade de um
sistema em rela¸ c˜ao ` a varia¸ c˜ao de parˆ ametros da fun¸ c˜ao de transferˆencia da
planta. Na se¸ c˜ao 4.2 ser´a considerado o projeto de um controlador que sat-
isfa¸ ca as exigˆencias (i) a (v). Vale lembrar que um bom dom´ınio do m´etodo
do lugar das ra´ızes ´e fundamental para o projeto de compensadores, principal-
mente no que se refere ` a melhoria da resposta transit´oria. Outros conceitos
tamb´em importantes s˜ao aqueles refentes ` a resposta transit´oria de um sis-
tema de segunda ordem. Caso esses assuntos n˜ ao estejam bem sedimentados,
os alunos s˜ao aconselhados a revis´a-los.
4.1 Fundamentos te´oricos
4.1.1 Rastreamento e rejei¸c˜ao assint´otica de sinais de dinˆa-
mica conhecida
Considere o sistema realimentado da figura 4.1 onde, G(s) e K(s) representam
as fun¸ c˜oes de transferˆencias da planta e do controlador, respectivamente,
sendo
G(s) =
n
G
(s)
d
G
(s)
e K(s) =
n
K
(s)
d
K
(s)
, (4.1)
n
G
(s) e d
G
(s) s˜ao polinˆ omios conhecidos e n
K
(s) e d
K
(s) s˜ao polinˆ omios a
serem determinados. Sejam R(s), D(s) e Y (s) as transformadas de Laplace
4.1. FUNDAMENTOS TE
´
ORICOS 69
dos sinais de referˆencia, de perturba¸ c˜ao externa e de sa´ıda, onde
R(s) =
α(s)
β(s)
e D(s) =
γ(s)
δ(s)
, (4.2)
β(s) e δ(s) s˜ao polinˆ omios conhecidos (dinˆamicas de R(s) e D(s), respecti-
vamente), α(s) e γ(s) s˜ao tamb´em polinˆ omios, por´em, como ser´a visto mais
adiante, n˜ ao s˜ao necessariamente conhecidos.
A partir do diagrama de blocos da figura 4.1, pode-se escrever:
Y (s) = −G(s)D(s) +G(s)K(s)R(s) −G(s)K(s)Y (s) (4.3)
e, conseq¨ uentemente:
Y (s) =
G(s)K(s)
1 +G(s)K(s)
R(s) −
G(s)
1 +G(s)K(s)
D(s). (4.4)
A partir da equa¸ c˜ao (4.4), pode-se observar que o sinal de sa´ıda Y (s)
possui duas componentes: (i) Y
R
(s), que ´e devida ao sinal de referˆencia R(s)
e (ii) Y
D
(s), que se deve ` a perturba¸ c˜ao externa D(s). Portanto, Y (s) pode
ser escrito como:
Y (s) = Y
R
(s) −Y
D
(s) (4.5)
onde
Y
R
(s) =
G(s)K(s)
1 +G(s)K(s)
R(s) e Y
D
(s) =
G(s)
1 +G(s)K(s)
D(s) (4.6)
O rastreamento e a rejei¸ c˜ao de perturba¸ c˜oes externas (assintoticamente)
requerem que y(t) →r(t) quando t →∞, o que equivale a exigir que
lim
t→∞
y
D
(t) = 0 (4.7)
e
lim
t→∞
e
R
(t) = 0 (4.8)
onde
e
R
(t) = y
R
(t) −r(t). (4.9)
Os problemas do rastreamento assint´otico de um sinal de referˆencia e da
rejei¸ c˜ao assint´otica de um sinal externo de perturba¸ c˜ ao (ambos de dinˆ amicas
conhecidas) ser˜ao abordados considerando-se as condi¸ c˜oes impostas pelas
equa¸ c˜oes (4.7)–(4.9), acima. Antes, por´em, considere a seguinte fatora¸ c˜ao:
70 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
seja p(s) um polinˆ omio e fatore p(s) como p(s) = p

(s)p
+
(s), onde p

(s)
´e um polinˆ omio de Hurwitz cujos zeros s˜ao os zeros de p(s) com parte real
negativa e p
+
(s) ´e um polinˆ omio cujos zeros s˜ao os zeros de p(s) com parte
real positiva ou nula. Por exemplo, o polinˆ omio p(s) = s
3
− 2s
2
− 3s pode
ser fatorado como p

(s)p
+
(s), onde p

(s) = s + 1 e p
+
(s) = s(s −3).
Condi¸ c˜oes necess´arias e suficientes para que o sistema da figura 4.1 rejeite
assintoticamente um sinal D(s) = γ(s)/β(s), β(s) conhecido, s˜ao apresen-
tadas no seguinte teorema.
Teorema 4.1 Seja K(s) um controlador que estabiliza G(s), isto ´e, K(s) ´e
tal que o sistema realimentado da figura 4.1 ´e est´avel e seja D(s) = γ(s)/δ(s),
δ(s) conhecido. Ent˜ao
lim
t→∞
y
D
(t) = 0, (4.10)
isto ´e, o sistema rejeitar´a assintoticamente o sinal de perturba¸ c˜ao d(t), se e
somente se
n
G
(s)d
K
(s) = χ(s)δ
+
(s) (4.11)
onde δ
+
(s) ´e um polinˆ omio formado com os zeros de δ(s) com parte real
positiva ou nula e χ(s) ´e um polinˆ omio qualquer.
Prova: Usando as nota¸ c˜oes das equa¸ c˜oes (4.1) e (4.2), tem-se que, a ex-
press˜ao (4.6) pode ser escrita como:
Y
D
(s) =
n
G
(s)d
K
(s)
[n
G
(s)d
K
(s) +d
G
(S)d
K
(s)]
γ(s)
δ
+
(s)δ

(s)
(4.12)
Note que
n
G
(s)d
K
(s) +d
G
(S)d
K
(s) = p
C
(s), (4.13)
onde p
C
(s) denota o polinˆ omio caracter´ıstico de malha fechada. Como, por
hip´ otese, K(s) estabiliza G(s) ent˜ao p
C
(s) ´e um polinˆ omio de Hurwitz e,
portanto,
lim
t→∞
y
D
(t) = lim
s→0
sY
D
(s) = 0 (4.14)
se e somente se δ
+
(s) for um divisor de n
G
(s)d
K
(s), ou equivalentemente, se
existir um polinˆ omio χ(s) tal que n
G
(s)d
K
(s) = χ(s)δ
+
(s) 2
0 teorema 4.1 acima mostra que para que haja rejei¸ c˜ao assint´otica de
um sinal externo de perturba¸ c˜ao aplicado na entrada da planta, as dinˆ amicas
desse sinal que possuem parte real positiva ou nula devem ser zeros da planta
4.1. FUNDAMENTOS TE
´
ORICOS 71
ou p´ olos do controlador. Vale ressaltar que, somente em casos especiais, essas
dinˆ amicas ser˜ao tamb´em zeros da fun¸ c˜ao de transferˆencia da planta e por-
tanto, para se conseguir a rejei¸ c˜ao assint´otica de um sinal de perturba¸ c˜ao, ´e
mais comum fazer com que essas dinˆ amicas sejam tamb´em p´ olos do contro-
lador, isto ´e,
K(s) =
1
δ
+
(s)
¯
K(s) (4.15)
onde
¯
K(s) = ¯ n
K
(s)/
¯
d
K
(s), ¯ n
K
(s) e
¯
d
K
(s) ser˜ao escolhidos de tal forma que
n
G
(s)¯ n
K
(s) +d
G
(s)
¯
d
K
(s)δ
+
(s) seja um polinˆ omio de Hurwitz.
Uma vez obtida uma condi¸ c˜ao necess´aria e suficiente para a rejei¸ c˜ao
assint´otica de um sinal externo de perturba¸ c˜ao, o passo seguinte ´e consi-
derar o problema do rastreamento assint´otico de um sinal de referˆencia. A
abordagem deste problema ´e feita de forma an´ aloga ` a anterior, levando ` a
condi¸ c˜ao necess´aria e suficiente do teorema seguinte.
Teorema 4.2 Seja K(s) um controlador para o qual o sistema realimentado
da figura 4.1 seja est´avel e assuma que a transformada de Laplace do sinal
de referˆencia r(t) ´e R(s) = α(s)/β(s), β(s) conhecido. Ent˜ao
lim
t→∞
e
R
(t) = 0, (4.16)
isto ´e, y(t) rastreia assintoticamente r(t), se e somente se
d
G
(s)d
K
(s) = η(s)β
+
(s) (4.17)
onde β
+
(s) ´e um polinˆ omio formado com os zeros de β(s) com parte real
positiva ou nula e η(s) ´e um polinˆ omio qualquer.
Prova: A partir das equa¸ c˜oes (4.6) e (4.9), pode-se escrever:
E
R
(s) = R(s) −Y
R
(s)
=
1
1 +G(s)K(s)
R(s) (4.18)
e usando a nota¸ c˜ao da equa¸ c˜ao (4.1) tem-se:
E
R
(s) =
d
G
(s)d
K
(s)
[n
G
(s)n
K
(s) +d
G
(s)d
K
(S)]
α(s)
β
+
(s)β

(s)
. (4.19)
72 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
Como, por hip´ otese, G(s) estabiliza K(s), ent˜ao p
c
(s) = n
G
(s)n
K
(s) +
d
G
(s)d
K
(s) ´e um polinˆ omio de Hurwitz e, portanto,
lim
t→∞
e
R
(t) = lim
s→∞
sY
R
(s) = 0 (4.20)
se e somente se d
G
(s)d
K
(s) for m´ ultiplo de β
+
(s), ou equivalentemente, se
existir um polinˆ omio η(s) tal que d
G
(s)d
K
(s) = η(s)β
+
(s). 2
De acordo com o teorema 4.2, para que haja rastreamento assint´otico de
um sinal de referˆencia, as dinˆ amicas desse sinal com parte real positiva ou
nula devem ser p´ olos do controlador ou da planta. Observe que, somente
em casos muito especiais haver´a coincidˆencia dos p´ olos da planta com essas
dinˆ amicas. Portanto, de uma forma geral, o rastreamento assint´otico ser´a
obtido fazendo-se:
K(s) =
1
β
+
(s)
¯
K(s) (4.21)
onde
¯
K(s) = ¯ n
K
(s)/
¯
d
K
(s), ¯ n
K
(s) e
¯
d
K
(s) ser˜ao tais que n
G
(s)¯ n
K
(s) +
d
G
(s)
¯
d
K
(s)β
+
(s) seja est´avel.
Finalmente, note que os objetivos de rastreamento assint´otico de um sinal
de referˆencia R(s) = α(s)/[β

(s)β
+
(s)] e a rejeic˜ao assint´otica de um sinal
externo de perturba¸ c˜ao D(s) = γ(s)/[δ
+
(s)δ

(s)] ser˜ao, em geral, atingidos
simultaneamente, com um mesmo controlador, fazendo-se
K(s) =
1
mmc[β
+
(s), δ
+
(s)]
¯
K(s) (4.22)
onde mmc[β
+
(s), δ
+
(s)] denota o m´ınimo m´ ultiplo 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
p
C
(s) = n
G
(s)¯ n
K
(s) +d
G
(s)
¯
d
K
(s)mmc[β
+
(s), δ
+
(s)] (4.23)
seja um polinˆ omio de Hurwitz.
Exemplo 4.1: Suponha que para o sistema realimentado da figura 4.1,
R(s) = A/s e D(s) = B/s, onde A, B ∈ R s˜ao as amplitudes dos degraus
de referˆencia e de perturba¸ c˜ao, respectivamente. Portanto, para que sejam
atingidos, simultaneamente, os objetivos de rastreamento assint´otico de r(t)
e rejei¸ c˜ao, tamb´em assint´otica, de d(t), o controlador deve possuir a¸ c˜ao inte-
gral, isto ´e,
K(s) =
1
s
¯
K(s) (4.24)
4.1. FUNDAMENTOS TE
´
ORICOS 73
¯
K(s) sendo calculado de tal sorte que o sistema realimentado seja est´avel
com bom desempenho transit´orio. Guarde bem este resultado! Ele ser´a
importante quando do projeto de um controlador de velocidade para o grupo
motor-gerador.
4.1.2 Sensibilidade
A sensibilidade de um sistema est´a associada ` a n˜ ao manuten¸ c˜ao do desem-
penho e da estabilidade em presen¸ ca de varia¸ c˜oes nos parˆametros da planta.
Essas varia¸ c˜oes s˜ao, em geral, devidas a: (i) erros de identifica¸ c˜ao da fun¸ c˜ao
de transferˆencia do sistema, uma vez que os valores dos parˆametros, obti-
dos a partir da identifica¸ c˜ao, jamais representar˜ao exatamente o sistema real
e (ii) envelhecimento dos componentes do sistema. Desta forma, ´e impor-
tante analisar como o sistema ir´a se comportar em presen¸ ca de tais varia¸ c˜oes
(comumente denominadas de incertezas no modelo), seja no que se refere
ao desempenho do sistema compensado, ou com rela¸ c˜ao ` a manuten¸ c˜ao da
estabilidade.
A sensibilidade de um sistema em rela¸ c˜ao ` a varia¸ c˜ao em um determinado
elemento ´e quantificada pela raz˜ao entre a varia¸ c˜ao percentual da fun¸ c˜ao de
transferˆencia do sistema e a varia¸ c˜ao percentual da fun¸ c˜ao de transferˆencia
do elemento considerado, i.e.,
S
T
G
(s) =
∆T(s)
T(s)
100%
∆G(s)
G(s)
100%
(4.25)
onde T(s) representa a fun¸ c˜ao de transferˆencia global do sistema e G(s) ´e
a fun¸ c˜ao de transferˆencia do elemento considerado (em geral, a planta). A
implica¸ c˜ao imediata da equa¸ c˜ao (4.25) acima ´e que, qu˜ ao mais perto de 1 for
S
T
G
, mais sens´ıvel a varia¸ c˜oes nos parˆ ametros de G(s) ser´a o sistema como
um todo. Observe que a equa¸ c˜ao (4.25) pode ser escrita como:
S
T
G
(s) =
∆T(s)
∆G(s)
G(s)
T(s)
(4.26)
e, portanto, quando ∆G(s) →0 tem-se que ∆T(s) →0 e conseq¨ uentemente,
S
T
G
(s) =
G(s)
T(s)
∂T(s)
∂G(s)
. (4.27)
74 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
R(s)
+
R(s)

K(s)
K(s)
(a)
(b)
G(s)
G(s)
Y (s)
Y (s)
Figura 4.2: Diagrama de blocos: (a) sistema em malha aberta; (b) sistema
realimentado
A redu¸ c˜ao da sensibilidade do sistema ` a varia¸ c˜ao dos parˆ ametros da
fun¸ c˜ao de transferˆencia da planta ´e uma das raz˜oes para se usar a reali-
menta¸ c˜ao. Este fato ser´a evidenciado no exemplo seguinte.
Exemplo 4.2: Sejam os sistemas em malha aberta e fechada representados
na figura 4.2. Calcule S
T
G
para ambos os casos.
Consideremos inicialmente o sistema em malha aberta. Neste caso T(s) =
G(s)K(s) e, portanto:
S
T
G
=
G
T
∂T
∂G
=
G
GK
K = 1 (4.28)
que revela que qualquer erro de identifica¸ c˜ao ou varia¸ c˜ao nos parˆ ametros de
G(s) ir´a implicar num erro, de mesma magnitude na fun¸ c˜ao de transferˆencia
(e por conseg¨ uinte, no desempenho) do sistema como um todo.
Para o sistema em malha fechada, tem-se que T(s) = G(s)K(s)/[1 +
4.1. FUNDAMENTOS TE
´
ORICOS 75
G(s)K(s)], e ent˜ ao:
S
T
G
=
G
T
∂T
∂G
= G
1 +GK
GK
(1 +GK)K −GK
2
(1 +GK)
2
=
1
1 +GK
(4.29)
Suponha que K(s) estabiliza o sistema da figura 4.2(b) ent˜ao, para uma dada
freq¨ uˆencia ω
0
, S
T
G
ser´a reduzida de 1 (sistema em malha aberta) para
| S
T
G
(jω
0
) |=
1
| 1 +G(jω
0
)K(jω
0
) |
, (4.30)
que ´e menor que 1, evidenciando o benef´ıcio da realimenta¸ c˜ao no que se refere
` a diminui¸ c˜ao da sensibilidade do sistema ` a varia¸ c˜ao nos parˆ ametros de G(s).
2
4.1.3 Complementos
(a) Compensa¸ c˜ao em malha aberta
Suponha que se deseje fazer uma compensa¸ c˜ao em malha aberta conforme o
diagrama de blocos da figura 4.3 e seja K(s) = K
p
. Nessas condi¸ c˜oes:
(1) Para quais valores de K
p
, o sistema ser´a est´avel?
(2) Entre os valores de K
p
que tornam o sistema est´avel, encontre aquele
que faz com que o sistema tenha um erro de regime permanente nulo para
uma entrada igual ao degrau de amplitude V
r
.
(b) Compensa¸ c˜ao em malha fechada (controlador integral)
Suponha, agora, que o objetivo seja projetar um sistema de controle realimen-
tado para o sistema, conforme o diagrama de blocos da figura 4.4. Conforme
visto na se¸ c˜ao 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 de-
grau ´e K(s) = K
I
/s, onde K
I
´e calculado para que o sistema realimentado
seja est´avel e com bom desempenho transit´orio. Construa o gr´ afico do lugar
das ra´ızes do sistema e responda:
(1) Para quais valores de K
I
, o sistema realimentado ser´a est´avel?
76 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
-
K(s)
-
K
-

-
1
τs+1
-
K
t
-
V
tr
(s)
V
a
(s)
+
V
t
(s) ?
¯
K
?
I
g
(s)

Figura 4.3: Diagrama de blocos para o sistema em malha aberta
(2) Para quais valores de K
I
, o sistema realimentado ser´a: (i) super-
amortecido; (ii) criticamente amortecido; (iii) sub-amortecido e (iv) sub-
amortecido com percentual menor ou igual a 5%.
(c) Compensa¸ c˜ao em malha fechada (controlador proporcional +
integral)
Seja, agora
K(s) = K
p
s +z
s
= K
p
_
1 +
z
s
_
= K
p
_
1 +
1
T
i
s
_
(4.31)
onde T
i
= 1/z, K
p
e z > 1/τ a serem determinados. Esboce o gr´ afico do lugar
das ra´ızes do sistema realimentado da figura 4.4 com o controlador (4.31) e
responda:
(1) Para quais valores de K
p
, o sistema realimentado ser´a est´avel?
(2) Para qual valor de K
p
, os p´ olos do sistema realimentado ser˜ao com-
plexos e com parte real igual a −1/τ?
4.2 Projeto do controlador de velocidade
Como o objetivo do sistema de controle a ser aqui desenvolvido ´e controlar a
velocidade de rota¸ c˜ao do motor, isto ´e, mantˆe-la em um determinado valor, ´e
natural considerar como sinal de referˆencia um degrau de amplitude V
r
Volts,
isto ´e:
v
tr
(t) =
_
V
r
(V ), t ≥ 0
0, t < 0
(4.32)
4.2. PROJETO DO CONTROLADOR DE VELOCIDADE 77
-
K(s)
-
K
-

- K
t
τs+1
-
V
a
(s)
+
?
¯
K
?
I
g
(s)

-
6
V
tr
(s) V
t
(s)
+

Figura 4.4: diagrama de blocos para o sistema realimentado
Note que est´a impl´ıcito no objetivo de rastreamento do sinal v
r
(t), a neces-
sidade do sistema ser est´avel. Al´em desses objetivos (estabilidade e rastrea-
mento assint´otico do sinal de referˆencia) o sistema deve:
1. Rejeitar sinais de perturba¸ c˜ao, que podem ser modelados como degraus
de amplitude I
g
Amp`eres, isto ´e:
i
g
(t) =
_
I
g
(A), t ≥ t
0
0, t < t
0
(4.33)
onde, t
0
≥ 0.
2. Baixa sensibilidade a erros de identifica¸ c˜ao dos parˆ ametros do modelo
do grupo motor gerador.
3. Bom desempenho transit´orio. Como se trata de uma planta did´ atica, o
desempenho do sistema ser´a definido unicamente um termos do tempo
de acomoda¸ c˜ao da resposta ao degrau do sistema em malha aberta.
´
E sabido que os objetivos de um sistema de controle somente ser˜ao al-
can¸ cados com sistemas realimentados. Por´em, como forma de ilustrar os
benef´ıcios da realimenta¸ c˜ao, iremos, inicialmente, considerar a possibilidade
de se usar um controle em malha aberta e, em seguida, projetar um sistema
de controle realimentado.
78 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
4.2.1 Sistema de controle em malha aberta
A partir do diagrama de blocos da figura 4.3 pode-se escrever:
V
t
(s) =
K
τs + 1
K(s)V
tr
(s) −
¯
K
τs + 1
I
g
(s). (4.34)
´
E f´ acil verificar que o sistema de controle em malha aberta ser´a est´avel se
e somente se K(s) for est´avel. Como, por simplicidade foi adotado como
satisfat´orio o tempo de acomoda¸ c˜ao do sistema sem compensa¸ c˜ao, pode-se
utilizar um controlador est´atico, isto ´e:
K(s) = K
P
(4.35)
onde K
P
deve ser determinado de acordo com a se¸ c˜ao 4.1.3(a) de tal sorte
que, em regime permanente, v
t
(t) = V
r
.
Uma vez obtido K
P
, o passo seguinte ´e fazer a an´ alise do desempenho
do sistema compensado, utilizando o SIMULINK. Para tanto, construa um
modelo, em SIMULINK, equivalente ao diagrama de blocos da figura 4.3. Em
seguida, tendo 0s e 2s como instantes inicial e final de simula¸ c˜ao, proceda ` a
seguinte simula¸ c˜ao:
1. Para uma corrente i
g
(t) = 0 (A), aplique um degrau de amplitude igual
a 10 V com in´ıcio em t = 0s. Em seguida, encontre o erro de estado
permanente e o valor do tempo de acomoda¸ c˜ao (t
s
) da resposta.
2. Suponha, agora, que tenha havido um erro de 10% na identifica¸ c˜ao de
K
a
, isto ´e K
a
real
= 0, 9K
a
. Ainda com i
g
(t) = 0 (A), aplique um
degrau de amplitude igual a 10 V com in´ıcio em t = 0s e encontre o
erro de estado permanente.
3. Retorne K
a
ao valor obtido na identifica¸ c˜ao e, em seguida, aplique
simultaneamente as entradas v
tr
(t) e i
g
(t), ambas degraus, com am-
plitudes respectivamente iguais a 10 V e 0, 450 A e in´ıcios em t = 0 e
t = 1 s (s). Realizada a simula¸ c˜ao, encontre o erro de regime perma-
nente.
4.2.2 Sistema de controle com realimenta¸c˜ao
Vocˆe deve ter observado que nas simula¸ c˜oes 2 e 3 realizadas na se¸ c˜ao an-
terior, o erro de regime permanente foi diferente de zero, isto ´e, o sistema
4.2. PROJETO DO CONTROLADOR DE VELOCIDADE 79
compensado em malha aberta n˜ ao foi capaz de rejeitar um sinal externo de
perturba¸ c˜ao e foi, tamb´em, sens´ıvel a erros de identifica¸ c˜ao. A realimenta¸ c˜ao
surge, ent˜ao, como a ´ unica alternativa para superar essas limita¸ c˜oes do con-
trolador em malha aberta. Conforme visto no exemplo 4.1, para que o sistema
realimentado seja capaz de rastrear assintoticamente um degrau e rejeitar,
tamb´em assintoticamente, sinais externos de perturba¸ c˜ao do tipo degrau, o
controlador deve ser dinˆ amico e, mais crucial ainda, ter um p´ olo em s = 0.
Portanto, a forma mais simples para esse controlador ´e o tipo integral (I),
sendo dado por:
K(s) =
K
I
s
(4.36)
onde K
I
deve ser calculado de tal forma que o sistema realimentado seja
est´avel com desempenho transit´orio satisfat´orio, isto ´e, que satisfa¸ ca as es-
pecifica¸ c˜oes de desempenho. Lembre-se de que, no presente caso, requer-se
que o tempo de acomoda¸ c˜ao da resposta ao degrau para o sistema realimen-
tado seja aproximadamente igual ao do sistema em malha aberta.
Para verificar os benef´ıcios da introdu¸ c˜ao da realimenta¸ c˜ao acrescida de
uma compensa¸ c˜ ao dinˆ amica, vamos inicialmente considerar os seguintes ca-
sos: (i) sistema realimentado criticamente amortecido e (ii) sistema reali-
mentado subamortecido com percentual de ultrapassagem menor ou igual a
5%. Para tanto, proceda da seguinte forma:
1. Calcule o valor de K
I
de tal forma que o sistema realimentado seja
criticamente amortecido.
2. Com o valor de K
I
, calculado no item anterior, e com os valores de K,
K
t
,
¯
K e τ, identificados para o grupo motor-gerador, construa um mod-
elo em SIMULINK equivalente ao diagrama de blocos da figura 4.4 e
ajuste os tempos inicial e final de simula¸ c˜ao em 0 e 2s, respectivamente.
3. Para uma corrente i
g
(t) = 0 (A), aplique um degrau de amplitude igual
a 10 V com in´ıcio em t = 0s. Em seguida, encontre o erro de estado
permanente e o valor do tempo de acomoda¸ c˜ao (t
s
) da resposta.
4. Suponha, agora, que tenha havido um erro de 10% na identifica¸ c˜ao de
K
a
, isto ´e K
a
real
= 0, 9K
a
. Ainda com i
g
(t) = 0 (A), aplique um
degrau de amplitude igual a 10 V com in´ıcio em t = 0s e encontre o
erro de estado permanente.
80 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
5. Retorne K
a
ao valor obtido na identifica¸ c˜ao e, em seguida, aplique
simultaneamente as entradas v
tr
(t) e i
g
(t), ambas degraus, com am-
plitudes respectivamente iguais a 10 V e 0, 450 A e in´ıcios em t = 0 e
t = 1 s (s). Realizada a simula¸ c˜ao, encontre o erro de regime perma-
nente.
6. Calcule, agora, o valor de K
I
de tal forma que o sistema realimentado
seja subamortecido com percentual de ultrapassagem menor ou igual a
5%.
7. Repita os itens 2 a 5, acima.
O aluno deve ter observado nas simula¸ c˜oes realizadas que o sistema reali-
mentado com o controlador integral, em ambos os casos (criticamente amorte-
cido e subamortecido com percentual de ultrapassagem menor ou igual que
5%), eliminou a sinal externo de perturba¸ c˜ao e teve erro de regime perma-
nente nulo, mesmo quando se supˆos um erro de 10% no ganho da fun¸ c˜ao
de transferˆencia da planta. Contudo, o tempo de acomoda¸ c˜ ao da resposta
ao degrau para o sistema realimentado ´e, para ambos os casos, o dobro do
tempo de acomoda¸ c˜ao da resposta ao degrau do sistema em malha aberta.
Para se justificar esse fato, construa o diagrama do lugar das ra´ızes do sis-
tema realimentado para K(s) = K
I
/s e, a partir do valor da parte real dos
p´ olos, mostre que, de fato, o tempo de acomoda¸ c˜ao da resposta ao degrau
deveria ser o dobro daquele obtido para o sistema em malha aberta.
Assim sendo, para que o desempenho do sistema realimentado seja apro-
ximadamente igual ao do sistema em malha aberta, os p´ olos de malha fechada
devem ter parte real aproximadamente igual a −1/τ (p´olo da planta). Isto
implica que o diagrama dos lugar das ra´ızes deve se deslocar para a esquerda
e, para tanto, ´e necess´ario que exista um zero igual a −z (z > 0) ` a esquerda
de −1/τ. Portanto, K(s) deve ter a seguinte forma:
K(s) =
K
p
(s +z)
s
= K
p
_
1 +
z
s
_
= K
p
_
1 +
1
T
i
s
_
(4.37)
onde T
i
= 1/z. Note, pela equa¸ c˜ao 4.37 acima, que a introdu¸ c˜ao do zero no
controlador equivale a dot´ a-lo de a¸ c˜ao proporcional, resultando num contro-
lador PI.
Finalmente, para verificar se tal controlador, de fato, tornou o sistema
realimentado mais r´apido, proceda da seguinte forma:
4.3. COMENT
´
ARIOS FINAIS 81
1. Calcule o valor de K
p
e T
i
de tal sorte que os p´ olos do sistema reali-
mentado tenham parte real igual a −1/τ.
2. Substitua a fun¸ c˜ao de transferˆencia do bloco referente ao controlador
pela equa¸ c˜ao 4.37, com os valores de K
p
e T
i
calculados no item anterior.
3. Para uma corrente i
g
(t) = 0 (A), aplique um degrau de amplitude igual
a 10 V com in´ıcio em t = 0s. Em seguida, encontre o valor do tempo
de acomoda¸ c˜ao (t
s
) da resposta.
4.3 Coment´arios finais
Uma vez obtida uma fun¸ c˜ao de transferˆencia para o controlador, o passo final
´e a sua implementa¸ c˜ao no sistema real. A implementa¸ c˜ao da fun¸ c˜ao de trans-
ferˆencia 4.37 pode ser feita utilizando dispositivos eletrˆonicos anal´ ogicos ou
digitais. Neste laborat´orio utilizar-se-´a um controlador anal´ ogico, deixando
o controlador digital para um laborat´orio futuro. A implementa¸ c˜ao do con-
trolador no sistema real ser´a o assunto do pr´oximo cap´ıtulo.
82 CAP
´
ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE
Cap´ıtulo 5
Implementa¸ c˜ao do
controlador de velocidade
Neste cap´ıtulo trataremos da implementa¸ c˜ao do controlador projetado no
cap´ıtulo anterior. Como se trata de um laborat´orio para um primeiro curso
de Sistemas de Controle, ser´a desenvolvido um controlador anal´ ogico, em
cuja constru¸ c˜ao ser˜ao utilizados amplificadores operacionais
1
. Esses ampli-
ficadores, pelas suas caracter´ısticas de resposta e pre¸ co, s˜ao freq¨ uentemente
utilizados na implementa¸ c˜ao de controladores anal´ ogicos.
Antes de entrarmos na implementa¸ c˜ao do controlador faremos um breve
estudo introdut´orio sobre amplificadores operacionais. Neste estudo n˜ ao
consideraremos detalhes construtivos (que geralmente ´e feito nos cursos de
Eletrˆonica), nos preocupando somente com os aspectos externos do dispos-
itivo e com as suas caracter´ısticas que, quando exploradas, nos permitir˜ao
construir circuitos que tenham um determinado comportamento. Isso ser´a
realizado na se¸ cc˜ao 5.1. Caso o aluno j´ a possua conhecimentos suficientes
desse assunto, pode omitir esse estudo e caso o aluno deseje obter maiores
detalhes sobre teoria e pr´atica de amplificadores operacionais deve consul-
tar Graeme et al. (1981). Dotado dos fundamentos necess´arios ` a utiliza¸ c˜ao
dos amplificadores operacionais, o passo seguinte ser´a a constru¸ c˜ao de um
circuito eletrˆonico para o controlador, o que ser´a feito na se¸ c˜ao 5.2.
1
Este mesmo controlador poderia ser implementado digitalmente, isto ´e, utilizando-se
computadores digitais.
83
84 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
1 - NC (n˜ao conectar)
2 - Entrada inversora
3 - Entrada n˜ ao inversora
4 - Tens˜ao de polariza¸ c˜ao (−V
cc
)
5 - NC
6 - Sa´ıda
7 - Tens˜ao de polariza¸ c˜ao(+V
cc
)
8 - NC
Figura 5.1: Representa¸ c˜ao esquem´atica de um amplificador operacional
5.1 Amplificadores Operacionais
5.1.1 Conceitos b´asicos
Amplificadores operacionais s˜ao amplificadores que tˆem elevado ganho e s˜ao
geralmente utilizados para amplificar sinais que se estendem sobre uma ampla
faixa de freq¨ uˆencias. Na figura 5.1 est´a representado um amplificador opera-
cional de oito pinos, com as respectivas indica¸ c˜oes das conec¸ c˜oes que devem
ser efetuadas em cada um dos seus terminais e, na figura 5.2, o s´ımbolo mais
comumente adotado para represent´a-lo em um circuito. Observe na figura 5.1
o chanfro na parte esquerda do retˆangulo. Esse chanfro ´e utilizado nos cir-
cuitos integrados encapsulados para servir como referˆencia para a numera¸ c˜ao
dos pinos. Note, ainda na figura 5.1, a necessidade das tens˜oes externas de
polariza¸ c˜ao (±V
CC
), que s˜ao devidas ao fato dos amplicadores operacionais
serem, na verdade, circuitos integrados constru´ıdos com diversos est´agios de
transistores, que devem, portanto, ser polarizados.
A maioria dos amplificadores operacionais possui dois terminais de en-
trada e um terminal de sa´ıda, conforme representado na figura 5.2. A en-
trada (-) ´e denominada inversora enquanto a entrada (+) ’e chamada n˜ ao-
inversora. Isto faz com que esses amplificadores sejam conhecidos como difer-
enciais, uma vez a tens˜ao de sa´ıda ´e proporcional ` a diferen¸ ca entre as tens˜oes
aplicadas nos seus terminais de entrada. Utilizando-se a nota¸ c˜ao da figura
5.2, essa caracter´ıstica ´e matematicamente descrita pela seguinte equa¸ c˜ao:
v
0
= A(v
2
−v
1
) (5.1)
onde A ´e o ganho de malha aberta (A > 45.000), sendo definido pelos tran-
5.1. AMPLIFICADORES OPERACIONAIS 85
v
1
(t)
6
v
2
(t)
6
v
0
(t) = A(v
1
−v
2
)
A
6
v
0
(t)
Figura 5.2: Simbologia adotada para amplificadores operacionais
sistores internos do amplificador. Usualmente, na pr´atica, este ganho ´e con-
siderado infinito (A → ∞). Outras caracter´ısticas, geralmente adotadas na
pr´atica s˜ao: (i) v
0
= 0 quando v
1
= v
2
(tens˜ao ‘offset’ de entrada nula);
(ii) impedˆancia de entrada infinita, que permite baixa ou nenhuma inter-
ferˆencia com os elementos colocados em cascata no circuito (Z
in
= ∞); (iii)
impedˆancia de sa´ıda nula (Z
out
= 0); (iv) largura de faixa infinita; e (v)
atraso de resposta nulo. Na tabela 5.1 s˜ao mostrados os valores reais de
algumas dessas grandezas para os amplificadores operacionais 741 e LF356.
´
E importante ressaltar que o valor da impedˆancia de entrada para o LF356
’e aproximadamente 10
12
Ω, isto ´e, praticamente infinita
2
. Em face disso,
o LF356 ser´a utilizado na implementa¸ c˜ao do controlador de velocidade do
grupo motor-gerador.
5.1.2 Configura¸c˜oes b´asicas
A configura¸ c˜ao em malha aberta da figura 5.2 ´e raramente utilada. Ao se
construir um circuito utilizando um amplificador operacional s˜ao geralmente
utilizados outros elementos de circuitos (resistores, capacitores, indutores,
etc) para formar redes de realimenta¸ c˜ao. Essas configura¸ c˜oes far˜ao com que
o novo circuito tenha caracter´ısticas diferentes daquelas do amplificador em
malha aberta, como por exemplo: modifica¸ c˜oes do ganho, da resposta em
2
A raz˜ao dessa elevada impedˆancia de entrada reside no fato desse amplificador ser
constru´ıdo com transistores de efeito de campo.
86 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
741 LF356
Ganho de malha aberta (V/mV ) 200 200
Tens˜ao ‘offset’ de entrada (mV ) 2 3
Impedˆancia de entrada (MΩ) 2 10
6
Tens˜ao de polariza¸ c˜ao (V ) ±15 ±15
Banda passante (MHz) 1 1
Corrente de sa´ıda m´axima (mA) 5 5
Tabela 5.1: Caracter´ısticas dos amplificadores operacionais 741 e LF356
freq¨ uˆencia e a possibilidade de se efetuar opera¸ c˜oes matem´aticas como soma,
integra¸ c˜ao, deriva¸ c˜ao e etc. Algumas dessas configura¸c˜oes s˜ao apresentadas
a seguir:
Circuito inversor
Considere o circuito da figura 5.3. Aplicando-se a lei das correntes de Kirch-
hoff ao n´ o 1 e lembrando que, como o amplificador operacional tem impedˆan-
cia de entrada infinita, a corrente que flui para a entrada inversora ´e nula,
pode-se escrever:
_
_
_
e
i
(t)−es(t)
R
i
+
eo(t)−es(t)
R
f
= 0
e
o
(t) = −Ae
s
(t) (A →∞)
(5.2)
Substituindo e
s
(t) = −e
o
(t)/A na primeira equa¸ c˜ao, resulta:
e
i
(t)
R
i
+e
o
(t)(
1
R
f
+
R
i
A
+
R
f
A
) = 0. (5.3)
Finalmente, fazendo A →∞, obt´em-se:
e
o
(t) = −
R
f
R
i
e
i
(t) (5.4)
As seguintes observa¸ c˜oes podem ser feitas a partir da equa¸ c˜ao 5.4 acima:
(i) o ganho n˜ ao ´e mais determinado pelo amplificador e sim pelos elementos
externos R
i
e R
f
; (ii) quando o sinal de entrada for limitado, isto ´e, |e
1
(t)| <
E
i
, tem-se que |e
0
(t)| < (R
f
/R
i
)E
i
= E
0
e, portanto limitado. Como A →
∞, resulta:
|e
s
(t)| =
|e
0
(t)|
A
→0. (5.5)
5.1. AMPLIFICADORES OPERACIONAIS 87
e
i
(t)
6
R
i
e
s
(t)
6
1
R
f
6
e
o
(t)
Figura 5.3: Circuito inversor
Por essa raz˜ao, os terminais referentes ` as entradas inversora e n˜ ao-inversora
s˜ao dito estarem em terra virtual, isto ´e, para efeitos de an´ alises de redes
contendo amplificadores, e
s
(t) pode ser feito identicamente nulo.
Circuito n˜ao-inversor
Considere agora o circuito da figura 5.4(a), que difere do circuito inversor da
figura 5.3 principalmente pelo fato do sinal externo e
i
(t) estar agora conec-
tado ` a entrada n˜ ao-inversora. Aplicando a lei das correntes de Kirchhoff ao
n´ o 1 e levando em conta os fatos de que a corrente que entra no amplicador
operacional ´e nula e que os terminais + e − est˜ao em terra virtual pode-se
escrever:
e
i
(t)
R
i
+
e
i
(t) −e
o
(t)
R
f
= 0. (5.6)
Ap´os algumas manipula¸ c˜oes alg´ebricas simples, obt´em-se:
e
o
(t) =
R
f
+R
i
R
i
e
i
(t) (5.7)
Note, na equa¸ c˜ao 5.7 acima que o ganho de malha fechada ser´ a sempre maior
ou igual a 1 e ´e, mais uma vez, determinado por R
i
e R
f
. Observe ainda
88 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
R
i
e
i
(t)
6
1
R
f
6
e
o
(t)
e
i
(t)
6
6
e
o
(t)
(a) (b)
Figura 5.4: (a) Circuito n˜ ao-inversor; (b) Seguidor de tens˜ao
que, se R
f
´e feito igual a zero (curto-circuito) e R
i
= ∞ (circuito aberto),
conforme mostrado na figura 5.4(b), tem-se que o ganho ser´a exatamente
igual a 1. Nesse caso, o amplificador atua como um ‘seguidor de tens˜ao’, isto
´e, a tens˜ao de sa´ıda segue exatamente a tens˜ao de entrada. A configura¸ c˜ao
de seguidor de tens˜ao ´e largamente utilizada para prover isolamento entre os
sinais da fonte e da carga, evitando assim intera¸ c˜oes indesej´aveis.
Circuito comparador
Uma das maneiras de se fazer a compara¸ c˜ao entre dois sinais ´e utilizando-se
o circuito da figura 5.5. Aplicando-se a lei das correntes de Kirchhoff ao n´ o
A e lembrando que os pontos A e B tˆem o mesmo potencial (terra virtual),
pode-se escrever:
_
_
_
e
B
(t) = e
A
(t) =
R
3
R
2
+R
3
e
2
(t)
e
1
(t)−e
B
(t)
R
1
+
eo(t)−e
B
(t)
R
f
= 0.
(5.8)
Ap´os algumas manipula¸ c˜oes alg´ebricas elementares, obt´em-se:
e
o
(t) = −
R
f
(R
2
+R
3
)
R
1
(R
2
+R
3
)
e
1
(t) +
R
3
(R
1
+R
f
)
R
1
(R
2
+R
3
)
e
2
(t). (5.9)
Finalmente, fazendo R
1
= R
2
= R
3
= R
f
= R na equa¸ c˜ao 5.9 acima, resulta:
e
o
(t) = e
2
(t) −e
1
(t). (5.10)
5.1. AMPLIFICADORES OPERACIONAIS 89
e
1
(t)
6
e
2
(t)
6
R
1
R
2
v
B
(t)
6
R
3
R
f
6
e
o
(t)
Figura 5.5: Circuito comparador gen´erico
Deve ser ressaltado que, na pr´atica, ´e quase imposs´ıvel ter quatro resis-
tores de valores exatamente iguais e, portanto, a igualdade (5.10) n˜ ao pode,
a princ´ıpio, ser implementada fisicamente. Este problema pode ser superado
inserindo-se potenciˆometros de valores R

1
, R

2
, R

3
e R

f
em s´erie com os re-
sistores R
1
, R
2
, R
3
e R
f
. Esses potenciˆometros devem ser ajustados de tal
sorte que R
1
+R

1
= R
2
+R

2
= R
3
+R

3
= R
f
+R

f
. Para se verificar de que
a igualdade (5.10) est´a sendo verificada (a menos de um ‘offset’), aplica-se
sinais iguais em e
1
(t) e e
2
(t) e mede-se o sinal e
o
(t), que nesse caso deve ser
aproximadamente igual a zero (a menos de um ‘offset’).
Circuito integrador
O circuito da figura 5.6(a) representa uma maneira de se calcular analogica-
mente a integral de um sinal. Pode-se mostrar que a fun¸ c˜ao de transferˆencia
do circuito ´e dada por:
E
o
(s)
E
i
(s)
= −
1
R
i
C
f
s
(5.11)
e, portanto,
e
o
(t) = −
1
R
i
C
f
_
t
0
e
i
(λ)dλ. (5.12)
90 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
e
i
(t)
6
R
i
C
f
e
o
(t)
6
e
i
(t)
6
R
i
R
f
C
f
6
e
o
(t)
(a) (b)
Figura 5.6: Circuitos integradores: (a) ideal; (b) pr´atico.
A realimenta¸ c˜ao composta unicamente por um capacitor torna a con-
figura¸ c˜ao da figura 5.6(a) bastante sens´ıvel para alguns amplificadores ope-
racionais (inclusive o 741), o que torna a sua implementa¸ c˜ ao problem´atica.
Para solucionar este problema, introduz-se um resistor em paralelo com o
capacitor, conforme representado na figura 5.6(b). Neste caso, a fun¸ c˜ao de
transferˆencia do sistema passa a ser a seguinte:
E
o
(s)
E
i
(s)
= −
R
f
R
i
1
R
f
C
f
s + 1
(5.13)
cujas ass´ıntotas do diagrama de m´odulo de Bode est˜ao representadas na figura
5.7. Note que aumentando-se o valor do resistor R
f
, o p´ olo −1/R
f
C
f
se apro-
xima de zero ao mesmo tempo em que o ganho DC torna-se cada vez maior.
Nestas condi¸ c˜oes, a resposta em freq¨ uˆencia do sistema assemelha-se cada vez
mais ` a de um integrador ideal e, portanto, o circuito da figura 5.6(b) pode
ser usado com razo´avel precis˜ao para se efetuar a integra¸c˜ao de um sinal.
Circuito derivador
A deriva¸ c˜ao de um sinal anal´ ogico pode ser feita idealmente utilizando-se o
circuito da figura 5.8(a). Para esse circuito, tem-se que:
e
o
(t) = −R
f
C
i
d
dt
e
i
(t). (5.14)
5.1. AMPLIFICADORES OPERACIONAIS 91
20 log
R
f
R
i
|
Eo(jω)
E
i
(jω)
|
dB
1/R
f
C
f
ω(log)
Figura 5.7: Ass´ıntotas do diagrama de m´odulo de Bode para o circuito inte-
grador pr´atico da figura 5.6(b)
e
i
(t)
6
C
i
(a)
R
f
6
e
o
(t)
e
i
(t)
6
R
i
C
i
(b)
R
f
e
o
(t)
6
Figura 5.8: Circuitos derivadores: (a) ideal; (b) pr´atico
A utiliza¸ c˜ao desse circuito como um derivador pode trazer s´erios proble-
mas no que se refere a sinais com componentes de freq¨ uˆencias muito altas,
uma vez que tais sinais seriam amplificados por valores infinitos (pelo menos
teoricamente). Para solucionar este problema, faz-se uso do circuito da figura
5.8(b), cuja fun¸ c˜ao de transferˆencia ´e dada por:
E
o
(s)
E
i
(s)
= −
sR
f
C
i
R
i
C
i
s + 1
, (5.15)
cujas ass´ıntotas do diagrama de m´odulo de Bode est˜ao representadas na figura
5.9. Note que, diminuindo R
i
, o p´ olo −1/R
i
C
i
se afasta cada vez mais de
92 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
20 log
R
f
R
i
|
Eo(jω)
E
i
(jω)
|
dB
1/R
i
C
i
ω(log)
Figura 5.9: Ass´ıntotas do diagrama de m´odulo de Bode para o circuito
derivador pr´atico da figura 5.8(b)
zero, fazendo com que o ganho de alta freq¨ uˆencia aumente, o que torna a
resposta em freq¨ uˆencia desse sistema mais pr´oxima daquela de um derivador
ideal. Assim sendo, o circuito da figura 5.8(b) pode ser utilizado para se
efetuar a deriva¸ c˜ao de um sinal.
Um circuito para controladores PID
Um circuito cuja sa´ıda e
o
(t) ´e proporcional ` a entrada e
i
(t), ` a sua integral e
` a sua derivada, isto ´e,
e
o
(t) = K
p
_
e
i
(t) +
1
T
i
_
t
0
e
i
(λ)dλ +T
d
d
dt
e
i
(t)
_
(5.16)
est´a representado na figura 5.10. Pode-se mostrar que
K
p
=
R
f
R
i
T
d
= R
i
C
i
(5.17)
T
i
= R
f
C
f
.
para T
i
>> T
d
.
Em geral, os valores de K
p
, T
i
e T
d
s˜ao determinados durante a fase de
projeto do controlador. O problema passa, ent˜ao, a ser o de encontrar R
i
,
R
f
, C
i
e C
f
de tal forma que o circuito do controlador PID tenha valores
de K
p
, T
i
e T
d
o mais pr´oximo poss´ıvel dos valores calculados teoricamente.
Para tanto, deve-se resolver o sistema de trˆes equa¸ c˜oes e quatro inc´ognitas
(5.17). O n´ umero maior de inc´ognitas, faz com que a escolha dos valores
5.2. CONTROLADOR AUTOM
´
ATICO DE VELOCIDADE 93
e
i
(t)
6
R
i
C
i
R
f
C
f
6
e
o
(t)
Figura 5.10: Circuito para controladores PID
V
t
R
(s)
+

K(s) G(s)
V
t
(s)
Figura 5.11: Diagrama de blocos correspondente ao sistema de controle do
grupo motor-gerador
das capacitˆancias e resistˆencias n˜ ao seja ´ unica, o que ´e bom do ponto de
vista pr´atico, uma vez que pode-se ‘jogar’ com os capacitores e resistores
dispon´ıveis no laborat´orio.
5.2 Controlador autom´atico de velocidade
Ap´os a breve introdu¸ c˜ao sobre amplificadores operacionais apresentada na
se¸ c˜ao anterior, estamos em condi¸ c˜oes de construir um circuito eletrˆonico
anal´ ogio para o controlador de velocidade do grupo motor-gerador. O di-
agrama de blocos para o sistema est´a representado na figura 5.11, onde G(s)
representa a fun¸ c˜ao de transferˆencia da planta e
K(s) = K
p
s +z
s
= K
p
_
1 +
1
T
i
s
_
(5.18)
94 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
v
t
R
(t) v
t
(t)
Figura 5.12: Representa¸ c˜ao esquem´atica do sistema de controle de velocidade
do grupo motor-gerador
onde os valores de K
p
e T
i
foram determinados ao final do cap´ıtulo 4.
A partir do diagrama da figura 5.11, vˆe-se que a implementa¸ c˜ao do sis-
tema de controle requer a constru¸ c˜ao de um circuito comparador e de um
circuito para o controlador PID. Em princ´ıpio, nenhum outro elemento seria
necess´ario e bastaria o engenheiro de controle conectar a sa´ıda do controlador
ao motor. Por´em, amplificadores operacionais tˆem corrente de sa´ıda muito
baixa (aproximadamente 5mA, conforme mostrado na tabela 5.1). Isto faz
com que seja necess´ario acoplar na sa´ıda do amplificador operacional um am-
plificador de potˆencia para poder ‘drenar’ a corrente necess´aria para o motor,
o que faz com que a implementa¸ c˜ao do sistema de controle de velocidade para
o grupo motor-gerador seja feita conforme mostrado no diagrama de blocos
da figura 5.12
5.2.1 Implementa¸c˜ao do comparador
O circuito utilizado para se efetuar a compara¸ c˜ao entre o sinal de referˆencia
(v
t
R
(t)) e o sinal do tacˆometro (v
t
(t)) ser´a aquele representado na figura 5.5.
Para sua implementa¸ c˜ao, proceda da seguinte forma:
1. Selecione quatro resistores de mesmo valor (de acordo com seu c´odigo
de barras coloridas) com valores entre 1kΩ e 10kΩ. Valores de resistores
mais baixo que os sugeridos podem levar o amplificador a n˜ ao executar
exatamente a opera¸ c˜ao que dele esperamos.
2. Me¸ ca a resistˆencia de cada um dos resistores R
1
, R
2
, R
3
e R
4
e anote-as.
3. Ajuste os quatro potenciˆometros R

1
, R

2
, R

3
e R

4
de tal modo que
R
1
+R

1
= R
2
+R

2
= R
3
+R

3
= R
f
+R

f
.
5.2. CONTROLADOR AUTOM
´
ATICO DE VELOCIDADE 95
4. Monte o circuito da figura 5.5 utilizando um amplificador LF356, efe-
tuando-se as conec¸ c˜oes de seus terminais de acordo com a figura 5.1.
Lembre-se de que o amplicador deve ser polarizado com as tens˜oes de
±15V (ver tabela 5.1).
5. Para verificar se o circuito somador est´a, de fato, efetuando a subtra¸ c˜ao
dos sinais, aplique sinais iguais a ambos os terminais. Isto pode ser feito,
por exemplo, conectando-se ambas as entradas ao ponto de potencial
zero (terra). Neste caso, de acordo com a tabela 5.1 a tens˜ao ‘offset’ de
sa´ıda dever´a ser de, aproximadamente, 2mV . Caso a tens˜ao seja muito
maior que 2mV , varie suavimente cada um potenciˆometro, observando
se tal movimento implica numa diminui¸ c˜ao da tens˜ao de sa´ıda. Termine
este procedimento quando a tens˜ao de sa´ıda se aproximar de 2mV ou
quando qualquer varia¸ c˜ao no potenciˆometro resultar num aumento da
tens˜ao de ‘offset’.
6. Finalmente, como e
o
(t) = e
2
(t) − e
1
(t) (equa¸ c˜ao 5.10), fa¸ ca e
1
(t) =
v
t
(t) (a tens˜ao de sa´ıda do tacˆometro) e e
2
(t) = v
t
R
(t) (a tens˜ao de
referˆencia).
5.2.2 Implementa¸c˜ao do controlador
O circuito da figura 5.10 permite a implementa¸ c˜ao de um controlador PID.
Por´em, o controlador de velocidade desenvolvido ao final do cap´ıtulo 4 ´e
do tipo PI. Assim sendo, caso o circuito da figura 5.10 seja usado para a
implementa¸ c˜ao do controlador da equa¸ c˜ao 5.18, o ganho derivativo deve ser
feito igual a zero. Com isso em mente, proceda da seguinte forma para a
implementa¸ c˜ao do controlador:
1. Fa¸ ca, inicialmente, C
i
= 0F. Em seguida, utilizando um resistor R
f
de
aproximadamente 10kΩ, encontre um capacitor C
f
e um resistor R
i
, de
tal forma que, a partir das equa¸ c˜oes 5.17, sejam obtidos valores de K
p
e T
i
aproximadamente iguais aos encontrados no final do cap´ıtulo 4.
2. Utilizando um amplificador LF356 monte o circuito da figura 5.10.
3. Para verificar se o controlador PI foi, de fato, implementado correta-
mente, aplique ao controlador um sinal de onda quadrada de freq¨ uˆencia
igual a 0, 3Hz, amplitude igual a 1V e valor m´edio igual a zero. Como o
circuito tem a¸ c˜oes proporcional e integral, o sinal de sa´ıda deve ser uma
96 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
rampa com inclina¸ c˜ao definida pela constante de tempo de integra¸ c˜ao,
T
i
, e deslocada verticalmente, sendo este deslocamente determinado
pelo ganho proporcional.
5.2.3 Amplificador de potˆencia
O amplificador de potˆencia utilizado no laborat´orio ´e tamb´em inversor e
tem um ganho igual a cinco. Portanto, o aluno deve tomar o cuidado de
certificar-se de que o ganho em malha aberta do sistema real (somador + PI
+ amplificador de potˆencia) seja igual ao projetado e as invers˜oes levem a
uma realimenta¸ c˜ao negativa.
5.3 Experimento final: funcionamento do sistema
de controle
Implementados o comparador e o controlador PI e tendo sido feito o ajuste
para que o amplificador de potˆencia tenha ganho igual a −1, estamos em
condi¸ c˜oes de verificar na pr´atica se o sistema de controle projetado ir´a fun-
cionar satisfatoriamente. Para tanto proceda da seguinte forma:
1. Conecte o terminal de sa´ıda do comparador ao ponto correspondente
` a entrada do controlador PI e a sa´ıda do controlador PI ` a entrada do
amplificador de potˆencia. Conecte ainda a sa´ıda do tacˆometro ` a entrada
correspondente do circuito comparador.
2. Aplique um sinal de onda quadrada de freq¨ uˆencia igual a 0.3Hz, ampli-
tude igual a 9V e tens˜ao m´ınima igual a zero ao terminal do comparador
correspondente ` a tens˜ao de referˆencia.
3. Conecte a sa´ıda do amplificador de potˆencia aos terminais do motor
e observe no oscilosc´opio os sinais de referˆencia (v
t
R
(t)) e da sa´ıda do
tacˆometro (v
t
(t)). Responda ` as seguintes quest˜oes:
(i) Houve rastreamento do sinal de referˆencia?
(ii) Em caso afirmativo, qual o tempo de acomoda¸ c˜ao aproximado da
resposta?
(iii) O tempo de acomoda¸ c˜ao para o sistema real est´a pr´oximo daquele
obtido durante a simula¸ c˜ao realizada no cap´ıtulo 4?
5.4. COMENT
´
ARIOS FINAIS 97
4. Conecte agora uma carga nos terminais do gerador e feche este circuito
num instante pr´oximo do meio do pulso. Verifique se o sistema rejeita
esta perturba¸ c˜ao assim como na simula¸ c˜ao realizada no cap´ıtulo 4.
5.4 Coment´arios finais
Este laborat´orio procurou abordar do ponto de vista pr´atico, os principais
conceitos introduzidos na disciplina Sistemas de Controle I. Espera-se que os
alunos tenham verificado que o ferramental te´orico pode ser aplicado, efe-
tivamente, na pr´atica, para levar o sistema real a ter um comportamento
bastante pr´oximo daquele previsto durante a simula¸ c˜ao. Outro aspecto a
ser ressaltado, ao fim desse curso, ´e que as ferramentas utilizadas na identi-
fica¸ c˜ao da fun¸ c˜ao de transferˆencia do grupo motor-gerador e no projeto do
controlador de velocidade n˜ ao se aplicam somente ao sistema utilizado nesse
laborat´orio, podendo ser utilizadas em uma grande variedade de outros sis-
temas f´ısicos e devem se usadas no futuro quando ao aluno for solicitado o
projeto de um sistema de controle.
98 CAP
´
ITULO 5. IMPLEMENTAC¸
˜
AO DO CONTROLADOR
Referˆencias Bibliogr´aficas
Basilio, J. C. (1995). Notas de aula de Sistemas de Controle I, UFRJ - Escola
da Engenharia.
Dorf, R. C. (1986). Modern Control Systems, Addison-Wesley.
Graeme, J. G., Tobei, G. E. e Huelsman, L. P. (1981). Operational Amplifiers:
Design and Applications, McGraw-Hill Book Company.
Kheir, N. A., Astr¨om, K. J., Auslander, D., Cheok, K. C., Franklin, G. F.,
Masten, M. e Rabins, M. (1991). Control systems engineering education,
Automatica 32: 147–166.
MathWorks (1996). Using Matlab, The Math Works Inc.
Stephan, R. M. (1991). Laborat´ orio de Controle I, UFRJ - Escola de Enge-
nharia.
99

Sum´rio a
1 Introdu¸˜o ca 2 Programando em MATLAB 2.1 Modos de programa¸˜o . . . . . . . . . . . . . . . . . . . . . . ca 2.1.1 Modo imediato . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Arquivo de comandos . . . . . . . . . . . . . . . . . . 2.1.3 Arquivos de fun¸˜es . . . . . . . . . . . . . . . . . . . co 2.2 Fun¸˜es pr´-definidas pelo MATLAB . . . . . . . . . . . . . . co e 2.2.1 Fun¸˜es para manipula¸˜o de matrizes . . . . . . . . . co ca 2.2.2 Fun¸˜es matem´ticas elementares . . . . . . . . . . . . co a 2.2.3 Manipula¸˜o de vetores . . . . . . . . . . . . . . . . . ca 2.2.4 Fun¸˜es polinomiais . . . . . . . . . . . . . . . . . . . co 2.3 Controle de fluxo . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Declara¸˜o if . . . . . . . . . . . . . . . . . . . . . . . ca 2.3.2 La¸o while . . . . . . . . . . . . . . . . . . . . . . . . c 2.3.3 La¸o for . . . . . . . . . . . . . . . . . . . . . . . . . . c 2.3.4 A fun¸˜o find . . . . . . . . . . . . . . . . . . . . . . . ca 2.4 Representa¸˜o gr´fica . . . . . . . . . . . . . . . . . . . . . . ca a 2.4.1 O comando plot . . . . . . . . . . . . . . . . . . . . . 2.4.2 Representa¸˜o de diversas curvas num mesmo gr´fico . ca a 2.4.3 Representa¸˜o de diversos gr´ficos numa mesma figura ca a 2.4.4 Outros comandos para representa¸˜o gr´fica . . . . . . ca a 2.5 Coment´rios finais . . . . . . . . . . . . . . . . . . . . . . . . a 3 Modelagem e Identifica¸˜o ca 3.1 Motor CC controlado pela armadura . . . . . . . . . . . . . . 3.2 Identifica¸˜o dos parˆmetros . . . . . . . . . . . . . . . . . . . ca a ¯ 3.2.1 Identifica¸˜o de Kt , K e K . . . . . . . . . . . . . . . ca i 1 5 6 7 9 10 12 14 15 15 19 21 21 24 24 27 27 27 29 30 31 33 39 39 43 43

3.3 3.4

3.5

3.2.2 Identifica¸˜o de τ . . . . . . . . . . . . . . . . . . . . . ca Ajuste da f.t. por m´ ınimos quadrados . . . . . . . . . . . . . Experimento para identifica¸˜o . . . . . . . . . . . . . . . . . ca ¯ 3.4.1 Experimento para determina¸˜o de K, K e Kt . . . . ca 3.4.2 Experimento para obten¸˜o da resposta em freq¨ˆncia ca ue Valida¸˜o do modelo . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . sinais de dinˆa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53 53 60 61 62 62 67 68 68 73 75 76 78 78 81 83 84 84 85 93 94 95 96 96 97

4 Projeto do controlador de velocidade 4.1 Fundamentos te´ricos . . . . . . . . . . . . . o 4.1.1 Rastreamento e rejei¸˜o assint´tica de ca o mica conhecida . . . . . . . . . . . . . 4.1.2 Sensibilidade . . . . . . . . . . . . . . 4.1.3 Complementos . . . . . . . . . . . . . 4.2 Projeto do controlador de velocidade . . . . . 4.2.1 Sistema de controle em malha aberta . 4.2.2 Sistema de controle com realimenta¸˜o ca 4.3 Coment´rios finais . . . . . . . . . . . . . . . a 5 Implementa¸˜o do controlador ca 5.1 Amplificadores Operacionais . . . . . . 5.1.1 Conceitos b´sicos . . . . . . . . a 5.1.2 Configura¸˜es b´sicas . . . . . co a 5.2 Controlador autom´tico de velocidade a 5.2.1 Implementa¸˜o do comparador ca 5.2.2 Implementa¸˜o do controlador ca 5.2.3 Amplificador de potˆncia . . . e 5.3 Experimento final . . . . . . . . . . . . 5.4 Coment´rios finais . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

Cap´ ıtulo 1

Introdu¸˜o ca
Um projeto de um sistema de controle compreende, de uma maneira geral, as seguintes etapas (Kheir et al., 1991; Stephan, 1991): 1. Modelagem/identifica¸˜o do sistema a ser controlado; ca 2. Projeto de controladores que satisfa¸am as especifica¸˜es de desemc co penho e estabilidade relativa exigidas; 3. Simula¸˜o utilizando computadores digitais; ca 4. Implementa¸˜o do controlador no sistema real. ca Note que as fases acima podem vir a constituir um ciclo com diversas repeti¸˜es. Isto se deve ao fato de que durante a modelagem de um sistema co f´ ısico (planta), s˜o feitas v´rias hip´teses simplificadoras (linearidade, por exa a o emplo) . Assim, ao se implementar um sistema de controle utilizando-se um controlador projetado a partir de um certo modelo matem´tico, o sistema real a pode vir a ter um comportamento diferente daquele inicialmente previsto na simula¸˜o. Algumas vezes, as especifica¸˜es de desempenho/estabilidade poca co dem n˜o ser satisfeitas quando da implementa¸˜o do controlador no sistema a ca real, embora tivessem sido plenamente verificadas nas simula¸˜es. Neste caso, co torna-se necess´rio projetar um novo controlador ou at´ mesmo desenvolver a e um novo modelo matem´tico para a planta. Outro aspecto a ser observado a ´ que, se durante a etapa de projeto/simula¸˜o as especifica¸˜es de deseme ca co penho/estabilidade n˜o forem atendidas para um determinado compensador a com uma certa estrutura (controlador PI, por exemplo), uma nova estrutura para o controlador — ou at´ mesmo uma nova metodologia de projeto — deve e ser adotada. Pode-se, at´ mesmo, em alguns casos, verificar se h´ alguma e a possibilidade de se relaxar as especifica¸˜es. co No Laborat´rio de Sistemas de Controle I, procuraremos abranger todas o 1

2 Ra La

CAP´ ITULO 1. INTRODUCAO ¸˜ ig (t)

va (t)

vt (t)

Figura 1.1: Circuito el´trico equivalente para o grupo motor-gerador com e sensor de velocidade (tacˆmetro) o

as fases de um projeto de um sistema de controle por realimenta¸˜o. A planta ca a ser adotada ´ a de um grupo motor-gerador cujo circuito equivalente est´ e a a representado na figura 1.1, onde va (t) representa a tens˜o nos terminais da armadura do motor, vt (t) a tens˜o nos terminais do tacˆmetro (proporcional a o a velocidade angular do gerador) e ig (t) denota a corrente fornecida pelo ` gerador quando uma carga ´ conectada aos seus terminais. e Ao se formular um problema de controle, o primeiro passo ´ a defini¸˜o e ca da grandeza a ser controlada. Em nosso caso, a grandeza escolhida ser´ a a velocidade angular do gerador. A motiva¸˜o para esta escolha est´ no fato de ca a que na gera¸˜o de tens˜es alternadas senoidais, a freq¨ˆncia angular deve ser ca o ue mantida dentro de um intervalo bastante r´ ıgido. Como a freq¨ˆncia angular ´ ue e proporcional a rota¸˜o do motor, o controle da velocidade angular do gerador ` ca surge como um objetivo claro de projeto. Nos sistemas de potˆncia, a unica e ´ diferen¸a da planta aqui adotada ´ a substitui¸˜o do gerador de corrente c e ca cont´ ınua (CC) por um de corrente alternada (CA). De uma forma mais detalhada, o problema de controle a ser perseguido aqui pode ser enunciado da seguinte forma: projete um controlador de tal forma que o sistema realimentado: (i) seja est´vel; (ii) tenha erro de estado a permanente nulo para uma determinada velocidade de referˆncia; (iii) rejeite e assintoticamente (quando o tempo tende para infinito) perturba¸˜es que, no co sistema em estudo, s˜o decorrentes da introdu¸˜o de cargas nos terminais a ca do gerador; tais cargas, ao demandarem corrente do gerador, aumentam o torque resistivo no eixo do motor, fazendo com que a velocidade de rota¸˜o ca

3 do grupo diminua. No projeto de sistemas de controle, o engenheiro ´ geralmente assise tido por programas computacionais tais como o MATLAB ou SIMULINK (MathWorks, 1996). Em nosso projeto utilizaremos o SIMULINK para a simula¸˜o do sistema projetado e o MATLAB como ferramenta auxiliar de ca projeto. Uma breve introdu¸˜o a programa¸˜o em ambiente MATLAB ser´ ca ` ca a apresentada no cap´ ıtulo 2. No cap´ ıtulo 3 ser´ desenvolvido um modelo a matem´tico para a planta e em seguida os parˆmetros da fun¸˜o de transa a ca ferˆncia do sistema ser˜o identificados. O m´todo de identifica¸˜o adotado ´ o e a e ca e da resposta em freq¨ˆncia, utilizando-se dois procedimentos distintos: (i) os ue diagramas de Bode, que permitem a determina¸˜o dos p´los e zeros da fun¸˜o ca o ca de transferˆncia do sistema a partir do tra¸ado de ass´ e c ıntotas e (ii) o m´todo e dos m´ ınimos quadrados, que ajustam as curvas de resposta em freq¨ˆncia ue de uma fun¸˜o de transferˆncia de uma certa ordem aos pontos obtidos em ca e laborat´rio de tal sorte que a soma dos quadrados das distˆncias entre os o a pontos obtidos experimentalmente e aqueles a partir da fun¸˜o identificada ca (ambos tomados em freq¨ˆncias idˆnticas) seja m´ ue e ınima. No cap´ ıtulo 4 ser´ a feito o projeto de um sistema de controle de velocidade para um grupo motorgerador. Ser˜o tamb´m realizadas simula¸˜es objetivando-se n˜o s´ ilustrar a e co a o os objetivos da realimenta¸˜o como tamb´m mostrar a importˆncia de proca e a gramas computacionais tais como o MATLAB e o SIMULINK no projeto de sistemas de controle. Finalmente, no cap´ ıtulo 5 ser´ feita a implementa¸˜o a ca do controlador de velocidade desenvolvido no cap´ ıtulo 4. ´ E importante ressaltar que, embora aplicado a um sistema espec´ ıfico, a abordagem aqui apresentada pode ser aplicada a diversos outros sistemas f´ ısicos. Assim sendo, caso o aluno venha a se deparar com um processo diferente daquele que estamos considerando neste laborat´rio, os mesmos o passos que levaram a solu¸˜o do problema aqui apresentado poder˜o ser ` ca a seguidos na solu¸˜o do problema em quest˜o. ca a

INTRODUCAO ¸˜ .4 CAP´ ITULO 1.

que em geral s˜o longos. ca quando se poder´ verificar se tal controlador satisfaz as especifica¸˜es de a co desempenho. Al´m de realizar os c´lculos. polinˆmios e diversas fun¸˜es matem´ticas de o co a forma idˆntica a que est´ acostumado a fazer no dia-a-dia. pode-se inseri-lo no sistema e realizar a simula¸˜o. que faz simula¸˜es de sise co temas lineares e n˜o-lineares. Evidentemente ca h´ muito mais do que ser´ apresentado aqui. vetores. discretos e cont´ a ınuos no tempo. e No projeto de sistemas de controle.Cap´ ıtulo 2 Programando em MATLAB Uma das principais raz˜es do sucesso da programa¸˜o em ambiente MATo ca LAB nos meios cient´ ıficos ´ certamente a possibilidade que o usu´rio tem de e a manipular matrizes. Para tanto. Neste cap´ ıtulo apresentaremos alguns t´picos sobre programa¸˜o em amo ca biente MATLAB visando o seu uso em desenvolvimento de programas para identifica¸˜o de sistemas e no projeto de sistemas de controle. Outro aliado importante do co engenheiro de controle ´ o programa SIMULINK. aumentando co cada vez mais o potencial e a sua aplicabilidade a diversos campos da ciˆncia. uma vez que mais e mais fun¸˜es foram desenvolvidas. o MATLAB ´ tamb´m uma poderosa e e ferramenta. A id´ia central e a e dessa linguagem ´ transportar para um ambiente computacional os mesmos e s´ ımbolos e conven¸˜es da matem´tica – da´ o nome MATLAB. Isto fez com que essa linguagem a o co crescesse. o co a ı MATLAB n˜o s´ disp˜e de fun¸˜es pr´-definidas como tamb´m permite que a o o co e e o usu´rio desenvolva suas pr´prias fun¸˜es. tediosos e a a e de grande probabilidade de ocorrˆncia de erro quando realizados pelo ser e humano. o MATLAB tem uma excelente interface gr´fica que auxilia o ena genheiro de controle a verificar se o sistema compensado com o controlador projetado satisfaz as especifica¸˜es de projeto. Recomenda-se ao aluno mais a a 5 . Uma vez projetado um controlador.

1 Modos de programa¸˜o ca Ao iniciar o MATLAB. pera co mitindo assim que vari´veis de mesmo nome que aquelas em uso no espa¸o a c de trabalho sejam definidas em um arquivo de fun¸˜es sem. Com um arquivo de comandos pode-se executar uma e s´rie de instru¸˜es como se estivesse no modo imediato. (ii) fun¸˜es desenvolvidas pelo usu´rio. dentro de um espa¸o de trabalho tem acesso a: (i) fun¸˜es definidas a c co pelo MATLAB. desde que estejam co a armazenadas no pr´prio diret´rio em que o usu´rio esteja trabalhando ou em o o a diret´rios que constem do caminho de busca do MATLAB. PROGRAMANDO EM MATLAB interessado consultar os manuais do MATLAB e do SIMULINK. Al´m dessas vari´veis. a . uma linha de comando ´ executada t˜o logo a tecla e a <enter> ´ pressionada. Isto aumenta a area de mem´ria c a ´ o em uso pelo MATLAB e pode ter o incoveniente de alterar o valor de alguma vari´vel caso um novo valor seja atribu´ a ela quando da execu¸˜o do ara ıdo ca quivo de comando.6 CAP´ ITULO 2. Esta janela define um espa¸o de trabalho. 3. O espa¸o de c c trabalho nada mais ´ do que uma area de mem´ria onde ser˜o armazenadas e ´ o a as vari´veis que vierem a ser definidas pelo usu´rio. Neste caso o MATLAB define uma nova area de mem´ria para co ´ o armazenamento das vari´veis a serem definidas no arquivo de fun¸˜es. A vantagem do are co quivo de comandos sobre o modo imediato ´ que todos os comandos ficam e guardados para uso futuro. pora tanto. rigorosamente falando. Utilizando um arquivo de comandos. o a a e a usu´rio. Utilizando arquivos de fun¸˜es. A unica desvantagem desse tipo de arquivo ´ ´ e que. todas as vari´veis que apare¸am em um arquivo de comando vir˜o a a c a fazer parte do espa¸o de trabalho do usu´rio. ser´ a a aberta uma janela. 2. co No modo imediato. estando o usu´rio em ambiente WINDOWS. Modo imediato. o usu´rio continua no modo imediato e. 2. contudo. Este problema n˜o ocorre quando se utiliza um arquivo a de fun¸˜es. o A programa¸˜o em ambiente MATLAB pode ser feita nas seguintes forca mas: 1. alterar co o valor daquelas definidas pelo usu´rio.

MODOS DE PROGRAMACAO ¸˜ 7 2. Neste caso. Neste caso o MATLAB somente ir´ executar a seq¨ˆncia de coa ue mandos quando a tecla enter for pressionada sem que tenha sido precedida de reticˆncias. Caso uma linha de comanca e dos seja demasiadamente longa. exceto que a mensagem a=2 e b=5 ´ exibida e na tela. Na forma geral dos coca mandos a serem apresentados a seguir. ela pode ser continuada na linha seguinte bastando para isso que a linha anterior termine com reticˆncias seguida de e <enter>.1. b=5. posteriormente. <enter>. <vari´veis> dea a nota uma lista contendo uma ou mais vari´veis definidas pelo usu´rio. para apagar determinadas vari´veis do espa¸o a c de trabalho (clear) e para gravar em um arquivo de texto todos os comandos e mensagens de uma dada se¸˜o (diary). Esses comandos s˜o usualmente empregados para mudan¸a do dia c ret´rio de trabalho (chdir).) e reticˆncias (.. por´m n˜o exibe os valores co o e a armazenados das vari´veis. <enter>. mas n˜o exibe na tela o seu conte´do. >> c = a+b. b=5 <enter>.) e Comandos em uma mesma linha de comando podem ser separados por v´ ırgula (.. saber o valor de uma determinada vari´a vel. para carregar no espa¸o de trabalho as vari´veis armazenadas c a em um arquivo .mat (load). Esta linha de comandos produz o mesmo efeito que a linha de comando acima. para listar todas as vari´veis que est˜o sendo o a a utilizadas pelo usu´rio (who e whos). a >> a=2. Por exemplo: a >> c <enter> faz com que o MATLAB exiba na tela a mensagem c = 7. o a u Caso se deseje. respectivamente. 2 Comandos importantes no modo imediato Iremos agora apresentar alguns comandos que s˜o geralmente usados no modo a imediato. ponto-e-v´ ırgula (. para gravar as vari´veis em um arquivo a a . basta digitar o nome dessa vari´vel seguida de <enter>.). <ara a .1 Modo imediato Uso de v´ ırgula(. o MATLAB armazena 2 e 5 nas posi¸˜es de mem´ria a e b. Aqui o MATLAB armazena o valor 7 na posi¸˜o ca de mem´ria c. como por exemplo. <caminho> denota um determinado atalho.2.) produzindo o mesmo efeito. exceto que no primeiro caso o resultado da opera¸˜o ´ mostrado na tela.1. c:\usu´rio\matlab\labcont1.mat (save).1 >> a=2. e Exemplo 2.) ou ponto-e-v´ ırgula (.

Caso haja alguma vari´vel no espa¸o de trabalho a a c de mesmo nome que uma outra armazenada em <arquivo>.2 >> save aula a b <enter>.mat e em seguida armazena as vari´veis a e b nesse arquivo. Uma descri¸˜o mais detalhada desses comandos ´ a ca e dada a seguir: 1. aquela armazenada ıda a a e em <arquivo>. ao se digitar . cd: mostram o diret´rio de trabalho atual. chdir.txt. who: lista todas as vari´veis em uso no espa¸o de trabalho.mat e em seguida traz para o espa¸o de trabalho as c vari´veis nele armazenadas.mat para o espa¸o de trabalho. acima. Note que os valores atribu´ ıdos as vari´veis s˜o aqueles do exemplo 2.1.mat j´ existe. a Caso o arquivo aula. isto ´. a >> save aula <enter>. o comando c >> load <enter> localiza o arquivo matlab. >> save <enter>. a O exemplo seguinte ilustra o uso do comando save. o chdir <caminho>: muda para o diret´rio especificado em <caminho>. tem a mesma sintaxe de chdir e produz o mesmo efeito. Inicialmente. Por exemplo. b e c no arquivo a aula. Note que a c vari´veis definidas pelo usu´rio. b e c. a a a a a 3.mat ou . a 2 5. 6. o 4. a c clear <vari´veis>: apaga somente as vari´veis listadas em <vari´a a a veis>.mat. . PROGRAMANDO EM MATLAB quivo> representa um nome de arquivo cuja termina¸˜o (. Cria um arquivo matlab. n˜o s˜o listadas.mat e armazena nele as vari´veis a.mat. a save <arquivo> <vari´veis>: guarda todas as vari´veis da lista a a <vari´veis> no arquivo <arquivo>.mat. ela ser´ a substitu´ pela vari´vel que est´ sendo carregada. load <arquivo>: transfere todas as vari´veis armazenadas em <ara quivo>.mat. MATLAB apaga o seu conte´do antes de a u guardar as vari´veis. mas j´ apagadas. o O comando cd.8 CAP´ ITULO 2. clear: apaga todas as vari´veis do espa¸o de trabalho. Armazena as vari´veis a. Por exemplo. save: armazena todas as vari´veis em uso no arquivo matlab. MATLAB cria um arquivo denominado aula. ` a a Exemplo 2.m) ca ficar´ clara no contexto.mat. whos: lista na tela todas as vari´veis em uso e as correspondentes a dimens˜es. 2.

a a a 9 7. 2.m. verifica se existe no espa¸o de trabalho c alguma vari´vel denominada seq1.m. diary <caminho\arquivo>: grava no arquivo <caminho><arquivo> todos os comandos e mensagens de uma se¸˜o. deve fazer parte de <arquivo>. A constru¸˜o e a execu¸˜o um arquivo de ca ca comandos segue os seguintes passos: 1. o 3.3: Suponha que no arquivo seq1. Ao se digitar.2 Arquivo de comandos Os comandos editados em um arquivo de comandos podem ser executados diversas vezes. Editar o arquivo <arquivo>.d=[2:2:10]. MATLAB ent˜o a a a procura no diret´rio de trabalho por um arquivo de comandos de nome o . para que a altera¸˜o possa ser considerada pelo MATLAB na pr´xima vez que esse arquivo for executado.m basta digitar <arquivo> <enter>. e=c’.1. Caso n˜o encontre. Este comando difere do comando save no seguinte aspecto: enquanto o comando save apaga o conte´do do arquivo onde ser˜o armazenadas as vari´veis. diary u a a acrescenta a mais recente mensagem ao conte´do do arquivo.f=c’*d. na janela de comandos do MATLAB. O comando u diary ´ util quando se deseja fazer um memorial do trabalho para consulta e´ posterior.m. inicialmente. Note que a termina¸˜o do ca ca arquivo. Exemplo 2.l=c. sem a termina¸˜o ca . h=c. que o MATLAB executar´ todos as linhas de comandos do arquivo como a se estivesse no modo imediato. basta digitar o nome do arquivo. MODOS DE PROGRAMACAO ¸˜ >> clear a <enter> o usu´rio ir´ apagar somente a vari´vel a. 2. criar um bloco de notas <arquivo>.1.m. A partir do MATLAB.2.*d. Ap´s alguma modifica¸˜o no arquivo o ca ca <arquivo>. Para executar os comandos do arquivo <arquivo>. Para isso. >> seq1 <enter> o programa MATLAB. sejam editados os seguintes comandos: c=[1:2:10]. deve-se gravar o arquivo.m com comandos a serem executados como se estivesse no modo imediato. ./d.txt por exemplo. diary off suspende a grava¸˜o dos comandos e mensagens no arquivo ca <arquivo>.g=c*d’.

m.10 CAP´ ITULO 2. procura em todos os caminhos de busca por um arquivo de comana dos seq1. A primeira linha de execu¸˜o desse arquivo deve ser: ca . em parte. o MATLAB iniciar´ uma o a a procura em todos os caminhos de busca. Exemplos de caminhos de busca s˜o: a c:\usu´rio\matlab\labcont1 a c:\usu´rio\matlab\labcont2 a 2 o No exemplo considerado. Outro u ` a aspecto a ser ressaltado ´ que. Al´m de aumentar a area c e ´ de mem´ria utilizada pelo MATLAB (o que pode muitas vezes torna lenta a o execu¸˜o de comandos.m for a gravado em dois diret´rios. MATLAB executar´ aquele que estiver armazeo a nado no diret´rio pertencente ao caminho de busca que aparece em primeiro o lugar. todas as vari´veis nele defie a nidas passam a fazer parte do espa¸o de trabalho.m. executa os comandos editados nele. solucionados com o emprego de arquivos a de fun¸˜es. essa area ser´ liberada ap´s a execu¸˜o da fun¸˜o. Isto permite a que vari´veis de mesmo nome sejam definidas simultaneamente no espa¸o a c de trabalho e num arquivo de fun¸˜es. Caso contr´rio. a u Esses problemas s˜o. ent˜o a seq¨ˆncia de comandos acima ser´ a ue a executada ap´s seq1 <enter>. ao se usar arquivos de comandos. Ao se executar uma fun¸˜o. a mensagem a ??? Undefined function or variable seq1. Caso contr´rio. a c no caso de n˜o se querer modificar o conte´do delas. ´ a o ca ca Para se criar uma fun¸˜o. ´ o diferentemente do que ocorre quando se usa um arquivo de comandos. 2. isto faz com que o usu´rio tenha no seu espa¸o de a c trabalho um n´mero. excessivamente grande de vari´veis. PROGRAMANDO EM MATLAB seq1. Contudo. N˜o achando. procede-se da seguinte forma: ca 1. deve-se ter o e cuidado de usar nomes de vari´veis diferentes daquelas do espa¸o de trabalho.m. O espa¸o de trabalho definido ao co c se executar uma fun¸˜o ir´. E importante ressaltar que. Encontrando o arquivo. se o arquivo seq1. c~ 2.1. se o usu´rio estiver no mesmo diret´rio em que a armazenou o arquivo seq1.m. aumentar a area de mem´ria utilizada pelo MATLAB. as vezes. o MATLAB define um novo espa¸o de co ca c trabalho diferente daquele definido inicialmente pelo usu´rio. Cria-se um arquivo <fun¸ao>. visto que o MATLAB pode vir a ter que armazenar ca vari´veis no disco r´ a ıgido). ´ ser´ exibida na tela. como no caso da execu¸˜o de um arquivo de ca a ca comandos.3 Arquivos de fun¸˜es co Quando um arquivo de comandos ´ executado.

pode-se escrever alguns coment´rios para orienta¸˜o dos poss´ a ca ıveis usu´rios daquela fun¸˜o. a 4. aquelas iniciadas com % que precedem uma linha c~ e de comandos ou uma linha totalmente em branco. c~ onde x1.. 3.. lembre-se de que a norma euclideana de um vetor ´ definida e como: x 2= x2 + x2 + · · · + x2 = (xt x)1/2 n 1 2 (2. Inicialmente.y=norma2(x).4: Criar um arquivo de fun¸˜es para calcular a norma euclideana co (norma-2) de um vetor x = [ x1 x2 .m. definido em <fun¸ao>.. Toda a ca linha de coment´rio se inicia com o sinal %.. ent˜o esse arquivo poderia ter o ca a a seguinte conte´do: u % y=norma2(x) : calcula a norma euclideana de um vetor % onde: x : vetor de entrada (vetor coluna) % y : norma euclideana de x % function y=norma2(x). 2 Observe que digitando-se >> help norma2 <enter> as 4 primeiras linhas do arquivo ser˜o exibidas na janela do MATLAB.x2.y2. y=sqrt(x’*x)...xm)..1) A fun¸˜o que calcula x 2 deve. Exemplo 2. portanto..y2... executar a equa¸˜o (2.<enter> faz com que MATLAB execute a fun¸˜o norma2 para o vetor x. Ao se digitar >> help <fun¸ao> <enter> c~ s˜o exibidos. . Verifique! a .m ´ o nome ıda e do arquivo onde esta fun¸˜o ser´ editada.1). os coment´rios iniciais do a a arquivo <fun¸ao>.x2. deve ser ca c~ o mesmo do arquivo onde ela foi editada.. armazenando ca na vari´vel y o valor 3.yn] = <fun¸ao>(x1. Por exemplo a a >> x=[1 2 2]’. Se norma2.. o ca ca que requer que a vari´vel de entrada seja um vetor (x) de dimens˜o n e a a a sa´ um escalar (y) representativo da norma-2 de x. xn ]t .. isto ´. por´m a e o s´ ımbolo % n˜o ser´ exibido.xm s˜o as vari´veis de entrada e y1.yn s˜o as vaa a a ri´veis de sa´ a ıda. .1.. Note que o nome da fun¸˜o. MODOS DE PROGRAMACAO ¸˜ 11 function [y1..2.. Antes do primeiro comando a ser executado. na janela aberta para o MATLAB.

12 CAP´ ITULO 2. onde xi e xj denotam as componentes i e j do vetor x. sendo os elementos de uma mesmas linha separados por v´ ırgula (.5.6.2)=5. e vetores e matrizes como sendo matrizes. dependendo de se tratar o de um vetor coluna ou de um vetor linha.2)=2. Para se definir uma matriz. 6 5 6 pode ser armazenada na vari´vel a das seguintes formas: a (i) Fornecendo-se cada um dos elementos da matriz: >> a(1. polinˆmios e outras fun¸˜es matem´ticas de uma forma o co a robusta.3)=3.a(2. <enter> >> a(2. a embora para o usu´rio tratam-se simplesmente de vetores ou at´ mesmo a e escalares. Essas ultimas permitem a manipula¸˜o de e ´ ca matrizes. Na se¸˜o seguinte ser˜o apresentadas algumas fun¸˜es pr´-definidas pelo ca a co e MATLAB.a(1. Por exemplo.a(1. a matriz 1 2. que ca e ´ uma fun¸˜o pr´-definida pelo MATLAB.1)=4. Assim sendo.a(2. <enter> (ii) Entrando com os elementos da matriz entre colchetes ([ ]). uma matriz de dimens˜es n × 1 ou 1 × n. isto ´ por algoritmos que n˜o s˜o suscept´ e a a ıveis a problemas de mau condicionamentos.6. Uma outra particularidade da fun¸˜o acima ´ o uso do comando sqrt.): >> a=[1. Essas fun¸˜es foram escolhidas tendo em vista sua importˆncia co a no desenvolvimento de programas para o projeto de sistemas de controle.2.6] <enter> .) ou espa¸os em c branco e as linhas da matriz por ponto-e-v´ ırgula (.2. tanto o argumento (entrada) de uma fun¸˜o como o valor que ela retorna (sa´ ca ıda) s˜o matrizes.2 Fun¸˜es pr´-definidas pelo MATLAB co e A caracter´ ıstica principal do MATLAB ´ tratar indistintamente escalares. na a a e verdade.2. deve-se fornecer cada um dos seus elementos. Caso contr´rio x’*x ser´ uma a a matriz e a sa´ y ser´ uma matriz m × m cujos elementos s˜o as ra´ ıda a a ızes quadradas de xi xj . um vetor de dimens˜o n ´. vetores. x deve ser um vetor coluna.1)=1.4. 2.3)=6. PROGRAMANDO EM MATLAB Para que o resultado da fun¸˜o acima seja realmente a norma euclideana ca do vetor x. 2 3 A= 4. a vari´vel a=3 ´ para a e o MATLAB uma matriz de dimens˜o 1 × 1. Em um arquivo de fun¸˜o podem e ca e ca ser usadas outras fun¸˜es quer sejam definadas anteriormente pelo usu´rio co a ou pr´-definidas pelo MATLAB.3. Por exemplo.

acima.3)=7 <enter> Para se armazenar o elemento (1.. deve-se fazer: a >> x = a([1 2].6 5 6] <enter> Deve-se tomar o cuidado para. acima. Por exemplo. e que ainda esteja armazenada no espa¸o de trabalho. FUNCOES PRE-DEFINIDAS PELO MATLAB ¸˜ 13 >> a=[1 2. a basta digitar: >> a(1.j). O acesso a qualquer elemento de uma matriz que tenha sido anteriormente definida.j) <enter> (iv) Analogamente. (ii) d = diag([d1 d2 .j). faz-se: a >> x = a(1. 3) da vari´vel a.´ 2. separar u a parte inteira da parte decimal usando ponto (. ent˜o. m×m..n) : cria uma vari´vel um. a (iii) um = ones(m.2 3. isto ´. j) de m faz-se m(i.2. 2) na vari´vel x. a coluna i de uma matriz m pode ser acessada fazendose m(i.d2.[2 3]) <enter> (iii) Para ter acesso a coluna j da matriz m faz-se m(:.. em que todos os a elementos s˜o iguais a unidade. no caso de n´meros com parte decimal.vetorcoluna) forma-se uma submatriz de uma dada matriz m. Para tanto. A atribui¸˜o dessas matrizes a vari´veis a ca a ´ feita da seguinte forma: e (i) i = eye(m) : atribui-se a vari´vel i uma matriz identidade de ordem ` a m. que os elementos de uma matriz M : p × q tenham sido a armazenados na vari´vel m. formada pelos elementos comuns as linhas cujos ´ ` ındices s˜o dados no vetor vetorlinha e as colunas indicadas pelas componentes do a ` vetor vetorcoluna. ´ feito c e de forma semelhante. a matriz cujos elea mentos s˜o todos iguais a 1 ou zero.4. dm]) : forma uma matriz diagonal d.:).dm....:) <enter> Algumas matrizes n˜o requerem que o usu´rio entre com todos os seus a a elementos. faz-se: ` a >> x = a(:. cujos elementos da diagonal principal s˜o d1. para se tomar os elementos da interse¸˜o ca das linhas 1 e 2 e das colunas 2 e 3 de a e armazen´-las em x.). Por exemplo. suponha que se queira armazenar a linha 2 da matriz a. e ca Suponha. a vari´vel x. fazendo-o igual a 7. ` para atribuir a terceira coluna da matriz a. para modificar o elemtno (1. Por exemplo. S˜o elas: as matrizes identidade e diagonal.2) <enter> (ii) Fazendo-se m(vetorlinha. a (i) Para se ter acesso ao elemento (i. acima. em x. m × n. deve-se fazer >> x = a(i. a ` . fornecendo-se a posi¸˜o do elemento desejado. Por exemplo.

respectivamente. a u n=size(a. . respectivamente. . (vii) [w. .1 Sejam Fun¸˜es para manipula¸˜o de matrizes co ca   A=   a11 a21 .14 CAP´ ITULO 2. . . MATLAB retorna uma mensagem de erro. cujos elementos s˜o a todos iguais a zero. cuja i-´sima coluna ´ formada e e pelo o i-´simo autovetor de a associado ao i-´simo autovalor e uma matriz e e diagonal l. b1q b21 b22 . . m × n.2) : armazena em n o n´mero de colunas de a. bp1 bp2 . respectivamente. bpq matrizes de dimens˜es m × n e p × q. O MATLAB possui um conjunto de fun¸˜es pr´-definidas que permitem co e manipular matrizes e vetores de forma an´loga a que o engenheiro est´ acosa a tumado a fazer no seu dia-a-dia. . PROGRAMANDO EM MATLAB (iv) z = zeros(m. . . . respectivamente. a12 a22 . o a n´mero de linhas e de colunas da matriz a .  . u m=size(a. . .n]=size(a) : armazena..n) : forma uma matriz z. i) corresponde ao i-´simo autovalor de a. . amn      e B=     b11 b12 . e armazena o resultado na vari´vel c.1) : armazena na vari´vel m o n´mero de linhas de a. respectivamente. . com elementos pero tencentes ao conjunto dos n´meros complexos. e l=eig(a) : retorna um vetor de dimens˜o n cujas componentes s˜o a a os autovalores de a. Suponha que as matrizes A u e B tenham sido armazenadas nas vari´veis a e b.  . cujo elemento (i.  am1 am2 . a (vi) c=a+b e c=a-b : computa. a1n a2n . .l]=eig(a) : retorna a matriz w. .. Estas fun¸˜es s˜o apresentadas a seguir./b : forma uma matriz C tal que cij = aij bij e cij = a aij /bij . . . b2q   . a (iii) c=a. armazenando o resultado na vari´vel c.2. Quando n = p. co a 2. a soma e a subtra¸˜o das ca matrizes a e b e as armazena em c.*b e c=a. . . . a (v) c=det(a) : calcula o determinante da matriz armazenada em a. Este comando requer m = p e n = q. Ent˜o: a a (i) [m. (iv) c=inv(a) : calcula a inversa da matriz armazenada na vari´vel a (se a m = n) e armazena na vari´vel c.. nas vari´veis m e n. . . u (ii) c=a*b : calcula o produto das matrizes a e b (se n = p) e armazena na vari´vel c..

w=cos(z). e (v) w = conj(z) retorna uma matriz w tal que wij = xij − jyij .2 Fun¸˜es matem´ticas elementares co a Seja Z : m × n. ao final deste cap´ ıtulo.3 Manipula¸˜o de vetores ca Para o MATLAB. deve-se proceder de uma das seguintes formas: w = z. w=acos(z). e a (vii) w = exp(z) retorna uma matriz cujo elemento (i. ´ Os exerc´ ıcios propostos 2.5. e (ii) w = angle(z) retorna uma matriz w cujo elemento (i. Tem-se que: a (i) w = abs(z) retorna uma matrix w cujo elemento (i. e em radianos. 5 7 pode ser definido das seguintes formas: (1. (x) w=sin(z). j) ´ wij = exp(zij ). asin e atan s˜o expressos em radianos. j) ´ wij = θij . wij = arc Cos (zij ). <enter> . co a ´ E importante salientar os seguintes pontos relativos ao uso dos comandos acima: (1) quando se desejar obter a transposta de uma matriz e n˜o o conjua gado complexo da sua transposta (associada). j) ´ wij =| zij |.2.2.2. Portanto.v(1.i) >> v(1. FUNCOES PRE-DEFINIDAS PELO MATLAB ¸˜ 15 2. (iii) w = real(z) ´ uma matriz onde wij = xij . Por exemplo. (b) os angulos a ˆ retornados pelas fun¸˜es acos. respectivamente. cos e a co tan assumem que os argumentos s˜o expressos em radianos. wij = Cos (zij ).v(1. <enter> (1. e (viii) w = log(z) retorna uma matriz onde wij = ln(xij + jyij ). isto ´ wij = xji − jyji e armazena na vari´vel w.5 7]. matrizes nas quais uma das dia mens˜es (n´mero de linhas ou colunas) ´ igual a 1.´ 2. (ix) w = log10(z) produz uma matriz em que wij = log(xij + jyij ). enquanto o ultimo retorna o logaritmo decimal.’ ou ent˜o w = conj(z’). w=tan(z). w=asin(z) e w=atan(z) calculam matrizes W tais que wij = Sen (zij ).1)=1. ¯ (vi) w = z’ calcula uma matriz W = Z ∗ = Z t (associada da matriz Z). armazenando o resultado na vari´vel w. podem ser o u e manipulados de forma idˆntica a que ´ feito para as matrizes.1 e 2. wij = tg (zij ). uma matriz cujo elemento i. servir˜o para ilustrar a o uso dos comandos apresentados acima. e (iv) w = imag(z) ´ tal que wij = yij . na verdade.2)=2. a (2) deve-se tomar cuidado ao usar os comandos log e log10 — o primeiro calcula o logaritmo neperiano. Note que: (a) as fun¸˜es sin. 2. j ´ zij =| zij | ejθij = xij + jyij e e assuma que a matriz Z tenha sido armazenada na vari´vel z. wij = arc Sen (zij ) e wij = arc tg (zij ). e e o vetor v = 1 2.3)=7.ii) >> v=[1 2.2. vetores s˜o.

na vari´vel sf faz-se a >> sf=[a1:r:an] <enter>. caso an n˜o fosse um elemento da seq¨ˆncia. Sejam x = x1 x2 . poder-se-ia substituir as intru¸˜es (1.i) >> w(1. e assuma que x e y estejam o armazenados nas vari´veis x e y. Para isso.   . (w = v t ).iii) >> w=[1. o MATLAB armazenar´ o vetor o ´ a como sendo um vetor linha. a1 deve ser maior que an e r deve ue ser negativo.1)=1. . PROGRAMANDO EM MATLAB (1.5.i) por: co >> v(1)=1.16 CAP´ ITULO 2. o ultimo a ue ´ elemento do vetor sf seria o maior valor tal que a1 + kr < an . MATLAB tamb´m possui fun¸˜es especiais para a manipula¸˜o de vee co ca tores. <enter>. Para tanto.5. Por exemplo. ao se definir o vetor.5.7]. Outro aspecto importante na defini¸˜o de um vetor ´ quando as compoca e nentes formam uma seq¨ˆncia. Desta forma.7]. Neste ultimo caso.v(3)=7. <enter> Apesar de considerar todas as vari´veis como sendo matrizes. .w(3. Os seguintes comandos s˜o especialmente a a usados na manipula¸˜o de vetores: ca (i) length(x) e length(y) retornam as dimens˜es dos vetores x e y (n o e m. o MATLAB a ´ capaz de reconhecer quando se trata de um vetor.w=v’. an . para armazenar a seq¨ˆncia ue ue s f= a1 a1 + r a1 + 2r .2.v(2)=2.  . acima.2.w(2.5 7]’. respectivamente). xn  y1  y2    y =  .1)=7.iii) >> v=[1.ii) >> w=[1 2. <enter> Caso se tratasse de um vetor coluna. para se definir os vetores v e w. E importante lembrar que pode tamb´m ser feito o armazenamento de e uma seq¨ˆncia decrescente. Deve-se salientar que. poder-se-ia definir uma vari´vel w como se segue: a (2. basta que uma e das dimens˜es seja igual a 1 ou que. onde an = a1 + nr.5. . ym  vetores de dimens˜es n e m. para um dado ´ k.i) e (2. . . apenas uma das o dimens˜es seja dada. <enter> (2.1)=2. <enter> (2. respectivamente.

i]=max(x). Deve ser ressaltado que a fun¸˜o norm permite que o vetor.   . x2 x1  ym  ym−1     .5: Escreva um arquivo do tipo fun¸˜es para calcular a derivada co de um polinˆmio de qualquer grau.2. seja ca e linha ou coluna. FUNCOES PRE-DEFINIDAS PELO MATLAB ¸˜ 17 (ii) norm(x. + 2pn−2 x + pn−1 dx .   y2  y1  Exemplo 2. o Seja p(x) = p0 xn + p1 xn−1 + p2 xn−2 + . . Sabe-se que a derivada de p(x) ´ dada por: o e d = np0 xn−1 + (n − 1)p1 xn−2 + .p) retorna a norma-p do vetor x ( x p ).´ 2. Caso x tenha duas componentes onde os valores m´ximos ocorrem. . ent˜o mx ´ o maior valor de x e i corresponde a posi¸˜o onde o m´ximo a e ` ca a ocorre. + pn−1 x + pn um polinˆmio de grau n. i a corresponder´ a componente onde o valor m´ximo ocorre primeiro. . . cuja norma-p se deseja calcular. Quando x a` a ´ um vetor complexo. . . portanto: p =( i=1 | xi |p )1/p n x x 1 = i=1 n | xi | | xi |2 )1/2 i=1 2 = ( (iii) [mx. Se x ´ um vetor cujas componentes s˜o n´meros e a u reais. Lembre-se de que.  v flip =  . mx correponder´ a componente de maior valor absoluto e a` de x e i correponder´ ao ´ a ındice dessa componente. (iv) hflip=fliplr(x) e vflip=flipud(y) retornam os seguintes vetores: hflip = xn xn−1 . a norma-p de um vetor x ´ definida como n x e.

0069s + 0. 6618 .yinf] = indices(t. verifique se o programa est´ correto.y).ymax. pn] sao os coeficientes do % polinomio % function pderiv = derivada(p). o valor m´ximo e o valor de estado a permanente da resposta ao degrau do sistema cuja fun¸˜o de transferˆncia ´ ca e e G(s) = s2 0. 2 rela¸˜o a x do polinˆmio p(x) = 5x ca o Exemplo 2. . % calculando o valor de estado permanente: yinf=y(length(y)). o percentual de ultrapassagem. calculando a derivada em a 3 + 2x2 − x + 1. n=length(p)-1.. A fun¸˜o a seguir calcula a o ca derivada de p(x) em rela¸˜o a x: ca % DERIVADA : calcula a derivada de um polinomio p(x) % pderiv = derivada(p) % % onde p = [po p1 p2 .y) % % onde : y : vetor contendo as repostas correspondentes % aos instantes de simulacao armazenados no % vetor t % t : vetor contendo os instantes de simulacao % tp : tempo de pico % po : percentual de ultapassagem % ymax : valor maximo da resposta % yinf : valor de estado permanente da % function [tp.6: Escreva um arquivo de comandos para calcular o instante de pico. + 1.po. % calculando o ponto de maximo e o instante onde %o maximo ocorre: [ymax. portanto. um polinˆmio de grau n − 1.yss] = indices(t. Agora. PROGRAMANDO EM MATLAB sendo.po.ymax.*p(1:n).18 CAP´ ITULO 2.i]=max(y).tp=t(i).pderiv=[n:-1:1].. 6618 Considere que o intervalo de simula¸˜o seja de 0 a 20s ca % INDICES : calcula indices de desempenho de um sistema % [tp.

2.y=step(n. conforme ser´ descrito a a seguir: (i) Se o usu´rio desejar obter as ra´ de p(x) e armazen´-las no vetor y a ızes a deve executar o seguinte comando: y=roots(p).t). isto ´. ou ainda. . . qn−1 qn . torna-se necess´rio. pn−1 pn a e q = q0 q1 .6618].d. deve-se usar a fun¸˜o step. FUNCOES PRE-DEFINIDAS PELO MATLAB ¸˜ % calculando o percentual de ultrapassagem: po=(ymax-yinf)/yinf*100. o valor m´ximo de y (ymax) e o valor de estado permanente de a y(t) (yinf): >> n=0.6618. . Para o se trabalhar com polinˆmios no MATLAB. que suas ra´ ızes sejam calculadas. MATLAB permite que polinˆmios sejam o multiplicados ou dividos.0069 0. os polinˆmios p(x) e a o o q(x) ser˜o. pertencente a caixa de ferraca ` mentas de controle (control toolbox). que calcula a resposta ao degrau de um sistema. convergindo para o valor final esperado. <enter> ´ E importante observar que quando o intervalo de simula¸˜o n˜o for suca a ficientemente grande. . O terceiro argumento da fun¸˜o step ´ ca e ca e o vetor contendo os instantes de simula¸˜o.1:20]. + pn−1 x + pn e q(x) = q0 xm + q1 xm−1 + . ou o oposto. (n ≥ m) respectivamente. devem ser definidos vetores cujas o componentes s˜o os coeficientes dos polinˆmios. . Assim. <enter> Para obter y. sendo conhecidos os polinˆmios do numerador e do denominador da o fun¸˜o de transferˆncia do sistema. que se obtenha os coeficientes de um polinˆmio a partir de suas ra´ o ızes. para o MATLAB. + qm−1 x + qm polinˆmios de graus n e m. a 2 2.y). inicialmente. para diversos valores de x. Portanto. tem-se que t ser´ definido da forma seguinte: a >> t=[0:0. referidos como p = p0 p1 .4 Fun¸˜es polinomiais co Sejam p(x) = p0 xn + p1 xn−1 + . definir a os vetores t e y. . 19 2 Para se executar este programa. calcular o valor de p(x).2. o valor do limt→∞ y(t). o valor de estado permanente yinf poder´ n˜o ser o a a correto.´ 2. o percentual de ultrapase sagem (po).po. .yinf]=indices(t.1s.ymax. . Supondo que os instantes de simula¸˜o estejam espa¸ados ca c de 0. . o uso da fun¸˜o acima e ca s´ faz sentido quando se disp˜e da representa¸˜o gr´fica de t × y ou ent˜o o o ca a a verificando-se o vetor y est´.d=[1 1. de fato. <enter> >> [tp. As linhas de comando seguintes ca permitem obter y e tamb´m o tempo de pico (tp).

Se o usu´rio n˜o desejar obter o resto. como ca a e . a representa¸˜o gr´fica ´ grosseira. i = 0.d : vetores cujas componentes sao os % coeficientes de n(s) e d(s) % w : vetor cujas componentes sao as frequencias % onde se deseja calcular g(jw)=n(jw)/d(jw) function gjw = respfreq(n. Neste caso fazendo-se: >> n=20.d. . e (iii) Para se dividir p(x) por q(x). Isto se deve ao fato de que.q). obtendo-se como quociente a(x) e resto r(x) faz-se [a..w). nas baixas freq¨ˆnca a e ue cias../polyval(d. % RESPFREQ : calcula a resposta em frequencia % de G(s)=n(s)/d(s) % gjw = respfreq(n. q s˜o as freq¨ˆncias onde se deseja calcular G(jw).q). o primeiro passo ´ a defini¸˜o de um vetor w contendo as freq¨ˆne ca ue cias nas quais se deseja calcular T (jω). . onde ωi .d=[1 3 5].7: Programa para calcular a resposta em freq¨ˆncia de uma ue dada fun¸˜o de transferˆncia G(s) = n(s)/d(s)... .q). basta a a fazer a=deconv(p. xq] e.jw). sendo dado um vetor ω = ca e a ue ω0 ω1 .r]=deconv(p..w). PROGRAMANDO EM MATLAB (ii) O produto r(x) = p(x)q(x) ´ efetuado pelo comando r=conv(p.plot(tjw) <enter> obt´m a resposta em freq¨ˆncia de T (s) para os pontos considerados. xq . definir um vetor x = [x1 x2 .jw).d. formado pelos coeficientes do polinˆmio p(x) = (x + 1)(x + 2) = x2 + 3x + 2. (v) Finalmente o comando p=poly(raizes) fornece um vetor p formado pelos coeficientes do polinˆmio cujas ra´ o ızes s˜o as componentes do vetor a raizes. + 3s + 5 Para tanto. Note que. cuja e ue representa¸˜o gr´fica ´ dada na figura 2. (iv) Suponha que se deseje saber o valor de p(x) nos pontos x1 .1(a). x2 . obtendo y = [p(x1) p(x2) .w=[0:1:100]. Por exemplo.20 CAP´ ITULO 2. Supondo que a menor freq¨ˆncia seja ue ω0 = 0 e a maior seja igual a ωf = 100.w) % onde: n. Para isso deve-se.d. 1. .gjw=polyval(n. . . jw = j*w. >> tjw=respfreq(n. 2 Suponha agora que se queira calcular a resposta em freq¨ˆncia do sistema ue cuja fun¸˜o de transferˆncia seja ca e T (s) = s2 20 .x). . em seguinda. o Exemplo 2. ωq . . p=poly([-1 -2]) retorna o vetor p=[1 3 2]. fazer y=polyval(p. inicialmente. p(xq)]. .

1 Declara¸˜o if ca A forma geral para o uso da declara¸˜o if ´ a seguinte: ca e if <express~o booleana> a <seq¨encia de comandos no 1> u^ ¯ else <seq¨encia de comandos no 2> u^ ¯ end A declara¸˜o if funciona da seguinte forma: quando a <express~o booca a leana> for verdadeira..plot(tjw) <enter> teremos uma representa¸˜o gr´fica da resposta em freq¨ˆncia de T (s) mais ca a ue uniforme. a se substituirmos a linha de comandos acima por >> n=20.. conforme mostrado na figura 2. cuja forma geral ´ logspace(exp1.d. 2. CONTROLE DE FLUXO 21 T (jω) varia muito rapidamente nessas freq¨ˆncias.n).100). torna-se necess´rio mudar a ordem a de execu¸˜o dos comandos ou ainda repetir uma seq¨ˆncia de comandos at´ ca ue e que uma determinada condi¸˜o seja verificada.d=[1 3 5].3.. ca e usando-se as declara¸˜es if e os la¸os for . e Este comando.3. caso contr´rio. em MATLAB.2. conforme ser´ visto a seguir.1(b). >> tjw=respfreq(n. a 2. em um determinado programa. fazendo com que as retas que os ligam sejam mais ressaltadas.3 Controle de fluxo ` As vezes. ser˜o executadas os coa a a ¯ mandos definidos na <seq¨encia de comandos no 2>.exp2.2. Quando n for omitido. os pontos imagens estar˜o ue a bastante separados uns dos outros. co c end e while . e ´ o comando acima criar´ um vetor composto de 50 elementos.. end.w=logspace(-2. cria um vetor de n elementos espa¸ados logaritmicamente. as linhas de comandos definidas em <seq¨encia de u^ comandos no 1> ser˜o executadas e. c cujo primeiro elemento ´ 10exp1 e o ultimo 10exp2 . Assim sendo. Isto ´ feito.w). Este problema n˜o ocorrer´ se o vetor w for definido a a usando o comando logspace. Uma forma mais u^ ¯ simples da declara¸˜o if ´: ca e if <express~o booleana> a <seq¨encia de comandos> u^ end .

=< (menor ou igual).22 0 −1 −2 −3 −4 −1 CAP´ ITULO 2.1: Tabelas verdades para os operadores l´gicos &(e).5 (a) 2 2. > (maior que). cujas tabelas verdades s˜o o a a mostradas na tabela 2.5 (b) 2 2.5 3 3.1: Representa¸˜o gr´fica de resposta em freq¨ˆncia de T (s) = ca a ue 20/(s2 + 3s + 5) para (a) w=[0:1:100] e (b) w=logspace(-2. |(ou) e ˜(n˜o) o a .100) Neste caso.5 3 3. |(ou) e ~(n˜o). >= (maior ou igual).5 4 0 −1 −2 −3 −4 −1 −0.2.1 e dos operadores relacionais (< (menor que).5 0 0.5 1 1. a <seq¨encia de comandos> ser´ executada somente quando a u^ a <express~o booleana> for verdadeira. a O resultado da <express~o booleana> (verdadeiro ou falso) ´ definido a a e partir de operadores l´gicos &(e). Exemplo 2.4 ca estar´ correto quando a entrada for um vetor coluna. == (igual) e ~= (diferente).5 0 0.5 4 Figura 2.8: O resultado encontrado pela fun¸˜o norma2 do exemplo 2. PROGRAMANDO EM MATLAB −0.5 1 1. Para que o usu´rio a a & V F (a) V V F F F F | V F V V V (b) F V F ~ V F V F V (b) Tabela 2.

CONTROLE DE FLUXO 23 possa utiliz´-lo tamb´m para calcular a norma euclideana de um vetor linha.else. Todas essas deficiˆncias s˜o a e a suprimidas utilizando-se declara¸˜es if. al´m do comando disp que e cont´m a mensagem de erro a ser impressa na tela.y=sqrt(x*x’).na=norma2(a). [m.3 4]. cuja forma geral ´ disp(’<texto>’). Este e comando faz com que a mensagem contida em <texto> seja impressa na janela do MATLAB. ao se fazer >> a=[1 2.2. o ca . outros dois contendo e espa¸os em branco como texto. disp(’ ’). conforme mostrado abaixo: co % y=norma2(x) : calcula a norma euclideana de um vetor % onde: x : vetor de entrada % y : norma euclideana de x % function y=norma2(x).end end 2 Agora verifique o programa para os vetores v= e para a matriz A= 1 2 3 4 . e Uma outra deficiˆncia da fun¸˜o norma2 ´ que ela ´ incapaz de distinguir e ca e e se o usu´rio forneceu um vetor ou uma matriz. Isto se deve ao comando disp. else if m==1.n]=size(x). 1 1 e w= 1 1 Note que.3. y=[]. Eles foram usados para que o MATLAB c deixe uma linha em branco entre a ultima linha de comando digitada pelo ´ usu´rio e a mensagem impressa na tela e uma outra linha em branco entre a essa mensagem e o pr´ximo sinal de solicita¸˜o >>. a e o arquivo deve ter linhas que verifiquem se o vetor ´ do tipo linha ou coluna. No arquivo acima usou-se.disp(’????ERRO: a entrada deve ser um vetor’). if m>1 & n>1.<enter> o MATLAB retornou a mensagem ???? ERRO: a entrada deve ser um vetor.y=sqrt(x’*x). disp(’ ’).

while resp==’sim’ i=i+1 resp=input(’Deseja continuar (sim/nao)? ’. a a A forma geral do comando input ´ e <vari´vel> = input(’<texto>’). para parar definitivamente a execu¸˜o do programa. cujo conte´do ´ o seguinte: u e resp=’sim’.3 La¸o for c A forma geral do la¸o for ´ a seguinte: c e for <contador>=<valor inicial>:<incremento>:<valor final> <seq¨encia de comandos> u^ end onde . interromper´ sua execu¸˜o sempre o usu´rio digitar qualquer express˜o a ca a a que n˜o seja sim. como a express˜o booleana ´ resp==’sim’. a quando a <vari´vel> ´ num´rica ou a e e <vari´vel> = input(’<texto>’. Observe. a quando a <vari´vel> ´ do tipo cadeia de caracteres.’s’). Isto se deve ao ca comando input. o programa. que permite que o usu´rio atribua um valor a uma vari´vel. cona sidere um arquivo de comandos (comandos. Por exemplo. no exemplo a e acima que.24 CAP´ ITULO 2.2 La¸o while c A estrutura de um la¸o while ´ a seguinte: c e while <express~o booleana> a <seq¨encia de comandos> u^ end Na estrutura acima. PROGRAMANDO EM MATLAB 2.3. Observe que foram impressas na tela as seguintes mensagens: i = 1 Deseja continuar (sim/nao)? e o programa permanecer´ parado at´ que o usu´rio digite sim. end Crie um arquivo denominado comandos.m e digite os comandos acima. a 2.m). para continuar a e a e nao.i=0.3. Em seguida execute o arquivo digitando >> comandos <enter>. a <seq¨encia de comandos> ser´ executada enquanto u^ a a <express~o booleana> retornar um valor verdadeiro.’s’). na vera e dade.

9: Uma das formas de se representar matematicamente um sistema f´ ısico ´ atrav´s das chamadas equa¸˜es de estados.2. An−1 b . <valor final> : maior ou menor valor que a vari´vel <contador> pode a assumir. conforme mostrado abaixo: <contador> = <valor inicial>. e respectivamente a entrada e a sa´ do sistema. O funcionamento do la¸o for pode ser explicado com a ajuda das estruc turas if e while. se existe uma entrada u(t) capaz de levar o e a e sistema a qualquer estado xf . a <incremento> : incremento dado a vari´vel <contador>. por exemplo. quando o incremento for igual a 0. dado por: x(t) = Ax(t) + bu(t) ˙ y(t) = c x(t) + du(t) onde x(t) ∈ Rn×1 ´ o vetor de estados. podendo ser ` a positivo ou negativo. u(t) ∈ R e y(t) ∈ R denotam. . Nesta representa¸˜o. b ∈ Rn×1 e ıda 1×n c ∈ R . Para tanto ´ necess´rio verificar se a matriz e a de controlabilidade C= b Ab A2 b . isto ´. CONTROLE DE FLUXO 25 <contador> : vari´vel de controle. . a <valor inicial> : valor inicial da vari´vel. As equa¸˜es de estados permitem. verificar se o co sistema ´ control´vel.3. e e co ca um sistema de ordem n ser´ epresentado por um sistema de n equa¸˜es difera co enciais de primeira ordem. A ∈ Rn×n . if <incremento> > 0 while <contador> <= <valor final> <seq¨encia de comandos> u^ <contador> = <contador> + <incremento> end else while <contador> >= <valor final> <seq¨encia de comandos> u^ <contador> = <contador> + <incremento> end end Exemplo 2. o la¸o for n˜o ser´ c a a executado.

% construindo a matriz controlabilidade for i=1:n-1 ci=a*ci.26 CAP´ ITULO 2. end Agora verifique se os seguintes sistemas s˜o control´veis: a a (a) x(t) = ˙ (b) x(t) = ˙ 1 2 0 4 x(t) + 2 0 u(t) 1 2 3 4 x(t) + 1 0 u(t) . PROGRAMANDO EM MATLAB tem posto igual a n.disp(’ ’).[mb.na]=size(a).ci=b. O seguinte arquivo de comandos (controle.m pode ser utilizado para verificar se o sistema ´ control´vel ou n˜o: e a a % CONTROLE : verifica se um SLIT e control´vel ou n~o ´ a a % onde : a:n X n (matriz de transi¸ao de estados) e c~ % b:n X 1 (matriz de entrada) [ma. else disp(’O sistema nao e controlavel’). disp(’ ’). end else disp(’ ’).c=ci. % verificando se as dimensoes das matrizes % a e b sao compativeis if ma==na & mb==na n=ma. end % verificando se o sistema e controlavel ´ disp(’ ’).nb]=size(b). disp(’As dimensoes das matrizes nao sao compativeis’). if rank(c)==n disp(’O sistema e controlavel’).c=[c ci].disp(’ ’).

uma cruz ou um asteriscos. de acordo com as primeiras cinco linhas da tabela 2.4 2.4 A fun¸˜o find ca Embora n˜o tenha o poder de alterar a seq¨ˆncia de execu¸˜o de um arquivo.´ 2. Isto pode ser feito em MATLAB utilizando-se o comando plot.y.’<cor><forma>’) onde <cor> define a cor usada na representa¸˜o gr´fica (conforme tabela 2. a A func˜o find retorna todos os ´ a ındices das componentes do vetor para os quais a express˜o booleana ´ verdadeira. suponha que os vea e tores t e y contˆm os instantes de simula¸˜o e os correspondentes valores da e ca sa´ de um sistema de segunda ordem sub-amortecido para uma entrada ıda igual ao degrau unit´rio. cuja forma geral ´ a seguinte: e plot(x. c´ ırculo. Por exemplo. caso se deseje representar grafica- . Por exemplo. a ue ca a fun¸˜o find. % instante de tempo imediatamente anterior ou igual a ts tra=t(ind(1)-1). 2.ind=find(y>yss).3. conseq¨entemente permite que se determine u o tempo de subida da resposta. um ’x’. de fato.4. A fun¸˜o find pode ser usada para determinar os a ca instantes de tempo imediatamente anterior e posterior aquele em que a sa´ ` ıda atinge yss pela primeira vez e.2) ca a e <forma> define como o ponto ser´ representado. y) no plano cartesiano.6 para verificar se os comandos acima est˜o. conforme mostra a seguinte seq¨ˆncia de ue comandos: yss=y(length(y)). tem como argumento uma exca e press˜o boolena. isto ´ se ser´ usado um a e a ponto.1 Representa¸˜o gr´fica ca a O comando plot Suponha que se deseje representar graficamente um ponto de coordenadas (x. Sua forma geral ´ a seguinte: a e <vari´vel> = find(<expressao booleana contendo um vetor>) . pr´-definida pelo MATLAB. levando a uma correta determina¸˜o do tempo de subida da a ca resposta. % calculo do tempo de subida (por interpolacao) tr=tra+(trp-tra)*(yss-yra)/(yrp-yra) Use os vetores y e t do exemplo 2.3.yrp=y(ind(1)).4. % instante de tempo imediatamente posterior a tr trp=t(ind(1)).yra=y(ind(1)-1). REPRESENTACAO GRAFICA ¸˜ 27 2.

). o ponto (. .28 CAP´ ITULO 2. Tabela 2. o MATLAB assumir´. que se deseje representar graficamente os pontos de coordenadas (x. caso a linha de comando acima seja substitu´ por ıda >> plot(-2. yn ) num mesmo gr´fico. (x2 . . Suponha.2: Cores usadas para representa¸˜o gr´fica em MATLAB ca a Forma Ponto C´ ırculo x Cruz Asteriscos Linha cont´ ınua Linha pontilhada Linha tracejada Linha tra¸o-pontilhada c S´ ımbolo . faz-se >> plot(-2. o x + * : --.’c+’) <enter> ´ E importante ressaltar que. o a .1.3: Formas de se representar pontos e curvas em MATLAB mente o ponto de coordenadas (−2. 1) no plano cartesiano. . y1 ).1. (xn . caso a forma de representa¸˜o n˜o esteja presente ca a no comando plot. Por a a exemplo. como padr˜o. PROGRAMANDO EM MATLAB Cor Amarelo Magenta Azul claro Vermelho Verde Azul escuro Branco Preto S´ ımbolo y m c r g b w k Tabela 2. na cor azul claro e com uma cruz. 1). Para tanto. y2 ).’c’) <enter> ent˜o. o MATLAB utilizar´ o ponto (. . agora.) em vez de + para representar o ponto a a (−2.

plot(x.’b*’) <enter> Finalmente. Isto pode ser feito de duas formas: (i) atrav´s de um comando e plot com v´rios pares de vetores. x2 .y=[1 2 -1 2]. unindo-os a com retas: >> x=[-1.y) <enter> Note que. (0. suponha que se queira representar graficamente os pontos (−1. . cujas componentes e s˜o. n˜o foram definidas a <cor> e a <forma> a dos pontos. usar o comando plot. 2). .y1.1. cujas abscissas e ordenadas est˜o armazenadas nos vetores x1 . Por exemplo. a a conforme consta da forma geral do comando plot.yn. C2 .y=[1 2 -1 2]. x e y por exemplo.y.. isoladamente. que se deseje utilizar um unico gr´fico para representar as curvas C1 . e xn .y=[1 2 -1 2]. isto ´. A representa¸˜o gr´fica de diversas curvas em um mesmo gr´fico se faz necess´ria ca a a a em muitos problemas. isto ´ a e >> plot(x1. y 1 . onde x e y s˜o agora vetores e n˜o as coordenadas de um ponto. principalmente quando se deseja analisar simultaneamente o comportamento de diversas grandezas ou.’g--’) <enter> 2. o MATLAB utiliza a cor amarela (definida como padr˜o) e liga os pontos por meio de retas. . de acordo com a forma geral dada acima.4. no comando plot acima. quando se deseja analisar a resposta de um sistema a diferentes entradas.2]. Para se representar os a mesmos pontos acima sem uni-los. portanto.1. REPRESENTACAO GRAFICA ¸˜ 29 primeiro passo ´ definir dois vetores. toda vez que foi digitado um novo comando e plot. y 2 ..xn. 2). a . respectivamente. ´ a Cn . para representar aqueles pontos.2].. A linha de comando seguinte permite represent´-los na cor amarela. deve-se digitar a seguinte linha de comando: >> x=[-1.’<corn><forman>’) ou (ii) utilizando-se o comando hold.y.´ 2.’<cor1><forma1>’.plot(x. (1.0. unindo-os com linhas verdes tracejadas. ainda.. Suponha.2]. Em seguida. y n . A forma geral do comando hold ´ a e seguinte: hold on para fazer com que todos os comandos plots ap´s o uso do comando hold o on representem graficamente os pontos sobre o ultimo gr´fico criado antes do ´ a .2 Representa¸˜o de diversas curvas num mesmo gr´fico ca a Vocˆ deve ter observado que. substitui-se a linha de comando acima por: >> x=[-1.0. as abscissas e as ordenadas dos pontos que se deseja a representar. 1). Quando isto ocorre. .1. o gr´fico anterior foi apagado..plot(x. sendo substitu´ pelo gr´fico cujas coa ıdo a ordenadas dos pontos foram fornecidas no comando plot mais recente. . −1) e (2.4.0. com asteriscos e na e cor azul escuro.

o MATLAB atribuir´ cores a diferentes a cada uma das curvas (na seq¨ˆncia das linhas da tabela 2. definir um vetor t cujas componentes s˜o os instantes em que devem ser calculados y(t) e z(t) a e.4. a a e n˜o havendo defini¸˜o de <cor> e <forma>. vˆ-se que.3 Representa¸˜o de diversos gr´ficos numa mesma figura ca a V´rios gr´ficos podem ser representados numa mesma figura com a ajuda do a a comando subplot. <enter> Caso queira utilizar o comando plot com m´ltiplas entradas para repreu sentar y(t) e z(t) nos pontos definidos nas linhas de comando acima.y). De fato. 2 2.30 CAP´ ITULO 2. o usu´rio a deve digitar: >> plot(t. conforme as linhas de comando a seguir: >> t=[0:2*pi/100:2*pi].z). <enter> >> y=sin(t). em seguida. e a Uma maneira alternativa de representar as fun¸˜es y(t) e z(t) num mesmo co gr´fico ´ usando o comando hold. embora o usu´rio a e a n˜o tenha definido nenhuma cor para as abscissas y e z.hold on. PROGRAMANDO EM MATLAB comando hold on.plot(t. inicialmente.n. ao se usar o comando hold on.z) <enter> A partir do gr´fico obtido com o comando acima. a menos que o usu´rio forne¸a detalhes referentes a u a c ` <cor> e <forma> cada vez que usar o comando plot. quando do uso do comando plot com m´ltiplas entradas.t. ligar´ os pontos por retas).10: Para se representar em um mesmo gr´fico as fun¸˜es y(t) = a co Sen (t) e z(t) = Cos (t).k) . o MATLAB utilia zou o amarelo para representar y(t) e a magenta para representar z(t). ent˜o o MATLAB usar´ a cor a ca a a amarela para representar a curva e utilizar´ linha cont´ a ınuas. caso n˜o seu a jam definidos <cor> e <forma> para cada curva.y. conforme a linha de comando a seguir: a e >> plot(t.z=cos(t). calcular y(t) = Sen (t) e z(t) = Cos (t). t ∈ [0.hold off A diferen¸a principal entre as duas formas de se representar diversas curvas c em um mesmo gr´fico est´ no fato de que.2) e ue utilizar´ linhas cont´ a ınuas (isto ´. Este comando tem a forma geral subplot(m. 2π] deve-se. Isto faz com que visualiza¸˜o de curvas representadas em um mesmo gr´fico com o aux´ ca a ılio do comando hold n˜o ´ t˜o boa quanto aquela fornecida pelo comando plot a e a com m´ltiplas entradas. Para se desativar o comando hold basta digitar >> hold off <enter> Exemplo 2.

4. loglog(x. 1) da matriz. Isto ´ feito utilizando-se os seguintes ue a e comandos: (vi) semilogx(x. um situado no topo da figura a (y(t) = Sen (t)) e o outro na parte inferior da figura (z(t) = Cos (t)) procedese da seguinte forma: >> subplot(2. a representa¸˜o gr´fica. por si s´. 1) da a ca a ca matriz e assim por diante. Para tanto. Esta posi¸˜o ´ definida como 1 para o gr´fico correa c˜ ca e a spondente a posi¸˜o (1. utiliza-se os seguintes a comandos: (i) title(’<texto>’) : coloca um t´ ıtulo (<texto>) na parte superior do gr´fico.y.y. (iii) ylabel(’<texto>’) : escreve o <texto> a esquerda do do eixo das ` ordenadas. semilogy(x. sobre o ponto ılio do gr´fico onde se deseja escrever o <texto>.’<cor><forma>’) e. deve ser ressaltado que o MATLAB permite representar gr´ficos em escala logar´ a ıtmica (muito importante na an´lise da resposta em a freq¨ˆncia de sistemas lineares est´veis). para ser posicionado. 2). para se representar as duas fun¸˜o ca do exemplo 2. Por exemplo. de fato. e faz com que todos os a a comandos associados a representa¸˜o gr´fica tenham efeito somente sobre o ` ca a gr´fico da posi¸ao k. ser´ posicionado. Deve-se tomar o cuidado de a maximizar a janela que cont´m a figura para que o ponto escolhido para se e colocar o <texto> corresponda aquele em que ele.1). ainda.1. ` a (v) grid : quadricula a tela com linhas tracejadas.4. com maior clareza.1.2). n˜o ´ auto-explicativa.y.’<cor><forma>’). o MATLAB apresenta a figura a o e um sinal +. (iv) gtext(’<texto>’) : escreve na tela o <texto> em posi¸˜o a ser ca definida pelo usu´rio. Ela ca a o a e requer legendas para que se visualize. o que significa cada gr´fico (no caso de m´ltiplos gr´ficos) ou cada linha do gr´fico (quando se a u a a trara de um gr´fico com diversas curvas).z) <enter> 2. 2 para o gr´fico da posi¸˜o (1. n + 1 para o gr´fico da posi¸˜o (2.4 Outros comandos para representa¸˜o gr´fica ca a Muitas vezes.’<cor><forma>’) : permitem represntar gr´ficos nos a . REPRESENTACAO GRAFICA ¸˜ 31 e gera uma matriz de gr´ficos de dimens˜o m × n.10 em dois gr´ficos diferentes.plot(t. n ` ca a ca para o gr´fico da posi¸˜o (1.´ 2.y) <enter> >> subplot(2. Finalmente. com o aux´ do mouse. n).plot(t. Ap´s teclar <enter>. a (ii) xlabel(’<texto>’) : escreve o <texto> imediatamente abaixo do eixo das abscissas.

32 −10 −15 Modulo em dB −20 −25 −30 −35 −40 −1 10 CAP´ ITULO 2.fasegjw] = diagbode(b.s^n + a1. n e d. e o vetor w contendo as ca e freq¨ˆncias onde se deseja calcular os diagramas de Bode. em graus.s^m + b1. da fun¸˜o de transferˆncia nas o e ca e freq¨ˆncias dadas em w. est˜o em escalas a logar´ ıtmicas. que s˜o vetores cujas componentes s˜o. As sa´ ue ıdas ser˜o a gjwdb e fasegjw.w). respectivamente. Exemplo 2. respectivamente... onde b(s) = b0. Como entradas da fun¸˜o. o ca e Solu¸˜o: Denominemos diagbode a fun¸˜o que calcula os diagramas de ca ca Bode de m´dulo e de fase. + an % [gjwdb. temos os vetores o ca formados pelos coeficientes dos polinˆmios do numerador e denominador da o fun¸˜o de transferˆncia. PROGRAMANDO EM MATLAB Diagramas de Bode 10 Frequencia angular − w 0 10 1 0 Angulo em Graus −50 −100 −150 −200 −1 10 10 Frequencia angular − w 0 10 1 Figura 2.2: Diagramas de Bode para a fun¸˜o de transferˆncia G(s) = 1/(s2 + ca e 2s + 4) quais as abscissas. e a fase. + bm a(s) = a0.a. em decib´is.s^(m-1) + . ordenadas e ambas.11: Escreva um arquivo de fun¸˜es para calcular e tra¸ar os co c diagramas de m´dulo e fase de Bode de uma dada fun¸˜o de transferˆncia. respectivamente. ue % DIAGBODE : Calcula e traca os diagramas de Bode de uma funcao de transferencia G(s)=b(s)/a(s)...s^(n-1) + . . a a o m´dulo.

ylabel(’Angulo em Graus’).w). >> [gjwdb. jw=j*w. nos vetores gjwdb e fasegjw e.gjw=polyval(b. armazenando-os.grid xlabel(’Frequencia angular . em graus.100). o 2.w=logspace(-1.semilogx(w. subplot(2.1). O objetivo principal deste cap´ ıtulo foi introduzir os comandos b´sicos para que o usu´rio se sinta cona a fort´vel ao utilizar o MATLAB e tenha a ferramenta m´ a ınima necess´ria para a que possa vir a usar com sucesso linguagem.. procede-se da seguinte forma: 1/(s >> n=1.jw). wp] function [gjwdb. produzir´ os diagrae a mas de m´dulo e fase.grid.1...2).fasegjw]=diagbode(n.a.w’).5. title(’Diagramas de Bode’). nas freq¨ˆncias definidas no vetor w. A fun¸˜o diagbode retornar´ o m´dulo de G(jω) em decib´is e a fase de ca a o e G(jω).semilogx(w.fasegjw).´ 2.2. COMENTARIOS FINAIS 33 % onde b = [b0 b1 . o MATLAB possui muito mais recursos do que foi apresentado aqui.w). reue spectivamente. recomenda-se a consulta aos manuais do MATLAB e do SIMULINK.xlabel(’Frequencia angular .fasegjw] = diagbode(b. ylabel(’Modulo em dB’). Para se ter acesso a comandos/recursos mais poderos.1..1 Entre com a matriz Z= 1 − j 1 + 2j 2 − j 2 1 + 2j 3j .fasegjw=angle(gjw)*180/pi. subplot(2. representados na figura 2. 2 Para se obter os diagrmas de Bode da fun¸˜o de transferˆncia G(s) = ca e 2 + 2s + 4). gjwdb=20*log10(abs(gjw)).. Exerc´ ıcios propostos 2. bm] % a = [a0 a1 .d=[1 2 4].d.gjwdb).5 Coment´rios finais a Conforme foi mencionado na introdu¸˜o deste cap´ ca ıtulo./polyval(a.jw).w’). tamb´m.. an] % w = [w1 w2 .1.

34 CAP´ ITULO 2. ca 2.4 Seja s = σ + jω uma vari´vel complexa e seja a F (s) = s . .2. s+2 Escreva um arquivo de comandos em MATLAB para calcular e representar graficamente o mapeamento de F (s) sobre Γ.2 Para o vetor x= 1 10 7 0.2. ca 2.3. 2.2. onde Γ ´ o contorno represene tado na figura 2. Por exemplo.3 Fa¸a um programa MATLAB (arquivo de fun¸˜o) para tra¸ar o diac ca c grama de Nyquist de uma determinada fun¸˜o de transferˆncia ca e G(s) = n(s) d(s) sendo dados os coeficientes de n(s) e d(s) e um vetor ω contendo as freq¨ˆncias ue de interesse.4 ıcio e execute os comandos (i) a (vi) da se¸˜o 2.2.1 execute os comandos (vii) a (ix) da se¸˜o 2. a fun¸˜o poder-se-ia chamar de meunyq sendo deca scrita por gjw = meunyq(n. PROGRAMANDO EM MATLAB jω 6 j1 - −1 6 1 ? σ  −j1 Figura 2.d.w).3: Contorno Γ para o exerc´ 2.

7 Suponha que sejam conhecidas as coordenadas de dois pontos P1 = (x1 . . dG (s) dK (s) Escreva arquivos de fun¸˜es que permitem calcular as seguintes fun¸˜es de co co transferˆncias para o sistema cujo diagrama de blocos est´ representado na e a figura 2. onde a e b s˜o. y2 ) e a abscissa de um terceiro ponto P3 = (x3 .EXERC´ ICIOS PROPOSTOS 35 R(s) + − E(s) K(s) U (s) G(s) Y (s) Figura 2. Escreva um arquivo do tipo fun¸˜o que permita encontrar y3 ca interpolando-se os pontos P1 e P2 por uma reta. a ordenada de P3 ser´ e a y3 = ax3 + b. os coeficientes angular e linear a da reta que passa pelos pontos P1 e P2 . isto ´. (b) TRE (s) = E(s)/R(s) e (c) TRU (s) = U (s)/R(s) Nota: As entradas para as fun¸˜es ser˜o os vetores formados pelos coefico a cientes dos polinˆmios nG (s). Teste a fun¸˜o para os polinˆmios p(s) = s + 1 e q(s) = s2 + 2s − 1 ca o 2.6 ıcio 2. respectivamente.nk.4: (a) TRY (s) = Y (s)/R(s). 2. dG (s).4: Diagrama de blocos para o exerc´ 2. nK (s) e dK (s) e as sa´ o ıdas ser˜o vetores a formados pelos coeficientes dos polinˆmios do numerador e do denominador o da fun¸˜o de transferˆncia considerada. y3 ). ca e poderia ser definida como [ntry.5 Escrever um arquivo de fun¸˜o que permita somar dois polinˆmios ca o p(s) = p0 sm +p1 sm−1 +· · ·+pm−1 s+pm e q(s) = q0 sn +q1 sn−1 +· · ·+qn−1 s+qn .dk). a fun¸˜o MATLAB ca e ca que calcula o numerador e o denominador da fun¸˜o de transferˆncia TRY (s).dtry] = try(ng. Por exemplo. onde x1 < x3 < x2 . y1 ) e P2 = (x2 .6 Suponha que sejam dadas as fun¸˜es de transferˆncias da planta e do co e controlador nG (s) nK (s) G(s) = e K(s) = .dg.

φq | H(jω0 ) | | H(jω1 ) | . .8 Suponha que sejam conhecidas as coordenadas de dois pontos P1 = (x1 . dQ (s) onde nQ (s) e dQ (s) s˜o conhecidos e K deve ser arbitrado. Aten¸ao: Use o comando find e interpola¸˜o. . 1. encontre as margens de fase e de ganho a do sistema. . i = 0. . conforme a figura 2. . q s˜o as freq¨ˆncias angulares e H(jωi ) =| H(jωi ) | a ue exp(jφi ). onde y1 < y3 < y2 . . Escreva um a arquivo de fun¸˜es que: co (a) Verifique se o sistema realimentado (realimenta¸˜o negativa) ´ est´vel ca e a para um dado valor de K. .41 ca 2. . y2 ) e a ordenada de um terceiro ponto P3 = (x3 . (b) Caso o sistema seja est´vel. (x2 . c ca 2. escreva um arquivo de fun¸˜es em MATLAB que utilize o m´todo dos m´ co e ınimos quadrados para calcular o coeficiente angular da reta y = αx. . y1 ) e P2 = (x2 . Escreva um arquivo de fun¸˜es que utilize o m´todo dos m´ co e ınimos . ωq φ0 φ1 . y2 ). c˜ ca 2. . Nota: Use o comando find e fa¸a interpola¸˜o para achar os valores corretos. y(tn ) .36 CAP´ ITULO 2. | H(jωq ) | onde ωi . equa¸˜o 3. . Nota: Assuma que sejam conhecidos t e y(t). .9 Escreva um arquivo do tipo fun¸˜o que permita calcular: (i) os temca pos de subida (tr ) e de acomoda¸˜o (ts ) para um sistema superamortecido ca ou criticamente amortecido e (ii) os tempos de subida (tr ). yn ). PROGRAMANDO EM MATLAB 2.12 Suponha que a partir de um experimento.5.11 Dado um conjunto de pontos (x1 . respectivamente. tn e y = y(t1 ) y(t2 ) . de pico (tp ) e de acomoda¸˜o (ts ) e o percentual de ultrapassagem (P O) para um sistema ca subamortecido. . y3 ). . . (xn . Escreva um arquivo do tipo fun¸˜o que permita encontrar x3 ca interpolando-se os pontos P1 e P2 por uma reta.10 Suponha que Q(s) = G(s)K(s) = K nQ (s) . y1 ). . estando armazenados nos vetores t = t1 t2 . . . obt´m-se os vetores e ω = φ = h = ω0 ω1 . 2. Nota: Veja cap´ ıtulo 3.

EXERC´ ICIOS PROPOSTOS 37 y yn . . y3 y yn . y1 ).5: Representa¸˜o cartesiana dos pontos (x1 . y2 ).(xn . .13 ıcio . . .6: Diagrama de blocos para o sistema do exerc´ 2. yn ) ca e da reta ajustada y = αx referentes ao exerc´ 2.. .11 ıcio D(s) ¯ K − K(s) − K + R(s) + Kt τ s+1 Y (s) Figura 2. (x2 .. . y3 y = αx y2 y1 y2 y1 x x1 x2 x3 · · · xn (a) x1 x2 x3 · · · xn (b) x Figura 2.

Kt = 0.8. algoritmo 5) para calcular os coeficientes da fun¸˜o de transferˆncia ca e H(s) = b(s) b0 sm + b1 sm−1 + .4/s. = a(s) sn + a1 sn−1 + .38 CAP´ ITULO 2. a (b) r(t) = 12u0 (t) e d(t) = 0 e K(s) = (s + 30)/s.026 e K seguintes situa¸˜es: co (a) r(t) = 12u0 (t) e d(t) = 0 e K(s) = 5.2u0 (t − 1) Nota: Em todos os casos acima. s˜o arbitrados. (c) Reptita os itens (a) e (b) para d(t) = 0. + an−1 s + an onde os graus dos polinˆmios do numerador e do denominador. . PROGRAMANDO EM MATLAB quadrados (veja cap´ ıtulo 3. reo spectivamente. para as da figura 2. m e n. + bm−1 s + bm . . . onde K = 127. τ = 0. o intervalo de simula¸˜o deve ser de -0. .6.0056.9. .5 a ca 2s. onde u0 (t) representa um degrau unit´rio aplicado no instante t = 0.13 Construa um arquivo SIMULINK para fazer a simula¸˜o do sistema ca ¯ = 451. a 2.

a corrente e a tens˜o a de armadura. respectivamente. por hip´tese). respectivamente. cujo circuito equivalente ´ aquele e da figura 3.1 Modelo matem´tico de um motor CC controa lado pela armadura Para se modelar o grupo motor-gerador. o fato de termos um gerador CC no lugar de um CA.2. onde ia (t) e va (t) denotam. a e respectivamente. conforme ressaltado no cap´ ıtulo 1. basta realizar a modelagem de um motor CC controlado pela armadura (Dorf. ca e Isto mostra que. A influˆncia do gerador CC no modelo do motor ser´ e a levada em conta pelos seguintes fatores: (i) aumento do momento de in´rcia e da carga mecˆnica e (ii) aparecimento de um torque de perturba¸˜o. ω(t) ´ a velocidade angular do motor e J o e e f s˜o o momento de in´rcia da carga e o coeficiente de atrito nos mancais. o circuito equivalente de um motor-CC controlado pela armadura da figura 3. a tens˜o e a corrente de a campo (constantes. 39 . 1986). Vf e If representam. Considere.1.Cap´ ıtulo 3 Modelagem e identifica¸˜o ca dos parˆmetros da fun¸˜o de a ca transferˆncia do grupo e motor-gerador 3. porc˜ ` tanto. resula ca tado da introdu¸˜o de cargas de natureza el´trica nos terminais do gerador. como seria o caso de um sistema real. n˜o traz a qualquer altera¸ao no que se refere a modelagem do sistema.

MODELAGEM E IDENTIFICACAO ¸˜ Ra La ig (t) va (t) vt (t) Figura 3.2: Circuito equivalente de um motor CC controlado pela armadura .40 CAP´ ITULO 3.1: Circuito el´trico equivalente para o grupo motor-gerador com e sensor de velocidade (tacˆmetro) o ia (t) Ra La J ω(t) va (t) e(t) f Figura 3.

ca As equa¸˜es (3.4). Kφ e If constantes.2) onde e(t) representa a for¸a contra-eletromotriz. Note que a fun¸˜o de transferˆncia da ca e equa¸˜o (3.4) nos permitem obter a fun¸˜o de transferˆncia que co ca e relaciona as transformadas de Laplace da entrada (Va (s)) da sa´ (W (s)). ca e ¯ .3) Finalmente. resulta: co  Tm (s) = Km Ia (s)    Va (s) = Ra Ia (s) + La sIa (s) + E(s) (3. que ´ proporcional a velocic e ` dade angular do motor. ´ proporcional ao fluxo e magn´tico no entreferro (φ(t)) e a corrente de armadura (ia (t)). Por´m.4) dt onde td (t) representa um torque externo (perturba¸˜o).6) modela o motor CC como um sistema de 2a ordem. e ` e tm (t) = Kf φ(t)ia (t) = Km ia (t) (3. obt´m-se: o e va (t) = Ra ia (t) + La d ia (t) + e(t) dt (3.3. Aplicando-se a lei das tens˜es de Kirchhoff ao circuito da armadura. tm (t). pode-se escrever: d tm (t) − td (t) − f ω(t) = J ω(t) (3.6) onde τe = La /Ra e τm = J/f .1) a (3. MOTOR CC CONTROLADO PELA ARMADURA 41 Sabe-se que o torque produzido pelo motor. sendo dada por: e(t) = Ke ω(t) (3.5) E(s) = Ke W (s)    Tm (s) − Td (s) − f W (s) = JsW (s) e ap´s alguma manipula¸˜o alg´brica. ıda Para tanto. isto ´. aplicando-se a transformada de Laplace a ambos os membros das equa¸˜es (3. obt´m-se: o ca e e 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.1) a (3.1.1) onde Km = Kf φ = Kf Kφ If . usando-se a lei de Newton para o movimento rotacional. com Kf .

9) . ser´: o a vt (t) = Kt ω(t).3. a equa¸˜o acima pode ser escrita ca como: ¯ K K Va (s) − Ig (s) (3. vt (t). Note ainda que. se levar¯ mos em conta que La /Ra ≪ 1 e portanto.8) W (s) = τs + 1 τs + 1 ¯ onde K = Kd Kg . Desta forma. o modelo matem´tico do grupo motor-gerador que a iremos adotar ser´ o seguinte: a W (s) = K Kd Va (s) − Td (s) τs + 1 τs + 1 (3. (3. cuja tens˜o gerada ´ constante e proporcional a velocidade e a e ` do eixo ao qual ele est´ acoplado. MODELAGEM E IDENTIFICACAO ¸˜ Ig (s) ¯ K Va (s) K + − 1 τ s+1 W (s) Figura 3.7) onde K = Km /(Ra f + Ke Km ) e Kd = Ra /(Ra f + Ke Km ) e τ = JRa /(Ra f + Ke Km ).42 CAP´ ITULO 3. a ´ E importante ressaltar que a medi¸˜o da velocidade angular ´ feita por ca e meio de tacˆmetros.3: Diagrama de blocos do sistema composto pelo grupo motorgerador este sistema pode ser bem aproximado por um modelo de 1a ordem. Um tacˆmetro nada mais ´ do que um gerador CC de o o e pequena potˆncia. como td (t) = Kg ig (t). A representa¸˜o por diagramas de blocos para este sistema ca est´ mostrada na figura 3. τe s + 1 ≈ 1 para as freq¨ˆncias de ue interesse. a tens˜o nos terminais do a a tacˆmetro. Desta forma.

K. em particular o diagrama de m´dulo de Bode e o ue o diagrama polar. Os ganhos e ca ser˜o identificados a partir da resposta em estado permanente a uma entrada a igual ao degrau. K e K e da constante de tempo τ . e va (t) = 0. t < 0 Va . K e τ ca a ¯ Identifica¸˜o de Kt . Nesta se¸˜o procederemos a identifica¸˜o dos ganhos Kt . o pr´ximo passo o a o ¯ ´ a identifica¸˜o dos ganhos Kt . A identifica¸˜o de τ ser´ feita utilizando-se m´todos de ca a e resposta em freq¨ˆncia. ca ca Suponha que um degrau de tens˜o de amplitude Va seja aplicado aos a terminais do motor. isto ´.10) cujo diagrama de blocos est´ representado na figura 3. K ca ` ca ¯ e K. K e K ca Uma vez que se disp˜e de um modelo matem´tico da planta.2 3. a rela¸˜o entre Vt (s). τs + 1 τs + 1 (3.11) .4: Diagrama de blocos representativo do modelo matem´tico do a grupo motor-gerador-tacˆmetro o onde Kt ´ uma constante. Va (s) e Ig (s) pode e ca ser expressa pela seguinte equa¸˜o: ca Vt (s) = ¯ KKt KKt Va (s) − Ig (s). t ≥ 0 (3. IDENTIFICACAO DOS PARAMETROS ¸˜ Ig (s) 43 ¯ K Va (s) K + − 1 τ s+1 W (s) Kt Vt (s) Figura 3.4.ˆ 3.2.1 ¯ Identifica¸˜o dos parˆmetros Kt . ficando a identifica¸˜o de τ adiada para a se¸˜o seguinte.2. a 3. Portanto.

.. . Va2 . (Va2 .. s(τ s + 1) (3. nos a terminais do tacˆmetro. (3.Vtn ) e (Kta Va1 . . Utilize o m´todo dos m´ e ınimos quadrados para ajustar Kta de tal forma que a soma dos quadrados das diferen¸as entre os valores observados experc imentalmente (Vt1 . a equa¸˜o acima se reduz a ca vt (t) = Vt = KKt Va .44 CAP´ ITULO 3.12) A resposta do sistema a entrada descrita em (3. medindo-se os valores de tens˜o correspondentes. . Vt2 ).. a tens˜o em regime permanente nos terminais do tacˆmetro acoplado a o ao eixo deste motor tamb´m ser´ constante e proporcional ao valor da tens˜o e a a aplicada.. conforme ilustrado na figura 3. Vtn ). Vt2 ).16) O desenvolvimento acima sugere o seguinte procedimento para a identifica¸˜o de Kta : ca Algoritmo 3. . .. . inicialmente. t ≥ 0 Quando t → ∞.Kta Van ). e portanto a equa¸˜o (3.12).5(b) mostra a representa¸˜o ca cartesiana dos pontos (Va1 . . . . A figura 3. Note que. (Van . Vt1 ). MODELAGEM E IDENTIFICACAO ¸˜ e assuma. cujo valor de Kta se deseja ajustar. 2. Procec˜ dendo desta forma obtemos: vt (t) = KKt Va (1 − e− τ t ). Vtn ) bem como a fun¸˜o ca linear Vt = Kta Va .1 1.15) pode-se escrever: Vt = Kta Va . . seja m´ ınima. ao final deste passo. . Vt1 . . (3.10) pode ca ser re-escrita da seguinte forma: Vt (s) = KKt Va . Neste caso Va (s) = Va /s e Ig (s) = 0. Definindo Kta = KKt (3. que n˜o h´ cargas conectadas nos terminais do gera a ador. . Vt1 ). . 2 . . .11) pode ser obtida ` calculando-se a transformada inversa de Laplace da equa¸ao (3.14) 1 (3. ter˜o sido obtidos n o a pares cartesianos: (Va1 ..5(a). (Van . computados a partir da reta ajustada. . o Van .Vt2 .13) o que mostra que quando uma tens˜o de valor constante ´ aplicada a um moa e tor CC.Kta Va2 . (Va2 . Excita-se o motor CC com tens˜es constantes e iguais a Va1 . Vtn . Vt2 .

y2 ). Vtn ) e (b) da reta Vta = Kta Va O m´todo dos m´ e ınimos quadrados ´ um procedimento bastante utilizado e devido a sua simplicidade.1. Ao inv´s disso. . yn ) dos pontos obc servados e aquelas computadas a partir da reta ajustada (αx1 . (xn .5: Representa¸˜o (a) cartesiana dos pontos (Va1 . Uma vez que o valor de Kta tenha sido determinado e se. Vtn ) obtidos experimentalmente. Vt3 Vt Vt = Kta Va 45 Vt2 Vt1 Va Vt2 Vt1 Va Va1 Va2 (a) Va3· · · Van Va1 Va2 (b) Va3 · · ·Van Figura 3. ca (Van . . a ca o valor de Kt pode ser calculado dividindo-se Kta por K. . se Kt vier a ser determinado ent˜o K pode ser determinado fazendo-se K = a Kta /Kt . . . y2 . Vt1 ). . . (Van . αx2 . tanto a identifica¸˜o ca . . ent˜o de acordo com a equa¸˜o (3. apresentaremos ao final desta se¸˜o um algoritmo gen´rico que e ca e permite ajustar o coeficiente angular α de uma fun¸˜o linear y = αx a partir ca de um conjunto de pontos (x1 . . A raz˜o para se adiar a solu¸˜o at´ o final desta se¸˜o se deve a ca e ca ao fato de que. o valor de K vier a ser encontrado. IDENTIFICACAO DOS PARAMETROS ¸˜ Vt Vtn . Vt2 ). as identifica¸˜es de K. .2. Vt2 ). . A esta ala ca a tura n˜o iremos nos deter nos aspectos te´ricos relacionados com a obten¸˜o a o ca ca de uma express˜o matem´tica que nos permita obter Kta em fun¸˜o dos a a pontos (Va1 . . Para o problema que estamos considerando. Vt3 Vtn . . (x2 . . . . Kt a co ¯ e K ser˜o feitas a partir da solu¸˜o de problemas idˆnticos ao descrito no a ca e passo 2 do algoritmo 3. Vt1 ). o que faz com que o ajuste proposto no algoritmo 3. Va2 . por exemplo.ˆ 3. . Analogamente. .1 n˜o imponha qualquer complica¸˜o adicional ao c´lculo de Kta . . .. (Va2 . αxn ) seja m´ ınima. . yn ) tal que a soma dos quadrados das diferen¸as entre as ordenadas (y1 . .15). . y1 ). conforme ser´ visto mais adiante.

Excita-se o motor com tens˜es constantes e iguais a Va1 . Use o m´todo dos m´ e ınimos quadrados para ajusta a reta Vt = Kt W aos pontos obtidos no passo anterior (veja figura 3. A partir da equa¸˜o ` ca ca (3. Assim sendo faremos a identifica¸˜o de ambos os ganhos (K e ca a Kt ) e usaremos o valor obtido para Kta para verificar se os resultados est˜o corretos. Algoritmo 3.6. Van o e para cada um desses valores me¸a os correspondentes valores de W e Vt . o ´ 2. em estado permanente. Kt e Kta independentemente. cujo valor de tens˜o..18) e portanto. . Vt3 ).3 1. qual seja: ca Algoritmo 3. . Utilizando o m´todo dos m´ e ınimos quadrados. . 2. . . o considere a equa¸˜o (3. utilizando-se para isso tacˆmetros digitais opticos. em estado permanente.20) A equa¸˜o (3. (3. . o . tem-se: W (s) = KVa s(τ s + 1) (3. ser´: a ω(t) = W = KVa . a velocidade angular do motor. Wn (rpm). . (W3 . Va2 . calcule o valor de K. sendo descritos e ca no seguinte algoritmo.20) acima mostra que os passos para a identifica¸˜o de Kt s˜o ca ca a idˆnticos aos seguidos na determina¸˜o dos ganhos Kta e K. 2 . . deve-se ter: e Kta ≈ KKt . Excita-se o motor com tens˜es constantes de valores iguais a Va1 .19) Um procedimento an´logo ao algoritmo 3.. identificando-se K.17) Vamos inicialmente proceder a identifica¸˜o de K. conforme ser´ visto a a seguir. Para tanto. isto ´. com Ig (s) = 0 e Va (s) = Va /s. . (W2 .9). Van (V ) e mede-se as correspondentes velocidades angulares do motor W1 . c obtendo-se os pares cartesianos (W1 . conforme ilustrado na figura 3. . . (3. (3.1 pode ser adotado tamb´m a e para a determina¸˜o de K. Vt1 ).8). para ca a uma entrada igual ao degrau de amplitude W ´ dado por: e Vt = Kt W. MODELAGEM E IDENTIFICACAO ¸˜ de K como a de Kt pode ser feita de maneira imediata. Vt2 ).7). W2 .46 CAP´ ITULO 3. 2 Vamos agora a determinar do ganho do tacˆmetro (Kt ). .2 1. Va2 . .

obtidos para K e Kt s˜o compat´ ¯ Finalmente.2. W3 W = KVa 47 W2 W1 Va W2 W1 Va Va1 Va2 (a) Va3· · · Van Va1 Va2 (b) Va3 · · ·Van Figura 3. ´ o valor da tens˜o nos terminais do tacˆmetro para e a o 1 Verifique o que aconteceria se uma carga indutiva ou capacitiva fosse conectada aos terminais do gerador.10) substituindo-se Va (s) por Va /s e ca Ig (s) por Ig /s Aplicando-se o teorema do valor final a express˜o acima.21) que foi obtida a partir da equa¸˜o (3. suponha ca 1 nos terminais do gerador. tem-se que ` a quando t → ∞: ¯ vt (t) = Vt′ = Vt − KKt Ig (3. embora Kt pudesse ter sido determinado a partir dos ganhos Kta e K pela simples divis˜o de Kta por K. . haver´ a circula¸˜o de uma corrente cont´ a ca ınua de valor Ig que ´ fun¸˜o e ca da tens˜o aplicada nos terminais do motor conforme mostra a equa¸˜o abaixo: a ca Vt (s) = ¯ KKt Va KKt Ig − s(τ s + 1) s(τ s + 1) (3. W3 W Wn . . (Va2 . W2 ). . (Van . . ca . a o procedimento descrito no algoritmo 3. . vamos considerar a identifica¸˜o de K. W 1 ). Para tanto. .22) onde Vt = KKt Va . Wn ) e (b) da reta W = KVa ´ E importante ressaltar mais uma vez que. .ˆ 3.6: Representa¸˜o (a) cartesiana dos pontos (Va1 .3 nos permite verificar se os valores a ıveis. Neste que seja conectada uma carga resistiva caso. . IDENTIFICACAO DOS PARAMETROS ¸˜ W Wn .

. Vt3 CAP´ ITULO 3. . Vt3 Vt = Kt W Vt2 Vt1 W W1 W2 (a) W3· · · Wn Vt2 Vt1 W W1 W2 (b) W3 · · ·Wn Figura 3. Vt1 ). . Defina Vt1 = Vt1 − Vt′1 e forme o par ordenado (Ig1 . MODELAGEM E IDENTIFICACAO ¸˜ Vt Vtn . Mantendo a mesma tens˜o aplicada ao motor. . aplica-se ao motor CC uma tens˜o de valor igual a Va1 (V ) e mede-se a tens˜o a a resultante nos terminais do tacˆmetro Vt1 (v).23) pode-se escrever a equa¸˜o acima como ca ¯ ¯ Vt = KKt Ig (3. medindo-se: (i) a corrente que passa a circular por essa resistˆncia (Ig1 (A)) e (ii) a tens˜o nos terminais do tacˆmetro ap´s a inser¸˜o e a o o ca da carga (Vt′1 (V )). Inicialmente. . conecte uma carga a resistiva ao gerador.4 1. sem carga alguma conectada aos terminais do gerador. o 2.24) ¯ que nos permite desenvolver o seguinte algoritmo para a identifica¸˜o de K: ca Algoritmo 3. ca Definindo ¯ Vt = Vt − Vt′ (3. Vtn ) e (b) da reta Vt = Kt W uma entrada igual ao degrau. .14). Vt2 ).48 Vt Vtn . ca (Wn .. .7: Representa¸˜o (a) cartesiana dos pontos (W1 . (W2 . assumindo-se que n˜o h´ cargas conectadas ao a a gerador (conforme equa¸˜o 3. ¯ ¯ 3. . Vt1 ).

dada por: Vg = R. .8: Representa¸˜o (a) cartesiana dos pontos (Ig1 . existe uma rela¸˜o entre a corrente Ig e a tens˜o nos terminais do ca gerador (Vg ).8. .ˆ 3. (Ig2 . (Ig2 . ¯ Vt 3 ¯ Vt2 ¯ Vt1 Ig ¯ Vt2 ¯ Vt1 Ig Ig1 Ig2 (a) Ig3 · · · Ign Ig1 Ig2 (b) Ig3 · · ·Ign ¯ ¯ Figura 3. a carga resistiva tem o mesmo efeito que o atrito viscoso. ¯ 5. ao ¯ ¯ ¯ final.. Ig Como Vg tamb´m ´ proporcional a tens˜o Vt . Vtn ). obtendo. Vt1 ). e. ca Ig = KG KG Kt Vt = W. Vt2 ). c˜ 2 . Utilize o m´todo dos m´ e ınimos quadrados para obter KKt . pode-se escrever: e e ` a Vg = KG Vt . .5). IDENTIFICACAO DOS PARAMETROS ¸˜ ¯ Vt ¯ Vt ¯ ¯ Vt = KKt Ig 49 ¯ Vtn . R R (3. conforme mostrado na figura 3. finalmente. ¯ Vt 3 ¯ Vtn . Vt2 ). . . Repita os passo 1 a 3 acima para outros valores de Va . ca ¯ ¯ ¯ (Ign . (Ign . . . . na equa¸ao (3. . os pares cartesianos (Ig1 . 2 ´ Observa¸˜o 3. representado por f .25) ou seja. para uma carga fornecida por um ca a resistor R.20). usando a equa¸˜o (3..1 E interessante notar que.2. Vtn ) e (b) da reta Vt = KKt Ig 4. . Vt1 ).

y2 ). . y1 ). y1 ). yn = αxn (3. . (x2 . yn ).26) .9(b)). . . onde αxi representa a ordenada do ponto imagem de xi para a fun¸˜o y = αx (veja figura 3. .9: Representa¸˜o (a) cartesiana dos pontos (x1 . yn e αx1 . (x2 . αxn seja m´ ınima. .50 y yn . y3 CAP´ ITULO 3. . MODELAGEM E IDENTIFICACAO ¸˜ y yn . (xn . yn ) e (b) da reta ajustada y = αx Os passos 2. y1 ). . . y2 ). . .4. ca (xn . . note que se os pontos (x1 . . . (xn . . dos algoritmos 3.. y2 ). (x2 . . do algoritmo 3. y2 . .9(a) e considere o problema de se ajustar o coeficiente angular de uma reta y = αx de tal sorte que a soma dos quadrados das diferen¸as entre as ordenadas c y1 . yn ) pertencessem a reta y = αx ter´ ` ıamos: y1 = αx1 y2 = αx2 .. . . conforme mostra a figura 3. ca Inicialmente. . . . e 5. Este problema ca pode ser formulado da seguinte forma: suponha que sejam dados n-pares cartesianos (x1 . αx2 . . se resumem a utilizar o m´todo dos m´ e ınimos quadrados para o ajuste do coeficiente angular de uma fun¸˜o linear y = αx dado n-pares cartesianos.1 a 3. .3. y3 y = αx y2 y1 x x1 x2 (a) x3 · · · xn y2 y1 x x1 x2 (b) x3 · · ·xn Figura 3. .

o sistema de equa¸˜es (3. portanto.32) (3. . i = 1. qual n 1/2 = (et e)1/2 = ( 2 =< e.27) pode-se escrever a equa¸˜o (3. j = 1. yn ) pertencem a uma reta. i = j e. α = αi . e O problema dos m´ ınimos quadrados pode ser enunciado como se segue: calcule α tal que e 2 = y − y 2 = y − αx 2 ˆ 2 (3.28) revela que a co quando os pontos (x1 . n xi (3. portanto. Uma an´lise mais minunciosa do sistema de equa¸˜es (3. . . Seja. definindo a αi = pode-se facilmente concluir que αi = αj . y2 ). . uma co a ca vez que y − αx = 0.30) (3. e > i=1 e2 )1/2 i (3. n.33) onde α ´ o coeficiente angular a ser determinado. .34) 2 2 seja minimizada. 2. .35) . . e=y−y ˆ um vetor representativo do erro entre o vetor y e o vetor y = αx = ˆ αx1 αx2 · · · αxn t yi . i. .ˆ 3.31) Contudo. .28) e onde α ∈ R ´ o coeficiente angular a ser determinado. em geral. .2. definindo-se x = y = x1 x2 · · · y1 y2 · · · xn yn t t 51 (3. . . onde seja: e e 2 representa a norma euclideana do vetor e. . s˜o colineares. i = 1. . n (3. (x2 . . . y1 ).29) (3. (xn . Neste caso.28) n˜o tem solu¸˜o.26) na forma vetorial: ca y = αx (3. 2. 2. ou equivalentemente. ent˜o a a c os vetores x e y est˜o em um mesmo espa¸o vetorial. IDENTIFICACAO DOS PARAMETROS ¸˜ ´ a E f´cil verificar que.

Como a fun¸˜o (3.34) e (3. de fato. .35) na equa¸˜o (3.52 CAP´ ITULO 3. y − αx > = yt y − αy t x − αxt y + α2 xt x = xt xα2 − 2y t xα + y t y. isto ´. ent˜o o valor de α que minimiza a norma a a euclideana do erro entre os vetores     y1 αx1  y2   αx2      y =  . n. xt x. O valor de α pode ent˜o ser calculado a utilizando-se ferramentas b´sicas de c´lculo diferencial. (3. xt y ∈ R e portanto y t x = (y t x)t = xt y.38) ytx yt x α= t = xx x 2 2 (3. yn ) n˜o alinhados. > denota produto produto escalar.34). y1 )..  ˆ (3. x 2 2 (3.39) Em resumo. y t x. . y2 ). .36) que mostra que ao se minimizar e 2 estamos. yn αxn ´ dado por: e α= yt x .  . . 2. .41) . minimizando a soma 2 dos quadrados das diferen¸as entre yi e αxi . podemos dizer que dado um conjunto de pontos (x1 .  e y = αx =  . i = 1. (xn .37) No desenvolvimento acima foi feito uso do fato que y t y. MODELAGEM E IDENTIFICACAO ¸˜ onde e = [ e1 e2 · · · en ]t e < .35) tem-se que o e 2 2= (y1 − αx1 )2 + (y2 − αx2 )2 + · · · + (yn − αxn )2 (3. A partir das express˜es (3.37) ´ quadr´tica e o coeficiente de α2 ´ positivo.37) atinge o seu ca ca m´ ınimo. isto ´: 2 d dα e portanto e 2 2= 2xt xα − 2y t x = 0 (3. c Usando a defini¸˜o (3. ca e a e a abscissa do seu ponto de m´ ınimo corresponde ao valor de α para o qual a ca e derivada de e 2 em rela¸˜o a α se anula. e >=< y − αx. (x2 . .   .. . calulando-se a a e o valor de α para o qual a fun¸˜o definida pela equa¸˜o (3. . obt´m-se: ca ca e e 2 2 = < e. .40)  .

POR M´ INIMOS QUADRADOS 53 3. n. Suponha ainda que os graus dos polinˆmios do numerador e do o denominador (m e n respectivamente) ou sejam conhecidos ou ser˜o arbitraa dos pelo engenheiro de controle. AJUSTE DA F. 2 . . Caso a modelagem do sistema n˜o tivesse sido realizada. bj .3 Seja O m´todo dos m´ e ınimos quadrados no ajuste dos parˆmetros de uma fun¸˜o de transferˆncia a ca e Y (s) = G(s)U (s) (3. + bm−1 s + bm = a(s) sn + a1 sn−1 + . de acordo com a nota¸˜o da ca equa¸˜o (3. 1995) e a com vistas a ter a base necess´ria para justificar formalmente as conclus˜es aqui apresena o tadas. 1. Deve ser ressaltado ainda que a ue ass´ ıntota de baixa freq¨ˆncia (20 log(KKt )) deve ser tra¸ada utilizando-se os ue c valores de KKt determinados a partir do algoritmo 3. . das ass´ ıntotas da curva de m´dulo dos diagramas de Bode o portanto. n = 1. m devem ser detera minados.2. ´ dada por: ca e G(s) = KKt /τ s + 1/τ (3. . ca 3. + an−1 s + an (3. i = 1. b0 = KKt /τ e a1 = 1/τ .3. . j = 0. os valores de m e n poderiam ser arbitrados a O aluno ´ aconselhado a realizar uma revis˜o sobre diagramas de Bode (Basilio. .1 da se¸˜o 3. a freq¨ˆncia de canto ω = 1/τ .1. Por exemplo. . Uma maneira imediata de se obter τ ´ a partir do tra¸ado o e c 2 determinando-se.42) que representa a fun¸˜o de transfereˆncia de um sistema de 1a ordem com ca e ¯ p´lo em 1/τ . . .2.10) obt´m-se: ca e G(s) = KKt Vt (s) = Va (s) τs + 1 (3. . .44) representa a fun¸˜o de transferˆncia de um sistema linear invariante no tempo ca e cujos parˆmetros ai .2 Identifica¸˜o de τ ca Fazendo-se Ig (s) = 0 na equa¸˜o (3. . 2.44).3.T.43) onde G(s) = b(s) b0 sm + b1 sm−1 + .45) e portanto m = 0. . a fun¸˜o de transferˆncia do ca e grupo motor-gerador que estamos considerando.

. + (jω0 )an−1 + an (3. .46) onde Ym0 = |G(jω0 )|Um0 e φ0 ´ a defasagem entre as senoides de entrada e e de sa´ ıda.54 CAP´ ITULO 3. + ca (jω0 )an−1 + an resulta: n m G(jω0 )(jω0 )n + i=1 G(jω0 )(jω0 )n−i ai = i=0 (jω0 )m−i bi (3. Por´m. Multiplicandoca se ambos os membros da equa¸˜o (3. 3 a1 a2 .50) Definindo xt = pode-se escrever: Pode-se mostrar que quanto maiores os valores de m e n. obt´m-se: ca e G(jω0 ) = (jω0 )m b0 + (jω0 )m−1 b1 + . an b0 b1 . . Substituindo s = jω0 na equa¸˜o (3.47) onde |G(jω0 )| = Ym0 /Um0 e φ0 ´ obtido medindo-se a defasagem entre os e sinais de entrada e de sa´ ıda. .43) ´: e ca e yss (t) = Ym0 Sen (ω0 t + φ0 ) (3. bn (3. modelo obtido Sabe-se que a resposta em estado permanente (yss (t)) a uma entrada senoidal u(t) = Um0 Sen ω0 t aplicada ao sistema cuja fun¸˜o de transferˆncia ca e ´ aquela da equa¸˜o (3.47). Portanto.48) por (jω0 )n + (jω0 )n−1 a1 + . + (jω0 )bm−1 + bm (jω0 )n + (jω0 )n−1 a1 + . melhor o ajuste da curva de resposta em freq¨ˆncia do modelo aos pontos obtidos experimentalmente.49) que ´ equivalente a: e n m G(jω0 )(jω0 )n−i ai − i=1 i=0 (jω0 )m−i bi = −G(jω0 )(jω0 )n (3. MODELAGEM E IDENTIFICACAO ¸˜ a partir de um compromisso entre a exatid˜o do ajuste e a complexidade do a 3.48) onde. G(jω0 ) = |G(jω0 )|ejφ0 . de acordo com a equa¸˜o (3.51) . .44). para uma dada freq¨ˆncia ω0 ue G(jω0 ) = |G(jω0 )|ejφ0 (3. valores ue e grandes de n d˜o origem a modelos de ordem elevada. . . . . o que torna dif´ o projeto do a ıcil controlador. .

. G(jω )(jω ) G(jω ) G(jωq )(jωq ) q q q −(jω0 )m .55) (3. n−1 . . . . Comparando as partes real e imagin´ria. . . AJUSTE DA F. y=   ··· n −G(jωq )(jωq )     . G(jω1 )(jω1 ) G(jω1 )   . −(jω0 ) −1  −(jω1 )m .   G(jω0 )(jω0 )n−1 . . i = 1. .52) Repetindo-se tamb´m para as freq¨ˆncias ωi . 2.54) (3. . . POR M´ INIMOS QUADRADOS 55 [ G(jω0 )(jω0 )n−1 . portanto. obt´m-se a e ue e seguinte equa¸˜o matricial: ca Mx = y (3. podem ser escritos como: M = Re(M ) + jIm(M ) e y = Re(y) + jIm(y) e. . .T.  . . G(jω0 )(jω0 ) G(jω0 ) − (jω0 )m .59) (3.3.  . resulta: a Re(M )x = Re(y) Im(M )x = Im(y) (3. . .56) M ∈ C (q+1)×(m+n+1) e y ∈ C q+1 .53) onde M = M1 M2 . . m . . . . . . . Uma vez que a matriz M e o vetor y s˜o a complexos.    M1 =   (3.58) (3.57) . . q.3.56) ´ idˆntica a: ca e e [Re(M ) + jIm(M )]x = Re(y) + jIm(y). . a equa¸˜o (3. . . . . . . . . −(jω1 ) −1  M2 =  . − (jω0 ) − 1 ]x = = G(jω0 )(jω0 )n (3. . . −(jω ) −1 −(jωq ) q   −G(jω0 )(jω0 )n  −G(jω1 )(jω1 )n  . . G(jω0 )(jω0 ) G(jω0 ) G(jω1 )(jω1 )n−1 .

b ∈ R2(q+1) e x ∈ Rm+n+1 . os graus dos polinˆmios do numerador e denominador de G(s). para o sistema de equa¸˜es (3. se existir x tal que Ax = b ent˜o e 2 = 0. (3. MODELAGEM E IDENTIFICACAO ¸˜ Ax = b onde A= Re(M ) Im(M ) e b= Re(y) Im(y) .62) e (3. q ≫ m + n. O fato da matriz A ter um n´mero de linhas muito maior que u o n´mero de colunas torna essa possibilidade bastante remota.63) Considere o seguinte problema: encontre x tal que e 2 seja m´ ınima. Antes de se propor uma solu¸˜o para a equa¸˜o (3. respecca ue tivamente. o que implica u que.63) tem-se: co e 2 2 = < Ax − b. Em contrapartida. m e n n˜o devem ser ue a demasiadamente grandes pois aumentam significativamente a complexidade do modelo.61) A ∈ R2(q+1)×(m+n+1) . Portanto. geralmente Ax = b.60) (3. lembre-se a o de que q + 1 representa o n´mero de freq¨ˆncias usadas no experimento para u ue a obten¸˜o da resposta em freq¨ˆncia do sistema e m e n denotam.60) tem solu¸˜o. 2 Note que. em geral. o Para um melhor ajuste da curva de resposta em freq¨ˆncia do modelo aos ue valores obtidos experimentalmente. ˆ = Ax b (3. Seja. o que implica que a 2 mesmo no caso em que o sistema de equa¸˜es (3.56 que ´ equivalente a: e CAP´ ITULO 3. Observe ainda que. e a ca A partir das equa¸˜es (3.60) ´ oportuno fazer ca ca e uma an´lise das dimens˜es das matrizes envolvidas. um n´mero de linhas muito maior que o n´mero de colu u unas. Ax − b > = (Ax − b)t (Ax − b) = x A Ax − x A b − b Ax + b b t t t t t t (3. na pr´tica.62) e defina e = ˆ − b. Para tanto.64) . portanto. o que implica que a matriz a A possui. b (3.60) ter solu¸˜o ´ co ca e necess´rio que o vetor b possa ser escrito como uma combina¸˜o linear das a ca colunas de A. o m´todo co ca e dos m´ ınimos quadrados tamb´m levar´ a essa solu¸˜o. q deve ser grande o suficiente para varrer todas as freq¨ˆncias de interesse.

x2 .69)     ∂y = ∂x      . . A derivada de y ca em rela¸˜o ao vetor x ´ definida como: ca e   ∂y  ∂x1  ∂y   ∂x ∂y =  . onde b ∈ R ent˜o a ∂y =b ∂x Prova: Seja bt = bn xn . Seja y = f (x1 . isto ´ H t = H. onde H ´ uma matriz sim´trica.2 ∂x  . . . bn     = b.  . Ent˜o y = bt x = b1 x1 + b2 x2 + . De acordo com a nota¸˜o introduzida na equa¸˜o (3. .65) Antes de abordar o problema de minimiza¸˜o proposto em (3. ca (i) n = 2. AJUSTE DA F. . Neste caso y= x1 x2 h11 h12 h12 h22 x1 x2 = h11 x2 + 2h12 x1 x2 + h22 x2 1 2 (3.   ∂y ∂xn          (3.66).67) a b1 b2 . e portanto: (3.70) (3. .  (3.68) . ent˜o ∂y = 2Hx ∂x Prova: Por indu¸˜o finita sobre n. . . bn . ∂y ∂xn        =      b1 b2 . . +  ∂y ∂x1 ∂y ∂x2 e e e a (b) Se y = xt Hx.3.66) 2.3. xn ) uma fun¸˜o de Rn em R.65). tem-se que: ca ca t n (a) Se y = b x. POR M´ INIMOS QUADRADOS 57 e como xt At b ∈ R ent˜o xt At b = (xt At b)t = bt Ax. o que nos permite escrever: a e 2 2 = xt At Ax − 2bt Ax + bt b (3. .T. . alguns ca conceitos devem ser relembrados: 1. .

n+1 = xt Hn xn + xn+1 ht xn + xt hn+1 xn+1 + x2 hn+1.n · · · x1 x2 · · · xn h1. . h12 h22 . .n+1 · · · hn.n+1 h1.n+1 Definindo  h11 h12 .n+1 (3. . a (iii) Seja agora H ∈ R(n+1)×(n+1) . a a e se y = xt Hx ent˜o ∂y/∂x = 2Hx.74) t xt Hn + xn+1 ht n n+1 xn hn+1 + xn+1 hn+1.n · · · hnn hn.n+1      . MODELAGEM E IDENTIFICACAO ¸˜  ∂y  ∂x1  =  = ∂y ∂x2 2h11 x1 + 2h12 x2 2h12 x1 + 2h22 x2 x1 x2 = 2Hx (3.n+1 · · · hn.n+1 n n+1 n n+1 = xt Hn xn + 2xn+1 ht xn + x2 hn+1. . . . .69) seja v´lida quando H ∈ Rn×n .72) .71) = 2 h11 h12 h12 h22 (ii) Assuma que a express˜o (3. isto ´. .73) ent˜o y = xt Hx ´ equivalente a: a e y = = xt xn+1 n Hn hn+1 t hn+1 hn+1. . a n n n n+1 . isto ´: e   h11 h12 ··· h1n h1. hnn      ht n+1   Hn =   = xn = h1n h2. . . . H= (3. . .n+1 h2.n+1 n n+1 n+1 onde para a obten¸˜o da ultima express˜o fez-se uso do fato de que como ca ´ a xt hn+1 ∈ R ent˜o xt hn+1 = (xt hn+1 )t = ht xn . .n+1 h2. . . ··· ··· h1n h2n .n+1 hn+1.    h1n  h2.n+1 xn xn+1 xn xn+1 (3.58 Portanto: ∂y ∂x CAP´ ITULO 3.n+1  h12 h22 ··· h2n h2.

1. . portanto.3. n Umi . ca a ca e onde b(s) = b0 sm + b1 sm−1 + . .65). portanto. Conseq¨entemente. . . an b0 b1 . em condi¸˜es de considerar o problema de encontrar co x ∈ Rm+n+1 que minimiza e 2 expressa pela equa¸˜o (3. . . igual a m + n + 1 e. + bm−1 s + bm e a(s) = sn + a1 sn−1 + . medindo-se as amplitudes das respostas correspondentes (Ymi ) e as defasagens em rela¸˜o as respectivas senoides de entrada (φi ) e forme ca ` G(jωi ) = Ymi jφi e . . agora. m + n + 1 ≪ 2(q + 1). como.3.T. ∂y/∂x ser´: a   ∂y ∂x  =  = 2 59 ∂y ∂xn  = ∂y  ∂xn+1 2Hn xn + 2xn+1 hn+1 2ht xn + 2hn+1.78) O desenvolvimento acima nos permite escrever o seguinte algoritmo para a identifica¸˜o dos parˆmetros da fun¸˜o de transferˆncia G(s) = b(s)/a(s). Observe que.n+1 xn+1 n+1 xn xn+1 = 2Hx (3.76) e. . Excite o sistema com fun¸˜es senoidais u(t) = Umi Sen (ωi t). bm−1 bm t 2. o vetor x que minimiza e 2 ser´: u a 2 x = (At A)−1 At b.75) Hn hn+1 ht hn+1. . i = co 0. o valor de x que minimiza e ser´ tal que a (3. . . podemos escrever: ∂ e ∂x 2 2 = 2(At A)x − 2At b 2 2 (3. sendo desta e a forma invers´ ıvel. .5 1.77) 2(At A)x − 2At b = 0. em geral. + an−1 s + an : Algoritmo 3. POR M´ INIMOS QUADRADOS Desta forma. A partir dos ca 2 resultados 2(a) e 2(b). . .n+1 n+1 2 Estamos. AJUSTE DA F. i = 1. At A ´ n˜o singular. Arbitre valores para m e n e forme o vetor x= a1 a2 . . (3. 2. e geralmente. . q. o posto de A ´.

. . MODELAGEM E IDENTIFICACAO ¸˜ 3. . . . (ii) excita¸˜o do ` ca ca sistema com sinais senoidais de diferentes freq¨ˆncias objetivando-se obter a ue . .  . . . . . −(jωq )m . e   M2 =   e os vetores y e b.  −G(jω0 )(jω0 )n  −G(jω1 )(jω1 )n   y=   ··· n −G(jωq )(jωq )  b= Re(y) Im(y) . n−1 . −(jω1 ) −1   . G(jω )(jω ) G(jω ) G(jωq )(jωq ) q q q   −(jω0 )m .60 CAP´ ITULO 3.  . ´ 2 3.4 Experimento para identifica¸˜o da fun¸˜o de ca ca transferˆncia do grupo motor-gerador e Uma vez que j´ dispomos do modelo matem´tico do sistema. G(jω0 )(jω0 ) G(jω0 ) G(jω1 )(jω1 )n−1 . . . . Construa as matrizes M =  M1 M2 e A. . . e 4. . Kt e K. . . Este experimento ´ comca e e posto. G(jω1 )(jω1 ) G(jω1 )   . Calcule x = (At A)−1 At b.  . Observe que os coeficientes de a(s) correspondem as n primeiras componentes de x e os coeficientes de b(s) s˜o obtidos ` a tomando-se as m + 1 ultimas componentes de x. . podemos passar a a agora ao laborat´rio para realizarmos os ensaios necess´rios a identifica¸˜o o a ` ca da fun¸˜o de transferˆncia do grupo motor-gerador. . . basicamente de duas partes: (i) excita¸˜o do motor CC com tens˜es ca o ¯ constantes com vistas a identifica¸˜o dos ganhos K. −(jωq ) −1 A= Re(M ) Im(M ) . . .   M1 =    G(jω0 )(jω0 )n−1 . . . . −(jω0 ) −1 −(jω1 )m .

1. Conecte um dos terminais do mult´ ımetro (funcionando como amper´ ımetro) a um dos terminais da carga (resistˆncia de 0. Mantendo a mesma tens˜o Va . a c a 4. Oscilosc´pio digital com. K e Kt : ` ca a 1. Em seguida. e 7.3. 5Ω) o outro terminal e da resistˆncia a um dos terminais do gerador.4. N˜o o fa¸a agora. o 3.1. Tendo a leitura sido feita. Excite o motor com o primeiro valor de tens˜o (Va ) sugerido na primeira a coluna da tabela 3.4. dois canais.4. o ´ preenchendo. Resistˆncia de 0. e . Gerador de fun¸˜es. o 2. me¸a a tens˜o nos terminais do tacˆmetro c a o (Vt ) e a velocidade angular do motor (ω). tamb´m utilizando-se o diagrama polar.1. Fonte de tens˜o CC (regul´vel). o terminal de entrada do mult´ ımetro dever´ ser conectado ao a outro terminal do gerador. 5. ımetros digitais (3). abra o circuito geradormult´ ımetro-resistˆncia. a o respectivamente nas colunas 5 e 6 da tabela 3. Conecte as sa´ ıdas da fonte de tens˜o CC aos terminais do motor. Isto ser´ feito mais adiante. anotando na segunda coluna o valor da tens˜o efetia vamente aplicada. medindo a corrente que circula na carga e (Ig ) e o novo valor da tens˜o nos terminais do tacˆmetro (Vt′ ). Note que para que o circuito e seja fechado. K e Kt ca S˜o os seguintes os passos necess´rios para a obten¸˜o dos dados que levam a a ca ¯ a determina¸˜o dos parˆmetros K. ser˜o utilizados os seguintes equipamentos: a 1. Tacˆmetro optico. 5Ω e 3. feche o circuito formado pelo gerador.4. a partir da curva de m´dulo dos ue o diagramas de Bode e. utilizando um tacˆmetro optico. EXPERIMENTO PARA IDENTIFICACAO ¸˜ 61 resposta em freq¨ˆncia do sistema para que. Conecte um mult´ ımetro (funcionando como volt´ ımetro) a sa´ da fonte ` ıda de tens˜o e um outro mult´ a ımetro (funcionando tamb´m como volt´ e ımetro) aos terminais do tacˆmetro. respectivamente. a mult´ ımetro e pela resistˆncia de 10Ω. e No experimento para a identifica¸˜o da fun¸˜o de transferˆncia do grupo ca ca e motor-gerador. co a a 3.1 ¯ Experimento para determina¸˜o de K.4. anotando-os. pelo menos. Deve-se tomar o cuidado de certificar de que n˜o houve altera¸˜o no valor de Va ap´s a introdu¸˜o a ca o ca da carga no circuito. Mult´ 6. a 2. o ´ 4. identificar τ . 5. as colunas 3 e 4 da tabela 3. Amplificador de potˆncia.

5 9. variando a freq¨ˆncia da tens˜o senoidal fornecida pelo gerador ue a de fun¸˜es de forma a excitar o motor com valores de freq¨ˆncia pr´ximos co ue o daqueles sugeridos na primeira coluna da tabela 3.2 Experimento para obten¸˜o da resposta em freq¨ˆncia ca ue Para a obten¸˜o da curva de resposta em freq¨ˆncia do sistema ´ necess´rio ca ue e a excitar o motor com uma tens˜o senoidal.5 Valida¸˜o do modelo ca Tendo sido determinados os parˆmetros da fun¸˜o de transferˆncia do sisa ca e tema.4. o passo seguinte ´ a valida¸˜o do modelo obtido. que fornecer´.e. MODELAGEM E IDENTIFICACAO ¸˜ Va (V) medida Vt (V) ω (rpm) Ig (mA) Vt′ (V ) ¯ Tabela 3.1: Experimento para determina¸˜o dos parˆmetros K.62 Va (V) sugerida 6. a potˆncia co e a a e necess´ria para o motor girar. 3.0 CAP´ ITULO 3. Em seguida. Conecte os terminais do gerador de fun¸˜es aos terminais de entrada do amplificador de potˆncia.0 10.0 7.2.5 12. o o a e e Para superar este problema. Kt e K ca a 6. siga os passos seguintes a para obter os dados necess´rios para o levantamento da curva de resposta em a freq¨ˆncia do sistema: ue co 1. Excite o motor com uma tens˜o senoidal de aproximadamente 10V de a amplitude. faz-se passar o sinal fornecido pelo gerador de fun¸˜es por um amplificador de potˆncia. Com isso em mente. o 3. complete as demais colunas da tabela. Conecte os terminais de sa´ do amplificador de potˆncia ao canal 1 ıda e do digitalizador e os terminais do tacˆmetro ao canal 2 do digitalizador. ent˜o. Repita os passos 4 e 5 para os demais valores de tens˜o sugeridos na a tabela 3.1. 3. Em seguida conecte os terminais de sa´ do e ıda amplificador de potˆncia aos terminais do motor. verificar se os e ca .4. Os geradores de fun¸˜es de que o a co laborat´rio disp˜e n˜o tˆm potˆncia suficiente para fazer o motor funcionar. e 2. i.

50 1. Os ganhos K e Kt foram identificados a partir do ajuste dos coeficientes angulares de retas que passam pela origem.50 11. VALIDACAO DO MODELO ¸˜ f (Hz ) sugerida 0.65 0.1. Kt .10 5.30 0.3. a Note que: 1.30 6.0 20.90 9. identificado de acordo com o ca algoritmo 3.5 15. o sistema a a a real.2 e 3.40 0.8 13. com precis˜o aceit´vel. K e τ .50 0. de acordo com os algoritmos 3.20 0.2: Tabela para levantamento da resposta em freq¨ˆncia do sistema ue motor-gerador-tacˆmetro o valores calculados a partir dos experimentos de identifica¸˜o s˜o tais que ca a o modelo matem´tico adotado represente.3 18.40 3. A exatid˜o dos valores encontrados para K e Kt pˆde ser verificada a o a partir da compara¸˜o com o produto KKt . .0 f (Hz ) medida Va (V ) Vt (V) Vt /Va φ (rad) 63 Tabela 3.10 0.3. No caso do grupo motor-gerador (sistema adotado para este laborat´rio) o ¯ foram realizados ensaios para se determinar os parˆmetros K.85 2.10 1.85 1.5.10 4.

9. comparando-se os resultados dessas com o co desempenho do sistema real. O valor de τ ser´ escolhido a partir a de simula¸˜es em computador. Isto permitir´ que se encontre poss´ a a ıveis discrepˆncias entre os valores obtidos pelos trˆs m´todos. verificar c se os resultados obtidos nos ensaios de laborat´rio foram de fato utilizados o no c´lculo de K. 3 Excite novamente o grupo motor-gerador com um pulso de tens˜o de a amplitude igual a 10V com freq¨ˆncia de aproximadamente 0. obtido de acordo com o algoritmo 3. os valores de K e Kt obtidos experimentalmente podem ser adotados como representativos do modelo. MODELAGEM E IDENTIFICACAO ¸˜ ¯ 2. Kt e KKt . que sejam realizadas algumas simula¸˜es a co em computador e comparar o resultado destas com o desempenho do sistema real. o aluno deve retornar ao laborat´rio para realizar noca o vamente aqueles experimentos cujos valores obtidos inicialmente apresentam maiores discrepˆncias. A constante de tempo τ foi calculada de duas formas: (i) a partir da determina¸˜o da freq¨ˆncia de canto do diagrama de m´dulo de Bode e ca ue o (ii) a partir do ajuste do diagrama polar de KKt /(τ s + 1) a um conjunto de pontos obtidos experimentalmente. para a valida¸˜o do modelo matem´tico do grupo motorca a gerador. Isto requer.1. foi identificado de uma maneira apenas (algoritmo 3.3 e de Kta . 3Hz. proceda da seguinte forma: 1 Encontre o erro percentual (EKKt (%)) entre os produtos de K eKt . evitando que todos a e e os experimentos realizados para a determina¸˜o de K. por sua vez. a 2 Excite o grupo motor-gerador com um pulso de tens˜o de amplitude a igual a 10V com freq¨ˆncia de aproximadamente 0. inicialmente. deve-se. O valor de K.4 e representado novamente na figura 3. Caso n˜o tenha sido encontrado qualquer erro de a manipula¸˜o dos dados.4). No meio ue 4 Esta aquisi¸˜o de dados pode ser feita utilizando-se um computador com placas de ca aquisi¸˜o de dados ou um oscilosc´pio digital com capacidade de armazenamento em disco. com razo´vel grau de a confian¸a. 3. Kt e Kta tenham que ca ser realizados novamente. Caso o erro seja maior que 1%.79) Se o erro for menor que 1%. 3Hz e fa¸a a aquisi¸˜o dos ue c ca 4 de entrada (v (t)) e de sa´ sinais ıda (vt (t)) e dos correspondentes instantes a de tempo (t). dado na figura 3. Assim sendo. obtidos a partir dos algoritmos 3. ca o .2 e 3.64 CAP´ ITULO 3. ent˜o. isto ´: e EKKt (%) = KKt − Kta 100(%) KKt (3.

crie dois vetores colunas t e va. escolha aquela que mais se aproxima da resposta do sistema real t × vt(t). que corresponde a tens˜o nos terminais do tacˆmetro para ca ` a o o modelo obtido. as curvas t × va (t). ıda 4(a) Com os valores de K e Kt .3. Para tanto.10: Diagrama de blocos representativo do modelo matem´tico do a grupo motor-gerador-tacˆmetro o do pulso. sendo t e va os parˆmetros. cujas componentes s˜o as correspondentes abscissas e ordenadas do sinal de ena trada e utilize o bloco from workspace como entrada. fa¸a. ap´s a simula¸˜o ser˜o gerao ca a dos dois vetores: ts.10 no qual o sinal de entrada se´ t × va (t) a (obtidos no passo 2). obtido a partir do diagrama de m´dulo de Bode. Realize uma simula¸˜o tendo como instantes inicial e final. O valor de τ que corresponde ao modelo que produziu a curva mais . 4(b) Proceda de forma idˆntica a anterior. construa um modelo o em SIMULINK equivalente ao diagrama de blocos representativo do grupo motor-gerador dado pela figura 3. conecte a resistˆncia de 0. 4(c) Entre as curvas ts × vt (ts ) (representadas graficamente nos item 4(a) e 4(b)).5. como no item anterior. Represente. Note que. a t × vt (t) e ts × vt (ts ). respectivamente. e com o valor de τ . Em seguida. obtidos no passo 1. a aquisi¸˜o dos c ca sinais de entrada (va (t) e ig (t)) e de sa´ (vt (t)). em um mesmo gr´fico. t(1) a ca e t(length(t)). que corresponde aos instantes de tempo utilizados na simula¸˜o e vts. onde ts ´ um intervalo cujos extemos s˜o ts(1) e e a ts(length(ts). 5Ω aos terminais do motor e me¸a a e c corrente de carga. VALIDACAO DO MODELO ¸˜ Ig (s) 65 ¯ K Va (s) K + − 1 τ s+1 W (s) Kt Vt (s) Figura 3. por´m com o valor de τ obtido e ` e a partir do ajuste do diagrama polar.

t × vt (t) e a ts ×vt (ts ). em um mesmo gr´fico. utilizando o mesmo modelo constru´ no item 4(a). (ii) t e ig (perturba¸˜o). e para que o modelo adotado possa ser considerado satisfat´rio. va. crie agora quatro vetores colunas.66 CAP´ ITULO 3. essas curo vas devem ser bastante pr´ximas. e a ¯ Ao final deste passo ficar´ claro se h´ algum erro em K. ig e vt correspondente aos dados armazenados para t. va (t). Em seguida. as curvas t × va (t). excite o sistema com blocos from workspace cujos ıdo parˆmetros ser˜o: (i) t e va (entrada de referˆncia). t. ig (t) e vt (t). o a 5 A partir dos dados obtidos ao final do passo 3. MODELAGEM E IDENTIFICACAO ¸˜ pr´xima ser´ o escolhido. Qualquer discrepˆncia mais acentuada o a pode desqualificar o experimento de identifica¸˜o ou at´ mesmo o modelo ca e matem´tico. respectivamente. Por´m. a a ´ de se esperar que as curvas obtidas no trabalho de simula¸ao n˜o sejam E c˜ a exatamente coincidentes com as curvas obtidas para o sistema real. onde ts ´ um intervalo cujos extemos s˜o ts(1) e ts(length(ts)). a a e ca Represente. a . levando a necessidade de escolha de um modelo a ` n˜o-linear. por exemplo. t × ig (t).

e rejeite e (tamb´m assintoticamente) uma perturba¸˜o.e. ca Este cap´ ıtulo est´ estruturado da seguinte forma: na se¸˜o 4. o passo seguinte ´ projea e tar um controlador que satisfa¸a as seguintes exigˆncias: (i) estabilidade. considerada a possibilia a dade de se fazer a compensa¸˜o em malha aberta para.e. D(s). o motor.Cap´ ıtulo 4 Projeto do controlador de velocidade Obtido um modelo matem´tico para o sistema. Como finalidade did´tica. projetar ca um sistema de controle realimentado. (v) bom desempenho transit´rio. (iii) rejei¸˜o assint´tica de perturba¸˜es (i. em seguida. cometidos durante a fase de identifica¸˜o. ap´s um ‘pequeno’ transit´rio. conforme a figura 4. quando uma carga for inca o co serida nos terminais do gerador. ser´. ca ca (iv) o sistema compensado n˜o deve ter o seu desempenho comprometido a por eventuais erros no modelo. c e (ii) rastreamento assint´tico de um sinal de referˆncia (i. girar nessa velocidade). em estado permanente. inicialmente. R(s). o ca que significa dizer que o sistema tem elevada robustez ou equivalentemente pouca sensibilidade a varia¸˜es nos parˆmetros da fun¸˜o de transferˆncia da co a ca e planta) e.1 ser˜o a ca a apresentados os fundamentos te´ricos necess´rios para o projeto de um cono a trolador que rastreie assintoticamente um sinal de referˆncia. Esta abordagem ter´ a finalidade de a ilustrar os benef´ ıcios da realimenta¸˜o num sistema de controle. o motor deve.1. e ca 67 . o o deve permanecer com a mesma rota¸˜o de antes da introdu¸˜o da carga). finalmente. o O objetivo deste cap´ ıtulo ´ desenvolver o projeto de um controlador de e velocidade para o grupo motor-gerador que satisfa¸a as condi¸˜es (i) a (v) c co acima. para uma dada o e velocidade.

a os alunos s˜o aconselhados a revis´-los. Sejam R(s). co e sendo nG (s) nK (s) G(s) = e K(s) = . (4.1. Vale lembrar que um bom dom´ c e ınio do m´todo e do lugar das ra´ ´ fundamental para o projeto de compensadores.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 a o a o serem determinados.68 CAP´ ITULO 4. principalızes e mente no que se refere a melhoria da resposta transit´ria. D(s) e Y (s) as transformadas de Laplace .1 Fundamentos te´ricos o Rastreamento e rejei¸˜o assint´tica de sinais de dinˆca o a mica conhecida Considere o sistema realimentado da figura 4.2 ser´ considerado o projeto de um controlador que satca a isfa¸a as exigˆncias (i) a (v). Na se¸˜o 4.1 onde. respectivamente.1 4. a a 4. Caso esses assuntos n˜o estejam bem sedimentados. Outros conceitos ` o tamb´m importantes s˜o aqueles refentes a resposta transit´ria de um sise a ` o tema de segunda ordem. PROJETO DO CONTROLADOR DE VELOCIDADE D(s) R(s) + − E(s) + − Y (s) K(s) G(s) Figura 4.1 ´ a chamada sensibilidade de um o ca e sistema em rela¸˜o a varia¸˜o de parˆmetros da fun¸˜o de transferˆncia da ca ` ca a ca e planta.1: Diagrama de blocos para o projeto de controladores com objeticos de rastreamento assint´tico de um sinal referˆncia e rejei¸˜o assint´tica de o e ca o perturba¸˜o ca Outro t´pico a ser abordado na se¸˜o 4. G(s) e K(s) representam as fun¸˜es de transferˆncias da planta e do controlador.

7) (4. considere a seguinte fatora¸˜o: co e ca . Y (s) pode ` ca ser escrito como: Y (s) = YR (s) − YD (s) (4.´ 4. que se deve a perturba¸˜o externa D(s).7)–(4. α(s) e γ(s) s˜o tamb´m polinˆmios. FUNDAMENTOS TEORICOS dos sinais de referˆncia. pode-se observar que o sinal de sa´ Y (s) ca ıda possui duas componentes: (i) YR (s). conseq¨entemente: u Y (s) = G(s)K(s) G(s) R(s) − D(s). 1 + G(s)K(s) 1 + G(s)K(s) (4. respectia o a vamente).1. acima.9). que ´ devida ao sinal de referˆncia R(s) e e e (ii) YD (s). o que equivale a exigir que t→∞ lim yD (t) = 0 lim eR (t) = 0 (4. Portanto.9) e t→∞ onde eR (t) = yR (t) − r(t).3) A partir da equa¸˜o (4. pode-se escrever: Y (s) = −G(s)D(s) + G(s)K(s)R(s) − G(s)K(s)Y (s) e.8) (4.2) β(s) e δ(s) s˜o polinˆmios conhecidos (dinˆmicas de R(s) e D(s). como ser´ visto mais a e o e a adiante. onde R(s) = γ(s) α(s) e D(s) = .5) onde 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. por´m. β(s) δ(s) 69 (4. a a A partir do diagrama de blocos da figura 4. Antes. Os problemas do rastreamento assint´tico de um sinal de referˆncia e da o e rejei¸˜o assint´tica de um sinal externo de perturba¸ao (ambos de dinˆmicas ca o c˜ a conhecidas) ser˜o abordados considerando-se as condi¸˜es impostas pelas a co equa¸˜es (4. por´m. n˜o s˜o necessariamente conhecidos. de perturba¸˜o externa e de sa´ e ca ıda.1.4).4) (4.6) O rastreamento e a rejei¸˜o de perturba¸˜es externas (assintoticamente) ca co requerem que y(t) → r(t) quando t → ∞.

Teorema 4.6) pode ser escrita como: a YD (s) = Note que nG (s)dK (s) + dG (S)dK (s) = pC (s). a exco co press˜o (4. β(s) conhecido. s˜o apresena tadas no seguinte teorema. onde p− (s) o ´ um polinˆmio de Hurwitz cujos zeros s˜o os zeros de p(s) com parte real e o a e o a negativa e p+ (s) ´ um polinˆmio cujos zeros s˜o os zeros de p(s) com parte real positiva ou nula. se e e a ca somente se nG (s)dK (s) = χ(s)δ+ (s) (4. lim yD (t) = lim sYD (s) = 0 (4. Como. se existir um polinˆmio χ(s) tal que nG (s)dK (s) = χ(s)δ+ (s) o 2 0 teorema 4. tem-se que. o a e o portanto. e o Prova: Usando as nota¸˜es das equa¸˜es (4.14) t→∞ s→0 nG (s)dK (s) γ(s) + (s)δ − (s) [nG (s)dK (s) + dG (S)dK (s)] δ (4.1 rejeite co a assintoticamente um sinal D(s) = γ(s)/β(s).1 acima mostra que para que haja rejei¸˜o assint´tica de ca o um sinal externo de perturba¸˜o aplicado na entrada da planta. (4. onde p− (s) = s + 1 e p+ (s) = s(s − 3).11) onde δ+ (s) ´ um polinˆmio formado com os zeros de δ(s) com parte real e o positiva ou nula e χ(s) ´ um polinˆmio qualquer. K(s) estabiliza G(s) ent˜o pC (s) ´ um polinˆmio de Hurwitz e.70 CAP´ ITULO 4. Ent˜o a lim yD (t) = 0.10) t→∞ isto ´.13) onde pC (s) denota o polinˆmio caracter´ o ıstico de malha fechada. as dinˆmicas ca a desse sinal que possuem parte real positiva ou nula devem ser zeros da planta δ+ (s) .1 ´ est´vel e seja D(s) = γ(s)/δ(s). isto ´. por hip´tese. ou equivalentemente. PROJETO DO CONTROLADOR DE VELOCIDADE seja p(s) um polinˆmio e fatore p(s) como p(s) = p− (s)p+ (s).12) se e somente se for um divisor de nG (s)dK (s). Por exemplo. o polinˆmio p(s) = s3 − 2s2 − 3s pode o ser fatorado como p− (s)p+ (s). K(s) ´ e e tal que o sistema realimentado da figura 4.1) e (4. o sistema rejeitar´ assintoticamente o sinal de perturba¸˜o d(t). (4.2). e a δ(s) conhecido. Condi¸˜es necess´rias e suficientes para que o sistema da figura 4.1 Seja K(s) um controlador que estabiliza G(s).

isto ´.18) . e 1 ¯ K(s) = + K(s) (4. levando a e a ` ` condi¸˜o necess´ria e suficiente do teorema seguinte. somente em casos especiais. Ent˜o e e a t→∞ lim eR (t) = 0. + (s)β − (s) [nG (s)nK (s) + dG (s)dK (S)] β (4.16) isto ´. FUNDAMENTOS TEORICOS 71 ou p´los do controlador.15) δ (s) ¯ ¯ ¯ onde K(s) = nK (s)/dK (s). β(s) conhecido. Vale ressaltar que. nK (s) e dK (s) ser˜o escolhidos de tal forma que ¯ ¯ a ¯K (s)δ+ (s) seja um polinˆmio de Hurwitz. essas o dinˆmicas ser˜o tamb´m zeros da fun¸˜o de transferˆncia da planta e pora a e ca e tanto. ´ ca o ca e mais comum fazer com que essas dinˆmicas sejam tamb´m p´los do controa e o lador.6) e (4.´ 4.1.1) tem-se: ca ca ER (s) = dG (s)dK (s) α(s) .2 Seja K(s) um controlador para o qual o sistema realimentado da figura 4. (4.9). e o Prova: A partir das equa¸˜es (4.1 seja est´vel e assuma que a transformada de Laplace do sinal a de referˆncia r(t) ´ R(s) = α(s)/β(s). o passo seguinte ´ consio ca e derar o problema do rastreamento assint´tico de um sinal de referˆncia.17) e o onde β + (s) ´ um polinˆmio formado com os zeros de β(s) com parte real positiva ou nula e η(s) ´ um polinˆmio qualquer. se e somente se e dG (s)dK (s) = η(s)β + (s) (4. pode-se escrever: co ER (s) = R(s) − YR (s) 1 = R(s) 1 + G(s)K(s) e usando a nota¸˜o da equa¸˜o (4. A o e abordagem deste problema ´ feita de forma an´loga a anterior. para se conseguir a rejei¸˜o assint´tica de um sinal de perturba¸˜o. nG (s)¯ K (s) + dG (s)d n o Uma vez obtida uma condi¸˜o necess´ria e suficiente para a rejei¸˜o ca a ca assint´tica de um sinal externo de perturba¸˜o. ca a Teorema 4.19) (4. y(t) rastreia assintoticamente r(t).

para que sejam e ca atingidos. se existir um polinˆmio η(s) tal que dG (s)dK (s) = η(s)β + (s). isto ´. fazendo-se K(s) = 1 ¯ K(s) mmc[β + (s). dG (s)d a Finalmente. nK (s) e dK (s) ser˜o tais que nG (s)¯ K (s) + ¯ ¯ a n ¯K (s)β + (s) seja est´vel.24) s . simultaneamente. δ+ (s)] denota o m´ ınimo m´ltiplo comum de β + (s) e δ+ (s) u ¯ ¯ ¯ e K(s) = nK (s)/dK (s). de d(t). R(s) = A/s e D(s) = B/s.2. Portanto.22) onde mmc[β + (s).1: Suponha que para o sistema realimentado da figura 4. ou equivalentemente. Portanto. para que haja rastreamento assint´tico de o um sinal de referˆncia. os objetivos de rastreamento assint´tico de r(t) o e rejei¸˜o. com um mesmo controlador.23) Exemplo 4. note que os objetivos de rastreamento assint´tico de um sinal o − (s)β + (s)] e a rejeic˜o assint´tica de um sinal de referˆncia R(s) = α(s)/[β e a o externo de perturba¸˜o D(s) = γ(s)/[δ+ (s)δ− (s)] ser˜o. portanto. ent˜o pc (s) = nG (s)nK (s) + o a dG (s)dK (s) ´ um polinˆmio de Hurwitz e. Observe que. onde A. tamb´m assint´tica. o rastreamento assint´tico ser´ a o a obtido fazendo-se: 1 ¯ K(s) = + K(s) (4. somente o em casos muito especiais haver´ coincidˆncia dos p´los da planta com essas a e o dinˆmicas. respectivamente.20) u se e somente se dG (s)dK (s) for m´ltiplo de β + (s). δ+ (s)] n seja um polinˆmio de Hurwitz. o (4. PROJETO DO CONTROLADOR DE VELOCIDADE Como. as dinˆmicas desse sinal com parte real positiva ou e a nula devem ser p´los do controlador ou da planta. em geral. atingidos ca a simultaneamente. com nK (s) e dK (s) sendo calculados de forma que ¯ ¯ ¯ pC (s) = nG (s)¯ K (s) + dG (s)dK (s)mmc[β + (s). e 1¯ K(s) = K(s) (4. o controlador deve possuir a¸˜o inteca e o ca gral. B ∈ R s˜o as amplitudes dos degraus a de referˆncia e de perturba¸˜o.72 CAP´ ITULO 4. δ+ (s)] (4. de uma forma geral. e o t→∞ lim eR (t) = lim sYR (s) = 0 s→∞ (4. o 2 De acordo com o teorema 4.21) β (s) ¯ ¯ ¯ onde K(s) = nK (s)/dK (s). por hip´tese. G(s) estabiliza K(s).1.

i.2 Sensibilidade A sensibilidade de um sistema est´ associada a n˜o manuten¸˜o do desema ` a ca penho e da estabilidade em presen¸a de varia¸˜es nos parˆmetros da planta. a planta).25) pode ser escrita como: ca T SG (s) = ∆T (s) G(s) ∆G(s) T (s) (4.25) acima ´ que. u T SG (s) = G(s) ∂T (s) . T (s) ∂G(s) (4. uma vez que os valores dos parˆmetros. c co a Essas varia¸˜es s˜o. 4. devidas a: (i) erros de identifica¸˜o da fun¸˜o co a ca ca de transferˆncia do sistema.e. obtie a dos a partir da identifica¸˜o.25) onde T (s) representa a fun¸˜o de transferˆncia global do sistema e G(s) ´ ca e e a fun¸˜o de transferˆncia do elemento considerado (em geral. FUNDAMENTOS TEORICOS 73 ¯ K(s) sendo calculado de tal sorte que o sistema realimentado seja est´vel a com bom desempenho transit´rio. seja no que se refere ao desempenho do sistema compensado. mais sens´ SG ıvel a varia¸˜es nos parˆmetros de G(s) ser´ o sistema como co a a um todo.1. ou com rela¸˜o a manuten¸˜o da ca ` ca estabilidade. T SG (s) = ∆T (s) T (s) 100% ∆G(s) G(s) 100% (4..26) e. Observe que a equa¸˜o (4. qu˜o mais perto de 1 for ca ca e a T . quando ∆G(s) → 0 tem-se que ∆T (s) → 0 e conseq¨entemente. em geral. portanto.27) . ´ impore tante analisar como o sistema ir´ se comportar em presen¸a de tais varia¸˜es a c co (comumente denominadas de incertezas no modelo).1. A sensibilidade de um sistema em rela¸˜o a varia¸˜o em um determinado ca ` ca elemento ´ quantificada pela raz˜o entre a varia¸˜o percentual da fun¸˜o de e a ca ca transferˆncia do sistema e a varia¸˜o percentual da fun¸˜o de transferˆncia e ca ca e do elemento considerado.´ 4. Guarde bem este resultado! Ele ser´ o a importante quando do projeto de um controlador de velocidade para o grupo motor-gerador. jamais representar˜o exatamente o sistema real ca a e (ii) envelhecimento dos componentes do sistema. A ca e implica¸˜o imediata da equa¸˜o (4. Desta forma.

Este fato ser´ evidenciado no exemplo seguinte. Consideremos inicialmente o sistema em malha aberta.2: Sejam os sistemas em malha aberta e fechada representados T na figura 4. (b) sistema realimentado A redu¸˜o da sensibilidade do sistema a varia¸˜o dos parˆmetros da ca ` ca a fun¸˜o de transferˆncia da planta ´ uma das raz˜es para se usar a realica e e o menta¸˜o. Neste caso T (s) = G(s)K(s) e. portanto: G ∂T G = K=1 T ∂G GK T SG = (4.2.2: Diagrama de blocos: (a) sistema em malha aberta. ca a Exemplo 4. PROJETO DO CONTROLADOR DE VELOCIDADE R(s) K(s) (a) G(s) Y (s) R(s) + − K(s) G(s) Y (s) (b) Figura 4. Calcule SG para ambos os casos. de mesma magnitude na fun¸˜o de transferˆncia a ca e (e por conseg¨inte.28) que revela que qualquer erro de identifica¸˜o ou varia¸˜o nos parˆmetros de ca ca a G(s) ir´ implicar num erro. tem-se que T (s) = G(s)K(s)/[1 + . no desempenho) do sistema como um todo. u Para o sistema em malha fechada.74 CAP´ ITULO 4.

´ 4. SG ue a T | SG (jω0 ) |= 1 . agora. e ent˜o: a T SG = 75 G ∂T T ∂G 1 + GK (1 + GK)K − GK 2 = G GK (1 + GK)2 1 = 1 + GK (4. Nessas condi¸˜es: co (1) Para quais valores de Kp .1. evidenciando o benef´ da realimenta¸˜o no que se refere e ıcio ca a a diminui¸˜o da sensibilidade do sistema a varia¸˜o nos parˆmetros de G(s).1. o sistema ser´ est´vel? a a (2) Entre os valores de Kp que tornam o sistema est´vel.1.30) que ´ menor que 1. | 1 + G(jω0 )K(jω0 ) | (4.2(b) ent˜o. (b) Compensa¸˜o em malha fechada (controlador integral) ca Suponha. Construa o gr´fico do lugar a o a das ra´ ızes do sistema e responda: (1) Para quais valores de KI . exemplo 4. encontre aquele a que faz com que o sistema tenha um erro de regime permanente nulo para uma entrada igual ao degrau de amplitude Vr . para uma dada a T ser´ reduzida de 1 (sistema em malha aberta) para freq¨ˆncia ω0 .3 e seja K(s) = Kp . a estrutura mais simples para K(s) de tal ca sorte que o sistema realimentado rastreie e rejeite assintoticamente um dee grau ´ K(s) = KI /s. onde KI ´ calculado para que o sistema realimentado e seja est´vel e com bom desempenho transit´rio. que o objetivo seja projetar um sistema de controle realimentado para o sistema.4.1. FUNDAMENTOS TEORICOS G(s)K(s)].3 Complementos (a) Compensa¸˜o em malha aberta ca Suponha que se deseje fazer uma compensa¸˜o em malha aberta conforme o ca diagrama de blocos da figura 4.1. o sistema realimentado ser´ est´vel? a a . Conforme visto na se¸˜o 4. conforme o diagrama de blocos da figura 4. ` ca ` ca 2 4.29) Suponha que K(s) estabiliza o sistema da figura 4.

76 CAP´ ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE ? Ig (s) ¯ K Vtr (s) Va (s) – ? .

Esboce o gr´fico do lugar a das ra´ ızes do sistema realimentado da figura 4.3: Diagrama de blocos para o sistema em malha aberta (2) Para quais valores de KI .32) 0. os p´los do sistema realimentado ser˜o como a plexos e com parte real igual a −1/τ ? 4. ´ ca e e e natural considerar como sinal de referˆncia um degrau de amplitude Vr Volts.K(s) .31) onde Ti = 1/z.4 com o controlador (4.Kt Figura 4.31) e responda: (1) Para quais valores de Kp .2 Projeto do controlador de velocidade Como o objetivo do sistema de controle a ser aqui desenvolvido ´ controlar a e velocidade de rota¸˜o do motor. o sistema realimentado ser´ est´vel? a a (2) Para qual valor de Kp . Vt (s) - . (c) Compensa¸˜o em malha fechada (controlador proporcional + ca integral) Seja. agora K(s) = Kp s+z z = Kp 1 + s s = Kp 1 + 1 Ti s (4. isto ´. mantˆ-la em um determinado valor. (iii) sub-amortecido e (iv) subamortecido com percentual menor ou igual a 5%. o sistema realimentado ser´: (i) supera amortecido. (ii) criticamente amortecido. Kp e z > 1/τ a serem determinados. e isto ´: e Vr (V ). t ≥ 0 vtr (t) = (4. t < 0 .K +  - - 1 τ s+1 .

PROJETO DO CONTROLADOR DE VELOCIDADE 77 ? Ig (s) ¯ K Vtr (s) .4.2.

-

+  – 6

- K(s)

Va (s)

- K

+ 

-

– ? 

-

Kt τ s+1

Vt (s)

-

Figura 4.4: diagrama de blocos para o sistema realimentado Note que est´ impl´ a ıcito no objetivo de rastreamento do sinal vr (t), a necessidade do sistema ser est´vel. Al´m desses objetivos (estabilidade e rastreaa e mento assint´tico do sinal de referˆncia) o sistema deve: o e 1. Rejeitar sinais de perturba¸˜o, que podem ser modelados como degraus ca de amplitude Ig Amp`res, isto ´: e e ig (t) = onde, t0 ≥ 0. 2. Baixa sensibilidade a erros de identifica¸˜o dos parˆmetros do modelo ca a do grupo motor gerador. 3. Bom desempenho transit´rio. Como se trata de uma planta did´tica, o o a desempenho do sistema ser´ definido unicamente um termos do tempo a de acomoda¸˜o da resposta ao degrau do sistema em malha aberta. ca ´ E sabido que os objetivos de um sistema de controle somente ser˜o ala can¸ados com sistemas realimentados. Por´m, como forma de ilustrar os c e benef´ ıcios da realimenta¸˜o, iremos, inicialmente, considerar a possibilidade ca de se usar um controle em malha aberta e, em seguida, projetar um sistema de controle realimentado. Ig (A), t ≥ t0 0, t < t0 (4.33)

78 CAP´ ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE

4.2.1

Sistema de controle em malha aberta

A partir do diagrama de blocos da figura 4.3 pode-se escrever: Vt (s) = ¯ K K K(s)Vtr (s) − Ig (s). τs + 1 τs + 1 (4.34)

´ a E f´cil verificar que o sistema de controle em malha aberta ser´ est´vel se a a e somente se K(s) for est´vel. Como, por simplicidade foi adotado como a satisfat´rio o tempo de acomoda¸˜o do sistema sem compensa¸˜o, pode-se o ca ca utilizar um controlador est´tico, isto ´: a e K(s) = KP (4.35)

onde KP deve ser determinado de acordo com a se¸˜o 4.1.3(a) de tal sorte ca que, em regime permanente, vt (t) = Vr . Uma vez obtido KP , o passo seguinte ´ fazer a an´lise do desempenho e a do sistema compensado, utilizando o SIMULINK. Para tanto, construa um modelo, em SIMULINK, equivalente ao diagrama de blocos da figura 4.3. Em seguida, tendo 0s e 2s como instantes inicial e final de simula¸˜o, proceda a ca ` seguinte simula¸˜o: ca 1. Para uma corrente ig (t) = 0 (A), aplique um degrau de amplitude igual a 10 V com in´ ıcio em t = 0s. Em seguida, encontre o erro de estado permanente e o valor do tempo de acomoda¸˜o (ts ) da resposta. ca 2. Suponha, agora, que tenha havido um erro de 10% na identifica¸˜o de ca Ka , isto ´ Ka e = 0, 9Ka . Ainda com ig (t) = 0 (A), aplique um real degrau de amplitude igual a 10 V com in´ ıcio em t = 0s e encontre o erro de estado permanente. 3. Retorne Ka ao valor obtido na identifica¸˜o e, em seguida, aplique ca simultaneamente as entradas vtr (t) e ig (t), ambas degraus, com amplitudes respectivamente iguais a 10 V e 0, 450 A e in´ ıcios em t = 0 e t = 1 s (s). Realizada a simula¸˜o, encontre o erro de regime permaca nente.

4.2.2

Sistema de controle com realimenta¸˜o ca

Vocˆ deve ter observado que nas simula¸˜es 2 e 3 realizadas na se¸˜o ane co ca terior, o erro de regime permanente foi diferente de zero, isto ´, o sistema e

como a unica alternativa para superar essas limita¸˜es do cona ´ co trolador em malha aberta. para que o sistema realimentado seja capaz de rastrear assintoticamente um degrau e rejeitar. requer-se co que o tempo de acomoda¸˜o da resposta ao degrau para o sistema realimenca tado seja aproximadamente igual ao do sistema em malha aberta. 9Ka . e com os valores de K. construa um modelo em SIMULINK equivalente ao diagrama de blocos da figura 4. Para verificar os benef´ ıcios da introdu¸˜o da realimenta¸˜o acrescida de ca ca uma compensa¸ao dinˆmica. mais crucial ainda. PROJETO DO CONTROLADOR DE VELOCIDADE 79 compensado em malha aberta n˜o foi capaz de rejeitar um sinal externo de a perturba¸˜o e foi. aplique um real degrau de amplitude igual a 10 V com in´ ıcio em t = 0s e encontre o erro de estado permanente. a o Portanto.2. que satisfa¸a as esa o o e c pecifica¸˜es de desempenho. Para uma corrente ig (t) = 0 (A). Em seguida. ent˜o. ter um p´lo em s = 0. Lembre-se de que. Com o valor de KI . identificados para o grupo motor-gerador. Ainda com ig (t) = 0 (A). tamb´m. isto ´ Ka e = 0. tamb´m assintoticamente. isto ´. ca 3. . aplique um degrau de amplitude igual a 10 V com in´ ıcio em t = 0s. A realimenta¸˜o ca e ıvel ca ca surge. calculado no item anterior. sens´ a erros de identifica¸˜o. sinais externos de perturba¸˜o do tipo degrau. encontre o erro de estado permanente e o valor do tempo de acomoda¸˜o (ts ) da resposta. Para tanto. ¯ Kt .36) K(s) = s onde KI deve ser calculado de tal forma que o sistema realimentado seja est´vel com desempenho transit´rio satisfat´rio.4 e ajuste os tempos inicial e final de simula¸˜o em 0 e 2s.1. vamos inicialmente considerar os seguintes cac˜ a sos: (i) sistema realimentado criticamente amortecido e (ii) sistema realimentado subamortecido com percentual de ultrapassagem menor ou igual a 5%. no presente caso. a forma mais simples para esse controlador ´ o tipo integral (I). respectivamente. 2. Suponha. o e ca controlador deve ser dinˆmico e.4. K e τ . Conforme visto no exemplo 4. Calcule o valor de KI de tal forma que o sistema realimentado seja criticamente amortecido. que tenha havido um erro de 10% na identifica¸˜o de ca Ka . ca 4. proceda da seguinte forma: 1. agora. e sendo dado por: KI (4.

em seguida. Contudo. Note. proceda da seguinte forma: a . em ambos os casos (criticamente amortecido e subamortecido com percentual de ultrapassagem menor ou igual que 5%). de fato. aplique ca simultaneamente as entradas vtr (t) e ig (t). o tempo de acomoda¸ao da resposta e c˜ ao degrau para o sistema realimentado ´. PROJETO DO CONTROLADOR DE VELOCIDADE 5. 7. resultando num controa ca lador PI. para ambos os casos. ´ necess´rio que exista um zero igual a −z (z > 0) a esquerda e a ` de −1/τ . para que o desempenho do sistema realimentado seja aproximadamente igual ao do sistema em malha aberta. tornou o sistema realimentado mais r´pido.37) onde Ti = 1/z. ambas degraus.37 acima. para verificar se tal controlador. Repita os itens 2 a 5. Isto o implica que o diagrama dos lugar das ra´ deve se deslocar para a esquerda ızes e. de fato. 450 A e in´ ıcios em t = 0 e t = 1 s (s). Retorne Ka ao valor obtido na identifica¸˜o e. o valor de KI de tal forma que o sistema realimentado seja subamortecido com percentual de ultrapassagem menor ou igual a 5%. pela equa¸˜o 4. os p´los de malha fechada o devem ter parte real aproximadamente igual a −1/τ (p´lo da planta). para tanto. mesmo quando se supˆs um erro de 10% no ganho da fun¸˜o o ca de transferˆncia da planta. Calcule. Assim sendo. mostre que. o dobro do e tempo de acomoda¸˜o da resposta ao degrau do sistema em malha aberta. com amplitudes respectivamente iguais a 10 V e 0. 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. Portanto. que a introdu¸˜o do zero no ca ca controlador equivale a dot´-lo de a¸˜o proporcional. O aluno deve ter observado nas simula¸˜es realizadas que o sistema realico mentado com o controlador integral. ca Para se justificar esse fato.80 CAP´ ITULO 4. o tempo de acomoda¸˜o da resposta ao degrau o ca deveria ser o dobro daquele obtido para o sistema em malha aberta. encontre o erro de regime permaca nente. Realizada a simula¸˜o. 6. agora. eliminou a sinal externo de perturba¸˜o e teve erro de regime permaca nente nulo. Finalmente. acima. K(s) deve ter a seguinte forma: K(s) = Kp (s + z) z 1 = Kp 1 + = Kp 1 + s s Ti s (4.

aplique um degrau de amplitude igual a 10 V com in´ em t = 0s. Para uma corrente ig (t) = 0 (A). c˜ 3. A implementa¸˜o da fun¸˜o de transe ca ca ca ferˆncia 4. ca 4.´ 4.37. 2.3 Coment´rios finais a Uma vez obtida uma fun¸˜o de transferˆncia para o controlador. Substitua a fun¸˜o de transferˆncia do bloco referente ao controlador ca e pela equa¸ao 4. Neste laborat´rio utilizar-se-´ um controlador anal´gico.37 pode ser feita utilizando dispositivos eletrˆnicos anal´gicos ou e o o digitais. deixando o a o o controlador digital para um laborat´rio futuro. Calcule o valor de Kp e Ti de tal sorte que os p´los do sistema realio mentado tenham parte real igual a −1/τ . A implementa¸˜o do cono ca trolador no sistema real ser´ o assunto do pr´ximo cap´ a o ıtulo. encontre o valor do tempo ıcio de acomoda¸˜o (ts ) da resposta. . com os valores de Kp e Ti calculados no item anterior. o passo final ca e ´ a sua implementa¸˜o no sistema real.3. Em seguida. COMENTARIOS FINAIS 81 1.

82 CAP´ ITULO 4. PROJETO DO CONTROLADOR DE VELOCIDADE .

1. em a o 1 . ser´ desenvolvido um controlador anal´gico. pelas suas caracter´ ısticas de resposta e pre¸o. ca o Antes de entrarmos na implementa¸˜o do controlador faremos um breve ca estudo introdut´rio sobre amplificadores operacionais.2. nos permitir˜o a construir circuitos que tenham um determinado comportamento. Esses amplicuja constru¸˜o ser˜o utilizados amplificadores operacionais ca a ficadores. pode omitir esse estudo e caso o aluno deseje obter maiores detalhes sobre teoria e pr´tica de amplificadores operacionais deve consula tar Graeme et al. Dotado dos fundamentos necess´rios a utiliza¸˜o a ` ca dos amplificadores operacionais. 83 . o passo seguinte ser´ a constru¸˜o de um a ca circuito eletrˆnico para o controlador. (1981). isto ´. utilizando-se e computadores digitais. quando exploradas. Isso ser´ a realizado na se¸c˜o 5. nos preocupando somente com os aspectos externos do disposo itivo e com as suas caracter´ ısticas que.Cap´ ıtulo 5 Implementa¸˜o do ca controlador de velocidade Neste cap´ ıtulo trataremos da implementa¸˜o do controlador projetado no ca cap´ ıtulo anterior. o a ca 1 Este mesmo controlador poderia ser implementado digitalmente. Caso o aluno j´ possua conhecimentos suficientes c a a desse assunto. Como se trata de um laborat´rio para um primeiro curso o de Sistemas de Controle. Neste estudo n˜o o a consideraremos detalhes construtivos (que geralmente ´ feito nos cursos de e Eletrˆnica). o que ser´ feito na se¸˜o 5. s˜o freq¨entemente c a u utilizados na implementa¸˜o de controladores anal´gicos.

o s´ ımbolo mais comumente adotado para represent´-lo em um circuito. a necessidade das tens˜es externas de o a polariza¸˜o (±VCC ). ainda na figura 5. na verdade. que devem. uma vez a tens˜o de sa´ ´ proporcional a diferen¸a entre as tens˜es a ıda e ` c o aplicadas nos seus terminais de entrada.2.1 a o chanfro na parte esquerda do retˆngulo. Observe na figura 5. que s˜o devidas ao fato dos amplicadores operacionais ca serem. com as respectivas indica¸˜es das conec¸˜es que devem co co ser efetuadas em cada um dos seus terminais e. conforme representado na figura 5. A entrada (-) ´ denominada inversora enquanto a entrada (+) ’e chamada n˜oe a inversora.2.1 est´ representado um amplificador operaue a cional de oito pinos. ser polarizados. Isto faz com que esses amplificadores sejam conhecidos como diferenciais. essa caracter´ ıstica ´ matematicamente descrita pela seguinte equa¸˜o: e ca v0 = A(v2 − v1 ) (5.1 5. na figura 5.84 CAP´ ITULO 5.1.1: Representa¸˜o esquem´tica de um amplificador operacional ca a 5. Na figura 5. sendo definido pelos trane . IMPLEMENTACAO DO CONTROLADOR ¸˜ 1 2 3 4 5 6 7 8 NC (n˜o conectar) a Entrada inversora Entrada n˜o inversora a Tens˜o de polariza¸˜o (−Vcc ) a ca NC Sa´ ıda Tens˜o de polariza¸˜o(+Vcc ) a ca NC Figura 5.000). Note. Esse chanfro ´ utilizado nos cira e cuitos integrados encapsulados para servir como referˆncia para a numera¸˜o e ca dos pinos.1) onde A ´ o ganho de malha aberta (A > 45. Utilizando-se a nota¸˜o da figura ca 5. circuitos integrados constru´ ıdos com diversos est´gios de a transistores.2. A maioria dos amplificadores operacionais possui dois terminais de entrada e um terminal de sa´ ıda. portanto.1.1 Amplificadores Operacionais Conceitos b´sicos a Amplificadores operacionais s˜o amplificadores que tˆm elevado ganho e s˜o a e a geralmente utilizados para amplificar sinais que se estendem sobre uma ampla faixa de freq¨ˆncias.

praticamente infinita2 . Em face disso. a a (ii) impedˆncia de entrada infinita. que permite baixa ou nenhuma intera ferˆncia com os elementos colocados em cascata no circuito (Zin = ∞). isto ´. Essas configura¸˜es far˜o com que ca co a o novo circuito tenha caracter´ ısticas diferentes daquelas do amplificador em malha aberta. indutores. Outras caracter´ ısticas.1. da resposta em co 2 A raz˜o dessa elevada impedˆncia de entrada reside no fato desse amplificador ser a a constru´ com transistores de efeito de campo. (iv) largura de faixa infinita. geralmente adotadas na a pr´tica s˜o: (i) v0 = 0 quando v1 = v2 (tens˜o ‘offset’ de entrada nula). Na tabela 5.2 Configura¸˜es b´sicas co a A configura¸˜o em malha aberta da figura 5.5. (iii) e impedˆncia de sa´ nula (Zout = 0). na pr´tica. Usualmente. ıdo .1 s˜o mostrados os valores reais de a algumas dessas grandezas para os amplificadores operacionais 741 e LF356. 5. e (v) a ıda atraso de resposta nulo. AMPLIFICADORES OPERACIONAIS 85 6 A 6 v1 (t) v2 (t) 6 v0 (t) v0 (t) = A(v1 − v2 ) Figura 5. ´ E importante ressaltar que o valor da impedˆncia de entrada para o LF356 a ’e aproximadamente 1012 Ω. Ao se ca e construir um circuito utilizando um amplificador operacional s˜o geralmente a utilizados outros elementos de circuitos (resistores. como por exemplo: modifica¸˜es do ganho. este ganho ´ cona e siderado infinito (A → ∞).2: Simbologia adotada para amplificadores operacionais sistores internos do amplificador.1.2 ´ raramente utilada. e o LF356 ser´ utilizado na implementa¸˜o do controlador de velocidade do a ca grupo motor-gerador. etc) para formar redes de realimenta¸˜o. capacitores.

portanto limitado. Como A → ∞. |e1 (t)| < e Ei . tem-se que |e0 (t)| < (Rf /Ri )Ei = E0 e. Ri Rf A A Finalmente.86 CAP´ ITULO 5.3) Substituindo es (t) = −eo (t)/A na primeira equa¸˜o. fazendo A → ∞. Aplicando-se a lei das correntes de Kirchhoff ao n´ 1 e lembrando que. deriva¸˜o e etc.3. (5. resulta: |e0 (t)| |es (t)| = → 0.5) A . IMPLEMENTACAO DO CONTROLADOR ¸˜ 741 200 2 2 ±15 1 5 LF356 200 3 106 ±15 1 5 Ganho de malha aberta (V /mV ) Tens˜o ‘offset’ de entrada (mV ) a Impedˆncia de entrada (M Ω) a Tens˜o de polariza¸˜o (V ) a ca Banda passante (M Hz) Corrente de sa´ m´xima (mA) ıda a Tabela 5. obt´m-se: e eo (t) = − Rf ei (t) Ri (5. a corrente que flui para a entrada inversora ´ nula. resulta: ca As seguintes observa¸˜es podem ser feitas a partir da equa¸˜o 5.4 acima: co ca (i) o ganho n˜o ´ mais determinado pelo amplificador e sim pelos elementos a e externos Ri e Rf . ue co a integra¸˜o. como o amplificador operacional tem impedˆno a cia de entrada infinita.1: Caracter´ ısticas dos amplificadores operacionais 741 e LF356 freq¨ˆncia e a possibilidade de se efetuar opera¸˜es matem´ticas como soma. (ii) quando o sinal de entrada for limitado.4) (5. e pode-se escrever:   ei (t)−es (t) + eo (t)−es (t) = 0 Ri Rf (5. isto ´.2)  e (t) = −Ae (t) (A → ∞) o s ei (t) 1 Ri Rf + eo (t)( + + ) = 0. Algumas dessas configura¸˜es s˜o apresentadas ca ca co a a seguir: Circuito inversor Considere o circuito da figura 5.

AMPLIFICADORES OPERACIONAIS Rf 87 Ri 6 1 6 es (t) ei (t) 6 eo (t) Figura 5. Aplicando a lei das correntes de Kirchhoff ao ` a n´ 1 e levando em conta os fatos de que a corrente que entra no amplicador o operacional ´ nula e que os terminais + e − est˜o em terra virtual pode-se e a escrever: ei (t) ei (t) − eo (t) + = 0.4(a).6) Ri Rf Ap´s algumas manipula¸˜es alg´bricas simples.5.1. (5. es (t) pode ser feito identicamente nulo.7) Note. na equa¸˜o 5. os terminais referentes as entradas inversora e n˜o-inversora a ` a s˜o dito estarem em terra virtual. obt´m-se: o co e e eo (t) = Rf + Ri ei (t) Ri (5.7 acima que o ganho de malha fechada ser´ sempre maior ca a ou igual a 1 e ´. para efeitos de an´lises de redes a e a contendo amplificadores. que difere do circuito inversor da figura 5. mais uma vez. Circuito n˜o-inversor a Considere agora o circuito da figura 5. Observe ainda e .3 principalmente pelo fato do sinal externo ei (t) estar agora conectado a entrada n˜o-inversora. determinado por Ri e Rf .3: Circuito inversor Por essa raz˜o. isto ´.

e pode-se escrever:   eB (t) = eA (t) = R2R3 3 e2 (t) +R (5. Aplicando-se a lei das correntes de Kirchhoff ao n´ o A e lembrando que os pontos A e B tˆm o mesmo potencial (terra virtual).10) . evitando assim intera¸˜es indesej´veis. fazendo R1 = R2 = R3 = Rf = R na equa¸˜o 5. R1 (R2 + R3 ) R1 (R2 + R3 ) (5. isto a ´. resulta: ca eo (t) = e2 (t) − e1 (t). co a Circuito comparador Uma das maneiras de se fazer a compara¸˜o entre dois sinais ´ utilizando-se ca e o circuito da figura 5. a tens˜o de sa´ segue exatamente a tens˜o de entrada. R1 Rf Ap´s algumas manipula¸˜es alg´bricas elementares. Nesse caso. (5. obt´m-se: o co e e eo (t) = − Rf (R2 + R3 ) R3 (R1 + Rf ) e1 (t) + e2 (t).5.88 CAP´ ITULO 5. o amplificador atua como um ‘seguidor de tens˜o’. (b) Seguidor de tens˜o a a que.9) Finalmente.4(b). A configura¸˜o e a ıda a ca de seguidor de tens˜o ´ largamente utilizada para prover isolamento entre os a e sinais da fonte e da carga.9 acima. se Rf ´ feito igual a zero (curto-circuito) e Ri = ∞ (circuito aberto).8)  e1 (t)−eB (t) + eo (t)−eB (t) = 0. tem-se que o ganho ser´ exatamente a igual a 1.4: (a) Circuito n˜o-inversor. e conforme mostrado na figura 5. IMPLEMENTACAO DO CONTROLADOR ¸˜ Rf Ri 1 6 6 6 6 ei (t) eo (t) ei (t) eo (t) (a) (b) Figura 5.

1. Circuito integrador O circuito da figura 5. ser implementada fisicamente. R2 .5: Circuito comparador gen´rico e Deve ser ressaltado que.12) . portanto. R3 e Rf em s´rie com os reo e sistores R1 .10) n˜o pode. Este problema pode ser superado ′ ′ ′ ′ inserindo-se potenciˆmetros de valores R1 . 0 (5. que nesse caso deve ser aproximadamente igual a zero (a menos de um ‘offset’).10) est´ sendo verificada (a menos de um ‘offset’). Pode-se mostrar que a fun¸˜o de transferˆncia ca e do circuito ´ dada por: e Eo (s) 1 =− (5. Esses potenciˆmetros devem ser ajustados de tal o ′ ′ ′ ′ sorte que R1 + R1 = R2 + R2 = R3 + R3 = Rf + Rf . AMPLIFICADORES OPERACIONAIS Rf 89 R1 6 R2 e1 (t) e2 (t) 6 6 6 vB (t) R3 eo (t) Figura 5. R2 . a igualdade (5. aplica-se a sinais iguais em e1 (t) e e2 (t) e mede-se o sinal eo (t). na pr´tica.11) Ei (s) Ri Cf s e. Para se verificar de que a igualdade (5.5.6(a) representa uma maneira de se calcular analogicamente a integral de um sinal. ´ quase imposs´ ter quatro resisa e ıvel tores de valores exatamente iguais e. eo (t) = − 1 Ri Cf t ei (λ)dλ. a a princ´ ıpio. R3 e Rf . portanto.

14) . Nestas condi¸˜es.90 CAP´ ITULO 5.6: Circuitos integradores: (a) ideal. c˜ a Para solucionar este problema. o p´lo −1/Rf Cf se aproo xima de zero ao mesmo tempo em que o ganho DC torna-se cada vez maior.6(b) pode ` ser usado com razo´vel precis˜o para se efetuar a integra¸˜o de um sinal. Para esse circuito.6(b). a a ca Circuito derivador A deriva¸˜o de um sinal anal´gico pode ser feita idealmente utilizando-se o ca o circuito da figura 5. a resposta em freq¨ˆncia do sistema assemelha-se cada vez co ue mais a de um integrador ideal e. a fun¸˜o de ca transferˆncia do sistema passa a ser a seguinte: e Rf Eo (s) 1 =− Ei (s) Ri Rf Cf s + 1 (5.8(a). portanto. Neste caso. tem-se que: eo (t) = −Rf Ci d ei (t). (b) pr´tico. Note que aumentando-se o valor do resistor Rf . introduz-se um resistor em paralelo com o capacitor.6(a) bastante sens´ para alguns amplificadores opeca ıvel racionais (inclusive o 741). o que torna a sua implementa¸ao problem´tica. IMPLEMENTACAO DO CONTROLADOR ¸˜ Cf Cf Ri 6 6 6 Ri Rf ei (t) eo (t) ei (t) 6 eo (t) (a) (b) Figura 5. conforme representado na figura 5. a A realimenta¸˜o composta unicamente por um capacitor torna a conca figura¸˜o da figura 5.7. o circuito da figura 5.13) cujas ass´ ıntotas do diagrama de m´dulo de Bode est˜o representadas na figura o a 5. dt (5.

Note que. ue uma vez que tais sinais seriam amplificados por valores infinitos (pelo menos teoricamente).15) cujas ass´ ıntotas do diagrama de m´dulo de Bode est˜o representadas na figura o a 5. faz-se uso do circuito da figura 5. Para solucionar este problema. o p´lo −1/Ri Ci se afasta cada vez mais de o .6(b) a Rf Ci 6 6 6 e (t) i Rf Ri Ci 6 ei (t) eo (t) eo (t) (a) (b) Figura 5. cuja fun¸ao de transferˆncia ´ dada por: c˜ e e sRf Ci Eo (s) =− . AMPLIFICADORES OPERACIONAIS (jω) | Eo(jω) |dB Ei 91 20 log Rf Ri ω(log) 1/Rf Cf Figura 5.9.1.8: Circuitos derivadores: (a) ideal. (b) pr´tico a A utiliza¸˜o desse circuito como um derivador pode trazer s´rios probleca e mas no que se refere a sinais com componentes de freq¨ˆncias muito altas.7: Ass´ ıntotas do diagrama de m´dulo de Bode para o circuito inteo grador pr´tico da figura 5.5. Ei (s) Ri Ci s + 1 (5. diminuindo Ri .8(b).

isto ´. Ti e Td s˜o determinados durante a fase de a projeto do controlador. O problema passa.8(b) a zero. ent˜o.9: Ass´ ıntotas do diagrama de m´dulo de Bode para o circuito o derivador pr´tico da figura 5. ` e eo (t) = Kp ei (t) + 1 Ti t ei (λ)dλ + Td 0 d ei (t) dt (5. o ıvel Para tanto. Pode-se mostrar que a Kp = Td Rf Ri = Ri Ci (5.92 CAP´ ITULO 5.17). a ser o de encontrar Ri . faz com que a escolha dos valores u o . Ti e Td o mais pr´ximo poss´ dos valores calculados teoricamente. ca Um circuito para controladores PID Um circuito cuja sa´ eo (t) ´ proporcional a entrada ei (t). Assim sendo. O n´mero maior de inc´gnitas. o circuito da figura 5.16) est´ representado na figura 5. IMPLEMENTACAO DO CONTROLADOR ¸˜ (jω) | Eo(jω) |dB Ei 20 log Rf Ri ω(log) 1/Ri Ci Figura 5. fazendo com que o ganho de alta freq¨ˆncia aumente. a sua integral e ıda e ` ` a sua derivada. deve-se resolver o sistema de trˆs equa¸˜es e quatro inc´gnitas e co o (5. Ci e Cf de tal forma que o circuito do controlador PID tenha valores de Kp . o que torna a ue resposta em freq¨ˆncia desse sistema mais pr´xima daquela de um derivador ue o ideal.10. os valores de Kp .8(b) pode ser utilizado para se efetuar a deriva¸˜o de um sinal.17) Ti = Rf Cf . a Rf . para Ti >> Td . Em geral.

uma vez que pode-se ‘jogar’ com os capacitores e resistores a dispon´ ıveis no laborat´rio. CONTROLADOR AUTOMATICO DE VELOCIDADE Rf Ri 6 93 Cf ei (t) Ci 6 eo (t) Figura 5.11. o que ´ bom do ponto de a e a ´ e vista pr´tico.10: Circuito para controladores PID VtR (s) + K(s) − G(s) Vt (s) Figura 5.18) . O dio agrama de blocos para o sistema est´ representado na figura 5.2. onde G(s) a representa a fun¸˜o de transferˆncia da planta e ca e K(s) = Kp s+z 1 = Kp 1 + s Ti s (5.11: Diagrama de blocos correspondente ao sistema de controle do grupo motor-gerador das capacitˆncias e resistˆncias n˜o seja unica. o 5.2 Controlador autom´tico de velocidade a Ap´s a breve introdu¸˜o sobre amplificadores operacionais apresentada na o ca se¸˜o anterior. estamos em condi¸˜es de construir um circuito eletrˆnico ca co o anal´gio para o controlador de velocidade do grupo motor-gerador.´ 5.

conforme mostrado na tabela 5. Ajuste os quatro potenciˆmetros R1 . R3 e R4 e anote-as. Por´m.1). IMPLEMENTACAO DO CONTROLADOR ¸˜ vtR (t) vt (t) Figura 5. nenhum outro elemento seria necess´rio e bastaria o engenheiro de controle conectar a sa´ do controlador a ıda ao motor. vˆ-se que a implementa¸˜o do sise ca tema de controle requer a constru¸˜o de um circuito comparador e de um ca circuito para o controlador PID. R3 e R4 de tal modo que o ′ = R + R′ = R + R′ = R + R′ . Valores de resistores mais baixo que os sugeridos podem levar o amplificador a n˜o executar a exatamente a opera¸˜o que dele esperamos. Isto faz com que seja necess´rio acoplar na sa´ do amplificador operacional um ama ıda plificador de potˆncia para poder ‘drenar’ a corrente necess´ria para o motor.12 5. R2 . R1 + R1 2 3 f 2 3 f .11. ca 2.5. c e ′ ′ ′ ′ 3. proceda da seguinte forma: ca 1. onde os valores de Kp e Ti foram determinados ao final do cap´ A partir do diagrama da figura 5. Selecione quatro resistores de mesmo valor (de acordo com seu c´digo o de barras coloridas) com valores entre 1kΩ e 10kΩ.94 CAP´ ITULO 5.12: Representa¸˜o esquem´tica do sistema de controle de velocidade ca a do grupo motor-gerador ıtulo 4.1 Implementa¸˜o do comparador ca O circuito utilizado para se efetuar a compara¸˜o entre o sinal de referˆncia ca e (vtR (t)) e o sinal do tacˆmetro (vt (t)) ser´ aquele representado na figura 5. amplificadores operacionais tˆm corrente de sa´ muito e e ıda baixa (aproximadamente 5mA.2. Me¸a a resistˆncia de cada um dos resistores R1 . e a o que faz com que a implementa¸˜o do sistema de controle de velocidade para ca o grupo motor-gerador seja feita conforme mostrado no diagrama de blocos da figura 5. Em princ´ ıpio. R2 . o a Para sua implementa¸˜o.

1. 3Hz.2. Finalmente. proceda da seguinte forma para a implementa¸˜o do controlador: ca 1. 2mV . Monte o circuito da figura 5. sejam obtidos valores de Kp co e Ti aproximadamente iguais aos encontrados no final do cap´ ıtulo 4. ca Por´m.5 utilizando um amplificador LF356.10).2. por exemplo.2 Implementa¸˜o do controlador ca O circuito da figura 5. Assim sendo. a partir das equa¸˜es 5.´ 5.1). a ca c 6. fa¸a e1 (t) = vt (t) (a tens˜o de sa´ do tacˆmetro) e e2 (t) = vtR (t) (a tens˜o de a ıda o a referˆncia). aplique sinais iguais a ambos os terminais. Fa¸a. varie suavimente cada um potenciˆmetro. de fato. de tal forma que. Utilizando um amplificador LF356 monte o circuito da figura 5. como eo (t) = e2 (t) − e1 (t) (equa¸˜o 5. utilizando um resistor Rf de c aproximadamente 10kΩ. Isto pode ser feito. amplitude igual a 1V e valor m´dio igual a zero. implementado corretamente. o controlador de velocidade desenvolvido ao final do cap´ e ıtulo 4 ´ e do tipo PI. e 5. Para verificar se o circuito somador est´. Em seguida. 3. 2. Com isso em mente.18.10 permite a implementa¸˜o de um controlador PID. Ci = 0F . Neste caso. conectando-se ambas as entradas ao ponto de potencial zero (terra). CONTROLADOR AUTOMATICO DE VELOCIDADE 95 4. o sinal de sa´ deve ser uma co ıda .17. aplique ao controlador um sinal de onda quadrada de freq¨ˆncia ue igual a 0. aproximadamente.1 a tens˜o ‘offset’ de a sa´ dever´ ser de. de fato. efetuando a subtra¸˜o a ca dos sinais.10. Para verificar se o controlador PI foi. de acordo com a tabela 5. observando o se tal movimento implica numa diminui¸˜o da tens˜o de sa´ ca a ıda. 5. encontre um capacitor Cf e um resistor Ri .10 seja usado para a implementa¸˜o do controlador da equa¸˜o 5. caso o circuito da figura 5. Caso a tens˜o seja muito ıda a a maior que 2mV . co Lembre-se de que o amplicador deve ser polarizado com as tens˜es de o ±15V (ver tabela 5. inicialmente. o ganho derivativo deve ser ca ca feito igual a zero. efetuando-se as conec¸˜es de seus terminais de acordo com a figura 5. Como o e circuito tem a¸˜es proporcional e integral. Termine este procedimento quando a tens˜o de sa´ se aproximar de 2mV ou a ıda quando qualquer varia¸˜o no potenciˆmetro resultar num aumento da ca o tens˜o de ‘offset’.

e deslocada verticalmente. ampliue tude igual a 9V e tens˜o m´ a ınima igual a zero ao terminal do comparador correspondente a tens˜o de referˆncia. Conecte o terminal de sa´ do comparador ao ponto correspondente ıda a entrada do controlador PI e a sa´ do controlador PI a entrada do ` ıda ` amplificador de potˆncia. ca ca Ti . estamos em e condi¸˜es de verificar na pr´tica se o sistema de controle projetado ir´ funco a a cionar satisfatoriamente. Conecte a sa´ do amplificador de potˆncia aos terminais do motor ıda e e observe no oscilosc´pio os sinais de referˆncia (vtR (t)) e da sa´ do o e ıda tacˆmetro (vt (t)). Portanto. ca 5.3 Amplificador de potˆncia e O amplificador de potˆncia utilizado no laborat´rio ´ tamb´m inversor e e o e e tem um ganho igual a cinco. 5. ` a e 3.96 CAP´ ITULO 5.3 Experimento final: funcionamento do sistema de controle Implementados o comparador e o controlador PI e tendo sido feito o ajuste para que o amplificador de potˆncia tenha ganho igual a −1. Para tanto proceda da seguinte forma: 1. sendo este deslocamente determinado pelo ganho proporcional. qual o tempo de acomoda¸˜o aproximado da ca resposta? (iii) O tempo de acomoda¸˜o para o sistema real est´ pr´ximo daquele ca a o obtido durante a simula¸˜o realizada no cap´ ca ıtulo 4? . Aplique um sinal de onda quadrada de freq¨ˆncia igual a 0.2. o aluno deve tomar o cuidado de certificar-se de que o ganho em malha aberta do sistema real (somador + PI + amplificador de potˆncia) seja igual ao projetado e as invers˜es levem a e o uma realimenta¸˜o negativa. 2. IMPLEMENTACAO DO CONTROLADOR ¸˜ rampa com inclina¸˜o definida pela constante de tempo de integra¸˜o.3Hz. Responda as seguintes quest˜es: o ` o (i) Houve rastreamento do sinal de referˆncia? e (ii) Em caso afirmativo. Conecte ainda a sa´ do tacˆmetro a entrada e ıda o ` correspondente do circuito comparador.

5. .´ 5. Outro aspecto a o ca ser ressaltado. ao fim desse curso. os principais o a conceitos introduzidos na disciplina Sistemas de Controle I. para levar o sistema real a ter um comportamento a bastante pr´ximo daquele previsto durante a simula¸˜o. podendo ser utilizadas em uma grande variedade de outros siso temas f´ ısicos e devem se usadas no futuro quando ao aluno for solicitado o projeto de um sistema de controle. Conecte agora uma carga nos terminais do gerador e feche este circuito num instante pr´ximo do meio do pulso. COMENTARIOS FINAIS 97 4.4. ´ que as ferramentas utilizadas na identie fica¸˜o da fun¸˜o de transferˆncia do grupo motor-gerador e no projeto do ca ca e controlador de velocidade n˜o se aplicam somente ao sistema utilizado nesse a laborat´rio.4 Coment´rios finais a Este laborat´rio procurou abordar do ponto de vista pr´tico. Verifique se o sistema rejeita o esta perturba¸˜o assim como na simula¸˜o realizada no cap´ ca ca ıtulo 4. na pr´tica. Espera-se que os alunos tenham verificado que o ferramental te´rico pode ser aplicado. efeo tivamente.

IMPLEMENTACAO DO CONTROLADOR ¸˜ .98 CAP´ ITULO 5.

Stephan. R. E. 99 . Modern Control Systems. C. UFRJ . Automatica 32: 147–166. J. MathWorks (1996). Using Matlab. Control systems engineering education.Referˆncias Bibliogr´ficas e a Basilio. M. G. Operational Amplifiers: Design and Applications. M. (1991). D. C. UFRJ . (1981). Astr¨m.. Franklin. (1991). Dorf.. Addison-Wesley.Escola de Engeo nharia. The Math Works Inc. McGraw-Hill Book Company. Kheir. o Masten. e Huelsman. Auslander. J. G. Graeme... Cheok. L. F. (1995). N. e Rabins. M. K. C. G. Notas de aula de Sistemas de Controle I.Escola da Engenharia. A. Tobei. K. R. Laborat´rio de Controle I.. (1986).. P. J.