Se requiere diseñar un controlador de modo que el porcentaje de overshoot del sistema sea del 20%.
El diseño del controlador es fácil y rápido si se tiene a la mano la herramienta RLTOOL del programa MATLAB.
Lo primero que hacemos es ir al entorno de MATLAB y escribir lo siguiente:
>> num=[0 1];
>> den=conv([1 1],conv([1 2],[1 3]));
>> sys=tf(num,den)
Transfer function:
1
----------------------
s^3 + 6 s^2 + 11 s + 6
>> rltool
Una vez que estemos en el entorno del SISO Design, entramos al menú File y legimos Import.
En la pantalla que nos aparece elegimos para G (ganancia de planta) el valor de sys, y el valor del resto de ganancias será igual a 1 (por el momento).
Le damos OK y aparecerá graficado el lugar geométrico de las raíces.
Por ejemplo, podemos hacer que nos aparezcan que puntos de la gráfica poseen un máximo sobreimpulso del 20%.
Otra forma de hacerlo sería de manera indirecta, es decir, relacionando el máximo sobreimpulso con la coeficiente de amortiguamiento ζ .
Sabemos por teoría que, para un sistema de segundo orden:
Es decir, necesitamos los puntos en el lugar geométrico de las raíces donde se cumpla que el coeficiente de amortiguamiento sea 0.4559.
Obtenemos que para cumplir con esta condición nos basta con emplear un controlador proporcional de ganancia 10.3.
La gráfica obtenida es la siguiente:
Sin embargo, notamos que el tiempo de establecimiento del sistema es bastante grande (casi 5 segundos) lo cual representa un problema, ya que, un generador de señales estándar nos puede generar señales con frecuencias no menores a 1 Hz.
Un detalle a tomar en cuenta es que los capacitares que se emplearán en el experimento son electrolíticos, es decir, habrá que agregar un offset a la señal cuadrada para que no alcance valores por debajo de 0V.
En el simulador podemos cumplir con todos estos requerimientos, basta con configurar de forma adecuada el generador de señales.
Además hemos elegido que se unipolar, es decir, que varía desde 0V hasta 2V en lugar de variar de -1V a 1V como lo hace normalmente.
La señal que se obtiene es la siguiente:
INFORME FINAL
La mínima frecuencia que el generador nos podía dar era de 1 Hz.
La mayor parte del tiempo (en otros cursos de laboratorio) hemos empleado osciloscopios analógicos, los cuales sólo pueden graficar señales periódicas dentro de un determinado ancho de banda. Pero ahora estamos empleando un osciloscopio digital, el cual, al no presentarse una señal periódica (o al trabajar a muy baja frecuencia) se puede comportar como un trazador de curvas, es decir, graficar en “tiempo real” (en realidad con un pequeño retardo) la señal que ingresa al osciloscopio.
Para generar esta señal podríamos emplear un temporizador o inclusive un microcontrolador.
No teníamos latches ni un temporizador a la mano, pero sí teníamos un microcontrolador que estaba programado para dar una señal cuadrada de periodo 16 segundos (¡Pero que coincidencia!), así que optamos por usar este último. Esto quiere decir que la señal de entrada será una onda cuadrada de periodo 16 segundos y donde el voltaje varía de
El código Assembler (realizado en MPLAB) es bastante sencillo y es el siguiente:
; Generador de señal cuadrada de periodo 16 seg
LIST P=16F877A
INCLUDE
CBLOCK 20H
VECES_1
VECES_2
VECES_3
ENDC
ORG 0000H
bsf STATUS,RP0
bcf TRISC,0
bcf STATUS,RP0
ONDA
bsf PORTC,0
call RET_8s
bcf PORTC,0
call RET_8s
goto ONDA
;-------------------------------------------------------------
RET_8s
call RET_1s
call RET_1s
call RET_1s
call RET_1s
call RET_1s
call RET_1s
call RET_1s
call RET_1s
return
;-------------------------------------------------------------
RET_1s
movlw .250
movwf VECES_1
BUCLE_1
movlw .108
movwf VECES_2
BUCLE_2
movlw .9
movwf VECES_3
BUCLE_3
nop
decfsz VECES_3
goto BUCLE_3
decfsz VECES_2
goto BUCLE_2
decfsz VECES_1
goto BUCLE_1
return
4.56 V 5.42 V 1.8 seg 4.3 seg
De las mediciones realizadas se obtuvo lo siguiente:
Del 10% al 90% -------------- 600 ms
1 comentario:
Cómo determinaste el valor de 10.3?
Publicar un comentario