Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Computador
4 Curso. Ingeniera de
Telecomunicacin
Libro de Prcticas y Exmenes
ndice
ENUNCIADOS DE PRCTICAS
Prctica 1: Introduccin a Labview. Configuracin de
una tarjeta de adquisicin de datos..................... 7
Prctica 2: Anlisis de un sistema y diseo de
Controladores PID ............................................ 13
Prctica 3: Microcontroladores programables......................17
Prctica 4: Implementacin digital de un PID......................23
Prctica 5: Regulador lineal ptimo cuadrtico (LQR)..........25
Prctica 6: Control predictivo generalizado (GPC)................27
Prctica 7: Introduccin al Scada WinCC............................29
Manual de referencia rpida...............................31
Prctica 8: Identificacin y control adaptativo.....................57
Prctica 9: Bibliotecas de funciones de enlace
dinmico (DLL)...................................................59
EXMENES DE PRCTICAS
Examen 01.........................................................................67
Examen 02.........................................................................69
Examen 03.........................................................................71
Examen 04.........................................................................73
Enunciados de Prcticas
PRACTICA
1
Introducci
on a LabView.Configuraci
on de una tarjeta de
adquisici
on de datos
Manuel Lpez Martnez
Objetivos
El objetivo fundamental de esta practica es enfrentar al alumno con los problemas que
aparecen a la hora de trabajar por primera vez con una tarjeta de entradas y salidas
tanto analogicas como digitales(Tarjeta de Adquisicion de Datos y Control). Para ello
emplearemos un software especfico para el control de instrumentacion. Este software se
denomina LabView y se caracteriza por ser un lenguaje de programacion grafica. Se
pretende desarrollar un programa con este software que permita configurar, leer y escribir
en la tarjeta. De igual modo se realizara un interfaz grafico para poder visualizar los
datos ledos y escritos.
2
Equipo Necesario
Introducci
on a LabView
3.1
Conceptos b
asicos del lenguaje G
1. VIs
2. Panel Frontal: Controles e Indicadores
(a) Controles: Dispositivo a traves del cual el usuario introduce datos para su procesamiento.
(b) Indicador: Dispositivo a traves del cual el usuario lee los resultados que da el
programa.
Figura 1: Panel
3. Diagrama de Programacion: Funciones
(a) Terminales: Cada Control e indicador del panel frontal tendra asociado un terminal de conexion en el diagrama de programacion. A traves de este terminal
fluiran los datos hacia otros terminales de conexion o hacia funciones.
(b) Cableado: Camino para los datos desde un terminal a otro. Su color indica el tipo
de datos que circula por el. Azul=enteros, verde=booleanos, naranja=flotantes,
rosa=cadenas de caracteres, Marron=Clusters.
Arrays: Conjunto de elementos del mismo tipo
Cluster: Conjunto de elementos de distinto tipo
Figura 3: Estructuras
While:Terminal de iteracion(i) y terminal condicional.
Shift Register: Registros de desplazamiento. Variables locales que permiten
transferir los valores del final de una iteracion al principio de la siguiente.
Tiempo de Espera: Cuando es necesario ejecutar un bucle while cada cierto
tiempo, se a
nade un tiempo de espera. Con esto podremos definir el Tiempo
de Muestreo.
Ejemplo: Funci
on Seno
10
Desarrollo
Haciendo uso de la biblioteca de funciones para la tarjeta de entrada salida, y de los drivers
para LabView, se tendra que realizar un VI, tanto el panel frontal como el diagrama de
bloques de programacion para conseguir realizar:
Inicializacion de la Tarjeta.
Lectura de los canales de la Tarjeta.
Escritura en los canales de la Tarjeta.
Para comprobar el correcto funcionamiento del VI, se utilizara un generador se se
nal, y
un osciloscopio.
4.1
Funciones de la Biblioteca
11
INGENIERO DE TELECOMUNICACION
LABORATORIO DE CONTROL POR COMPUTADOR
Departamento de Ingeniera de Sistemas y Autom
atica
Pr
actica 2
An
alisis de un sistema y dise
no de
controladores PID
1.
An
alisis del sistema
1.1.
Experimentos
1.2.
C
alculo de par
ametros
13
k1
yv k 2
y
1 + s
s
2.
Dise
no de un regulador PI para el control
de velocidad
2.1.
Especificaciones
14
2.2.
Experimentos
3.
Dise
no de un regulador PID para el control de posici
on
4.
Memoria
15
ANEXO
1111111111111
0000000000000
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
SA 150D
PS 150E
Actuacin: AO1
+15
0 -15
3
1
+15
4
AU 150B
0 -15
PA 150C
2
Velocidad: AI1
GND
MT 150F
Posicin: AI0
Divisor de tensiones
OP 150K
11111111111111111
00000000000000000
00000000000000000
11111111111111111
00000000000000000
11111111111111111
00000000000000000
11111111111111111
00000000000000000
11111111111111111
ALIMENTACIN
Fuente
15 V
15 V
1
-
+15
+5
0V
GND
5V
1: GND
2: Posicin: AI0
3: Referencia
4: Actuacin: AO1
5: Velocidad: AI1
6: N/A
-15
16
1
17
En este momento el controlador est listo para ser programado. La comunicacin entre el PC y el
microcontrolador comienza cuando se arranca en el PC el programa Dynamic-C ( el PC intenta comunicarse
con el controlador cada vez que se comienza a ejecutar el software). Si el controlador no est presente o no
se le ha dado tensin se mostrar un mensaje de error por pantalla: Target not responding.
Laboratorio de Control por Computador
Automtica
2
18
Situacin de los conectores atornillables. En la figura 2 puede verse la situacin en la tarjeta del
controlador de cada uno de los conectores atornillables. Aparecen los correspondientes a las entradas
universales y a la salida analgica as como los conectores para la entrada y salida adicionales (A/D+ y
UEXP respectivamente). Todos los conectores marcados con GND estn unidos elctricamente y es en ellos
donde deben conectarse los polos comunes de cada entrada y de la salida.
Para nuestra prctica se utilizarn la salida analgica (DAC Ouput), la entrada universal U1 para la medida
de posicin y la entrada universal U2 para la entrada de la seal de referencia. Conectar tambin los
conectores con las letras GND.
ENTRADA
5V
ALIMENTACIN
ENTRADA
SALIDA
SALIDA
POTENCIOMETRO
DE AJUSTE DE
GANANCIA
-10 V
0V 0V
POTENCIMETRO
DE AJUSTE DE
OFFSET
3
19
Situacin de los puentes de configuracin (Jumpers y Headers) en el controlador. Para la prctica slo
hay que comprobar el jumper J1. Si el microprocesador lleva una memoria EPROM, conectar los pines 4-5 y
8-9. Si el microcontrolador lleva una memoria FLASH, conectar los pines 7-8 y 12-13.
Las variables que al ser declaradas son inicializadas se consideran constantes almacenndose en
memoria ROM y por tanto se considera un error el intentar cambiar su valor.
El modo de almacenamiento por defecto es static y no auto como en el estandar.
No existe la directiva #include sino #use.
Dynamic-C no soporta el tipo enumerado.
Las palabras reservadas extern y register tienen un significado diferente.
Se permite incluir instrucciones en ensamblador intercaladas en el cdigo.
Dynamic-C permite la simulacin de tareas ejecutndose en paralelo en un mismo programa
usando una estructura denominada costatement. Las tareas programadas as son multiplexadas en el
tiempo de ejecucin. Esto se denomina Procesamiento Concurrente
Procesamiento Concurrente. Esto puede ser interesante en el caso de controladores conectados a varios
dispositivos externos. El hecho de usar programacin multitarea para controlar un sistema de estas
caractersticas permite la posibilidad de pensar en el control de cada dispositivo por separado haciendo ms
fcil el proceso de desarrollo. Dynamic C proporciona dos tipos de programacin multitarea para desarrollar
aplicaciones: cooperativa (costatements) y por prioridad (preemtive).
4
20
5
21
Consignas
CPU Z180
A/D
Actuador
D/A
Sistema
Controlador PK2100
Sensores
Tarjetas de adaptacin
de seal
Lnea RS232
6
22
Prctica 4
LABORATORIO DE CONTROL POR COMPUTADOR
DIGITAL DE UN PID:
IMPLEMENTACION
ASPECTOS PRACTICOS
Manuel Lpez Martnez
1.
Objetivos
Equipo Necesario
Apuntes de clase
Desarrollo
23
3.1.
Anti-wind up
Conmutaci
on Manual/Autom
atico
24
p (t ) = K 2Vdt = K 2Vt
0
U(S)
K1
TAOs + 1
V(S)
K2
s
P(S)
5) Modificar practica5.vi para realizar el seguimiento de una referencia distinta de cero. Comparar
los resultados obtenidos por simulacin con los obtenidos con el control real.
Laboratorio de Control por Computador
1
25
Prctica 6
Control Predictivo Generalizado.
1) Identificar el sistema
-
U(S)
V(S)
K1
TAOs + 1
K2
s
P(S)
G( s) =
4
(0.8s + 1) s
G( z) =
0.015z 1 + 0.0149 z 2
1 1.9 z 1 + 0.9048z 2
3) Programar en Matlab el clculo de los parmetros del GPC y la simulacin del bucle cerrado
utilizando el modelo discreto del proceso para generar las y(t). Realizar varias simulaciones
con varios parmetros N=[3 50] y =[0.05 5] y comentar los efectos de aumentar o disminuir
los parmetros. Seleccionar una buena sintonizacin del controlador en cuanto a rapidez y
sobreoscilacin. Para estos parmetros, obtener los correspondientes Ky, Ku y Kr de la
expresin explcita de la ley de control para realizar el apartado siguiente.
1
27
Prctica 7
LABORATORIO DE CONTROL POR COMPUTADOR
4 CURSO DE INGENIERO DE TELECOMUNICACIN
Introduccin a un SCADA: WinCC
Objetivo
Conocer un sistema comercial de supervisin, adquisicin y tratamiento de
datos. Se utilizar el Windows Command Center (WinCC) de Siemens.
Desarrollo
Programar un SCADA mediante WinCC para supervisar una aplicacin
domtica.
29
30
31
que
Pulsaremos el botn
Aceptar una vez
seleccionado
lo
deseado.
32
Seleccionamos New de
configuraremos la variable.
manera
que
aparecer
una
ventana
donde
A continuacin pulsaremos el
botn Abrir, de manera que
el driver aparecer en el
rbol jerrquico.
33
nuestro caso MPI, con el botn derecho del ratn y elegimos New Driver
Connection.
34
INDICAMOS SI EL OBJETO
EST EN PRIMER O
SEGUNDO PLANO
LIBRERA
DE
OBJETOS
5. Tipos de animaciones.
Pasamos a definir una serie de animaciones bsicas:
5.1 Configuracin de un campo de entrada/salida.
Dicho campo de entrada/salida se puede utilizar para representar el valor de
alguna variable. Para ello haremos lo siguiente:
35
En
VARIABLE
REPRESENTADA
TIEMPO
DEACTUALIZACIN
DEL VALOR
Una vez hecho esto seleccionamos el objeto con el botn derecho del ratn y
elegimos Properties. Seleccionamos la propiedad Output/Input y en la ventana
derecha seleccionamos el atributo Data Format para elegir el formato de
representacin de la variable.
36
En
37
Por
2
Fig.1
En la figura 2 se muestra el
elemento configurado.
Fig.2
1:Variable cuyo valor forzaremos.
2: Tiempo de actualizacin.
5.5 Animacin de una variable en forma de barra grfica.
En
38
Fig.1
Fig.2
Una
5.6 Hacer visible o no un objeto dependiendo del valor de una variable tipo bool
Seleccionamos
A
continuacin
seleccionamos el comando
Dynamic
Dialog
para
configurar el elemento.
39
10
A continuacin elegiremos el
comando Dynamic Dialog
de manera que aparecer
una
ventana
donde
configuraremos el elemento.
40
11
Seleccionamos
12
Seleccionamos
Por
Seleccionamos
42
13
1
A continuacin pulsaremos el botn
1 para configurar el trigger.
Nota: Es posible realizar animaciones de objetos los cuales estn constituidos por
agrupacin de varios objetos. Para agrupar varios objetos haremos lo siguiente:
Con el botn izquierdo del ratn pulsado encerramos los objetos en un recinto
y a continuacin pulsamos el botn derecho del ratn.
A continuacin seleccionamos el
comando Group.
14
Con
Las funciones ms utilizadas son las funciones internas Get y Set. Con la
funcin Get le asignaremos a una variable de la Accin el valor de una
variable del SCADA y con la funcin Set le asignaremos a una variable del
SCADA el valor de una variable de la Accin. Para introducirla en la
Accin bastar con hacer doble clic sobre ellas en la ventana izquierda y a
continuacin asignarle los parmetros adecuados.
44
15
Ventana 1
Una
Por
16
VARIABLE
DEL
PROCESO
46
17
VARIABLE
ARCHIVADA
Seleccionamos
Seleccionamos
47
18
En
En
48
Por
19
En
Seleccionamos
49
20
Seleccionamos
Por
En
En
50
21
Si
22
Para
52
23
53
24
En
En primer lugar
el
simulador
se muestra en la
25
Hay que decir que la imagen que vamos animar debe estar activada antes de
configurar el simulador.
2. Una vez abierto el simulador pasaremos a definir las variables que queremos
simular. Para ello seleccionamos Edit de la barra de men y elegimos
New Tag.
55
26
5. Una vez hecho todo esto, nos iremos al tabulador List of Tags y veremos
como las variables que hemos seleccionado para la simulacin van variando sus
valores. (Fig.2)
Fig.1
Fig.2
56
Prctica 8
Laboratorio de Control de Procesos por Computador
Simulacion del control adaptativo
Se desea realizar un programa en MATLAB que simule la identificacion de un sistema y
modificarlo para simular el comportamiento de un controlador auto-ajustable. Para ello:
1. Se simulara el comportamiento de un sistema con funcion de transferencia G(z) =
0.2
. La entrada sera del tipo PRBS de amplitud 1 (una se
nal que toma solamente
z0.8
los valores 1 o -1, conmutando entre ellos con una probabilidad dada, por ejemplo
0.2). Esta entrada se puede programar en MATLAB inicializando u=1 y dando la
orden: if rand<0.2 u=-u;end;.
2. Programar un identificador por mnimos cuadrados recursivo con factor de olvido
para este sistema. Comparar la evolucion de los parametros estimados con los reales.
3. Repetir la identificacion a
nadiendo un ruido al sistema con distribucion uniforme
entre -0.025 y 0.025 (rand*0.05-0.025). Este ruido es una primera aproximacion
a los problemas que aparecen en un caso real. Se debe observar un empeoramiento
en la convergencia del identificador.
4. Repetir la identificacion haciendo que los parametros a1 y b1 varen de forma lineal
desde [0.8 0.2] en k = 50 hasta [0.5 0.1] en k = 75. Realizar las simulaciones con
varios valores del factor de olvido (0.95 1). sin ruido y con ruido.
5. Simular un controlador autoajustable. Se elegira un PI que cancele el polo del
sistema y multiplique por 0.8 la constante de tiempo del sistema en bucle abierto.
Introducir una referencia que cambie entre -1 y 1 cada 50 periodos de muestreo
(if (rem(k,50)==0) r=-r;). Comparar los resultados con los de un controlador
PI fijo sintonizado para el sistema inicial.
Sugerencia para trabajo con car
acter voluntario:
6. En lugar del sistema anterior simular uno de orden 2 e identificarlo con un modelo
de orden 1 (es decir, el identificador sera igual al del punto 2). Se podran observar
los problemas del control adaptativo cuando no se estima correctamente el orden
del sistema.
Nota: Ecuaciones del identificador recursivo por mnimos cuadrados para el sistema
y(k) = m(k)
(k + 1) = (k) + K(k)(y(k + 1) m(k + 1)(k))
P (k)mT (k + 1)
K(k) =
+ m(k + 1)P (k)mT (k + 1)
1
P (k + 1) =
(I K(k)m(k + 1))P (k)
57
Prctica 9
LABORATORIO DE CONTROL POR COMPUTADOR
LABVIEW-Bibliotecas de funciones de enlace din
amico(DLL)
Manuel Lpez Martnez
1.
Objetivos
Esta practica tiene como objetivo aprender a crear DLLs, y a hacer uso de ellas en
LabView.
Las DLLs son bibliotecas de funciones de enlace dinamico.
2.
Creaci
on de una DLL
La DLL es una biblioteca de funciones de enlace dinamico. Crearemos una dll usando
lenguaje C. Seran necesarios los siguientes archivos:
cpcdll.def: En el se definen las funciones que va a exportar la dll para que puedan
ser usadas por los programas que la carguen.
cpcdll.h: En el se incluiran los prototipos de las funciones que componen la biblioteca. En el prototipo de las funciones incluiremos la palabra WINAPI para indicar
al compilador el metodo de llamada a las funciones llevado a cabo.
cpcdll.cpp: Se definen las funciones que han sido declaradas en cpcdll.h.
3.
Ejemplo de DLL
A continuacion se van a mostrar los tres ficheros correspondientes a una dll que contiene
las funciones suma y resta de dos parametros. Tanto para la suma como para la resta se
han creado dos funciones. En una el paso de parametros es por valor, y en la otra el paso
de parametros es por referencia, por lo que se hara uso de punteros.
A continuacion se muestra el contenido del archivo cpcdll.def
;-------------------------------------;
; Nombre del Fichero:cpcdll.DEF
;
;-------------------------------------LIBRARY CPCDLL
DESCRIPTION Ejemplo de Creacion de una DLL
EXPORTS
Sumar
Restar
Sumar_Ref
Restar_Ref
@1
@2
@3
@4
59
/* Funciones prototipo */
#ifdef __cplusplus /* si los ficheros fuente son .cpp*/
extern "C" {
#endif
double WINAPI Sumar(double Param1, double Param2);
double WINAPI Restar(double Param1, double Param2);
void WINAPI Sumar_Ref(double *Param1,double *Param2, double *Suma);
void WINAPI Restar_Ref(double *Param1,double *Param2, double *Resta);
Y por u
ltimo el archivo cpcdll.cpp
//-------------------------------------------------------------// Nombre del fichero: CPCDLL.CPP
//
//-------------------------------------------------------------#include <windows.h>
#include "cpcdll.h"
/* Funcion DllMain es llamada por Windows no por el usuario*/
BOOL WINAPI DllMain(HANDLE hModule, DWORD dwReason, LPVOID
lpReserved) {
switch(dwReason)
{
case DLL_PROCESS_ATTACH: break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
60
4.
Desarrollo de la pr
actica
Se pide:
1. A
nadir a la biblioteca de funciones proporcionada una funcion que contenga un controlador PI, al cual se le han de pasar los valores Kp, Ki, el valor del error y ha de
devolver la se
nal de control.
2. Sustituir el PID del archivo practica.vi por el bloque de llamada a la dll. Configurar
dicho bloque para llame a la funcion PI y se comporte como el bloque de control.
3. A
nadir a la biblioteca de funciones una funcion que estime los parametros del motor
haciendo uso del algoritmo de mnimos cuadrados recursivo. Para simplificar el pro61
Figura 2: Men
u de configuracion. Paso de parametros por valor
(1)
Nota: Ecuaciones del identificador recursivo por mnimos cuadrados para el sistema
y(k) = m(k)
(k + 1) = (k) + K(k)(y(k + 1) m(k + 1)(k))
P (k)mT (k + 1)
K(k) =
+ m(k + 1)P (k)mT (k + 1)
1
P (k + 1) =
P (k)(I K(k)m(k + 1))
63
Enunciados de Exmenes
67
Tiempo: 45 minutos.
1. Explique brevemente como se implementa en Labview la se
nal yk1 a partir
de la se
nal yk .
2. La biblioteca de funciones 8316.dll es usada en LabView para poder trabajar
con la tarjeta de adquisicion de datos usada en las practicas. Explique de
forma general para que sirven las funciones que se utilizaron en la primera
practica.
3. Explique brevemente un experimento con el motor de continua de las practicas
en el que se pueda observar el efecto integral wind-up.
4. Dibuje un diagrama de bloques generico que represente un control PI autoajustable, que controle en bucle cerrado la velocidad de un motor de continua.
5. Que es una DLL? Explique brevemente el metodo visto en clase para crear
una DLL, extensiones de los archivos usados y utilidad de cada uno de los
archivos.
6. Explique que procedimiento (funciones de Matlab y/o bloques de Simulink)
empleo para realizar las simulaciones del control LQR discreto del sistema
P (s)
1 K2
= K
.
U (s)
s+1 s
7. Dibuje el diagrama de bloques en bucle cerrado del sistema controlado con
el microcontrolador PK2100 (apartado final del enunciado de la practica),
indicando ademas los niveles de tension que adaptan las tarjetas adicionales
que se utilizaron en la practica.
69
9. En la prctica de GPC
a.
b.
c.
d.
71
Tiempo: 45 minutos.
1. Indique (no es necesario dar valores n
umericos) la estructura de la funcion de
transferencia que se utiliza para modelar el motor de corriente continua.
2. Indique como se identifica la constante que relaciona la velocidad con la
posicion en el motor de corriente continua.
3. Describa un experimento con el motor de las practicas que ponga de manifiesto
el efecto del wind-up y a continuacion explique brevemente un metodo por el
que se pueda resolver dicho problema.
4. El control GPC esta gobernado por dos parametros basicos, el horizonte de
control N y la penalizacion del esfuerzo de control . Describa cualitativamente como afecta al comportamiento del sistema en bucle cerrado (caractersticas de la se
nal de control y respuesta del sistema) el valor de .
5. Trabajando con el SCADA WinCC, explique como implementara:
(a) Una barra de desplazamiento que modificase el valor de un n
umero mostrado
en un indicador de dgitos.
(b) Un boton que haga visible/invisible alternativamente, cada vez que se
pulse, la barra de desplazamiento ademas del indicador de dgitos.
(c) Un boton para incrementar en una unidad el valor del n
umero mostrado
en el indicador de dgitos.
6. Indique brevemente la estructura del programa utilizado para la simulacion de
un controlador PI autoajustable para un sistema simulado de primer orden.
73