tutorial de matlab - jccluque.files.wordpress.com · resumointroduçãofunções básicassistemas...
TRANSCRIPT
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Tutorial de Matlab(WEEL2003: Workshop de Engenharia Elétrica)
Juan C. Cutipa Luque
Engenharia ElétricaFaculdade SATC
15 de outubro, 2013Criciúma - Santa Catarina, Brasil
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Conteúdo
1 Resumo
2 Introdução
3 Funções básicas
4 Sistemas lineares
5 Controle
6 Simulink
7 Referências
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Resumo
O objetivo do tutorial é apresentar o ’software’ Matlab como ferramentade análise e simulação de sistemas. Inicialmente, funções básicasrelativas a definição de variáveis e gráfico de resultados sãoapresentadas. Logo, apresentam-se as funções utilizadas comumentena análise de sistemas lineares (mecânicos, elétricos, eletromecânicos,etc.). As funções utilizadas para o projeto de controlador são tambémapresentadas. Finalmente, a ferramenta de simulação através de blocos(Simulink) é apresentada.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
A tela inicial do Matlab:
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Operações básicas e manipulação de variáveis
Vetores e operações básicas:1 >> a = [1 2 3 4 5 6 9 8 7]2 a =3 1 2 3 4 5 6 9 8 74 >> b = a + 25 b =6 3 4 5 6 7 8 11 10 97 >> c = a + b89 c =
10 4 6 8 10 12 14 20 18 16
Definição de um vetor tempo de 0 a 10 segundos com tempo de passode 2 segundos:
1 >> t = 0:2 :102 t =3 0 2 4 6 8 10
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
operações com matrizes.1 >> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]23 A =45 16 3 2 136 5 10 11 87 9 6 7 128 4 15 14 19
10 >> diag (A) % ve to r d iagonal da mat r i z A1112 ans =1314 1615 1016 717 11819 >> A(1 ,4 ) + A(2 ,4 ) + A(3 ,4 ) + A(4 ,4 )2021 ans =2223 342425 >> X = A;26 >> X(4 ,5 ) =17 % a coluna 5 sera acrescentada2728 X =2930 16 3 2 13 031 5 10 11 8 032 9 6 7 12 033 4 15 14 1 17
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
operações com matrizes.1 >> sum(A( 1 : 4 , 4 ) )23 ans =45 3467 >> sum(A ( :,end) )89 ans =
1011 341213 >> 5*A1415 ans =1617 80 15 10 6518 25 50 55 4019 45 30 35 6020 20 75 70 52122 >> R=rand ( 4 ,4 )2324 R =2526 0.8147 0.6324 0.9575 0.957227 0.9058 0.0975 0.9649 0.485428 0.1270 0.2785 0.1576 0.800329 0.9134 0.5469 0.9706 0.14193031 >> Z=zeros ( 2 ,2 )3233 Z =3435 0 036 0 0
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Guardar dados em arquivo .mat, apagar dados, e carregar dados.1 >> a=rand ( 3 ,3 )23 a =45 0.2785 0.9649 0.95726 0.5469 0.1576 0.48547 0.9575 0.9706 0.800389 >> b=eye ( 3 )
1011 b =1213 1 0 014 0 1 015 0 0 11617 >> save matr iz_a_b . mat a b18 >> clear a l l19 >> close a l l20 >> load matr iz_a_b . mat21 >> whos22 Name Size Bytes Class A t t r i b u t e s2324 a 3x3 72 double25 b 3x3 72 double
’save’ salva o arquivo, ’clear’ apaga os dados do ambiente ’workspace’,’close’ fecha todas as janelas abertas (se houver), ’load’ carrega osdados de um arquivo .mat, e ’whos’ pergunta sobre as variáveis doambiente ’workspace’.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Controlando comandos da janela de entrada (entradas e saídas).short (curto, 4 cassas decimais)long (longo, 14 a 15 cassas decimais)e (forma exponencial)g (forma mais legível)
1 >> format shor t2 >> x = [ 4 / 3 1.2345e−6]34 x =56 1.3333 0.000078 >> format shor t e9 >> x = [ 4 / 3 1.2345e−6]
1011 x =1213 1.3333e+000 1.2345e−0061415 >> format shor t g16 >> x = [ 4 / 3 1.2345e−6]1718 x =1920 1.3333 1.2345e−0062122 >> format long23 >> x = [ 4 / 3 1.2345e−6]2425 x =2627 1.333333333333333 0.000001234500000
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
short (curto, 4 cassas decimais)long (longo, 14 a 15 cassas decimais)e (forma exponencial)g (forma mais legível)
1 >> format long e2 >> x = [ 4 / 3 1.2345e−6]34 x =56 1.333333333333333e+000 1.234500000000000e−00678 >> format long g9 >> x = [ 4 / 3 1.2345e−6]
1011 x =1213 1.33333333333333 1.2345e−0061415 >> format hex16 >> x = [ 4 / 3 1.2345e−6]1718 x =1920 3ff5555555555555 3eb4b6231abfd271
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
função ’plot’
Criar um arquivo plot1.m da barra de menu "File>New>Script"1 % p l o t s i n a l de tensão de rede2 tp =0.001 % tempo de passo3 t f =0 .1 ; % tempo f i n a l4 t =0: tp : t f ;5 f =60;6 Vrms=110;7 Vef =110*1.4142;8 V=Vef * sin ( ( 2 * 3 . 1 4 * f ) * t ) ;9 [ t ' V ' ]
10 plot ( t ,V)11 % observação : assegure−se que o tp < (1 / (2 f ) ) . Ou seja :12 % tp <2*1 / (2*60) ==> tp <0.0083
Para rodar o ’Script’, digitar na janela de comandos:1 >> p lo t1
Como V = Vefsen(2πft) é um sinal contínuo no tempo, idealmentets → 0. Como é praticamente impossível trabalhar com vetores dedimensão infinita, o tamanho do passo pelo menos dever garantir a
relação ts <1
2fou o sinal não poderá ser representado corretamente.
Mude o tp para 0.0042 é faça rodar novamente o programa.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Podem-se acrescentar as seguintes linhas para etiquetar ascoordenadas e definir o titulo da figura:
1 >> xlabel ( ' Ampl i tude ( Vo l t s ) ' )2 >> ylabel ( 'Tempo ( s ) ' )3 >> t i t l e ( ' Tensão CA da rede e l é t r i c a ' )
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
O editor de figuras permite personalizar o tamanho de fonte, cor edimensão das linhas, adicionar legenda, etc.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
gráficos em 3D
1 >> t = 0 : pi / 50 :10* pi ;2 >> plot3 ( sin ( t ) ,cos ( t ) , t )3 >> xlabel ( ' s i n ( t ) ' )4 >> ylabel ( ' cos ( t ) ' )5 >> z label ( ' t ' )6 >> grid on7 >> axis square % escalona os eixos x y z
O exemplo anterior bem pode representar a trajetória predefinida de umveículo não tripulado.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
funções ’meshgrid’, ’surf’ e ’saveas’
1 >> [ x , y ]= meshgrid(−10:10,−10:10) ;2 >> z=−(x . ^2 + y . ^ 2 ) ;3 >> f igure ( 1 ) ; % a b r i r f i g u r a 14 >> surf ( x , y , z ) % p l o t do parabo lo ide5 >> saveas ( gcf , ' s u r f _ f i g u r e ' , ' png ' ) % sa lva r f i g u r a ' s u r f _ f i g u r e . png ' em formato png
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Funções e estruturas ’if’, ’for’, e ’while’
As funções permitem que umprograma seja utilizado repetidasvezes. Por exemplo, as seguintesfunções podem ser criadas:estruturaif.mestruturafor.mestruturawhile.m
IF1 function [ x ]= e s t r u t u r a i f ( a , b )2 %ca l cu la o quadrado do maior3 %>> x= e s t r u t u r a i f ( 5 ,3 )4 i f a>b5 x=a ^2 ;%6 disp ( ' a e maior do que b ' )7 else8 x=b ^2 ; %9 disp ( ' a nao e maior do que b ' )
10 end
FOR1 function [ x ]= e s t r u t u r a f o r ( a )2 %c o n s t r u i um ve to r3 %>> x= e s t r u t u r a f o r ( [ 1 2 3 −4 −5 −4 −5 −3])4 n= length ( a ) ; % dimensao do ve to r a5 f o r i =1:n6 x ( i ) =a ( i ) ^2+17 end
ELSE1 function [ x ]= e s t r u t u r a w h i l e ( a )2 %c o n s t r u i um ve to r3 %>> x= e s t r u t u r a w h i l e ( [ 1 2 3 −4 −5 −4 ...
−5 −3])4 n= length ( a ) ; % dimensao do ve to r a5 i =1;6 while i <n7 x ( i ) =a ( i ) ^2+18 i = i +1;9 end
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Sistemas dinâmicos
Em geral, um sistema pode ser representado por:x = f (x(t),u(t), t)onde f é uma função não linear que representa a dinâmica do sistema, xé a variável de estado do sistema, u é o vetor de entrada do sistema, t éo vetor tempo e x é o vetor derivada de x em relação ao tempo t. Osistema acima pode ser aproximado pela expressão linear: x = Ax+ Bu
A representação geral em espaço de estados inclui dois equações:x = Ax+ Bu (eq. da dinâmica do sistema) ey = Cx+Du (eq. de saída do sistema),sendo a última a expressão que permite representar as variáveis desaída (observadas) medidas por sensores.No domínio da frequência:G(s) = Y(s)
U(s) = C(sI−A)−1B+D.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Sistema Mecânico
F(t) − b x− kx = m�x
Se a saída observada fosse aposição x, então o sistema emespaço de estados é:
x =
[x
�x
]=[
0 1
− km
− bm
] [x
x
]+
[01
m
]F(t)
y =[
1 0] [ x
x
]A equação diferencial no domínio deLaplace é:ms2X(s) + bsX(s) + kX(s) = F(s)de onde resulta a função detransferência:X(s)F(s)
= 1
ms2+bs+k
1 %m massa 1.0 kg2 %k coef . da r i g . da mola 1.0 N/m3 %b coef . do amortecedor 0.2 Ns /m4 %F fo rca de entrada 1.0 N5 m = 1;6 k = 1;7 b = 0 . 2 ;8 F = 1;9
10 A = [0 1 ; −k /m−b /m] ;11 B = [0 1 /m] ' ;12 C = [1 0 ] ;13 D = [ 0 ] ;1415 sys = ss (A,B,C,D)16 % ou também17 s = t f ( ' s ' ) ;18 sysL = 1 / (m* s^2+b* s+k )1920 % A l t e r n a t i v a s de conversão21 % [NUM,DEN] = SS2TF(A,B,C,D)22 % [A,B,C,D] = TF2SS(NUM,DEN)
O arquivo acima é nomeado desys_mecanico.m.
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Sistema Elétrico
V(t) − L didt
− Ri− 1
C
∫idt = 0
Se a saída observada fosse acorrente i, então o sistema emespaço de estados é:
x =
[ididt
]=[
0 1
−RL
− 1
LC
] [q
i
]+
[01
L
]V(t)
y =[
0 1] [ q
i
]A equação diferencial no domínio deLaplace é obtida por:I(s)V(s)
= C(sI−A)−1B+D =[
0 1](s
[1 0
0 1
]−
[0 1
− 1
LC−R
L
])−1 [01
L
]I(s)V(s)
= s
Ls2+Rs+ 1
C
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Motor elétrico DC
O modelo de um motor DC (controlado pela armadura) é expresso pelasequações:J�θ+ b θ = KtiLdidt
+ Ri = V − Keθ
onde o torque produzido é proporcional à corrente elétrica T = Kti, aforça eletromotriz reversa e = Ke
θ é proporciona à velocidade derotação, Kt á a constante de torque do motor, Ke é a constanteeletromotriz de reversa do motor, J é o momento de inercia do motor, b éa constante de fricção viscosa do motor, R é a resistência elétrica, L é aindutância.No domínio ’s’, a relação entre a velocidade angular e tensão de entradaé:Θ(s)
V(s)= K
(Js+b)(Ls+R)+K2 [ rad/secV
]
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Motor elétrico DC
O arquivo sys_motordc.m para simulação do modelo do motor DC.1 J = 0 .01 ; %0.01 kg .m^22 b = 0 . 1 ; %0.1 N.m. s3 % k t =0.01 N.m/Amp4 % ke=0.01 V/ rad / s5 % Neste caso : K= k t =ke6 K = 0 .01 ;7 R = 1; % 1 Ohm8 L = 0 . 5 ; % 0.5 H9 s = t f ( ' s ' ) ;
10 Moto r_ t f = K / ( ( J * s+b ) * ( L* s+R) +K^2)1112 % ou em espaco de estados13 A = [−b / J K / J14 −K/ L −R/ L ] ;15 B = [016 1/ L ] ;17 C = [1 0 ] ;18 D = 0;19 motor_ss = ss (A,B,C,D)
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Controle PID de um motor DC
Para uma entrada de 1-rad/s (degrau unitária), as especificações sãodadas:tempo de estabelecimento ts < 2ssobresinal Mp < 5%error em regime permanente ess < 1
O controle convencional PID é proposto:C(s) = Kp + Ki
s+ Kds =
Kds2+Kps+Ki
s
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Arquivo controlepid.m
1 % arqu ivo c o n t r o l e p i d .m2 % chamando a funcao do modelo motor3 sys_motordc ;4 kp=100;5 C=pid ( kp ) ;6 sys_ma=feedback (C* Motor_t f , 1 ) ;7 %−1 para real imentacao +8 f igure ( 1 )9 t = 0 : 0 . 0 1 : 5 ;
10 step ( sys_ma , t )11 grid12 t i t l e ( ' resposta degrau ( Cont ro le P) ' )13 disp ( ' Enter para con t inua r ' )14 pause15 % con t ro l e PID com ganhos Ki e Kd pequenos16 Kp = 75;17 Ki = 1 ;18 Kd = 1;19 C = pid (Kp , Ki , Kd) ;20 sys_ma = feedback (C* Motor_t f , 1 ) ;21 step ( sys_ma , [ 0 : 1 : 2 0 0 ] )22 t i t l e ( ' Cont ro le PID Cont ro l ( Ki e Kd ...
pequenos ) ' )23 disp ( ' Enter para con t inua r ' )24 pause
1 % Contro le PID ( Ki grande e Kd pequeno )2 Kp = 100;3 Ki = 200;4 Kd = 1;5 C = pid (Kp , Ki , Kd) ;6 sys_ma = feedback (C* Motor_t f , 1 ) ;7 step ( sys_ma , 0 : 0 . 0 1 : 4 )8 grid9 t i t l e ( ' PID ( Ki grande e Kd pequeno ) ' )
10 disp ( ' Enter para con t inua r ' )11 pause12 % Contro le PID ( Ki grande e Kd grande )13 Kp = 100;14 Ki = 200;15 Kd = 10;16 C = pid (Kp , Ki , Kd) ;17 sys_ma = feedback (C* Motor_t f , 1 ) ;18 step ( sys_ma , 0 : 0 . 0 1 : 4 )19 grid20 t i t l e ( ' PID ( Ki grande e Kd grande ) ' )21 disp ( ' Enter para con t inua r ' )22 pause
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Simulink (simulação por blocos)
A dinâmica de um pêndulo simples é expressa por:I�θ+ b θ+mglsen(θ) = 0
Onde θ é o angulo de deslocamento, b é a viscosidade, I = ml2 é omento de inércia do pêndulo, m é a massa do pendulo, e l é ocomprimento do pêndulo. Seja o caso específico (sem viscosidade),b = 0.�θ = −
g
lsen(θ)
Projeta-se o modelo em simulink:
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Pendulo simples
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Pendulo simples (com atrito)
O sistemas anterior pode ser modelado considerando o efeito do atritoviscoso. Assim, a resposta será amortecida.�θ = −
g
lsen(θ) −
b
ml2θ
Juan C. Cutipa Luque Tutorial de Matlab
Resumo Introdução Funções básicas Sistemas lineares Controle Simulink Referências
Bibliografia
OGATA, K. (2011). Engenharia de Controle Moderna 5a Edição.Pearson Education.
DORF, R. (2010). Modern Control Systems; 12th Edition. PrenticeHall.
Páginas webs:
http://www.mathworks.com
http://ctms.engin.umich.edu/CTMS/index.php?aux=Home
Juan C. Cutipa Luque Tutorial de Matlab