Apostila MATLAB Aplicado Em Controle

37
APOSTILA DE UTILIZAÇÃO DO MATLAB Pontifícia Universidade Católica de Minas Gerais Depto. de Eng. Eletrônica e Telecomunicações Rosely Maria Velloso Campos Júlio Cesar Braz de Queiroz

Transcript of Apostila MATLAB Aplicado Em Controle

Page 1: Apostila MATLAB Aplicado Em Controle

APOSTILA DE UTILIZAÇÃO

DO MATLAB

Pontifícia Universidade Católica de Minas Gerais Depto. de Eng. Eletrônica e Telecomunicações

Rosely Maria Velloso Campos Júlio Cesar Braz de Queiroz

Page 2: Apostila MATLAB Aplicado Em Controle

ÍNDICE INTRODUÇÃO AO MATLAB UNIDADE I - FUNÇÕES DE TRANSFERÊNCIA E DIAGRAMAS DE BLOCOS UNIDADE II - ANÁLISE DE RESPOSTA TRANSITÓRIA E ESTACIONÁRIA UNIDADE III - CRITÉRIOS DE ESTABILIDADE UNIDADE IV - SISTEMAS DISCRETOS UNIDADE V - TRANSFORMADA RÁPIDA DE FOURIER UNIDADE VI - INTRODUÇÃO AO SIMULINK REFERÊNCIAS BIBLIOGRÁFICAS

Page 3: Apostila MATLAB Aplicado Em Controle

INTRODUÇÃO AO MATLAB 1. INTRODUÇÃO O MATLAB é um software interativo de alta performance com aplicação na área Científica e de Engenharia. O MATLAB trabalha com análises numéricas, matrizes, processamento de sinais, e gráficos num ambiente amigável no qual os problemas e soluções são expressos em linguagem matemática sem o rigor da programação tradicional. O nome MATLAB é derivado do termo "MATrix LABoratory". O MATLAB foi originalmente escrito para proporcionar um fácil desenvolvimento de programas com matrizes através dos projetos LINPACK e EISPACK. O MATLAB tem sido usado a vários anos por uma vasta gama de usuários. Nas Universidades, o MATLAB tem se mostrado bastante útil como ferramenta didática modelo para cursos introdutórios em Álgebra Linear, bem como em cursos avançados em outras áreas. Na indústria é usado em pesquisas e solução de problemas práticos de Engenharia envolvendo processamento matemático. As maiores aplicações estão direcionadas para as áreas da Computação Numérica, desenvolvimento de algoritmos protótipos e solução de problemas especiais com formulações matriciais que emergiram de áreas como Controle Automático, Estatística e Processamento Digital de Sinais. A segunda geração do MATLAB, apropriada para computadores IBM-PC compatíveis com sistema operacional MS-DOS, é denominada PC-MATLAB. Em computadores de grande porte como Workstations do tipo Sun e computadores VAX, a moderna versão recebe o nome de PRO-MATLAB. Para o Macintosh, a versão é denominada MACINTOSH MATLAB. Por ser escrito em linguagem C, o MATLAB é um sistema completamente integrado, compatível com a norma aritmética da IEEE, que inclui gráficos, funções macro, um rápido interpretador e diversos comandos analíticos. O MATLAB é constituído de um núcleo básico de funções matemáticas compiladas. Além destas funções básicas, existem pacotes de ferramentas para áreas específicas como CONTROLE, IDENTIFICAÇÃO DE SISTEMAS, PROCESSAMENTO DE SINAIS, CONTROLE ROBUSTO e OTIMIZAÇÃO. Estes pacotes, chamados ToolBoxes, podem ser adquiridos separadamente e apresentam um conjunto de programas em linguagem fonte que podem ser editados e modificados se o usuário desejar. Todos os programas do MATLAB apresentam a extensão "M". Os programas desenvolvidos pelo usuário deverão obrigatoriamente conter a mesma extensão para serem devidamente interpretados da mesma forma que os programas originais. 2. FERRAMENTAS PARA SISTEMAS DE CONTROLE O MATLAB possui um conjunto de funções que são usadas em Engenharia de Controle ou Teoria de Sistemas. Números complexos, Autovalores, Lugar das Raízes, Inversão de matrizes, Transformada Rápida de Fourier são um dos dos poucos exemplos dos recursos disponíveis. O pacote CONTROLE é uma coleção de algoritmos expressos no formato de arquivos ".M", que implementam projeto de sistemas de controle. análise e técnicas de modelamento. Os sistemas de controle podem ser modelados na forma de Funções de Transferência ou Espaço de Estados, permitindo utilizar as técnicas Clássica e Moderna respectivamente. É permitida a abordagem de sistemas contínuos e discretos bem como a conversão entre as

