Post on 10-Aug-2015
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 1
Experiencia de Laboratorio N° 1
Control de la velocidad de un motor mediante un controlador
PID modificado
I. Modelado e Identificación de los Parámetros de la Planta.
Aplicando el circuito equivalente de un motor tenemos:
Planteando las ecuaciones diferenciales:
Al anular la dinámica rápida de la planta, es decir que el término
; podemos
obtener al combinar la tercera y primera expresión:
Considerando que
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 2
Combinando la ecuación hallada con la cuarta en la segunda ecuación obtenemos:
(
)
O bien:
Y aplicando la transformada de Laplace:
( )
( )
(
)
Y comparando con una planta genérica de primer orden de la forma ( )
, se
puede apreciar que:
( )
Cuya respuesta al escalón unitario será de la siguiente forma:
Nota: En el laboratorio se aproximaron los valores de en base a la respuesta
temporal de la planta en cuestión.
𝑘𝑔
0 1 2 3 4 5 6 7 8 9 100
0.2
0.4
0.6
0.8
1
Respuesta Generica de un sistema de primer orden
Tiempo (sec)
Respuesta
T
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 3
a. Adquirir la respuesta al escalón asumiendo un periodo de muestreo
constante y suficientemente pequeño como para utilizar los datos en la
generación de la gráfica anterior
Los datos usados en la determinación de la función de transferencia de la planta se
aproximaron a partir de la imagen y datos capturados en el osciloscopio, es por eso que el
tiempo de muestreo está dado por el mismo osciloscopio:
b. Identifique Kg y T en forma manual
De la gráfica se puede observar para “ ”:
( )
( )
Para “T”: también se puede calcular mediante:
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 4
c. Utilizando el toolbox “ident” de Matlab, verificar e identificar Kg y T con
la herramienta y verificar la estimación manual.
Con la ayuda del toolbox ident pudimos identificar los parámetros por aproximación, los
datos obtenidos son:
Comparando los valores calculados por ident y mediante el método manual, en base a un
simple porcentaje de diferencia:
( ) ( )
( )
( ) ( )
( )
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 5
Por lo tanto la planta con la que trabajaremos será la hallada con el toolbox ident y es:
( )
Nota: Por la naturaleza del sensor (aproximado de orden cero) y del motor (aproximado de
primer orden) la planta con la que trabajaremos será:
II. Ajuste de un controlador
Para la planta:
( )
a. Calcular los parámetros de un controlador P, PI y PID utilizando el método
de ganancia crítica de Ziegler y Nichols, perturbando al sistema con una
dinámica no dominante de 2° orden.
La planta tiene un polo en
, por lo tanto para la perturbación el polo estará
en
CALCULO DE LA GANANCIA CRITICA:
Por lo tanto la planta con una perturbación cuadrática multiplicativa será:
( )
(
)
Motor Sensor Planta
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 6
Desarrollando y ordenando:
( )
Si:
De modo que la función de transferencia sea genérica:
( )
De donde podemos obtener la ganancia critica “ ” fácilmente de la siguiente manera:
De done:
( ) (
)
Simplificando:
Ahora bien para la frecuencia crítica:
√ √
Por lo tanto
√
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 7
Donde n > 10, por lo tanto si tomamos a n=15 de modo que la dinámica de la perturbación
sea rápida en comparación a la dinámica de la planta los valores para serán:
Con los parámetros de tenemos los siguiente parámetros de los diferentes tipos de
controladores según el método de sintonización de Ziegler y Nichols.
Controlador K Ti Td P 13.5536 - - PI 12.3338 0.2232 - PID con decaimiento de ¼ 16.2643 0.1340 0.0335 PID con un poco de sobrepaso 8.9454 0.1340 0.0892 PID sin sobrepaso 5.4214 0.1340 0.0892
Nota: Los valores anteriormente calculados son calculador mediante el siguiente código
ejecutado en MatLab.
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%CALCULO DE PARAMETROS DE CONTROLADORES%%%%
%%%%%%%%%% MET. GANANCIA CRITICA%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%parámetros del motor: Kg, T
Kg=1.2105;T=0.68093
%% n n>10, para minimizar la perturbación n=15;
%% obteniendo la ganancia crítica y frecuencia critica
Ku=((2*(n^2)) +(4*n) +2 )/(Kg*n); Wu=sqrt(((n^2) + (2*n))/(T^2));
Tu=(2*pi)/Wu;
%% calculando los valores del controlador P,PI,PID %% controlador P
Kprop=0.5*Ku
%% controlador PI Kpi=0.455*Ku;
Tipi=0.833*Tu;
%% controlador PID ---- con decaimiento de 1/4
Kpdec= 0.6*Ku;
Tidec=0.5*Tu;
Tddec=0.125*Tu; %% controlador PID ---- con un poco de sobrepaso
Kpsob= 0.33*Ku;
Tisob=0.5*Tu; Tdsob=0.333*Tu;
%% controlador PID ---- sin sobrepaso
Kpsin= 0.2*Ku; Tisin=0.5*Tu;
Tdsin=0.333*Tu;
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 8
b. Para el modelo identificado del motor, simular el sistema de control.
El esquema de simulación para cada sistema de control es el siguiente:
Cuyas respuestas son las siguientes:
En base a las respuestas obtenidas podemos observar que:
- El controlador (P) proporcional incrementa mucho la velocidad de
respuesta pero aún existe un error en estado estacionario, el cual no se
desea en el comportamiento del sistema de control.
- El controlador PI mejora la respuesta y tiene un sobrepaso del 8% pero
los controladores PI son en general inestables.
referencia proporcional
PID
motor 5
Kg
T.s+1
motor 4
Kg
T.s+1
motor 3
Kg
T.s+1
motor 2
Kg
T.s+1
motor 1
Kg
T.s+1
motor
Kg
T.s+1
Scope
Proporcional
Integral
PID
PID
dec -1/4
PID
PID
Sin sobrepaso
PID
PID
Con sobrepaso
PID
Gain 4
Kpsin
Gain 3
Kpsob
Gain 2
Kpdec
Gain 1
Kpi
Gain
Kprop
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 9
- El controlador PID con decaimiento de un ¼ , mejora el tiempo de
respuesta pero tiene un sobrepaso no mayor al 17% el cual reduciremos
en los siguiente puntos.
- El controlador PID con sobrepaso presenta un sobrepaso del 25% lo cual
no es deseable.
- El controlador PID sin sobrepaso presenta un sobrepaso del 19% debido
a los parámetros introducidos.
c. Simular el efecto de las perturbaciones de carga (PID)
El esquema de simulación para cada sistema de control es el siguiente:
Cuyas salidas son:
referenciaproporcional 1
PID
perturbacion
motor 5
Kg
T.s+1
motor 4
Kg
T.s+1
motor 3
Kg
T.s+1
motor 1
Kg
T.s+1
motor
Kg
T.s+1
Scope
Proporcional
Integral 1
PID
PID
dec -1/1
PID
PID
Sin sobrepaso 1
PID
PID
Con sobrepaso 1
PID
Gain 5
Kprop
Gain 4
Kpsin
Gain 3
Kpsob
Gain 2
Kpdec
Gain 1
Kpi
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 10
En base a las respuestas obtenidas podemos observar que cuando se presenta una
perturbación:
- El controlador (P) proporcional no es capaz de inhibir esta perturbación
sino que solo la trata de minimizar pero jamás la anula.
- El controlador PI es la segunda mejor respuesta a las perturbaciones.
- El controlador PID con decaimiento de un ¼, es sin duda la mejor
respuesta en contra de las perturbaciones a la entrada de la planta, es la
que más rápido anula el efecto de dicha perturbación.
- El controlador PID con sobrepaso al igual que el PID sin sobrepaso
anulan el efecto de la perturbación de carga pero en más tiempo que el
PID con decaimiento de 1/4
Nota: El controlador que mejor se adapta es el controlador PID con decaimiento de un
cuarto, ya que es uno de los que menos sobre paso tiene y además es el controlador que más
rápido elimina el efecto de la perturbación de carga, por lo que usaremos este controlador
para los siguientes puntos en específico.
Simular el efecto de saturación de la señal de control debido a límites
físicos en el actuador (PID). (Considere una perturbación de carga que lleve a la saturación a la señal de control
durante el transitorio. En estado estacionario, la señal de control no debe estar saturada.)
El esquema de simulación para cada sistema de control es el siguiente:
referenciaproporcional 1
PID
perturbacion
motor 5
Kg
T.s+1
motor 4
Kg
T.s+1
motor 3
Kg
T.s+1
motor 1
Kg
T.s+1
motor
Kg
T.s+1
Scope
Saturation 5
Saturation 4
Saturation 3
Saturation 2
Saturation 1
Proporcional
Integral 1
PID
PID
dec -1/1
PID
PID
Sin sobrepaso 1
PID
PID
Con sobrepaso 1
PID
Gain 5
Kprop
Gain 4
Kpsin
Gain 3
Kpsob
Gain 2
Kpdec
Gain 1
Kpi
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 11
Cuyas salidas son:
En general se observa una gran transición con un sobrepaso notable en casi todos los
controladores por igual y una reducción en la velocidad de respuesta esto debido al efecto
“windup” el cual será analizado mas adelante.
III. PID Modificado
Si tenemos a un controlador del tipo:
( ) ( ) ( ) ( )
Con las siguientes modificaciones:
( ) : Término proporcional con Ponderación de la referencia (b).
( ) : Término integral con compensación anti-windup ( ).
( ) : Término Derivativo con limitación de la ganancia derivativa (N).
( ) : Término proporcional con Ponderación de la referencia (b):
Según a las simulaciones realizadas para saber cuál debe ser el valor de “b” de
ponderación:
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 12
Y sus salidas son:
Se observa claramente que cuando “b” decrece el valor sobrepaso también lo hace, por lo
que vamos a elegir un valor de 0.3 para disminuir lo más posible el sobrepaso del PID
seleccionado
referencia motor 5
Kg
T.s+1
motor 4
Kg
T.s+1
motor 3
Kg
T.s+1
motor 2
Kg
T.s+1
Scope 1
Integrator 4
1
s
Integrator 3
1
s
Integrator 2
1
s
Integrator
1
s
Gain 9
1/Ti
Gain 8
Td
Gain 3
0.9
Gain 2
Kp
Gain 19
1/Ti
Gain 18
Td
Gain 17
0.3
Gain 16
Kp
Gain 15
1/Ti
Gain 14
Td
Gain 13
0.5
Gain 12
Kp
Gain 11
0.7
Gain 10
Kp
Gain 1
1/Ti
Gain
Td
Derivative 5
du /dt
Derivative 4
du /dt
Derivative 3
du /dt
Derivative 1
du /dt
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 13
( ) : Término integral con compensación anti-windup ( ).
Los voltajes máximos y mínimos se los obtiene del actuador usado, en este caso:
[ ] [ ]
Y el valor de es calculado mediante el siguiente programa en Matlab:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% calculo de Tt en el wind-up%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% parametros del controlador usarse:PID con decaimiento
Kp=Kpdec;
Ti=Tidec;
Td=Tddec;
%% definicion de la constante de seguimiento: Tt
Tt = sqrt(Ti*Td);
En este caso:
Efecto del windup y su solución
referencia 2
referencia 1
motor 4
s
Td/2.s+1
motor 3
Kg
T.s+1
motor 2
s
Td/2.s+1
motor 1
Kg
T.s+1
Sine Wave 2
Sine Wave 1
Scope 2
Scope 1
Saturation 1
Saturation
Integrator 2
1
s
Integrator 1
1
s
Gain 9
1/Tt
Gain 8
0.3
Gain 7
0.3
Gain 6
1/Ti
Gain 5
1/Ti
Gain 4
Td
Gain 3
Td
Gain 2
Kp
Gain 1
Kp
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 14
Se observa como es que el sobrepaso es mantenido en la primera situación debido a que el
actuador se satura lo que lleva al sistema a un estado de no linealidad, en cambio
modelando el windup en la segunda situación vemos que el efecto se minimiza.
( ) : Término Derivativo con limitación de la ganancia derivativa (N).
Los valores de N esta recomendado ponerlo entre 2 y 8, dependiendo del ancho de banda
que se quiera trabajar, en nuestro caso trabajaremos para N=2.
referencia 1
referenciamotor 5
Kg
T.s+1
motor 1
Kg
T.s+1
lim -deriv
s
Td/2.s+1
Sine Wave 1
Sine Wave
Scope 2
Scope 1
Integrator 1
1
sIntegrator
1
s
Gain 8
KpGain 7
0.3
Gain 5
1/Ti
Gain 4
Td
Gain 3
0.3
Gain 2
Kp
Gain 1
1/Ti
Gain
Td
Derivative 1
du /dt
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 15
Se puede observar como se anula el efecto del ruido de medición pero con algunos
inconvenientes, como por ejemplo que la respuesta se hizo un poco mas lenta.
Efecto de las perturbaciones de carga:
Se observa que el controlador rechaza y minimiza el efecto de la perturbación de
carga.
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 16
IV. Discretización del controlador PID Modificado
a. Aproxime:
1. La acción integral por el método de Euler,
( )
∫ ( )
∫ ( ) ( )
Despejando:
( )
( )
( )
Discretizando por el método de Euler hacia adelante
( ) ( )
( )
( )
Despejando, obtenemos la ecuación en diferencias que nos ayudara en la implementación
en el PIC:
( ) ( )
( )
( )
Llevando las ecuaciones a variable “Z” para la simulación en matlab.
( ) ( )
( )
( )
Entonces la ecuación a ser usada en Matlab es:
( )
( )
( )
2. La acción derivativa por el método de la transformada
bilineal o Tustin y encontrar las expresiones para.
( )
( )
Método de Tustin:
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 17
Entonces:
( ) (
)
(
)
( )
Despejando y ordenando tenemos la ecuación que nos ayudara en Matlab
( ) ( (
))
( ) ( ) ( )
Llevando esta misma ecuación a una ecuación en diferencias finitas para la implementación
en el PIC tenemos:
( )
( ( ) ( ))
( )
b. Repetir la simulación “II” para este controlador
El esquema de la simulación es el siguiente:
referencia 2
referencia 1 motor 1
Kg
T.s+1Scope 2
Saturation
Integral
D
z-1
Int -windup
E
z-1
Gain 7
0.3
Gain 1
1
Gain
Kp
Derivativa
A.z-A
B.z-C
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 18
Para la simulación es necesario definir constantes en función de “h” el periodo de muestreo,
para lo cual definimos el siguiente código en matlab.
%%%%%%%%%%%%%%%%%%%%%%%%
%%definicion de constantes A,B,C,D,E%%%%
%%%%%%%%%%%%%%%%%%%%%%%
%% parametros del controlador usarse:PID
Tt = sqrt(Ti*Td);
%% Periodo de muestreo
h=0.002;
h1=0.002;
%% calculo de los coeficientes discretizados
A=2*Td*Kp;
B=((2*Td/2)+h1);
C=((2*Td/2)-h1);
D=(Kp*h1/Ti);
E=(Kp*h1/Tt);
Por lo que la respuesta del controlador discretizado con una entrada escalón unitario y una
perturbación a los 3 segundos, además de tener internamente una compensación anti
windup, y una limitación a la ganancia derivativa es:
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 19
V. Reportar el diseño del sensor de velocidad
Como lo que necesitamos medir es la velocidad del motor se usó un disco
perforado el cual mediante optosensores mandó un tren de pulsos con una
frecuencia análoga a la velocidad del motor, dicho tren de pulsos se envi a un
conversor frecuencia voltaje, el cual nos dio a su salida un voltaje proporcional a
la frecuencia del tren de pulsos pero por transitividad también análoga a la
velocidad angular del eje del motor.
Tuvimos problemas con el rango de frecuencias que puede medir el conversor
frecuencia voltaje, por la cantidad de perforaciones que tenía el disco lo que
ocasionaba que el conversor frecuencia-voltaje siempre este saturado, por lo que
antes de la conversión usamos flip-flops para dividir frecuencia, tal y como se
muestra en la figura:
El esquema en proteuz del sensor es el siguiente:
VI.
Divisores de
frecuencia
Conversor
frecuencia –
Voltaje LM2907
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 20
VII. Reportar el diseño de la electrónica de potencia con modulación por ancho de
pulso
La modulación por ancho de pulso ya viene implementada dentro del modulo
CPP del pic que estamos usando, asi que solo reportaremos la parte de
amplificación de corriente.
Para la parte de amplificación de corriente usamos un puente H, el cual posee
pines que controlan el sentido de giro del motor, así mismo tienen un enhable lo
que permite habilitar o deshabilitar la alimentación a motor mediante una señal
digital la cual puede ser la que viene del módulo CPP del PIC en cuestión.
El puente H usado es el L293D:
La configuración usada se la muestra a continuación
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 21
VIII. Reportar el diseño del controlador basado en algún micro-controlador.
a. Presentar el diagrama de flujo del algoritmo de control, minimizando en lo
posible el retardo computacional.
Partes del algoritmo:
1. Interrupción por tiempo de muestreo.
2. Adquisición de la velocidad
3. Calculo de la señal de control
4. Envío de la señal de control
5. Cálculos para el siguiente tiempo de muestreo.
Interrupcion TIMMER 0 Cada 2 mseg
Lectura Ref, Salida
Calculo de la señal de
control
Accion de control
Cálculos posteriores
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 22
A continuación explicaremos e identificaremos cada uno de estos bloques en el diagrama
de flujo a partir del código implementado:
- Definicion de constantes para no realizar cálculos innecesarios.
#define Tm 0.002
#define Fosc 20000000.0
#define prescaler 64.0 #define max3 10000.0 /*valor maximo del actuador*/
#define min 0.0 /*valor minimo del actuador*/
/*defnicion de constantes del controlador discreto*/ #define Kp 32.5286
#define A 2.1788
#define B 0.0355 #define C 0.0315
#define D 0.4856
#define E 0.9713 #define Pond 20.3125
/* constantes de operaciones innecesarias*/
#define CnB 0.8873 //C/B #define AnB 61.3910 //A/B
#define Kp_3 9.7586 //Kp*0.3
#define Per 256.0/10.0 //perturvacion de 2.5 volts en la entrada #define Pondefec2 0.0255 //(256.0/10000.0)*0.78
/*ponderacion para hacer un buen uso del actuador*/
/* valor para el tiempo de la interrupcion calculado mediante: Tm=(4/Fosc)*[Prescaler(256-x)]
Tm:Periodo de muestreo
entonces x será: */
#define x (256-(Tm*Fosc)/(4*prescaler)) ; parámetro de interrupción del TIMMER0
- Descripción de la función principal (solo configuración) y TIMMER 0
void main()
{
//--configuraciones para el PIC----------------- setup_adc_ports(ALL_ANALOG); //define todo el puerto Analogo
setup_adc(ADC_CLOCK_INTERNAL); //define uso clock interno
setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64); /* configuracion par alas insterrupciones*/
setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE); enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
set_timer0 ((int)x); //------configuracion de los puertos-----
TRISB=0xff; /*todos los bits del puerto configurados como entrada*/
PORTD=0X00; /*inicia el puerto de en 0*/
while(1); //bucle infinito
}
- Lectura de la referencia y la salida
void TIMER0_isr(void) {unsigned int RefAdc=0,SalAdc;
unsigned int16 pwref=0,pwmp;
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 23
float er_0;
//definicion de variables;
float Prop,I,Dr,Act,y,er,u,Ref,aux ; char windup;
set_timer0((int)x);
setup_timer_2(t2_div_by_16,77,1); setup_ccp1(ccp_pwm);
/****************************************************/
/*proceso en lazo abierto, no realiza ningún control*/ /****************************************************/
if(bit_test(PORTB,0)==1 && bit_test(PORTB,1)==0)
{ //lectura de la referencia
set_adc_channel(1);
delay_us(40); RefAdc=read_adc();
pwref=(unsigned int16)((RefAdc)*0.75);
if(bit_test(PORTB,2)==0) pwref=(unsigned int16)(RefAdc*0.75);/*ponderacion a 12.5 volts*/ set_pwm1_duty(pwref);
}
/****************************************************/ /*proceso en lazo cerrado, control con el PID Modificado******l*/
/****************************************************/
if(bit_test(PORTB,1)==1 && bit_test(PORTB,0)==0) {
/*lectura de la referencia*/
set_adc_channel(1);
delay_us(40);
RefAdc=read_adc();
/*lecura de la salida*/
set_adc_channel(0);
delay_us(40);
SalAdc=read_adc();
/*ponderaciones de los valores y asignación a variables de trabajo*/
y=(SalAdc*Pond);
Ref=(RefAdc*Pond);
- Calculo de la señal de control
er=Ref-y; //calculo del error
aux=er-er_0; Dr=CnB*Dr + AnB*aux; //calculo del termino derivarivo
Prop=Kp_3*Ref-Kp*y; //calculo termino proporcional
u=Prop+I+Dr; //calculo de la señal de control con perturvacion
- Acción de control
if(u>min && u<max0) {Act=0;windup=0; /* Verifica el efecto windup*/ pwmp=(unsigned int16)(u*Pondefec0);
}
if(u>=max3) /* en caso de saturación por encima*/ {Act=u-max3;
windup=1;
pwmp=300;
}
if (u <= min) /* en caso de saturación por debajo*/
{ Act=u;//min-u;//porque min es cero windup=1;
pwmp=0;
} if(Ref>=500){
set_pwm1_duty(pwmp) ; //actua!!!!!
} else {set_pwm1_duty(0); } // en caso que la Referencia sea muy pequeña
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 24
- Cálculos para la siguiente iteración:
//guarda datos para la siguiente iteracion er_0=er;
if(windup==1)I=I+D*er_0-E*Act; //calculo del termindo integral
else I=I+D*er_0; };
b. Estimar el retardo computacional de su sistema y compararlo con el
periodo de muestreo.
En promedio al micro-controlador le toma 4 ciclos de reloj ejecutar una instrucción,
en el programa tenemos xx instrucciones en el lazo cerrado, la multiplicamos por 4
y obtenemos la cantidad de ciclos que le toma ejecutar el programa en lazo cerrado,
si ahora queremos saber el tiempo multiplicamos el resultado entre la frecuencia de
reloj la cual es de 20MHz.
Cantidad de instrucciones en el programa en lazo cerrado son:
65 instrucciones
Entonces:
Numero de ciclos=65*4=260 ciclos de maquina
Por lo tanto:
Retardo computacional=
(
)=130useg
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 25
IX. Experimentación.
a. Sin carga en el motor
La simulación en proteuz es la siguiente:
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 26
En el laboratorio:
Planta en lazo abierto:
Planta en lazo cerrado (PID modificado):
Si comparamos las dos respuestas, la del lazo abierto versus la del lazo cerrado veremos
que el tiempo de respuesta se ha mejorado en gran medida, pasa a asentarse de
aproximadamente 3 segundo a un tiempo de asentamiento de casi 1 segundo, sin error en
estado estacionario.
FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA
Univ. Evert Ismael Pocoma Copa Página 27
X. Conclusiones del trabajo.
i.