






























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Estes apontamentos pretendem descrever e introduzir os comandos básicos da CONTROL SYSTEM Toolbox do MATLAB para permitir o estudo de sistemas dinâmicos lineares. O documento tal como está estruturado, pressupõe alguma familiaridade de utilização do MATLAB, nomeadamente em termos de representação e manipulação de matrizes e polinómios e ainda de elaboração de gráficos.
Tipologia: Slides
1 / 38
Esta página não é visível na pré-visualização
Não perca as partes importantes!































Edição Abril 2002
2. - REPRESENTAÇÃO DE SISTEMAS
No MATLAB os sistemas dinâmicos podem representar-se por intermédio de uma função de transferência ou por um modelo em espaço de estados. Na representação por função de transferência definem-se os coeficientes dos polinómios do numerador e denominador. Na representação em espaço de estados definem-se as quatro matrizes que caracterizam o modelo.
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 num erador e um den ominador , 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:
2
2
s s
s Rs
Y s
_>> num = [ 3 – 2 ]
den = [ 1 2 4 ] printsys ( num , den )_
Esta última função printsys apresentará na Janela de Comando (Command Windows), a função de transferência que descreve o sistema :
num/den =
s^2 + 2 s + 4_
Um sistema dinâmico que consiste num número finito de elementos concentrados pode ser escrito por equações diferenciais ordinárias em que o tempo é a variável independente. Fazendo uso de notação matricial-vectorial, uma equação diferencial de ordem n pode ser representada por uma equação matricial-vectorial de primeira ordem. Se n elementos do vector são um conjunto de variáveis de estado, então a equação diferencial matricial vectorial é denominada de equação de estado. Deste modo, um sistema representado na forma de equações de estado será dado por:
y Cx Du
x Ax Bu
Considerando o seguinte sistema representado no espaço de estado, a sua introdução no MATLAB efectua-se pelo método comum de introdução de matrizes na Janela de Comando :
y [ ] x
x x u
_>> A = [ 2 - 1 ; 3 - 1 ]
B = [ 1 0 ]’ C = [ 2 - 0.5 ] D = [ 0 ]_
O MATLAB possui diversas funções que convertem a representação na qual o sistema está expresso. É possível realizar conversões de representação de sistemas de e para :
2.3.1. Conversão da representação de sistemas para função de transferência É possível converter a representação de sistemas em equações de estados ou a partir dos pólos, zeros e ganho através do uso das seguintes funções:
ss2tf Conversão de representação em espaço de estados para função de transferência. zp2tf Representação em função de transferência a partir dos Pólos, Zeros e Ganho do sistema.
Considere o seguinte sistema dado na forma de equações de estado:
y [ ] x
x x u
_>> A = [ -2 - 1 ; 1 - 2 ]
B = [ 1 2 ]’ C = [ 1 0 ] D = [ 0 ] [ num,den ] = ss2tf ( A, B, C, D )_
C = 1 0
D = 0
Se fossem dados os Pólos, Zeros e Ganho do sistema, a conversão para a representação em espaço de estados seguiria a mesma metodologia apresentada para o caso da função de transferência, tendo em consideração que se pretende obter as matrizes A , B , C , D e não o num erador e den ominador.
2.3.3. Obtenção dos Pólos, Zeros e Ganho do sistema Dado qualquer sistema representado no espaço de estados ou descrito por uma função de transferência, é possível extrair os seus os Pólos, Zeros e o Ganho através do uso das seguintes funções:
tf2zp Obtenção dos Pólos, Zeros e Ganho do sistema a partir da função de transferência. ss2zp Obtenção dos Pólos, Zeros e Ganho do sistema a partir da sua representação em espaço de estados.
Os Pólos, Zeros e o Ganho dos sistemas anteriores representados no espaço de estados e 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 )_
_>> % Sistema representado no espaço de estados
A = [ -2 - 1 ; 1 - 2 ] B = [ 1 2 ]’ C = [ 1 0 ] D = [ 0 ] [ z, p, k ] = ss2zp ( A, B, C, D )_
z = 0
p =
_- 1 + 2 i
k = 1 0
NOTA : Em todos os tipos de conversões apenas é necessário ter em consideração que a função de transferência é dada por um num erador e den ominador , enquanto a representação em espaço de estado pelas matrizes A , B , C , D. A representação do sistema pode ainda ser expressa pelos seus Pólos ( p ), Zeros ( z ) e Ganho ( k ).
3. - MODELAÇÃO DE SISTEMAS
A CONTROL SYSTEM Toolbox do MATLAB possui um conjunto de funções que permitem obter representações de sistemas constituídos por diversos subsistemas interligados. O diagrama de blocos de um sistema é uma representação ilustrativa das funções desempenhadas por cada um dos componentes e fluxos de sinais. Tal diagrama indica as inter- relações que existem entre os vários componentes.
R(s) Y(s) G(s)
Esta função permite a associação de blocos em cascata, tendo em consideração que os dois sistemas deverão ser do mesmo tipo (contínuos ou discretos). Aqui e doravante, considera-se que um sistema sys pode estar representado :
A seguinte função implementa a associação de blocos em cascata :
>> sys = series ( sys1 , sys2 )
R(s) Y(s) sys 1 sys 2
Este comando é equivalente à multiplicação de polinómios no caso dos sistemas estarem representados na forma de equação de transferência que faz uso da função conv. Por exemplo, dados os polinómios :
2
2
s s
s den
num sys
den s s
num sys
A sua multiplicação é obtida a partir de:
_>> num1 = [ 0 0 2 ]
den1 = [ 1 2 3 ] num2 = [ 0 1 1 ] den2 = [ 4 5 6 ]_
Considerando o sistema de malha aberta G(s) , o sistema de malha fechada com realimentação unitária Y(s)/R(s) será dado por :
s s
s den
num G s 1
s
s Gs
Gs d
n Rs
Y s
_>> num = [ 0 1 – 6 ]
den = [ 1 – 1 5 ] [n,d] = cloop ( num , den )_
n = 1 - 6
d = 1 0 - 1
A obtenção de um sistema de malha fechada com realimentação não unitária é dada pela utilização do seguinte comando :
>> sys = feedback ( G, H )
R(s) Y(s) G(s)
H(s)
-
Considerando o sistema constituído pelos blocos G(s) e H(s) :
den s
num Gs
den s
num H s
A função de transferência de malha aberta do sistema será dada por : G(s)H(s) :
den s s
num Gs H s
E a função de transferência de malha fechada do sistema Y(s)/R(s) será dada por :
= = + = s (^2) + s +
s GsH s
Gs den
num Rs
Y s
_>> num1 = [ 0 1 ]
den1 = [ 1 2 ] num2 = [ 0 1 ] den2 = [ 1 0 ] [ num , den ] = feedback ( num1 , den1 , num2 , den2 )_
num = 1 0
den = 1 2 1
NOTA : Por defeito, assume-se que feedback(sys1,sys2) representa realimentação não unitária negativa. Para aplicar realimentação não unitária positiva utilizar o comando : feedback(sys1,sys2, 1).
3.5. CONSTRUÇÃO DE SISTEMAS DE 2ª ORDEM A PARTIR DE ω n E DE ζ
Considerando um sistema de 2ª Ordem expresso por :
den s n s n
num Rs
Y s
A sua construção na forma de função de transferência ou no espaço de estados pode ser realizada a partir da frequência natural : ω n e do coeficiente de amortecimento : ζ.
No caso de se pretender gerar um sistema na forma de equação de transferência com uma frequência natural de ω n = 2.4 [rad/seg] e com um coeficiente de amortecimento : ζ = 0. deverá introduzir-se na Janela de Comando :
>> [ num , den ] = ord2 ( 2.4 , 0.4 )
num = 0 0 1
den = 1.0000 1.9200 5.
Que corresponde à função de transferência :
= (^) den = s (^2) + s +
num Rs
Y s
Tempo de Atraso : td Corresponde ao tempo necessário para que a resposta alcance (pela primeira vez) metade do valor final.
Tempo de Subida : tr Por norma, corresponde ao tempo necessário para que a resposta passe de 0% a 100% do seu valor final. Sabendo que a Frequência Natural Amortecida é dada por :
d n
O Tempo de Subida virá :
n
d d
tr ς ω
ω ω
(^1) tan 1
Instante de pico : tp Corresponde ao tempo necessário para que a resposta alcance o primeiro pico do Sobre- sinal (Overshoot) :
d
Sobre-sinal Máximo (Overshoot) : Mp Valor de pico da curva da resposta medido a partir do valor final de regime estacionário da resposta. Geralmente é definido em termos percentuais :
1 ς^2
ςπ − − M (^) p = e
Tempo de Estabelecimento : tac Corresponde ao tempo necessário para que a curva da resposta alcance e permaneça dentro de uma faixa em torno do valor final. Por norma, esta faixa é especificada com uma magnitude dada por uma percentagem absoluta de 2% ou 5% do valor final.
n
n
O MATLAB não possui funções para retirar automaticamente os valores destas especificações da resposta de sistemas de 2ª Ordem no domínio do tempo, logo terão que ser calculados aritmeticamente após a obtenção da curva da resposta do sistema.
A função step calcula a resposta de um sistema no domínio do tempo a uma entrada em degrau unitário. É considerado um estado inicial nulo quando o sistema está representado no espaço de estado. Quando o comando é utilizado sem argumentos, esta função gera o traçado da resposta ao degrau unitário na Janela Gráfica. A duração da simulação é determinada automaticamente baseada nos Pólos e Zeros do sistema.
>> step ( sys )
No entanto, no caso de se pretender a obtenção dos valores da resposta do sistema (da saída: y , tempo: t e a trajectória de estado: x ), deverão ser utilizados os argumentos no comando. O traçado da resposta do sistema poderá ser obtido através da utilização das função básica do MATLAB para a criação de gráficos: plot :
sys = num , den : Função de transferência ou sys = A, B, C, D : Modelo em espaço de estados.
_>> [ y, t ] = step ( sys ) % Sistema representado por função de transferência.
[ y, x, t ] = step ( sys ) % Sistema representado por um modelo em espaço de estado. plot ( t, y )_
Do mesmo modo, o utilizador poderá estabelecer a duração da simulação através da imposição do tempo:
_>> t = 0 : 0.1 : 10
step ( sys,t )_
A função step permite a introdução de distintos argumentos que definam vários sistemas, de modo a que sejam apresentados os traçados da resposta sobrepostos na mesma Janela Gráfica , podendo os tipos, cores e marcadores das linhas de cada sistema serem definidos como nas funções básicas de criação de gráficos: >> step ( sys1 , ’y:’ , sys2 , ‘g-‘ )
Considere a função de transferência de malha fechada do seguinte sistema :
= (^) den = s (^2) + s +
num Rs
Y s
A resposta do sistema no domínio do tempo a uma entrada em degrau unitário ( R(s)=1/s ), consiste em :
den s s s
num Rs Y s den s s
num Y s
As linhas de comando a introduzir para a visualização da resposta do sistema, serão :
_>> num = [ 0 0 25 ]
den = [ 1 4 25 ]_
Tal que as funções a introduzir na Janela de Comando para a visualização da resposta do sistema, serão :
_>> num = [ 0 0 25 ]
den1 = [ 1 4 25 ] den2 = [ 0 1 0 ] den = conv ( den1 , den2 ) step ( num , den )_
num = 0 0 0 25
den = 1 4 25 0
0 0.5 1 1.5 2 2.5 3 3.5 4
0
1
2
3
4
A m plitude
Tim e (sec.)
Ram p Res pons e
O Erro Estacionário para a resposta no domínio do tempo de um sistema de 2ª Ordem sujeito a uma entrada em rampa unitária é dado por :
n
A função impulse calcula a resposta de um sistema no domínio do tempo a uma entrada em impulso. A sua aplicação está sujeita aos mesmos procedimentos e restrições que a função step. A resposta do sistema anterior no domínio do tempo a uma entrada em impulso de Dirac ( R(s)=1 ), consiste em :
den s s
num Rs Y s den s s
num Y s
As linhas de comando a introduzir para a visualização da resposta do sistema, serão :
_>> num = [ 0 0 25 ]
den = [ 1 4 25 ] impulse ( num , den )_
num = 0 0 25
den = 1 4 25
Tim e (sec.)
A m plitude
Im pulse Response
0 0.5 1 1.5 2 2.5 3
-0.
0
1
2
3
Como a resposta a uma entrada em impulso corresponde à derivada temporal da resposta a uma entrada em degrau unitário, o Sobre-sinal Máximo (Overshoot) para a resposta a degrau unitário pode ser determinado a partir da correspondente resposta ao impulso, já que a área sob a curva de resposta ao impulso de Dirac desde t=0 até tp (tempo do primeiro cruzamento com zero) é dada por :
1 + Mp
Onde Mp corresponde ao Sobre-sinal Máximo (Overshoot) para a resposta a degrau unitário.
Tim e (sec.)
A m plitude
Initial Condition Res ults
0 2 4 6 8 10 12 14 16 18
-0.
0
1
2
3
4
NOTA : A aplicação desta função está sujeita aos mesmos procedimentos e restrições que as funções anteriores.
A função lsim ( l inear sim ulation ) simula a resposta de um sistema no domínio do tempo a uma entrada arbitrária. Faz uso da mesma sintaxe que as funções anteriores, está sujeita à mesma metodologia de formulação e possui as mesmas limitações.
>> lsim ( sys, u, t )
A matriz representativa da função de entrada : u deverá possuir tantas colunas como a dimensão do vector representativo da amostragem de tempo : t ( length(t) ). Além destas particularidades, a função lsim poderá gerar a resposta a entrada arbitrária de sistemas representados no espaço de estados com condições iniciais não nulas. Para tal, a sintaxe a utilizar será dada por :
>> lsim ( sys , u , t , x0 )
Considerando a função de transferência do sistema :
s s
s den
num Rs
Y s
Pretende-se obter a resposta a uma entrada correspondente a uma onda quadrada com um período de 4 [seg]. Inicialmente, gera-se a onda quadrada com a função gensig ( gen erate sig nal ) considerando uma amostragem cada 0.1 [seg] durante 10 [seg] e posteriormente simula-se a resposta do sistema:
_>> [ u , t ] = gensig ( ‘square’ , 4 , 10 , 0.1 )
num = [ 1 - 1 ] den = [ 1 1 2 ] lsim ( num , den , u , t )_
num = 0 1 -
den = 1 1 2
Tim e (sec.)
A m plitude
Linear S im ulation Res ults
0 2 4 6 8 10
-0.
0
NOTA : A função gensig gera um sinal periódico escalar u da classe type e período tau , para simulações no domínio do tempo através do uso da função lsim.
A função suporta as seguintes classes de sinal : type = ‘sin’ : Onda sinusoidal. type = ‘square’ : Onda quadrada. type = ‘pulse’ : Impulso periódico.
>> [ u , t ] = gensig ( type , tau )