Anda di halaman 1dari 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
Í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
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
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 A= 1 2 3
4 , 5, 6 ou 4 5 6
7 , 8, 9 7 8 9

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

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

C = B; 10 11 12
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−308 a 10308
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 = 5 + 6*i
D = 1 2 ; 3 4 + i * 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 = det ( A ) direciona para a variável C o resultado do


determinante da matriz A
3.4 Geração de Vetores

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

E = 1: n E= 1 2 3 K n

O vetor pode ser criado com incrementos positivos e negativos, inteiros e fracionários.
Exemplos:

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

H = 1: 0. 5: 3 H = 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:
! type [nome do arquivo]
! dir
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.
Função de Transferência de Malha Aberta:

FUNÇÃO
X(s) DE Y(s)
TRANSFERÊNCIA

G(s)

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

FUNÇÃO
R(s) E(s) DE C(s)
+ TRANSFERÊNCIA
-
G(s)

2. REPRESENTAÇÃO DA FUNÇÃO DE TRANSFERÊNCIA

Explo:

Seja a F. T. abaixo:

C ( s) 1 1
= = 3
R ( s ) s ( s + 2 )( s + 3) s + 5s 2 + 6 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
3. SISTEMA EM MALHA FECHADA COM REALIMENTAÇÃO UNITÁRIA

Dado o sistema abaixo:

U (s+1) Y
+
- s(s+2)(s+3)

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:

U1 Y1
+ SISTEMA 1
-

Y2 U2
SISTEMA 2

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

Onde sign = +/- 1.

Explo:

U1 60 Y1
+
- s(s+1)

Y2 U2
0,05

5. CONEXÕES DE SISTEMAS

Considerando os sistemas em série abaixo:

U1 Y1 U2 Y2
SISTEMA 1 SISTEMA 2

>>[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
U1 1 Y1 U2 1 Y2
2,62τ1 s+1 0,38τ2 s+1

>> 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:

U1
Y1
SISTEMA 1

U Y
+
+

U2
Y2
SISTEMA 2

>>[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
U1 1
Y1
2,62τ1 s+1

U Y
+
+

U2
1 Y2
0,38τ2 s+1

>> 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 =

3s+2
-------------------
0.996 s^2 + 3 s + 1
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)
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:

1
E ( s) = R ( s)
1 + G ( s) H ( s)

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

e ss = lim e ( t ) = lim sE ( s )
t→∞ s→ 0
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,

1
E ( s) = x R(s)
(6,9 s + 1)(1,03s + 1)

determinar o erro em regime permanente.

Para R(s) = 1/s (degrau unitário), e ss = lim e ( t ) = lim s 1/s 1/[(6.9s + 1) (1.03s + 1)] = 1
t→∞ s→ 0

>> pol = conv([6.9 1],[1.03 1])


ans =
7.1070 7.9300 1.0000

>> ess=polyval(pol,0)
ess =

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:
1
FT =
( 6, 9 s + 1)(1, 03s + 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);
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);
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;
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');
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);
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,

k ( s 2 + 100)
FT =
s ( s + 2 )( s + 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);
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);
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
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:
>> 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);
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);
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,

k ( s 2 − 4 s + 8)
FT =
( s + 2 )( s + 3)

>> num=[1 -4 8];


>> den=conv([1 3],[1 2]);
>> pzmap(num,den);
>> rlocus(num,den);

>> p=3;
>> [k,poles]=rlocfind(num,den,p)

k=

6.0000

poles =

1.3571 + 2.4233i
1.3571 - 2.4233i
>> [mag,phase,w]=bode(num,den);
>> magdb=20*log10(mag);
>> semilogx(w,magdb);

>> semilogx(w,phase);

>> nyquist(num,den);
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


__________________
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,

1
FT =
( 6, 9 z + 1)(1, 03z + 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.


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);
>> 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,


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

>> dnyquist(num,den,Ts);
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)

Anda mungkin juga menyukai