Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Controle automático com MATLAB, Notas de estudo de Engenharia Elétrica

objetivo deste trabalho é ensinar a utilizar o MATLAB, voltado para a aplicação em engenharia de controle, de uma maneira rápida e eficiente. Contudo ele pressupõe que você já saiba alguns conceitos básicos de MATLAB e que já tenha conhecimentos de controle.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 20/05/2010

victor-dal-rio-rody-vianna-5
victor-dal-rio-rody-vianna-5 🇧🇷

4 documentos

1 / 17

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Toolbox de Sistemas de
Controle
MATLAB
Control System Toolbox
Grupo PET – Engenharia Elétrica – UFMS
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Controle automático com MATLAB e outras Notas de estudo em PDF para Engenharia Elétrica, somente na Docsity!

Toolbox de Sistemas de

Controle

MATLAB

Control System Toolbox

Grupo PET – Engenharia Elétrica – UFMS

1. Introdução

O objetivo deste trabalho é ensinar a utilizar o MATLAB, voltado para a aplicação em engenharia de controle, de uma maneira rápida e eficiente. Contudo ele pressupõe que você já saiba alguns conceitos básicos de MATLAB e que já tenha conhecimentos de controle. O enfoque é no toolbox de Sistemas de Controle, mas muitas outras funções além das funções deste toolbox podem ser utilizadas para o estudo de engenharia de controle. Apenas uma parte das funções do toolbox serão tratadas aqui pois a variedade é grande e a apostila poderia perder a objetividade. Para ver as funções que estão contidas neste toolbox , digite no MATLAB:

help control A fim de melhorar a didática desta apostila, todos os comando que são digitados no MATLAB foram emoldurados como no caso acima. Para se aprofundar no assunto, consulte o livro:

  • Solução de Problemas de Engenharia de Controle com MATLAB, Katsuhiko Ogata , Ed. PHB

2. Representação dos Sistemas

2.1. Representação dos Sistemas Contínuos no Tempo

2.1.1. Função de Transferência

Considere a Função de Transferência: H(s) = s 3 s 2 s 3 (^3)  

Para representa-la no MATLAB escrevemos o numerador e o denominador separados na forma padrão de polinômios para o MATLAB como se segue:

num = [1 3]; den = [1 0 -3 2]; Para facilitar utilizamos a função tf para atribuir a função a uma única variável. sys = tf(num,den) Transfer function: s + 3


s^3 - 3 s + 2

2.1.2. Equações de Estado

Para definirmos as equações de estado abaixo x Ax Bu y Cx Du Precisamos apenas das variáveis A , B , C e D. Por exemplo:

A = [0, 3, -2; 1, 0, 0; 0, 1, 0]; B = [1; 0; 0]; C = [0, 1, 3]; D = [0]; Para atribuir o sistema a uma única variável utilizamos a função ss. sys = ss(A,B,C,D) a = x1 x2 x x1 0 3 - x2 1 0 0 x3 0 1 0 b = u x1 1 x2 0 x3 0 c = x1 x2 x y1 0 1 3 d = u y1 0 Continuous-time model.

ss2zp

[z, p, k] = ss2zp(A, B, C, D) z = -3. p = -2.

k =

zp2ss

[A, B, C, D] = zp2ss(z, p, k) A = 1.0000 0 0 4.0000 -1.0000 1. 0 1.4142 0 B = 1 1 0 C = 0 0 0. D = 0 % Este resultados são aparentemente diferente, mas representam o mesmo % sistema. % Podemos comprovar retornando à função de transferência.

[num, den] = ss2tf(A, B, C, D) num = 0 -0.0000 1.0000 3. den = 1 0 -3 2 tf2zp [z, p, k] = tf2zp(num, den) z =

p = -2.

k =

zp2tf

[num, den] = zp2tf(z, p, k) num =

0 0 1 3 den = 1.0000 0.0000 -3.0000 2.

2.2. Representação dos Sistemas Discretos

Podemos utilizar as seguinte funções:

  • c2d – Converte sistemas contínuos em sistemas discretos.
  • d2c – Converte sistemas discretos em sistemas contínuos.
  • d2d – Altera o tempo de amostragem de um sistema discreto.
  • filt – Gera o sistema discreto a partir do numerador, do denominador e do tempo de amostragem. c2d A sintaxe desta função é; [ sistema_discreto ] = c2d( sistema_contínuo , tempo_de_amostragem , método ) método – pode ser: 'zoh', 'foh', 'tustin', 'prewarp', 'matched'.

[sysd] = c2d(sys,1) % O tempo de amostragem é 1. Transfer function: 1.19 z^2 + 2.707 z - 0.


z^3 - 5.572 z^2 + 8.125 z - 1 Sampling time: 1 d2c

sysc = d2c(sysd) Transfer function: -8.877e-015 s^2 + s + 3


s^3 - 2.442e-015 s^2 - 3 s + 2

%Note que -8.877e-015 e 2.442e-015 são aproximadamente 0. d2d sysd2 = d2d(sysd,2) Transfer function: 10.53 z^2 + 47.49 z + 2.


