Controle de posição de Motor CC por realimentação de estados 1. Introdução Baseado no tutorial “Control Tutorials for Matlab e Simulink”, originalmente desenvolvido pelo Prof. Bill Messner do Department of Mechanical Engineering da Tufts University (Carnegie Mellon University) e Prof. Dawn Tilbury do Department of Mechanical Engineering and Applied Mechanics da University of Michigan. 2. Modelo do motor (J) moment of inertia of the rotor 3.2284E-6 kg.m^2 (b) motor viscous friction constant 3.5077E-6 N.m.s (Kb) electromotive force constant 0.0274 V/rad/sec (Kt) motor torque constant 0.0274 N.m/Amp (R) electric resistance 4 Ohm (L) electric inductance 2.75E-6H
14
Embed
Controle de posição de Motor CC por realimentação de estados · Controle de posição de Motor CC por realimentação de estados 1. Introdução Baseado no tutorial “Control
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Controle de posição de Motor CC por realimentação de estados
1. Introdução
Baseado no tutorial “Control Tutorials for Matlab e Simulink”, originalmente desenvolvido pelo Prof. Bill Messner do Department of Mechanical Engineering da Tufts University (Carnegie Mellon University) e Prof. Dawn Tilbury do Department of Mechanical Engineering and Applied Mechanics da University of Michigan.
2. Modelo do motor
(J) moment of inertia of the rotor 3.2284E-6 kg.m^2
(b) motor viscous friction constant 3.5077E-6 N.m.s
(Kb) electromotive force constant 0.0274 V/rad/sec
(Kt) motor torque constant 0.0274 N.m/Amp
(R) electric resistance 4 Ohm
(L) electric inductance 2.75E-6H
3. Código do modelo no Matlab
>> J = 3.2284E-6;
b = 3.5077E-6;
K = 0.0274;
R = 4;
L = 2.75E-6;
s = tf('s');
P_motor = K/(s*((J*s+b)*(L*s+R)+K^2))
Transfer function:
0.0274
---------------------------------------------
8.878e-012 s^3 + 1.291e-005 s^2 + 0.0007648 s
Ou, na representação por espaço de estados:
>> A = [0 1 0
0 -b/J K/J
0 -K/L -R/L];
B = [0 ; 0 ; 1/L];
C = [1 0 0];
D = [0];
A = 1.0e+006 *
0 0.000001000000000 0
0 -0.000001086513443 0.008487176310247
0 -0.009963636363636 -1.454545454545455
B = 1.0e+005 *
0
0
3.636363636363637
>> C
C = 1 0 0
D = 0
4. Respostas no domínio do tempo 4.1 Em malha aberta
>> step(P_motor)
4.2 Em malha fechada com realimentação unitária e ganho unitário
>> step(feedback(P_motor,1))
0 0.5 1 1.5 2 2.5 3
x 104
0
2
4
6
8
10
12x 10
5 Step Response
Time (seconds)
Am
plitu
de
5. Projeto por realimentação de estados
Considerando-se a representação do sistema original:
Estabelecendo como objetivo de projeto as raízes da equação característica em -200, -100+100j e -100-100j (proposto pelo site).
>> K = acker(A,B,[-200 -100+100j -100-100j])
K = 0.001296072992701 -0.027380699342675 -3.998902987911969
A respota do sistema compensado será:
>> step(A-B*K,B,C,D)
O sistema realimentado, comparado com o sistema original em malha fechada, apresenta um tempo de acomodação significativamente menor e um sobre sinal também menor. Contudo, o valor em regime apresenta uma grande diferença em relação ao sistema original. Isto pode ser corrigido com um ganho de ajuste em B:
>> step(A-B*K,B/771,C,D)
0 0.01 0.02 0.03 0.04 0.05 0.06 0.070
100
200
300
400
500
600
700
800Step Response
Time (seconds)
Am
plitu
de
6. Representação no Simulink
Uma maneira de representar um sistema não representado em forma canônica com acesso a todas as variáveis de estado é obter a representação por função de transferência. Neste caso deseja-se acesso ao deslocamento angular, a velocidade angular e a corrente de armadura. Assim, a matriz C será modificada para matriz identidade de ordem 3.
0 -8.614352169946272 -0.145454654105890>> B = [0; 0; 1];
>> C = [(num(4)/den(1)) 0 0] C = 1.0e+009 * 3.086245930998750 0 0 Repare que: >> [num,den] = ss2tf(A,B,C,0);step(feedback(tf(num,den),1)) Gera a mesma respota em malha fechada do sistema original:
Ou seja, a representação canônica controlável gera novas matrizes A,B,C e D, com uma
nova proposta de variáveis de estado. As variáveis de estado não são mais as variáveis de estado do sistema original.