Post on 10-Dec-2018
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
1
Diagrama do Lugar Geométrico das Raízes
Objetivos: Estudar a aplicação de ferramentas de apoio à engenharia tais como Matlab e Scilab
para o traçado do diagrama do Lugar das Raízes.
Introdução
O método do Lugar Geométrico das Raízes (ou Lugar das Raízes) foi desenvolvido por W. R.
Evans em 1948. Este método representa graficamente o deslocamento dos polos de malha-
fechada de um sistema linear quando sujeito a variação de um ganho K. É válido notar que é
possível definir tal diagrama para variação de outros parâmetros, como por exemplo, a
localização de um polo ou um zero. O método do Lugar das Raízes é utilizado em análise e
projeto de sistemas de controle lineares, permitindo obter características de estabilidade e de
resposta transitória.
Seja a seguinte malha de controle:
A função de transferência em malha fechada é dada por:
𝑇(𝑠) =𝐾𝐺(𝑠)
1 + 𝐾𝐺(𝑠)𝐻(𝑠)
Os polos de malha fechada são as raízes do polinômio característico dado por:
𝑃𝐶(𝑠) = 1 + 𝐾𝐺(𝑠)𝐻(𝑠) = 0
Ainda,
𝐾𝐺(𝑠)𝐻(𝑠) = −1
A partir de tal expressão é possível definir duas condições para que um determinado ponto s
seja polo de T(s):
1. Condição Angular (ou de Fase, ou de Ângulo): ⟨𝐺(𝑠)𝐻(𝑠) = ±180° ± 360°𝑁
2. Condição de Módulo: |𝐾𝐺(𝑠)𝐻(𝑠)| = 1
Nota-se que a Condição Angular é restritiva, logo um ponto só pode ser polo de 𝑇(𝑠) se atender
a tal requisito. Já a condição de Módulo é utilizada para determinar qual o valor do ganho 𝐾 que
leva a tal polo.
Tipicamente considera-se 𝐾 ≥ 0, mas é possível realizar o traçado do Lugar das Raízes para
valores de ganho negativos, ou seja, com realimentação positiva.
Regras básicas para traçado:
1. Plote no plano real x imaginário os polos e zeros de malha aberta;
2. Determine o número de ramos = número de polos de malha aberta (𝑛𝑝);
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
2
3. Determine o número de ramos que vão para infinito = número de polos de malha aberta
(𝑛𝑝)- número de zeros de malha aberta (𝑛𝑧);
4. Trace o Lugar das Raízes do eixo real: será Lugar das Raízes toda região do eixo real à
esquerda de um número ímpar de singularidades (polos ou zeros de malha aberta);
5. Determinação dos pontos de quebra do eixo real: 𝜕𝐾
𝜕𝜎= 0 onde 𝐾 =
−1
𝐺(𝜎)𝐻(𝜎) ;
6. Determinação das assíntotas: o número de assíntotas é igual ao número de ramos que
vão para infinito.
a. Ponto de Partida: 𝜎𝑎 =∑ 𝑝𝑜𝑙𝑜𝑠−∑ 𝑧𝑒𝑟𝑜𝑠
𝑛𝑝−𝑛𝑧;
b. Ângulo das Assíntotas: 𝜃𝑎 =360𝑁−180
𝑛𝑝−𝑛𝑧;
7. Ponto de cruzamento com o eixo imaginário: monte a tabela de Routh e verifique os
valores do ganho 𝐾 que anulam uma linha inteira. Se houverem pontos de cruzamento
com o eixo imaginário, este serão dados pelas raízes do polinômio auxiliar formado
pelos coeficientes da linha acima da linha anulada.
Obs. Os ramos saem dos polos de malha aberta e vão para os zeros de malha aberta (ou zeros no
infinito). Os zeros atraem os ramos e os polos repelem.
Comandos Importantes:
Matlab:
o rlocus
o rltool
Scilab: evans
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
3
Exercícios Propostos
Considere a seguinte função de transferência do ramo direto:
𝐴(𝑠) = 𝐾𝑠 + 5
(𝑠 + 1)(𝑠 − 2)
1. Verifique a posição dos polos e zeros desse sistema em malha fechada para diversos
valores de K>0 (exemplo: K = 0.001, K = 0.5, K = 1, K=5, K = 10, K = 100 e K = 1000,
etc). Dica: no Matlab use roots e pzmap; no Scilab use roots e plzr.
2. O que podemos inferir a partir dos valores encontrados no item anterior sobre a relação
entre a posição dos polos e dos zeros de malha fechada ao se variar o valor do ganho K?
3. Utilizando as regras básicas para traçado apresentadas esboce o diagrama do Lugar das
Raízes.
4. Utilizando as ajudas dos programas Matlab ou Scilab, verifique o funcionamento das
funções relacionadas com o traçado do diagrama do Lugar das Raízes (rlocus e evans,
respectivamente).
5. Confira seu esboço utilizando o Matlab ou Scilab.
6. O sistema em malha aberta é estável? Qual faixa de valores de K que estabiliza a malha
de controle fechada com realimentação negativa unitária?
7. Explore a ferramenta rltool do Matlab. Verifique:
a. A caraterística dinâmica do Lugar Geométrico das Raízes: ao variar o ganho
modifica-se a posição dos polos de malha fechada;
b. Inclua um zero e verifique a sua influência nos ramos preexistentes;
c. Inclua um polo e verifique a sua influência nos ramos preexistentes.
Anexo: Introdução – Scilab
O Scilab é um programa livre para apoio a projetos de engenharia de controle. Pode ser
obtido em http://www.scilab.org/products/scilab/download, na versão atual 5.3.3 ou na versão
5.4 beta 1 (ambos disponíveis para Linux, Windows e Mac OS X). Desenvolvido desde
1990 pelos pesquisadores do INRIA (Institut National de Recherche en Informatique et en
Automatique) e do ENPC (École Nationale des Ponts et Chaussées), atualmente é mantido e
desenvolvido pelo Consórcio Scilab. Sua janela inicial é mostrada na Figura 1.
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
4
Figura 1: Ambiente inicial do Scilab.
Seu ambiente inicial é uma linha de comando na qual os cálculos podem ser realizados de
forma rápida e interativa. Existe ainda a possibilidade de trabalhar no ambiente SciNotes, de
modo que o programa desenvolvido possa ser salvo. Para abrir o editor de programa (mostrado
na Figura 2): clique em “abrir arquivo” .
Figura 2: SciNotes.
O Scilab possui um grupo de funções disponíveis na sua estrutura básica, entretanto é possível
instalar (ou mesmo desenvolver) módulos específicos (que incluem novas funções).
Para conhecer e instalar os módulos atualmente existentes para Windows acesse
Aplicativos/Gerenciador de Módulos – ATOM.
Existem três principais caminhos para acessar o help do Scilab:
1. Digite help, o nome da função e pressione enter;
2. Tecle F1;
3. Utilize a aba ?: Ajuda do Scilab.
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
5
Figura 3: Navegador de Ajuda.
Scilab x Matlab
Linguagem semelhante;
Scilab é livre e atualmente tem sido alvo de atualizações;
Diversos módulos têm sido desenvolvidos, inclusive ferramentas específicas para área
de controle;
Desenvolvimento do ambiente XCOS, que possui funcionalidade similar ao
Simulink/Matlab;
Dificuldades no acesso ao help e documentação apropriada.
Funções Matemáticas Básicas
O Scilab utiliza regras semelhantes as da matemática formal, por exemplo, uma divisão é feita
pelos seguintes comandos:
Caso não queira que o valor da resposta seja apresentado, coloca-se ao final de cada declaração
o caractere ‘; ’. Utilizando os caracteres ‘//’, é possível também inserir um texto de comentário,
conforme o exemplo a seguir.
-->a=3/4
a =
0.75
--> b = 2 // sem o caractere ‘;’ no final da sentença o
resultado é apresentado.
b = 2
--> c = 3; // com o caractere ‘;’ no final da sentença o
resultado não é apresentado.
--> d = b+c // o resultado é armazenado na variável ‘d’ e
é apresentado.
d = 5
--> b+c // se nenhum nome é atribuído a uma variável
ela é armazenada em “ans”.
ans = 5
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
6
O Scilab realiza as operações matemáticas básicas na seguinte ordem: ^ potência; *
multiplicação; divisão; + adição; subtração. As operações são realizadas da esquerda para
direita, seguindo a ordem de prioridade definida anteriormente. Entretanto, a utilização de
parênteses pode afetar tal ordem.
Variáveis e funções predefinidas
O Scilab possui algumas variáveis predefinidas:
%s: variável complexa de polinômios (Transformada de Laplace);
%T: variável booleana True (verdadeiro);
%F: variável booleana False (falso);
%pi : valor de π (3,1415926...);
%e: número de Euler ( 2,7182818...);
%inf: infinito;
%i: variável complexa.
O Scilab (pacote básico, sem módulos adicionais) possui ainda várias funções matemáticas
predefinidas, tais como funções trigonométricas, exponenciais, logarítmicas, raiz quadrada, raiz
cúbica, funções lógicas booleanas, entre muitas outras.
Outras funções básicas:
cos(x), tan(x), cotg(x), acos(x), asin(x), atan(x) (ângulo em radianos);
real(x) e imag (x) (números complexos);
log(x) (base e), log2(x) (base 2);
--> 1+2^3/4*2 // 1+{[(2^3)/4]*2}
ans = 5
--> 1+2^3/(4*2) // 1+[(2^3)/(4*2)]
ans = 2
--> (1+2)^3/(4*2) // [(1+2)^3]/(4*2)
ans = 3.3750
--> 2*%pi
ans = 6.2832
--> d=4/%inf
d = 0
--> z=2+2*%i
z = 2. + 2.i
--> u=sin(3*%pi/4) // o Scilab usa como default a medida de ângulo em radianos
u = 0.7071
--> v=sqrt(4) //o comando sqrt (square root) executa a operação raiz quadrada v = 2
--> abs(z) // valor absoluto (módulo) da variável z definida anteriormente
ans = 2.8284
--> exp(-1) // exponencial
ans = 0.3679
--> log10(100) // logaritmo na base 10
ans = 2.
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
7
modulo(x,y) (resto da divisão entre x e y);
round(x) (arredonda o valor de x para o inteiro mais próximo), floor(x) (arredonda
para o menor inteiro) e ceil(x) (arredonda para o maior inteiro);
Para declaração de variável devem ser seguidas as seguintes restrições:
Sensível a maiúsculas e minúsculas;
Palavra única;
Até 24 caracteres;
Não pode iniciar com número;
Pode conter o caractere _.
Polinômios
Para declarar o polinômio 𝑃(𝑠) = 𝑠2 + 3𝑠 + 2 = (𝑠 + 1) (𝑠 + 2), existem quatro
formas:
Pelas raízes:
Pelos coeficientes (os coeficientes devem ser colocados do menor grau para o maior):
Criando a variável ‘s’:
Utilizando a variável %s:
A
s raízes
podem ser obtidas utilizando o comando roots.
É possível realizar operações entre polinômios, tais como soma, subtração, multiplicação
e divisão.
Função de Transferência
Para se utilizar os comandos específicos de controle é necessário declarar uma função de
transferência: defina o polinômio do numerador (num) e do denominador (den) e então faça
TF= num/den. Use o comando syslin para definir se é contínuo ou discreto. Exemplo.
TF=syslin(‘c’,TF) define uma função de transferência TF contínua.
--> R = roots(p)
R = -1
-2
--> P = poly([-1 -2],’s’);
--> P = poly([2 3 1],’s’,’coeff’);
--> s = poly (0,’s’);
--> p = s^2+3*s+2;
--> p = %s^2+3*%s+2;
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
8
A expansão em frações parciais de uma função de transferência é obtida pelo comando
pfss(TF).
O comando trfmod relaciona a função de transferência com os zeros (raízes do numerador), os
polos (raízes do denominador) e o ganho. Exemplo:
Figura 4: Saída do comando trfmod.
FERRAMENTA XCOS
Na tela principal, o ícone abre o XCOS. O Navegador de paletas apresenta várias
classificações de blocos pré-estabelecidas, como “Sistemas de tempo contínuo”, “Operações
Matemáticas”, dentre outras.
Figura 5: Navegador de paletas do XCOS.
Juntamente com o Navegador de paletas, é aberto um novo arquivo de trabalho do Xcos,
conforme mostra a Figura 6.
--> TF = 1/p;
--> TF = syslin(‘c’,TF);
--> trfmod (TF);
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
9
Figura 6: Arquivo para trabalho do XCOS.
A opção “Sistemas de tempo contínuo” apresenta os blocos que são vistos na Figura 7.
Figura 7: Tela com os blocos da opção “Sistemas de tempo contínuo”.
O bloco CLR pode ser arrastado para o arquivo de projeto.
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
10
Figura 8: Bloco CLR.
A tela de parâmetros do bloco pode ser acessada ao se clicar com o botão direito do mouse no
bloco ou pelo atalho ctrl+B.
Ligações e outros blocos importantes
É possível inserir outros blocos na folha de trabalho, como o bloco Step (encontrado em Fontes)
e o bloco Cscope (Receptores). Podemos interligá-los clicando no sinal de conexão existente no
bloco e arrastando até o outro bloco, de maneira que uma linha apareça e forme a ligação.
Finalmente, é necessário adicionar o bloco CLOCK_c (que irá definir a taxa de amostragem
utilizada na simulação numérica) e um block de finalização, END, para definir o tempo total de
simulação. O resultado será semelhante ao visto na Figura 9.
Figura 9: Simulação de uma malha de controle aberta.
Simulações
Com o sistema montado na Figura 9, é possível realizar uma simulação clicando em (para
um valor de END de 5 segundos). Finalmente, uma janela gráfica é aberta mostrando a saída da
planta para uma entrada degrau, conforme mostra a Figura 10.
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
11
Figura 10: Resultado obtido sem ajuste de parâmetros do bloco Cscope.
Note que para o caso com os parâmetros padrão do Cscope o resultado não está corretamente
apresentado. Ajustando:
Figura 11: Tela de configuração dos parâmetros do bloco Cscope.
Temos o seguinte resultado:
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE CLÁSSICO - LABORATÓRIO PROFESSORA: MARIANA SANTOS MATOS CAVALCA
12
Figura 12: Resultado obtido com ajuste de parâmetros do bloco Cscope.
É válido notar que a janela gráfica deve ser fechada a cada simulação para não haver
sobreposição incorreta de sinais.