diseño de control de velocidad
TRANSCRIPT
-
8/18/2019 diseño de control de velocidad
1/2
clc,clf,clear%% Modelo control de velocidad motor D.C% Ecuaciones del modelo: % I_ap = (E_a - R_a*I_a - K_b*w) / L_a % w_p = (K_t*I_a - f*w - T_l) / J% Donde:
% E_a Voltaje de la armadura
% R_a Resistencia de armadura % I_a Corriente de armadura % I_ap Derivada de la corriente % L_a Inductancia de la armadura % J Momento Polar de inercia del eje del motor % T_l Torque de carga % K_b Constante de la velocidad % K_t Constante del torque % f Fricción viscosa % w Velocidad angular % w_p Aceleración angular (dw/dt)%% Variables de estado
% syms R_a L_a K_b K_t J f
R_a = 2.99; % Resistencia de armadura(ohms)L_a = 420e-6; % Inductancia de armadura(H)K_b = 24.96e-3; % Constante de velocidad (V/(rad/seg))K_t = 24.1e-3; % Constante de torque (N*m/amp)f = 1e-8; %J = 4.14e-6; % Inercia del rotor(Kg*m^2)
% Marices de las varibles de estadoA = [-R_a/L_a -K_b/L_a; K_t/J -f/J ];B = [ 1/L_a 0; 0 -1/J];C = [0 1];
D = [0 0];
% Generar la funcion de tranferencia del sitemaSys = ss(A,B,C,D);%pretty(Sys)Gtf = tf(Sys);G11 = Gtf(1,1); % W/VaG12 = Gtf(1,2); % W/Tl
G11 = zpk(G11); % Ceros, Polos, Gananciastep(6*G11); % Escalon de 6V, velocidad de salida Vs voltaje de armaduralegend('Velocidad (rad/seg)')
% Aproximación a un sistema de primer orden, eliminando el polo lejano
% aproximando G11--> W/VaG11 = zpk([],[-48.93],13860133.4254/7070) %Zero,Pole,Gainstep(5*G11)legend('Velocidad (rad/seg)')
pole(G11)zero(G11)
% Gananacia del ActuadorAct = 1;
% Ganancia del sensorSens = 5/480.66; %v/(rad/seg)
-
8/18/2019 diseño de control de velocidad
2/2
% Planta = Actuador*Motor*SensorPlanta = Act*G11*Sens;
Planta = tf(48.93,[1 48.93])
% ver las raices de la planta
rlocus(Planta)
% Abrir la herramienta de diseño del lugar de las raicesrltool(Planta)
%% Planta discreta
Tm = 10e-3; %Periodo de muestreoGz = c2d(Planta,Tm) %planta discreta% quitando polos lejanos
Gz=c2d(Planta,.01,'zoh')
rlocus(Gz)figure(1)K=4.1687;step(feedback(Gz*K,1)) Kp=0.6*K;Tcr=0.02;Td=0.125*Tcr;Ti=0.5*Tcr;Ki=Kp/Ti;Kd=Td*Kp;T=0.01;Kp=Kp-(Kp*T/(2*Ti));
Ki=Ki*T;Kd=Kd/T;z=tf('z')Gcz=(Kp+(Ki/(1-z^-1))+Kd*(1-z^-1))%controladorzpk(Gcz)figure(2)step(feedback(Gcz*Gz,1))%hasta aca se obtuvieron los patrones de arranqueKd=0.2100;Ki=1.1000;Kp=0.7000;Gcz=(Kp+(Ki/(1-z^-1))+Kd*(1-z^-1))zpk(Gcz)figure(3)step(feedback(Gcz*Gz,1)) num=[2.01 -1.12 0.21];den=[1 -1 0];Gcz=tf(num,den,0.01)[Ac,Bc,Cc,Dc]=tf2ss(num,den)Gczss=ss(Gcz)Gczss=balreal(Gczss) %realización balanceada