Você está na página 1de 12
SISEL Sistemas Electromecânicos Guião do Trabalho Laboratorial Nº 1 Introdu ç ão ao MATLAB v7.1
SISEL Sistemas Electromecânicos Guião do Trabalho Laboratorial Nº 1 Introdu ç ão ao MATLAB v7.1

SISEL

Sistemas Electromecânicos

Guião do Trabalho Laboratorial Nº 1 Introdução ao MATLAB v7.1

Análise de um Servomecanismo de Posição

GRIS Group of Robotics and Intelligent Systems

Homepage: http://www.dee.isep.ipp.pt/~gris

Email: gris@dee.isep.ipp.pt

Ano Lectivo: 2006/2007

© 2006 GRIS – Group of Robotics and Intelligent Systems

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 1 de 11

Introdução ao MATLAB v7.1 Análise de um Servomecanismo de Posição

Sumário: Pretende-se com este trabalho, fazer uma introdução às capacidades de resolução de problemas de análise de sistemas de controlo recorrendo ao software MATLAB (versão 7.1).

Considere o servomecanismo de posição ilustrado na figura seguinte (servomotor DC controlado pela armadura):

Potenciómetro Amplificador +V Diferencial e Servomotor DC de Potência R Armadura + a A Engrenagem
Potenciómetro
Amplificador
+V
Diferencial e
Servomotor DC
de Potência
R
Armadura
+
a
A
Engrenagem
-
L
Potenciómetro
θ
a
r
e
N
B
r
1
+V
m
i
f =const
e
J
Carga
e
a
L
t
m
θ
B
m
L
Excitação
J
L
θ
L
N
2

Figura 1: Esquema equivalente do servomecanismo de posição

Este sistema apresenta o seguinte diagrama de blocos:

θ R (s) + -
θ R (s)
+
-
+ 1 1 θ L (s) k p .A k n s.L a +R a
+
1
1
θ
L (s)
k
p .A
k
n
s.L a +R a
s
2 .J eq +s.B eq
-
s.K m

Figura 2: Diagrama de blocos do servomecanismo de posição

Que pode ser simplificado de forma a obter-se:

θ R (s) + -
θ R (s)
+
-

k p .A.k.n

(s.L a +R a ).(s 2 .J eq +s.B eq )+s.k m .k

θ L (s)

2 .J e q +s.B e q )+s.k m .k θ L (s) Figura 3: Diagrama

Figura 3: Diagrama de blocos simplificado do servomecanismo de posição

Considerando os seguintes valores para os parâmetros deste sistema:

A

Kp

Ra

La

K

Km

Jm

Bm

n=N 1 /N 2

JL

BL

1790

1

2

0.18

10

-5

56,5

10

-4

5x10 -5

0,1

10

-2

115x10 -4 N.m.rad -1 .s

V/rad

H

N.m.A -1

V.rad -1 .s

Kg.m 2

N.m.rad -1 .s

Kg.m 2

Tabela 1: Parâmetros do servomecanismo de posição

E substituindo os valores da tabela anterior, conclui-se que a função de transferência G'(s) do ramo directo é:

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 2 de 11

G '( s ) =

50

3

2

sss

+

12

+

25

Equação 1: Função de transferência do ramo directo do servomecanismo de posição

Determinada a forma canónica do diagrama de blocos apresentado anteriormente, obtém-se:

 

k

p

.A.k.n

θ

L (s)

  k p .A.k.n θ L (s)

L

a .J eq .s 3 +(L a .B eq +R a .J eq ).s 2 +(R a .B eq +k.k m ).s+k p .A.k.n

 

θ R (s)

e q +k.k m ).s+k p .A.k.n   θ R (s) Figura 4: Forma canónica do

Figura 4: Forma canónica do diagrama de blocos do servomecanismo de posição

Daqui, conclui-se facilmente que a função de transferência em malha fechada para este sistema é:

(

)

G s =

θ

L

( s )

50

 

θ

R

( ss =

)

3

+

12

s

2

++ 25 s

50

Equação 2: Função de transferência do servomecanismo de posição

A partir destes resultados pode-se iniciar o estudo deste sistema, recorrendo ao software MATLAB.

