27
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

control de un motor DC.pdf

Embed Size (px)

Citation preview

Page 1: control de un motor DC.pdf

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

Page 2: control de un motor DC.pdf

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

Page 3: control de un motor DC.pdf

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:

Page 4: control de un motor DC.pdf

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:

( ) ( )

( )

( ) ( )

( )

Page 5: control de un motor DC.pdf

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

Page 6: control de un motor DC.pdf

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

Page 7: control de un motor DC.pdf

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;

Page 8: control de un motor DC.pdf

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

Page 9: control de un motor DC.pdf

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

Page 10: control de un motor DC.pdf

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

Page 11: control de un motor DC.pdf

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:

Page 12: control de un motor DC.pdf

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

Page 13: control de un motor DC.pdf

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

Page 14: control de un motor DC.pdf

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

Page 15: control de un motor DC.pdf

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.

Page 16: control de un motor DC.pdf

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:

Page 17: control de un motor DC.pdf

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

Page 18: control de un motor DC.pdf

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:

Page 19: control de un motor DC.pdf

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

Page 20: control de un motor DC.pdf

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

Page 21: control de un motor DC.pdf

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

Page 22: control de un motor DC.pdf

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;

Page 23: control de un motor DC.pdf

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

Page 24: control de un motor DC.pdf

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

Page 25: control de un motor DC.pdf

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:

Page 26: control de un motor DC.pdf

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.

Page 27: control de un motor DC.pdf

FACULTAD DE INGENIERIA ETN-933 ING. ELECTRONICA

Univ. Evert Ismael Pocoma Copa Página 27

X. Conclusiones del trabajo.

i.