Page 4: Apostila MATLAB Aplicado Em Controle

representações de vários modelos. Respostas no tempo, resposta em freqüência e medidas do Lugar das Raízes podem ser computados e representados graficamente. Outras funções permitem o Posicionamento de pólos, Controle Ótimo e Estimação. As funções não disponíveis no MATLAB poderão ser criadas e escritas, gerando arquivos ".M". 3. TUTORIAL O MATLAB trabalha essencialmente com matrizes numéricas retangulares com a possibilidade da utilização de elementos complexos. As matrizes podem ser do tipo "m x m", "m x n", da forma escalar "1 x 1" ou em forma de vetor "linha" ou "coluna". 3.1 Definição de Matrizes O MATLAB não exige a identificação da ordem da matriz ou declarações de tipos. As matrizes podem ser introduzidas de diversas maneiras. Seja a matriz A 3x3 1 2 3

A = 4 5 6

7 8 9

Esta matriz pode ser definida como uma lista explícita de elementos separados por "," ou "espaços em branco", envolvidos por "[ ]" e utilizando ";" para indicar o fim de cada linha.

A = 1 2 3 4 5 6 7 8 9, , ; , , ; , , ou A = 1 2 3 4 5 6 7 8 9; ; Uma outra forma de se definir esta matriz é escrever os elementos de cada linha, separando as linhas com o comando <ENTER>.

A = 1 2 3

4 5 67 8 9

, ,, ,, ,

ou A = 1 2 3

4 5 67 8 9

Uma matriz pode também ser definida a partir de listas de operações, funções ou mesmo outras matrizes.

B sqrt= − +1 3 3 1 2 4 5. ( ) ( ) * /

C B= ; 10 11 12

Page 5: Apostila MATLAB Aplicado Em Controle

3.2 Expressões Numéricas e Aritméticas O MATLAB trabalha em notação decimal, hexadecimal, potência de 10 e exponencial em diversos formatos com aproximadamente 16 algarismos significativos na faixa de

10 10308 308− a As expressões podem ser construídas utilizando os operadores aritméticos abaixo:

+ adição - subtração * multiplicação / divisão à direita \ divisão à esquerda ^ potenciação

A maioria das funções matemáticas elementares são encontradas no MATLAB, como por exemplo, abs, sqrt, log, sin, cos, etc. Números e funções pré-programadas retornam valores especiais como pi, inf, etc. Pode realizar operações com números complexos. Para tal, deve-se definir previamente uma variável

i sqrt= −( )1 Exemplo: d i = +5 6 * D i= +1 2 3 4 5 6 7 8; * ; 3.3 Operações com Matrizes Além das operações básicas soma, subtração e multiplicação, podem ser realizadas ainda as seguintes operações: . Inversão : a operação C inv A= ( )direciona para a variável C o resultado da inversão da matriz A . Divisão à direita: a operação C A B= \ é equivalente a inv A B( ) * . Divisão à esquerda: a operação C A B= / é equivalente a A inv B* ( ) . Potenciação: a operação C A n= ^ realiza o produto A A* "n" vezes e direciona o resultado para C . Transposição: a operação C A= ' direciona para C o resultado da transposta da matriz A . Determinante: a operação C A= det ( ) direciona para a variável C o resultado do determinante da matriz A

Page 6: Apostila MATLAB Aplicado Em Controle

3.4 Geração de Vetores A operação a seguir produz um vetor seqüência de 1 a "n"

E n E= n=1 1 2 3: K O vetor pode ser criado com incrementos positivos e negativos, inteiros e fracionários. Exemplos:

