O documento descreve como usar o Matlab e Simulink para analisar sistemas lineares descritos por funções de transferência. Explica que as funções de transferência caracterizam a relação entre entrada e saída de sistemas lineares através de transformadas de Laplace e como representá-las no Matlab usando vetores de coeficientes. Também mostra como realizar operações algébricas com funções de transferência no Matlab.
1. Aula 1
Utilizar o software Matlab e o pacote Simulink na análise de sistemas lineares descritos
por FUNÇÕES DE TRANSFERÊNCIA.
Matlab
O Matlab possui um conjunto de recursos e funções específicas para a análise de sistemas
de controle.
As chamadas funções de transferência são funções usadas para caracterizar as relações
entre entrada e saída de componentes ou sistemas que possam ser descritos por equações
diferenciais lineares invariantes no tempo.
A representação de sistemas em função de transferência pressupõe o emprego das
transformadas de Laplace às equações diferenciais lineares que descrevem o modelo
matemático do sistema dinâmico.
Assim, a equação diferencial linear pode ser transformada numa equação algébrica
composta por um numerador e um denominador, em função de uma variável complexa
s.
Por exemplo, o seguinte sistema que se encontra apresentado na forma de função de
transferência deverá ser introduzido no MATLAB, pelos coeficientes das sucessivas
potências dos polinómios que surgem ordenados por ordem significativa decrescente:
REPRESENTAÇÃO DA FUNÇÃO DE TRANSFERÊNCIA DO SISTEMA
Sistemas contínuos no Matlab são representados por funções de transferência. Uma vez
que as funções de transferência são descritas por razões de polinômios, elas são definidas
no Matlab por vetores linha de seus coeficientes.
Por exemplo:
No matlab:
>> num = [bm ... b1 b0];
>>den = [1 ... a1 a0];
A entrada de dados no Matlab também pode ser feita a partir da definição do ganho e dos
zeros e polos do sistema que também são descritos por vetores linha.
Por exemplo:
2. No matlab:
>> zeros = [z1 ... zm];
>> polos = [p1 ... pn];
>> ganho = K.
Comando tf
>> funcao1 = tf(num,den);
Comando zpk
>> funcao2=zpk(zeros,polos,ganho)
A função de transferência resultante do sistema acima é obtida através do comando
>> função_do_sistema = tf(sistema)
Recuperação de Dados
Uma vez criado um objeto função de transferência os dados podem ser recuperados
pelas funções tfdata e zpkdata.
Verificar a utilização destas funções com o comando help do matlab.
Aritmética de objetos funções de transferência
O toolbox de controle do Matlab permite que sejam realizadas operações de simplificação
utilizando a aritmética de diagramas em blocos. Por exemplo, se a função de transferência
de um sistema é definida como G(s), a função de transferência equivalente deste sistema
com realimentação unitária e negativa é definida por
No matlab;
>> G=tf(100,[1 6 0])
>> T=G/(1+G)
A resposta é dada sem simplificações (cancelamento de polos e zeros). Para obter-se a
realização mínima utiliza-se a seguinte função
>> T=minreal(T)
Outras operações algébricas podem ser feitas diretamente na janela de comando do
Matlab, utilizando expressões aritméticas comuns.
3. Função de Transferência
Considere a Função de Transferência:
H(s) =
2s3s
3s
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];
Step(num, den)
>> hold %Congela o gráfico
Current plot held
>> num = [0 0 1];
>> den = [1 0.5 4];
>> step(num,den)
>> hold
Current plot released
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
Polos, Zeros e Ganho
Podemos definir um sistema também definindo os seus polos, seus zeros e o ganho
utilizando a função zpk. Por exemplo o mesmo sistema acima que tem zeros: -3 (raiz do
numerador), polos: -2, 1 e 1(raízes do denominador) de ganho: 1.
Conversões
temos as seguintes funções:
- tf2zp – Converte funções de transferência para polos e zeros.
4. - zp2tf – Converte polos e zeros para funções de transferência.
Obtenção dos Polos e Zeros da Função de Transferência
Os polos e zeros de funções de transferência podem ser obtidos diretamente dos vetores
que definem o numerador e denominador da função de transferência pelo comando
roots( ).
De maneira alternativa, no toolbox de sistemas de controle, existe também a função
>> pole(T)
que calcula os polos de T(s).
A função pzmap traça a localização de polos e zeros da função de transferência no plano
complexo, por exemplo:
>> pzmap(T)
EXEMPLOS
>> num=[ 0 1 0];
>> den=[1 4 5];
>> printsys ( num , den )
Para determinar os polos e zeros:
>> sys= zpk(roots(num), roots(den),1)
No caso do sistema estar descrito pelos seus Pólos, Zeros e Ganho, a conversão para a
representação em função de transferência será dada por:
>> z = 0 % Zero do sistema.
>> p1 = -2 + i % Pólo do sistema.
>> p2 = -2 – i % Pólo do sistema.
>>k = 1 % Ganho.
>> [num,den] = zp2tf ( z , [ p1 p2 ] , k )
Obtendo-se a mesma função de transferência do sistema que anteriormente.
Os Pólos, Zeros e o Ganho em forma de função de transferência são dados por:
>> % Sistema representado na forma de equação de transferência
>> num = [0 1 0];
>> den = [1 2 5];
>> [z, p, k] = tf2zp (num, den)
Exercícios para entregar no final da aula,
Determine,
5. Polos, zeros, função de transferência de malha fechada e o gráfico no tempo.
Faça analise do gráfico ao tempo.