Guía de Prácticas

Anuncio
UNIVERSIDAD DE OVIEDO
Departamento de Ingeniería Eléctrica,
Electrónica, de Computadores y Sistemas
Guía de Prácticas
ASIGNATURA:
CENTRO:
ESTUDIOS:
CURSO:
CARÁCTER:
PROFESORADO:
Informática Industrial y Comunicaciones
Escuela Politécnica de Ingeniería de Gijón
Grado en Ingeniería Electrónica y Automática
3º
CUATRIMESTRE: 1
Obligatoria
CRÉDITOS ECTS: 6
Ignacio Alvarez, José Mª Enguita
PRACTICA 07:
Control básico y E/S digital
1. Ejercicio a realizar. Se dispone de un computador conectado mediante E/S analógica a un
sistema formado por:

Un motor DC de 10V, con sensores para medida de la posición y velocidad angulares.

Un potenciómetro para generar señal de consigna (referencia).

Un computador de control, con entradas A/D, salida PWM, E/S digital, y display LCD.
Se desea realizar sobre este sistema un control de posición, de forma que la posición angular
del motor siga en todo momento a la consigna, con las siguientes especificaciones:
a) Periodo de muestreo Tm=200 ms.
b) Regulador a aplicar en función de selección por interruptor de entrada:
o B4 activado, B5 desactivado: usar control todo/nada con U=±2V.
o B4 y B5 activados: usar control proporcional con K=0.05 V/º
o B4 desactivado: usar regulador R(z) 
U(z) 0.13  0.11 z 1

E(z)
1  0.43 z  1
o B0 activado: parar el motor.
c) Se indicará en cada instante el sentido de giro del motor activando los bits de salida B6
(giro a derechas) o B7 (giro a izquierdas).
2. Para la realización de la práctica será necesario utilizar la librería SimuladorMotor, cuyos
archivos e instrucciones de uso se encuentran en:
http://isa.uniovi.es/~ialvarez/Curso/descargas/SimuladorMotorConESDigital.rar
En este simulador, se dispone de:

Un motor DC con entrada ±10VDC, y comportamiento según el modelo dinámico
Ω(s)
12 rpm
. Al motor se le puede aplicar un freno, que simula una carga
G(s) 

U(s) 1  2.5s V
que varía su comportamiento dinámico.

La E/S simulada de un computador con:

o
Tres canales A/D de 10 bits, a los cuales se conectan los sensores de velocidad,
posición y referencia.
o
Una salida PWM, mediante la cual se controla la tensión aplicada al motor a
través de un amplificador.
o
Un display LCD de 2x20 caracteres.
o
Dos puertos de E/S digital de 8 bits: puerto 0 (salida) conectado a LEDs, puerto
1 (entrada) conectado a interruptores.
Dos discos giratorios, que representan la posición angular del motor (superior derecha) y
la posición de un potenciómetro de referencia de movimiento manual (inferior derecha).
3. Pasos en la realización del código (probar cada uno por separado):
2.a) Obtener del canal A/D 2 el valor en grados del potenciómetro de consigna (0V = 180º, y 10V= 180º), y escribir el valor en el display LCD cada 200 ms.
2.b) Pedir por teclado el valor de tensión u(t) a aplicar al motor (-10 a 10V), y generar la
salida PWM necesaria para que se aplique dicha tensión.
2.c) Añadir al anterior la lectura cada 200 ms de la posición posición angular del motor (en
º) y velocidad angular (en r.p.m.), y escribir los mismos en el display LCD.
2.d) Preparar variables necesarias y algoritmo para ejecución del lazo de control:
Ecuaciones
de control
{ yk }
{ ck }
{ ek }
{ uk }
bi
ai
m, n
Variable C
Descripción
float yk;
Salida medida del sistema (posición)
Consigna de posición deseada
Error actual y anteriores (hasta retardo m)
Acción de control actual y anteriores (hasta retardo n)
float ck;
float ek[m+1];
float uk[n+1];
float b[m+1];
float a[n+1];
Int n,m;
Coefs. numerador de R(z): (b[0]=b0 , b[1]=b1, …, b[m]=bm)
Coefs. denominador de R(z): (a[0]=1 , a[1]=a1 , …, a[n]=an)
Retardo máximo numerador y denominador
Algoritmo del lazo de control:
 Desplazar tablas de datos temporales si es necesario: uk, ek
 Leer canal analógico 1 y calcular yk.
 Leer canal analógico 2 y calcular ck .
 Obtener ek[0] = ck - yk
 Obtener uk[0] según el estado deseado de control:
o Igual a 0 si bit 0 de entrada digital está a 1
o Igual al resultado de la ecuación de control en función del caso.
 Calcular duty necesario para uk[0] y generar señal PWM
 Esperar Tm y volver a repetir el bucle.
2.d) Realizar el control todo/nada.
2.e) Realizar el control proporcional.
2.f) Realizar el control con R(z) de forma genérica:
U(z) b0  b1 .z 1  ...  bm .z  m

E(z)
1  a1 .z  1  ...  an .z  n
ek  ck  yk
R(z) 
uk  b0 .ek  b1 .ek  1  ...  bm .ek  m 
 (a1 .uk  1  ...  an .uk  n )
Valor
Tm
m
b0
b1
n
a1
Simulador
200 ms
1
0.12 V/º
-0.11 V/º
1
-0.43
Resultados esperados ante escalón de referencia 90º
Donde los sumatorios bi.ek-i y ai.uk-i se pueden realizar mediante una misma función
ProductoEscalar().
Descargar