F F= =1 2 10 1 3 5 7 9: : G G= − =10 3 0 10 7 4 1: :

H H= =1 0 5 3 1 1 5 2 2 5 3: . : . .

3.5 Construção de Rotinas FOR loops for variável=expressão declarações declarações end WHILE loops while variável=expressão declarações declarações end IF loops if variável=expressão declarações elseif variável=expressão declarações else declarações end As expressões comparativas utilizadas podem ser do tipo = =, >, <, >=, <=, ~=. 3.6 Acesso ao MS-DOS Qualquer comando dos MS-DOS pode ser executado no ambiente do MATLAB colocando-se o símbolo "!" antes do comando. Exemplos:

Page 7: Apostila MATLAB Aplicado Em Controle

! type [nome do arquivo] ! dir

Page 8: Apostila MATLAB Aplicado Em Controle

UNIDADE I - FUNÇÕES DE TRANSFERÊNCIA E DIAGRAMA DE BLOCOS 1. INTRODUÇÃO A maioria dos sistemas dinâmicos, independentemente de serem mecânicos, elétricos, térmicos, hidráulicos, econômicos, biológicos etc., podem ser caracterizados por equações diferenciais. A resposta de um sistema dinâmico a uma dada entrada (ou função de excitação) pode ser obtida se estas equações diferenciais são resolvidas. Podem-se obter as equações utilizando leis físicas que governam um particular sistema, por exemplo, as leis de Newton para sistemas mecânicos, as leis de Kirchhoff para sistemas elétricos etc. Modelos Matemáticos: A descrição matemática das características dinâmicas de um sistema é denominado "modelo matemático". O primeiro passo na análise de um sistema dinâmico é obter seu modelo. Deve-se sempre levar em conta que a obtenção de um modelo matemático razoável é a parte mais importante de toda a análise. Os modelos podem assumir formas muito diferentes. Dependendo do sistema e de certas circunstâncias, uma representação matemática pode ser mais conveniente do que outras representações. Por exemplo, em problemas de controle ótimo, é quase sempre vantajoso usar um conjunto de equações diferenciais de primeira ordem. Por outro lado, para a análise de resposta transitória ou análise de resposta em frequência de sistemas de entrada-simples-saída-simples, a representação através da função de transferência pode ser mais conveniente. Função de Transferência: A Função de Transferência é uma expressão relacionando a saída e a entrada de um sistema linear invariável no tempo em termos dos parâmetros do sistema e é uma propriedade do próprio sistema, independente da entrada ou função de excitação. A Função de Transferência inclui as unidades necessárias para relacionar a entrada com a saída; entretanto, não fornece qualquer informação relativa à estruturafísica do sistema. É a relação da transformada de Laplace da saída (função resposta) para a transformada de Laplace da entrada (função de excitação), considerando nulas todas as condições iniciais. Diagramas de Blocos: Um diagrama de blocos de um sistema é uma representação das funções desempenhadas por cada componente e do fluxo de sinais. Este diagrama indica a inter-relação que existe entre os vários componentes. Em um diagrama de blocos, todas as variáveis do sistema são ligadas às outras através de blocos funcionais. O "bloco funcional", ou simplesmente "bloco" é um símbolo para a operação matemática sobre o sinal de entrada para o bloco que produz a saída. As funções de transferência dos componentes são usualmente indicadas nos blocos correspondentes, os quais são ligados por flechas para indicar o sentido do fluxo de sinais. Note que o sinal pode passar somente no sentido da flecha. Consequentemente, um diagrama de blocos de um sistema de controle indica explicitamente uma propriedade unilateral.

Page 9: Apostila MATLAB Aplicado Em Controle

Função de Transferência de Malha Aberta:

FUNÇÃODE

TRANSFERÊNCIA

G(s)

X(s) Y(s)

Função de Transferência de Malha Fechada:

FUNÇÃODE

TRANSFERÊNCIA

G(s)

C(s)E(s)+-

R(s)

2. REPRESENTAÇÃO DA FUNÇÃO DE TRANSFERÊNCIA Explo: Seja a F. T. abaixo:

C sR s s s s s s

( )( ) ( )( )

=+ +

=+ +

12 3

15 63 2 s