1. Implementação da Função de Transferência no MATLAB

O primeiro passo para o estudo deste sistema recorrendo ao MATLAB, passa pela implementação da sua função de transferência no MATLAB.

a) Para esse efeito inicie a aplicação MATLAB;

b) Genericamente pode-se considerar uma função de transferência G(s) como sendo a razão de dois polinómios:

1.

(

)

G s =

B ( s )

num

b (

1 ).

s

n

n 1

+ bn

b

(

2

).

s

++

(

)

A ( s )

== den

a (

1 ).

s

n

+ an

a

s

++

(

2

).

n 1

(

)

Equação 3: Função de transferência genérica de um sistema

em que a(1) 0, mas em que alguns dos coeficientes a(i) e b(i) podem ser nulos.

c) Para definir a função de transferência torna-se necessário estabelecer o seu numerador e denominador. num e den são vectores linha que especificam os coeficientes do numerador e do denominador da função de transferência do sistema, assumindo a seguinte forma:

num=[b(1) b(2) … b(n)]

den=[a(1) a(2) … a(n)]

d) Uma vez que o numerador da função de transferência deste sistema é N(s) = 50 e o denominador é D(s) = s 3 +12s 2 +25s+50, introduza estes dois polinómios no MATLAB, tal como apresentado na Figura 5.

e) A partir deste instante, e como se vai mostrar de seguida, encontra-se em condições de iniciar o estudo do sistema.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 3 de 11

de um Servomecanismo de Posição Página 3 de 11 Figura 5: Definição da função de transferência

Figura 5: Definição da função de transferência do sistema no MATLAB

O primeiro passo no estudo de um sistema de controlo a partir da sua função de transferência passa pela factorização do numerador e do denominador em factores básicos. A factorização pode ser útil, por exemplo, para a determinação da Transformada Inversa de Laplace da Função de Transferência do sistema, no caso de se pretender obter a resposta temporal do sistema a uma entrada particular.

a) No caso particular do sistema em consideração só tem interesse determinar a decomposição do denominador em factores básicos. Para isso, deve-se utilizar o comando roots(den), tal como é mostrado na figura seguinte (Figura 6).

2.

b) Obtiveram-se desta forma os pólos da função de transferência, que se conclui serem:

p 1 = 10

p 2 = 1 + j2

p 3 = 1 j2

c) Alternativamente pode-se pretender decompor a função de transferência em fracções parciais.

d) A decomposição em fracções parciais resulta na seguinte equação:

)

(

G s =

B ( s )

( )

r 1

 

(

r 2

)

r ( n )

 

A ( s )

k ( s )

=+

( )

s p 1

+

(

s p 2

)

+ +

s

(

pn

)

Equação 4: Decomposição em fracções parciais da função de transferência genérica de um sistema

e) Para este efeito o comando a utilizar deve ser o comando [r,p,k]=residue(num,den), tal como é apresentado na Figura 7.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 4 de 11

de um Servomecanismo de Posição Página 4 de 11 Figura 6: Determinação dos pólos da função

Figura 6: Determinação dos pólos da função de transferência

6: Determinação dos pólos da função de transferência Figura 7: Decomposição da função de transferência em

Figura 7: Decomposição da função de transferência em fracções parciais

f) Desta forma obtiveram-se os numeradores (no vector r) e os respectivos denominadores (no vector p) das fracções parciais em que podemos decompor a função de transferência em estudo. Obtém-se ainda informação no vector k que, neste caso particular, é um vector "vazio". Caso a ordem do numerador da função de transferência fosse superior à ordem do

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 5 de 11

seu denominador, obteríamos no vector k, os termos resultantes da divisão inteira entre o numerador e o denominador da função de transferência.

2. Resposta Temporal do Sistema

3.

Depois da função de transferência estar definida no MATLAB (ver alínea 1.) pode-se também verificar qual a resposta do sistema às entradas impulso unitário e degrau unitário.

a)

Para traçar a resposta de um sistema a uma entrada em impulso unitário, utiliza-se o comando impulse(num,den), tal como se apresenta na figura seguinte:

impulse(num,den) , tal como se apresenta na figura seguinte: Figura 8: Resposta temporal do sistema a

Figura 8: Resposta temporal do sistema a uma entrada em impulso unitário

b) Alternativamente, e caso se pretenda especificar o intervalo de tempo para o qual se pretende observar a resposta do sistema a uma entrada em impulso unitário, deve-se utilizar o comando impulse(num,den,t), no qual a variável t deve especificar o intervalo de tempo a visualizar.

c) No caso de se pretender traçar a resposta de um sistema a uma entrada em degrau unitário, utiliza-se o comando step(num,den), tal como se apresenta na figura seguinte (Figura 9).

d) Tal como anteriormente, caso se pretenda especificar o intervalo de tempo para o qual se pretende observar a resposta do sistema a uma entrada em degrau unitário, deve-se utilizar

o comando step(num,den,t), no qual a variável t deve especificar o intervalo de tempo

a visualizar.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 6 de 11

de um Servomecanismo de Posição Página 6 de 11 Figura 9: Resposta temporal do sistema a

Figura 9: Resposta temporal do sistema a uma entrada em degrau unitário

4. Também é possível esboçar a resposta do sistema a uma entrada em rampa unitária, apesar de neste caso não existir um comando que o permita fazer directamente. Para esse efeito, sabendo que a Transformada de Laplace da função rampa unitária é 1/s 2 , procede- se da seguinte forma:

a)

Uma hipótese passa por multiplicar o denominador da função de transferência por s 2 e determinar a resposta do sistema a um impulso unitário, recorrendo ao comando impulse(num,den).

b)

Alternativamente pode-se multiplicar o denominador da função de transferência do sistema por s, e determinar a resposta do sistema a um degrau unitário, recorrendo ao comando step(num,den), tal como se apresenta na figura seguinte (Figura 10).

c)

É

de realçar que em qualquer uma das duas situações referidas anteriormente é necessário

definir novamente o polinómio do denominador da função de transferência, para considerar

a multiplicação por s 2 no primeiro caso e por s no segundo caso, como pode ser verificado na figura anterior.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 7 de 11

de um Servomecanismo de Posição Página 7 de 11 Figura 10: Resposta temporal do sistema a

Figura 10: Resposta temporal do sistema a uma entrada em rampa unitária

3. Análise da estabilidade do sistema recorrendo ao Lugar de Raízes

5. Uma outra possibilidade passa por efectuar o estudo da estabilidade do sistema recorrendo ao Lugar de Raízes. Assim, vamos considerar que neste caso se pretende efectuar o estudo da estabilidade do sistema em função do ganho do bloco amplificador de potência e amplificador diferencial.

a) De forma a fazer a análise pretendida temos que considerar a função de transferência do sistema em malha aberta. Para isso, e recorrendo à Figura 3 e à Equação 1, conclui-se que a função de transferência em malha aberta deste sistema é:

A '.

k kn

p

.

.

(

sL

.

a

+

R

a

)(

2

s J

.

eq

++. )

sB

eq

sk k

m

Equação 5: Função de transferência em malha aberta do servomecanismo de posição

sendo A' a variação do valor do parâmetro A (ganho do bloco amplificador de potência e amplificador diferencial) relativamente ao seu valor base.

b) Substituindo os valores dos parâmetros na equação anterior (de acordo com a Tabela 1), e dado que vamos considerar as variações do ganho do bloco amplificador de potência e amplificador diferencial relativamente ao ganho pré-estabelecido (A=1790), obtemos a seguinte equação característica:

1

+

kG s

.

'(

)

=+

1

A

'.

50

3

2

sss

+

12

+

25

Equação 6: Equação característica do sistema

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 8 de 11

c) Neste caso o novo polinómio do numerador passa a ser N(s) = 50 e o do denominador é D(s) = s 3 +12s 2 +25s.

d) O primeiro passo para se esboçar o Lugar de Raízes é definir os novos numerador e denominador referentes à função de transferência em malha aberta do sistema (ver Figura

11).

e) Para traçar o Lugar de Raízes deve-se recorrer ao comando rlocus(num,den), tal como pode ser visto na figura seguinte:

, tal como pode ser visto na figura seguinte: Figura 11: Lugar Geométrico de Raízes do

Figura 11: Lugar Geométrico de Raízes do sistema

4. Análise

da

resposta

em

frequência

do

sistema

através

dos

diagramas de Bode e dos diagramas polares (ou de Nyquist)

6.

É também possível esboçar os diagramas de Bode de amplitude e fase de um sistema recorrendo ao MATLAB, quer para o sistema em malha aberta, quer para o sistema em malha fechada.

a)

Por exemplo, para o sistema em malha fechada deve-se recorrer ao comando bode(num,den), e considerar a função de transferência em malha fechada do sistema (Equação 2), tal como se apresenta na figura seguinte (Figura 12).

7.

Adicionalmente é também possível traçar os diagramas polares de um dado sistema (também chamados diagramas de Nyquist).

a)

Para este efeito deve-se recorrer ao comando nyquist(num,den), tal como se apresenta na Figura 13.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 9 de 11

de um Servomecanismo de Posição Página 9 de 11 Figura 12: Diagramas de Bode, de amplitude

Figura 12: Diagramas de Bode, de amplitude e fase, do sistema em malha fechada

de Bode, de amplitude e fase, do sistema em malha fechada Figura 13: Diagrama polar do

Figura 13: Diagrama polar do sistema em malha fechada

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 10 de 11

5. Análise da estabilidade do sistema recorrendo ao Critério de Nyquist

8. Para se efectuar a análise de estabilidade de um sistema recorrendo ao critério de estabilidade de Nyquist tem que se recorrer ao Diagrama polar do sistema em malha aberta.

a) Assim, o primeiro passo, consiste em definir o numerador e o denominador referentes à função de transferência em malha aberta do sistema (ver Equação 6).

b) De seguida, deve-se traçar o diagrama polar da função de transferência em malha aberta recorrendo ao comando nyquist(num,den), tal como pode ser visto na figura seguinte:

, tal como pode ser visto na figura seguinte: Figura 14: Diagrama polar da função de

Figura 14: Diagrama polar da função de transferência em malha aberta do sistema

6. Margem de Fase e Margem de Ganho

9. Para além de possibilitar a análise da estabilidade de um dado sistema recorrendo quer ao critério de estabilidade de Nyquist, quer ao seu Lugar Geométrico de Raízes, o software MATLAB possibilita ainda a determinação da estabilidade relativa desse mesmo sistema através do cálculo da sua margem de fase e margem de ganho e da sua representação sobreposta aos traçados de Bode.

a) Para este efeito, deverá ser considerada a função de transferência em malha fechada do sistema (Equação 2), e dever-se-á recorrer ao comando margin(num,den).

b) Tal como se pode ver na Figura 15, são apresentadas a margem de fase (Pm=67.5º) e a margem de ganho (Gm=14.0 dB) do sistema, assim como as frequências a que ocorrem (respectivamente Wcp=2.4 rad/s e Wcg=5.0 rad/s), e é efectuada a sua representação sobreposta aos traçados de Bode.

Guião N.º 1: Introdução ao MATLAB – Análise de um Servomecanismo de Posição

Página 11 de 11

de um Servomecanismo de Posição Página 11 de 11 Figura 15: Margem de fase e margem

Figura 15: Margem de fase e margem de ganho do sistema e da sua representação sobreposta aos traçados de Bode

7. Conclusões

Acabamos de ver como é possível recorrendo ao software MATLAB efectuar o estudo de um sistema de controlo.

As noções aqui introduzidas, de uma forma necessariamente resumida, podem ser desenvolvidas recorrendo à bibliografia que se apresenta de seguida.

8. Bibliografia

[1] – Gene F. Franklin, J. David Powell, Abbas Emami-Naeini; Feedback Control of Dynamic Systems; Prentice-Hall International Edition; Fifth Edition; (2006).

[2] – Katsuhiko Ogata; System Dynamics; Prentice-Hall International Edition; Third Edition;

(1998).

[3] – Katsuhiko Ogata; Solving Control Engineering Problems With MATLAB; Prentice-Hall;

(1994).