z^3 - 14.8 z^2 + 54.87 z - 1

3. Análise da Resposta Transitória de Sistemas

Contínuos no Tempo

3.1. Resposta ao Degrau

Para verificarmos a resposta transitória ao degrau de um sistema utilizamos a função step. Nessa função podemos entrar com os sistemas criados pelas funções tf , zpk ou ss. Podemos também entrar direto com o numerador e o denominador da função de transferência ou direto com os termos das equações de estado. Exemplo: Considere o sistema

num = [0 0 1]; den = [1 0.5 1]; A resposta ao degrau será: step(num,den) podemos inserir outro gráfico na mesma janela. hold %Congela o gráfico Current plot held num = [0 0 1]; den = [1 0.5 4]; step(num,den) hold Current plot released

Caso seja necessária a construção de gráficos diferentes podemos requisitar o retorno da função step. Nesse caso o gráfico não aparece, sendo necessário a utilização de outra função de plotagem ( plot , bar , stairs ...).

num = 1; den = [1 0.5 1]; %O mesmo sistema do exemplo anterior [y,t] = step(tf(num,den)); plot(t,y,'r--'); %Gráfico vermelho tracejado.

4. Análise da Resposta Transitória de Sistemas Discretos

no Tempo

Para se obter as respostas de sistemas discretos, pode-se utilizar as mesmas funções impulse e step inserindo na entrada o sistema e não o numerador e o denominador. Ex: step( sistema ), e não step( num , den ). Para entrar com o numerador e o denominador deve-se utilizar a função filter e gerar as funções entrada.

4.1. Geração das Funções de Entrada

4.1.1. Entrada Tipo Delta de Kronecker

Esta entrada equivale ao impulso unitário para sistemas contínuos no tempo. Ela é definida pela expressão: u(0) = 1 u(k) = 0, para k = 1, 2, 3, 4,... Para construirmos no MATLAB com k até 60, por exemplo, fazemos:

u = [1 zeros(1,60)];

4.1.2. Entrada Tipo Degrau

Esta entrada é definida pela expressão: u(k) = 1, para k = 0, 1, 2, 3, 4,... Para construirmos no MATLAB com k até 60, por exemplo, fazemos:

u = [1 ones(1,60)];

4.1.3. Entrada Tipo Rampa

Esta entrada é definida pela expressão: u(k) = kT, para k = 0, 1, 2, 3, 4,... (T = período amostrado em segundo) Para construirmos no MATLAB com k até 60, por exemplo, fazemos:

k = 0:60; u = 0.2.*k;

4.1.4. Entrada Tipo Aceleração

Esta entrada é definida pela expressão: u(k) = ½ (kT)^2 , para k = 0, 1, 2, 3, 4,... Para construirmos no MATLAB com k até 60, por exemplo, fazemos:

k = 0:60; u = [0.5.(0.2.k).^2];

4.2. Filtros Digitais

Seja um filtro digital cuja função de transferência discreta é a(z ) b(z ) X(z ) Y (z )  onde b(z) é o polinômio do numerador em z, e a(z) é o polinômio do denominador, também em z. Os comandos y = filter(b,a,x) ou y = filter(num,den,x) submetem os dados do vetor x ao filtro cujas características estão descritas pelos vetores a e b (den e num respectivamente), criando os dados filtrados y. Obs.: A função filter pertence ao Signal Processing Toolbox e não ao Control System Toolbox, mas pode ser utilizada aqui, pois equivale a transformada z inversa.

4.3. Resposta ao Delta de Kronecker

Consideremos o seguinte sistema de controle discreto no tempo: z 1 , 5327 z 0 , 6607 0 , 4673 z 0 , 3393 1 1 , 5327 z 0 , 6607 z 0 , 4673 z 0 , 3393 z X(z ) Y (z ) 1 2 2 1 2         (^)     Para encontra no MATLAB a respota y(k) ao Delta de Kronecker fazemos:

num = [0.4673 –0.3393]; den = [1 –1.5327 0.6607]; x = [1 zeros(1,40)] % Criação do Delta de Kronecker y = filter(num, den, x);

4.4. Resposta ao Degrau

num = [0.4673 –0.3393]; den = [1 –1.5327 0.6607]; x = ones(1,40); % Criação do degrau y = filter(num, den, x);

4.5. Resposta a Rampa

num = [0.4673 –0.3393]; den = [1 –1.5327 0.6607]; x = 0.5.*(0:20); % Criação da rampa y = filter(num, den, x);

6. Resposta em Freqüência

Como exemplo valor considerar o sistema: num = [0 1 5]; den = [1 0.5 1];

sistema = tf(num,den) Transfer function: s + 5


s^2 + 0.5 s + 1 As funções e os seus resultados são: Tipo Comando Resultado Diagrama de Bode >> bode(sistema); Valor Singulares (Equivale a resposta em amplitude do diagrama de bode)

sigma(sistema); Diagrama de Nyquist >> nyquist(sistema);

Gráfico de Nichols >> nichols(sistema); Mostra o diagrama de Bode, mas indicando as margens de ganho e de fase.

margin(sistema);