>> num=[1]; >> den1=[1 0]; >> den2=[1 2]; >> den3=[1 3]; >> den4=conv(den1,den2); >> den=conv(den3,den4); >> printsys(num,den,'s'); num/den = 1 ----------------- s^3 + 5 s^2 + 6 s

Page 10: Apostila MATLAB Aplicado Em Controle

3. SISTEMA EM MALHA FECHADA COM REALIMENTAÇÃO UNITÁRIA Dado o sistema abaixo:

+-U Y

s(s+2)(s+3)(s+1)

Para determinar o sistema em Malha Fechada: >>[numc,denc]=cloop(num,den,sign); Onde sign é o sinal de realimentação +/-1. Explo: >> numg=[1 1]; >> deng=conv(conv([1 0],[1 2]),[1 3]); >> [numc,denc]=cloop(numg,deng,-1); >> printsys(numc,denc,'s'); num/den = s + 1 --------------------- s^3 + 5 s^2 + 7 s + 1 4. SISTEMAS REALIMENTADOS Dado o sistema abaixo:

+- SISTEMA 1

SISTEMA 2

U1 Y1

U2Y2

>>[num,den]=feedback(num1,den1,num2,den2);

Page 11: Apostila MATLAB Aplicado Em Controle

ou >>[num,den]=feedback(num1,den1,num2,den2,sign); Onde sign = +/- 1. Explo:

+-U1 Y1

0,05Y2 U2

60s(s+1)

5. CONEXÕES DE SISTEMAS Considerando os sistemas em série abaixo:

U1 SISTEMA 1 SISTEMA 2 Y2Y1 U2

>>[num,den]=series(num1,den1,num2,den2); Exemplo: Seja um sistema de controle de nível envolvendo dois tanques em série, onde as constantes de tempo τ1=τ2=1

Page 12: Apostila MATLAB Aplicado Em Controle

U1 Y2Y1 U21τ12,62 s+1

10,38 s+1τ2

>> num1=[1]; >> den1=[2.62 1]; >> num2=[1]; >> den2=[0.38 1]; >> [num,den]=series(num1,den1,num2,den2); >> printsys(num,den,'s'); num/den = 1 ------------------- 0.996 s^2 + 3 s + 1 Para sistemas ligados em paralelo:

SISTEMA 1

SISTEMA 2

U1

U2

U

Y1

Y2

Y++

>>[num,den]=parallel(num1,den1,num2,den2); Exemplo: Seja um sistema de controle de nível envolvendo dois tanques em paralelo, onde as constantes de tempo τ1=τ2=1

Page 13: Apostila MATLAB Aplicado Em Controle

U1

U2

U

Y1

Y2

Y++

1τ12,62 s+1

10,38 s+1τ2

>> num1=[1]; >> den1=[2.62 1]; >> num2=[1]; >> den2=[0.38 1]; >> [num,den]=parallel(num1,den1,num2,den2); >> printsys(num,den,'s'); num/den = 3 s + 2 ------------------- 0.996 s^2 + 3 s + 1

Page 14: Apostila MATLAB Aplicado Em Controle

Sistemas em Espaços de Estados: Dado o sistema: s+2 ________________ 2.62 s + s + 1 Para reprensaentar este sistema em E.E vem: num = [1 2]; den = [2.62 1 1]; [A,B,C,D] = tf2ss(num,den) Caso o sistema seja dado na forma de E.E como: A = [0 1; -25 -4]; B = [1 1; 0 1]; C = [1 0; 0 1]; D = [0 0; 0 0]; [num1,den1] = ss2tf(A,B,C,D,1) printsys(num1,den1)

Page 15: Apostila MATLAB Aplicado Em Controle

