informe lab 3 control ii
TRANSCRIPT
LABORATORIO NO. 3
DISEO Y MONTAJE DE UN CONTROLADOR DIGITAL POR
REALIMENTACION DE ESTADOS
Hebert Tllez 2420121040Alejandro Rodrguez 2420121043
PRESENTADO A:ING. OSCAR BARRERO
CONTROL ELECTRNICO IIUNIVERSIDAD DE IBAGUECONTROL DIGITAL II2013
OBJETIVO
Aplicar y validar conceptos de diseo de controladores por realimentacin de estados en tiempo discreto
DESARROLLO MODELAMIENTO EN ESPACIO DE ESTADO
Primera Sesin - Modela miento en espacio de estado, obtener la representacin en espacio de estado del sistema trabajado en las guas anteriores.
V311V2 11V1 11
ECUACIONES
NODO V11.
2.
NODO V23.
4.
SOLUCION
Sabiendo que VC1=V2
Remplazndola en la ecuacin 3.
Despejamos el v1
5.
Remplazamos la 5 en la 2
6.
De la ecuacin 1. Despejamos
7.
Remplazamos la 6 en la 7
8.
Remplazamos la 5 en la 8
9.
Remplazando la 3 en la 4
VC2= V2 - V1V2= VC2 + V1
Remplazamos v1
SISTEMA DE ECUACIONES
SESION 2- DISEAR, SIMULAR E IMPLEMENTAR UN SISTEMA DE CONTROL POR REALIMENTACION DE ESTADOS CON ENTRADA DE REFERENCIA
Figura 2: Esquema de un sistema de control por realimentacin de estados con entrada de referencia
Figura 5. Circuito general de toma de datos V1, V2, V3, por el PIC.
FIGURA. respuesta en proteus del sistema de control de realimentacin de estados con entrada de Referencia por el mtodo de N.
Entrada de referenciaRespuesta del controlador
Respuesta del sistema control
FIGURA. respuesta en proteus del sistema de control de realimentacin de estados con entrada de Referencia por el mtodo de N.
SESION 3
Disear, simular e implementar un sistema de control por realimentacin de estados usando accin integradora el objetivo de esta sesin es comparar el desempeo de un sistema de control por realimentacin de estados usando la ganancia n , diseada en la sesion anterior, y la accin integradora-
Respuesta del controlador
Entrada de referenciaRespuesta del sistema control
ANEXOS
Programa del sistema de control de realimentacin de estados con entrada de Referencia por el mtodo de N para condiciones de estado estable.
#include #device ADC=10#use delay(clock=4000000, RESTART_WDT)#fuses XT,NOPROTECT,NOWDT,NOLVP,PUT,BROWNOUT#include#include // PARA PERMITIRNOS CONFIGURAR MANUALMENTE#use fast_io(A)#use fast_io(D)#use fast_io(B)
/* Definicion de tipos de variables */
unsigned int8 uk_out; /* salida digital de 8 bits sin signo*/unsigned int16 rk,v3k,v2k,v1k; /* entradas analogas de 10 bits sin signo */float uk_aux,uk,vc1,vc2,vc3,v1,v2,v3,k1,k2,k3,N,r; /* variables del sistema de control en punto flotante */
void IniPuertos(){ setup_adc( ADC_CLOCK_INTERNAL ); setup_adc_ports(AN0_AN1_AN2_AN3_AN4); set_tris_A(0xFF); /* Definiendo puertos A como entradas analogas */ set_tris_D(0x00); /* Definicin puertos D como salidas digitales */ set_tris_B(0x00); /* Definicin puertos B como salidas digitales */ /* Inicializacion de variables */ N= 1.8716; k1=0.6360; k2=-1.7278; k3= 1.1714; }
void leer(){ set_adc_channel(0); /* ajuste canal 0 para lectura */ delay_us(20); /* tiempo de espera para la captura de la seal en microsegundos */ rk=read_adc(); /* lectura del dato del canal 0, entrada de referencia rk */ set_adc_channel(1); /* ajuste canal 0 para lectura */ delay_us(20); /* tiempo de espera para la captura de la seal en microsegundos */ v1k=read_adc(); /* lectura del dato del canal 0, entrada de referencia rk */ set_adc_channel(2); delay_us(20); v2k=read_adc(); /* lectura del dato del canal 1, salida de la planta */ set_adc_channel(3); delay_us(20); v3k=read_adc(); /* lectura del dato del canal 1, salida de la planta */ } void main(){
IniPuertos();
while (true){ leer(); v1=v1k*5.00/1023.00; v2=v2k*5.00/1023.00; v3=v3k*5.00/1023.00; r=rk*5.00/1023.00; vc3=v3/1.50; vc1=v2; /* Como la salida de control debe estar entre 0 - 5 volts, esta se debe saturar en esos rangos */ vc2=v2-v1; /*********************************************/ /* Calculo de la salida de control */ uk=N*r-(k1*vc1+k2*vc2+k3*vc3); uk_aux=uk; /* Como la salida de control debe estar entre 0 - 5 volts, esta se debe saturar en esos rangos */ if (uk_aux>5) uk_aux=5; else if (uk_aux5) uk_aux=5; else if (uk_aux