UNIDADE II - ANÁLISE DE RESPOSTA TRANSITÓRIA E ESTACIONÁRIA 1. ANÁLISE DO ERRO ESTACIONÁRIO Uma importante característica na análise de sistemas de controle é o estudo do erro apresentado pelo sistema em regime estacionário ou permanente. Os erros em um sistema de controle podem ser atribuídos a diversos fatores. Variações no sinal de entrada do sistema podem causar erros durante períodos transitórios que podem também se estender ao regime permanente. O desgaste natural ou mesmo forçado dos componentes do sistema (como por exemplo, atrito estático, folgas, deteriorações, etc) também poderão dar origem a erros estacionários. A importância em se analisar o erro em regime permanente é o fato de ele ser um indicativo da precisão do sistema de controle. O desempenho em regime permanente de um sistema de controle estável é geralmente avaliado pelo erro estacionários devido a entradas a degrau, rampa ou parábola(aceleração). O erro estacionário pode ser obtido a partir da manipulação das equações de um sistema em malha fechada. R(s) E(s) C(s) G(s) B(s) H(s) De onde podemos tirar que: E(s) = R(s) - B(s) B(s) = H(s) C(s)_ C(s) = G(s) E(s)

Substituindo B(s) e C(s) em E(s) obtemos:

E sG s H s

R s( )( ) ( )

( )=+

11

O valor temporal do erro estacionário resulta da aplicação do teorema do valor final,

e e t sE sss t s= =

→∞ →lim ( ) lim ( )

0

Page 16: Apostila MATLAB Aplicado Em Controle

Uma vez obtida a equação do erro na domínio "s", basta fazer a variável "s" tender para zero. Como o MATLAB não trabalha com limites, usa-se a função polyval para atribuir o valor zero à variável "s" da seguinte maneira: >>pol=[a b c] >>ess=polyval(pol,0) Exemplo: Seja a seguinte função do erro,

E ss s

( )( , )( , )

=+ +

16 9 1 1 03 1

x R(s)

determinar o erro em regime permanente.

Para R(s) = 1/s (degrau unitário), e e t sss t s= =

→∞ →lim ( ) lim

01/s 1/[(6.9s + 1) (1.03s + 1)] = 1

>> pol = conv([6.9 1],[1.03 1]) ans = 7.1070 7.9300 1.0000 >> ess=polyval(pol,0) ess = 1 2. ANÁLISE DE RESPOSTA A ENTRADA A DEGRAU, IMPULSO E OUTRAS O cálculo da resposta de sistemas a entradas diversas é bastante simples. Primeiro, é preciso definir o numerador e o denominador da F.T. do sistema em malha fechada. >>num=[a b c] >>den=[d e f g] O MATLAB possui funções já defindas para a simulação gráfica da curva de resposta do sistema às diversas entradas. 2.1 RESPOSTA A ENTRADA DO TIPO DEGRAU UNITÁRIO A função step plota a curva de resposta para entrada a degrau unitário. Explo: >>step(num,den) Realizando a simulação desta forma, o interpretador MATLAB determinará automaticamente os valores extremos do eixo temporal do gráfico apresentado. Exemplo:

Page 17: Apostila MATLAB Aplicado Em Controle

FTs s

=+ +

16 9 1 1 03 1( , )( , )

>> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> step(num,den);

Caso o usuário deseje amostrar um intervalo específico, poderá usar a mesma função acrescida de um vetor tempo. >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> step(num,den,t);

Page 18: Apostila MATLAB Aplicado Em Controle

2.2 RESPOSTA A ENTRADAS QUAISQUER Para simular a resposta do sistema a uma entrada qualquer usa-se a função lsim. Este tipo de simulação requer a definição do vetor tempo e do valor da entrada. A entrada pode ser representada por uma função qualquer. Por exemplo, uma função do tipo rampa: >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> u=t; >> lsim(num,den,u,t);

Page 19: Apostila MATLAB Aplicado Em Controle

2.3 RESPOSTA A ENTRADA DO TIPO IMPULSO A função impulse permite simular a resposta do sistema para uma entrada do tipo impulso. Explo: >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> impulse(num,den,t);

Alguns recursos ainda podem ser utilizados nos gráficos: Função grid >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> step(num,den,t),grid;

Page 20: Apostila MATLAB Aplicado Em Controle

Função title >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> step(num,den,t),title('Resposta a Degrau Unitario');

Funções xlabel e ylabel >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> step(num,den,t),xlabel('Tempo em segundos'),ylabel('Amplitude de Resposta');

Page 21: Apostila MATLAB Aplicado Em Controle

Tempo em segundos

Função subplot >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> t=0:50; >> subplot(211),step(num,den,t),subplot(212),lsim(num,den,t,t);

Para retornar a tela ao modo normal: >> subplot(111);

Page 22: Apostila MATLAB Aplicado Em Controle

UNIDADE III - CRITÉRIOS DE ESTABILIDADE 1. MÉTODO DO LUGAR DAS RAÍZES A característica básica da resposta transitória de um sistema em malha fechada é determinada a partir dos pólos de malha fechada. Os pólos de malha fechada são as raízes da equação característica. Para determiná-los, necessitamos fatorar o polinômio característico. Em geral, este procedimento é trabalhoso se o grau do polinômio característico é alto. As técnicas clássicas de fatoração de polinômios não são convenientes porque conforme varia o ganho da função de transferência em malha aberta, devem ser repetidos os cálculos. Um método simples para determinar as raízes da equação característica é denominado Método do Lugar das Raízes. É um método pelo qual as raízes da equação característica são colocadas em um gráfico para todos os valores de um parâmetro do sistema. As raízes correspondentes a um valor particular deste parâmetro podem então ser localizadas no gráfico resultante. Note que o parâmetro usualmente é o ganho, porém, qualquer outra variável da função de tranferência em malha aberta pode ser utilizado. 1.1 Localização dos pólos e zeros do sistema no plano "s" Para se obter o gráfico de localização dos pólos e zeros do sistema no plano "s" utiliza-se a função pzmap. >> pzmap(num,den) Exemplo: Seja a Função de Transferência,

FT k ss s s

=+

+ +( )

( )( )

2 1002 4

mapear os pólos e zeros do sistema. >> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> pzmap(num,den);

Page 23: Apostila MATLAB Aplicado Em Controle

1.2 Gráfico do Lugar das Raízes A função rlocus calcula e apresenta o gráfico do Lugar das Raízes completo usando como parâmetros o numerador e o denominador da F.T. de malha fechada. >> rlocus(num,den) Exemplo: Para o mesmo sistema obter o Lugar das Raízes. >> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> rlocus(num,den);

Page 24: Apostila MATLAB Aplicado Em Controle

O Lugar das Raízes ainda pode ser apresentado em função de uma das variáveis do sistema, como por exemplo o ganho. >> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> k=0:0.1:100; >> rlocus(num,den,k);

1.3 Cálculo do ganho do sistema A função rlocfind calcula o valor do ganho para um pólo do sistema em uma posição qualquer. Caso o usuário deseje saber o valor ideal do ganho, o MATLAB assume o coeficiente de amortecimento do sistema igual a 0.707. >> p="pólo do sistema" >> k=rlocfind(num,den,p) Exemplo: Para o pólo -2, qual é o valor ideal do ganho para um coeficiente de amortecimento do sistema igual a 0.707 >> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> p=2; >> [k,poles]=rlocfind(num,den,p) k = 0.4615

Page 25: Apostila MATLAB Aplicado Em Controle

poles = -6.3468 -0.0574 + 2.6960i -0.0574 - 2.6960i

2. DIAGRAMA DE BODE Uma F.T. senoidal pode ser representada por dois gráficos separados, um fornecendo o módulo versus frequência e outro o ângulo de fase versus frequência. Um gráfico logarítmico ou Diagrama de Bode consiste em dois gráficos: um deles é um gráfico do logarítmo do módulo de uma F.T. senoidal; o outro é um gráfico do ângulo de fase; ambos são construídos em função da frequência, esta em uma escala logarítmica. A principal vantagem de usar gráfico logarítmico é que a multiplicação dos módulos é convertida em uma adição. A função bode calcula e apresenta a curva do Diagrama de Bode a partir do numerador e do denominador da F.T. de malha fechada, podendo o usuário determinar a faixa de frequência a ser simulada. Para especificar os valores mínimos e máximos da escala de frequência (logarítmica), utiliza-se a função logspace, onde devem ser indicados os expoentes referentes às décadas da escala. >> [mag,phase,w]=bode(num,den); >> magdb=20*log10(mag) % converte o módulo em decibéis >> semilogx(w,magdb) >> pause >> semilogx(w,phase) Exemplo:

Page 26: Apostila MATLAB Aplicado Em Controle

>> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> [mag,phase,w]=bode(num,den); >> magdb=20*log10(mag); >> semilogx(w,magdb);

>> semilogx(w,phase);

Os parâmetros da escala logarítmica podem ser determinados através do comando, >> w=logspace(-1,2); escala de 0,1 a 100 Os gráficos podem ser plotados juntos na mesma tela: >> subplot(211),semilogx(w,magdb),subplot(212),semilogx(w,phase);

Page 27: Apostila MATLAB Aplicado Em Controle

Para retornar a tela ao modo normal: >> subplot(111); 3. DIAGRAMA DE NYQUIST O critério de estabilidade de Nyquist possibilita investigar tanto a estabilidade absoluta como a estabilidade relativa de sistemas de malha-fechada lineares a partir do conhecimento de suas características de resposta em frequência de malha aberta. Usando este critério de estabilidade, não precisamos determinar as raízes da equação característica. Uma outra vantagem desta abordagem é que os testes de resposta em frequência são, em geral, simples e podem ser realizados com o uso de geradores de sinais senoidais e osciloscópios. Além disso, a abordagem da resposta em frequência possui as vantagens de que um sistema pode ser projetado de modo que os efeitos de ruídos indesejáveis sejam desprezíveis e a análise e projeto podem ser estendidos a alguns sistemas de controle não lineares. A função nyquist calcula a resposta em freq uência utilizando o numerador e o denomindor da F.T. em malha fechada, podendo o usuário determinar a faixa de frequência a ser amostrada. >> nyquist(num,den) Exemplo: >> num=[1 0 100]; >> den=conv([1 0],conv([1 2],[1 4])); >> nyquist(num,den);

Page 28: Apostila MATLAB Aplicado Em Controle

Para ajustar as escalas’ >> w=logspace(-3,1) % escala logarítmica de 0,001 a 10 >> nyquist(num,den,w) Outro exemplo: Seja a Função de Transferência,

FT k s ss s

=− +

+ +( )

( )(

2 4 82 3)

>> num=[1 -4 8]; >> den=conv([1 3],[1 2]); >> pzmap(num,den);

Page 29: Apostila MATLAB Aplicado Em Controle

>> rlocus(num,den);

>> p=3; >> [k,poles]=rlocfind(num,den,p) k = 6.0000 poles = 1.3571 + 2.4233i 1.3571 - 2.4233i

Page 30: Apostila MATLAB Aplicado Em Controle

>> [mag,phase,w]=bode(num,den); >> magdb=20*log10(mag); >> semilogx(w,magdb);

>> semilogx(w,phase);

>> nyquist(num,den);

Page 31: Apostila MATLAB Aplicado Em Controle
Page 32: Apostila MATLAB Aplicado Em Controle

UNIDADE IV - SISTEMAS DISCRETOS 1. INTRODUÇÃO Sistemas de tempo discreto ou sistemas a dados amostrados, são sistemas dinâmicos em que uma ou mais variáveis podem mudar apenas em instantes discretos de tempo. Estes instantes, que denotaremos por kT onde k=0,1,2,... podem especificar o instante em que é feita alguma medida física ou o instante em que é lida a memória de um computador digital. O intervalo de tempo entre dois instantes discretos é considerado suficientemente pequeno, de tal forma que os dados para os tempos entre estes instantes discretos podem ser aproximados por interpolação simples. Sistemas de tempo discreto diferem dos de tempo contínuo, em que os sinais para o sistema de tempo discreto estão na forma amostrada. Sistemas de tempo discreto ocorrem na prática quando as medidas necessárias para o controle são obtidas de forma intermitente, ou um controlador de larga escala ou computador é multiplexado no tempo entre vários processos de tal forma que um sinal de controle é mandado para cada processo apenas periodicamente ou quando um computador digital é usado para fazer as computações necessárias para controle. Muitos sistemas de controle industrial modernos são sistemas de tempo discreto uma vez que invariavelmente incluem alguns elementos cujas entradas e/ou saídas são discretas no tempo. Às vezes, entretanto, a operação de amostragem, ou discretização, pode ser inteiramente fictícia, e introduzida apenas para simplificar a análise de um sistema de controle que na realidade contém apenas elementos contínuos. Os sistemas discretos lineares invariantes no tempo são representados no MATLAB da mesma forma que os sistemas contínuos: em espaço de estados, como funções de transferência, por ajuste de ganho de pólos e zeros, e na forma de resíduos. As funções cloop, series, parallel são usadas tanto para sistemas contínuos como também para sistemas discretos. 2. MAPEAMENTO NO PLANO Z A Transformação Bilinear mapeia do plano s para o plano z ou seja, de um sistema contínuo, analógico para um sistema discreto, digital. A equação abaixo é que faz tal transformação:

H(z) = H(s) s = 2 fs (z-1)/(z+1) Explo: [zd,pd,kd] = bilinear(z,p,k,fs) Converte a partir dos zeros (z), pólos (p) e do ganho (k) do sistema analógico para o discreto. kd é um escalar, fs é a frequência de amostragem dada em Hz. [numd,dend] = bilinear(num,den,fs) [Ad,Bd,Cd,Dd] = bilinear(A,B,C,D) Dada a função: F.T. = 1

Page 33: Apostila MATLAB Aplicado Em Controle

__________________ 2s2 + s + 1 Encontrar o sistema discreto (em z) para fs = 0.1 Hz. num=[1]; den=[2 1 1]; fs=0.1Hz; [numd,dend]=bilinear(num,den,fs); printsys(numd,dend,’z’) Solução : 0.7812 z2 + 1.562 z + 0.7812 ______________________________ z2 + 1.438z + 0.6875 A função PZMAP plota os pólos e zeros no plano complexo da função de transferência ou espaço de estados. >> pzmap(num,den) Exemplo: Seja o sistema descrito pela Função de Transferência,

FTz z

=+ +

16 9 1 1 03 1( , )( , )

>> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> pzmap(num,den);

O gradeamento da tela pode ser obtido a partir da utilização da função zgrid.

Page 34: Apostila MATLAB Aplicado Em Controle

3. ANÁLISE DE RESPOSTA EM TEMPO DISCRETO As funções apresentadas na Unidade II para a Análise de Resposta em tempo contínuo poderão ser aqui utilizadas bastando se acrescentar a letra "d" antecendendo a função. Este prefixo significa que se trata de sistemas em tempo discreto. >> dstep(num,den,n) entrada a degrau unitário >> dlsim(num,den,u) entrada qualquer >> dimpulse(num,den,n) entrada a impulso onde "n" é número de pontos amostrados. Exemplos: Para a Função de Transferência do item anterior, >> num=[1]; >> den=conv([6.9 1],[1.03 1]); >> n=100; >> dstep(num,den,n);

>> t=0:40; >> u=t; >> dlsim(num,den,u);

Page 35: Apostila MATLAB Aplicado Em Controle

>> dimpulse(num,den,n);

4. ANÁLISE DE ESTABILIDADE As funções apresentadas na Unidade III para a Análise de Estabilidade em tempo contínuo poderão ser também utilizadas para abordagens em tempo discreto. A função rlocus mantém a mesma sintaxe. As funções para análise em frequência seguem a mesma sintaxe citada no item anterior: >> dbode(num,den,Ts) Diagrama de Bode >> dnyquist(num,den,Ts) Diagrama de Nyquist onde "Ts" é o intervalo de amostragem. Exemplo: Prosseguindo com a mesma função,

Page 36: Apostila MATLAB Aplicado Em Controle

>> Ts=100; >> dbode(num,den,Ts);

>> dnyquist(num,den,Ts);

Page 37: Apostila MATLAB Aplicado Em Controle

UNIDADE V - TRANSFORMADA RÁPIDA DE FOURIER 1. INTRODUÇÃO A Transformada Rápida de Fourier (fft) é um algoritmo computacional que discretiza a Transformada de Fourier. fft(x) é a transformada discreta do vetor x. Se x é uma matriz, a FFT calcula a transformada rápida de cada coluna. fft(x,n) calcula a FFT de x para n pontos. ifft(x) e ifft(x,n) são as Transformadas Inversa de Fourier Exemplo: x = [ 4 3 7 -9 1 0 0 0]; y = fft(x)