Está en la página 1de 18

PRCTICAS

Nombre de la asignatura: Control Digital


Carrera: Ingeniera Mecatrnica
Clave de la asignatura: MCM-0210
Fecha de Elaboracin: Octubre del 2012
Elaboro: M. C. Juan Gabriel Rodrguez Zamarrn



NDICE







Introduccin3
Bases tericas para la prctica No. 1...4
Prctica No. 1..5
Bases tericas para la prctica No. 2...7
Prctica No. 2..9
Bases tericas para la prctica No. 3, 4 y 5.....11
Prctica No. 3..16
Prctica No. 4..17
Prctica No. 5..18
Bases tericas para la prctica No. 6...19
Prctica No. 6...20
Bibliografa...21























Introduccin


Todas las prcticas se realizaran con el software de simulacin y anlisis numrico
MATLAB (algunas utilizando el entorno Simulink de Matlab). Mediante las prcticas se
proporcionaran las bases para aplicar las herramientas estudiadas en el curso de Control
Digital, as como proporcionar la experiencia necesaria para abordar problemas de Sistemas
Discretos de una manera ms sistemtica mediante la simulacin y la utilizacin de las
diferentes utilidades con las que cuenta MATLAB.

Se entregara un reporte (por parte del estudiante) para cada prctica y proyecto final que
contendr los siguientes puntos (adems de los aspectos personales):
- Planteamiento del problema
- Marco terico y datos obtenidos (graficas de los datos y esquemas del problema de
control digital). Se debe etiquetar (colocar titulo) cada grafica y esquema para la
interpretacin correcta de los resultados obtenidos.
- Observaciones.
- Resultados finales (abundar en detalles).
- Conclusiones.



























Bases tericas para la prctica No. 1


Para el desarrollo e implementacin de las herramientas que proporciona la materia de
Control Digital es necesario la utilizacin de algunos paquetes de simulacin, para el
desarrollo de las practicas que aqu se presentan haremos uso del software de simulacin
MATLAB. Por lo tanto daremos algunos de los comandos bsicos que nos
sern tiles para desarrollar de manera sistemtica las prcticas correspondientes a esta
asignatura.
Dentro de MATLAB existen diversas herramientas para la simulacin y evaluacin
numrica, por el lado de la programacin podemos realizar nuestras propias subrutinas
utilizando el editor de Matlab (el editor se accesa mediante la creacin de un m-archivo
nuevo, icono ubicado en la parte superior de la barra de herramientas de Matlab), dentro de
este editor podemos utilizar los diversos comandos y subrutinas que soporta Matlab, todos
los archivos se guardan con la extensin .m. Los comandos y subrutinas se pueden
escribir o ejecutar directamente en el espacio de trabajo (workspace), o mediante el llamado
de subrutinas que previamente se han programado en el editor de Matlab.
Ejemplo:
Archivo M

function [x,n] = seno(w0, n1, n2)
%%"w0" es la frecuencia de la sinusoidal
%%"n" es el intervalo de evaluacion de la funcion
n=[n1 : n2];
x=sin ((w0)*n);
stem(n,x);
grid on;
title('Sinusoidal');
xlabel('valores de n');
ylabel('Amplitud');

La rutina anterior se programa en el editor de Matlab y se guarda, despus se ejecuta en el
espacio de trabajo. La rutina es una funcin que recibe como entradas los valores
numricos de w0, n1 y n2 en ese orden, al ejecutarla la rutina da como salida el valor de
x y n ver detalles en [4, Cap.1].
Comando en el espacio de trabajo para ejecutar la rutina programada en el editor

>> [fun_,int_] = seno(60,0,20);

Los valores de entrada son
w0 = 60 rad/seg, n1 = 0 y n2 = 20
Los valores de salida se almacenan en las variables siguientes:
x se almacena en fun_y n se almacena en int_.



Prctica No. 1


Titulo:
Comandos y rutinas bsicas para generar secuencias en Matlab

Objetivo: Implementar y familiarizarse con algunos de los comandos utilizados en Matlab,
los cuales podremos utilizar como apoyo en la realizacin de las prcticas subsiguientes.

Desarrollo: a). Implementar las siguientes rutinas en el editor de Matlab (archivos m),
para despus ejecutarlos en el espacio de trabajo de Matlab. Probar con varios valores para
obtener las observaciones y entender como funcionan de manera amplia, para despus
hacer uso de ellas.
1.
function [x,n] = stepseq(n0, n1, n2)
%Funcion escalon, "n0" es la posicion donde inicia el escalon
%"n1" es el limite inferior
%"n2" es el limite superior
n=[n1 : n2];
x=[(n - n0) >=0];
stem(n,x);
grid on;
title('Secuencia escalon unitario');
xlabel('n');

2.
function [x,n] = impseq(n0, n1, n2)
%Funcion impulso unitario, "n0" es donde ocurre el impulso
%"n1" es el limite inferior
%"n2" es el limite superior
n= [n1:n2];
x= [(n - n0) == 0];
stem(n,x);
grid on;
title('Secuencia impulso unitario');
xlabel('n');



3.
function [x,n] = exp_real(n0, n1,n2)
% Secuencia exponencial donde su argumento "n0" es un numero real
%"n1" es el limite inferior
%"n2" es el limite superior
n= [n1:n2];
x= n0 .^n;
stem(n,x);
grid on;
title('Secuencia exponencial');
xlabel('n');


b). Modificar la subrutina 1 de tal manera que funcione para nmeros negativos (probar
con algunos valores negativos para ver como se comporta)


Cuestionario
1. Es necesario programar las salidas de una rutina funcin dentro del programa?
2. Cundo se escribe un comando en Matlab, porque se escribe algunas veces al final
el punto y coma,;?
3. Describa la estructura que debe tener un programa en general
































Bases tericas para la prctica No. 2


Las seales en tiempo discreto pueden aparecer al muestrear una seal en tiempo
continuo o bien pueden ser generadas directamente por un proceso en tiempo discreto.
Las seales en tiempo discreto se representan matemticamente como secuencias de
nmeros.
| | { }
, , : x x n n n entero = < <
En la prctica, las secuencias, se obtienen de muestrear una seal analgica. Esto es
| | ( ), , :
a
x n x nT n n entero = < <
donde
( )
a
x t es la seal analgica y T se denomina como periodo de muestreo.
Las seales en tiempo discreto se representan en forma grafica de la siguiente manera:

Aunque la abscisa se dibuja como una lnea continua, es importante observar que
| |
x n esta
definida solo para valores enteros, en valores que n no es entero no significa que
| |
x n sea
cero para estos intervalos, simplemente
| |
x n no esta definida para esos valores.


Operaciones bsicas
El producto y las suma de dos secuencias
| |
x n y
| | y n se definen como el producto y la
suma muestra a muestra, la multiplicacin de una secuencia por un nmero o se define
como la multiplicacin de los valores de cada muestra por o .
En el caso
| | | |
0
y n x n n = ,
| | y n es una versin desplazada de
| |
x n , donde n
0
es un
nmero entero (adelanto cuando - n
0
> 0 y retraso cuando - n
0
< 0).
- Secuencia muestra (impulso) unitario
| |
0, 0
1, 0
n
n
n
o
=
=

=


- Secuencia escaln unitario
| |
0, 0
1, 0
n
u n
n
<
=

>


- Secuencias exponenciales
| |
n
x n Ao =
- Secuencias sinusoidales
| | ( )
0
cos , , : x n A n A reales e = +
Si o es un nmero complejo, entonces la secuencia tiene parte real e imaginaria que son
sinusoides ponderadas exponenciales.














Prctica No. 2


Titulo:
Secuencias bsicas

Objetivo: Conocer las operaciones y algunas secuencias bsicas que involucran el Control
Digital.

Desarrollo: Encontrar una expresin matemtica e implementar dicha expresin para las
siguientes graficas (secuencias).




Cuestionario
1. Describa matemticamente una manera de acotar una funcin.
2. De que depende el valor de n cuando se evala en algn valor de tiempo?
3. Si se pidiera que la secuencia impulso tuviera una amplitud de 10, como quedara
definida la nueva secuencia?
4. Qu es el tiempo de muestro y como esta involucrado en las secuencias definidas
para las secuencias utilizadas en esta practica?
















Bases tericas para las prcticas No. 3, 4 y 5


Para la obtencin de la transforma Z inversa de una funcin, la implementacin de
diagramas de bloques y simulacin, el entorno que proporciona Matlab (Simulink) es de
gran ayuda, adems de que nos permite manipular grficamente la transforma Z inversa con
lo cual podemos interpretar y comprender los resultados que obtenemos.
En la practica (3) se aprender el enfoque de Matlab, aunque tambin es importante
comprender el enfoque de la ecuacin en diferencias para el calculo de la transformada Z
inversa, ver [3, seccin 2-5], en la practica (4) podremos hacer simulaciones, con lo cual
podremos darle un enfoque analtico a los resultados que obtenemos al aplicar una entrada
escaln unitario a una funcin y en la practica (5) podremos construir un diagrama de
bloques dada una funcin de transferencia cualquiera, especficamente funciones utilizadas
en la implementacin de filtros digitales (realizacin).

Considere un sistema de la forma
( )
( )
( )
Y z
G z
X z
=
a G(z) se le conoce como funcin de transferencia, tpicamente es la relacin de la salida
Y(z) y la entrada X(z) del sistema dado.

Para encontrar la transformada Z inversa, se utiliza la funcin delta de Kronecker
( )
1, 0
0, 0
para k kT
para k
o = =
= =

La transformada Z de la entrada delta de Kronecker es
( ) 1 X z =
Puesto que la transformada Z de la entrada delta de Kronecker X(z) es igual a la unidad, la
respuesta del sistema a esta entrada es
( ) ( ) Y z G z =
Para obtener la transformada Z inversa de G(z) con Matlab, se utilizan los siguientes
comandos para obtener la respuesta y(k) desde k=0 hasta k=40, introduzca el numerador y
denominador de la siguiente forma:
| |
| |
num coeficientes
den coeficientes
=
=

Introduzca la entrada delta de Kronecker
( ) 1 1, 40 x zeros = (


Luego introduzca el comando
( ) , , y filter num den x =
Para graficar la respuesta a la entrada delta de Kronecker utilizar el siguiente comando, ver
[3, seccin 2-5]
( ) , ' ' plot k y o
otra opcin para graficar una secuencia es utilizar el comando
( ) , stem k y
La entrada escaln se puede programar de la siguiente manera, supongamos que queremos
la respuesta escaln unitario hasta k=40, entonces escribimos
( ) 1, 41 r ones =
Ejemplo: ver [3, seccin 3-5]
Sea el siguiente sistema
( )
( )
-1 -2 -3 -4
-1 -2 -3 -4
0.5151z - 0.1452z - 0.2963z + 0.0528z
1 - 1.8528z + 1.5906z - 0.6642z + 0.0528z
C z
R z
=
Obtener la respuesta para una entrada escaln unitario. Programa para Matlab

num = [0 0.5151 -0.1452 -0.2963 0.0528];
den = [1 -1.8528 1.5906 -0.6642 0.0528];
r = ones(1,41);
v = [0 40 0 2];
axis(v);
k = 0:40;
c = filter(num,den,r);
plot(k,c,o,k,c,-)
grid
title(Respuesta al escaln unitario)
xlabel(k)
ylabel(c(k))

Figura obtenida del programa anterior:



Nota: La obtencin de la respuesta de un sistema se puede realizar directamente en el
entorno de Matlab o bien utilizar el entorno de Matlab llamado Simulink

Diagramas de bloques bsicos

Diagrama de bloques para la funcin de transferencia pulso de un sistema

As como en sistemas continuos, las siguientes equivalencias se mantienen:




( ) ( ) ( ) X z M z N z =



( ) ( ) ( ) ( ) C z G z H z R z =



( )
( ) ( )
( ) ( ) 1
G z R z
C z
H z G z
=
+



Controladores y Filtros Digitales

Dentro del rea de procesamiento digital de seales, un filtro digital es un algoritmo de
calculo que convierte una secuencia de nmeros de entrada en una secuencia de salida, de
modo que se afectan las caractersticas de la seal de entrada de una manera establecida. En
trminos generales, un controlador digital es una forma de filtro digital. Las realizaciones
en diagramas de bloques se pueden utilizar como base para un diseo de software o
hardware, una vez que se completa la realizacin en diagrama de bloques, la realizacin
fsica de software o hardware es directa.
En seguida veremos los filtros digitales que se emplean con propsitos de filtrado y control.
Forma general de la funcin de transferencia pulso entre la salida Y(z) y la entrada X(z):
( )
( )
( )
1 2
0 1 2
1 2
1 2
,
1
m
m
n
n
Y z b b z b z b z
G z n m
X z a z a z a z


+ + + +
= = >
+ + + +

Donde a
i
y b
i
son constantes reales.

A continuacin se muestra la funcin de transferencia de un retardo de una unidad de
tiempo


Mtodos de realizacin (diagramas de bloques)

Programacin directa
Simplificamos la funcin de transferencia general en la siguiente forma, donde nos damos
cuenta de los elementos que afectan a la salida y a la entrada.
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
1 2
1 2
1 2
0 1 2
n
n
m
m
Y z a z Y z a z Y z b z Y z
b X z b z X z b z X z b z X z


= + +
+ + + + + +

En esta forma de realizacin los coeficientes a
i
y b
i
aparecen como multiplicadores en el
diagrama de bloques. El diagrama de bloques correspondiente es el siguiente




Programacin estndar
En este mtodo, el nmero de elementos de retraso utilizados en la programacin directa se
puede reducir, mediante el reacomodo del diagrama de bloques.
Escribimos la funcin de transferencia pulso de la siguiente manera:
( )
( )
( )
( )
( )
( )
Y z Y z H z
X z H z X z
=
donde
( )
( )
1 2
0 1 2
m
m
Y z
b b z b z b z
H z

= + + + +
rescribimos la ecuacin de la siguiente manera
( ) ( ) ( ) ( ) ( )
1 2
0 1 2
m
m
Y z b H z b z H z b z H z b z H z

= + + + +
y
( )
( )
1 2
1 2
1
1
n
n
H z
X z a z a z a z

=
+ + + +


rescribimos la ecuacin de la siguiente manera
( ) ( ) ( ) ( ) ( )
1 2
1 2
n
n
H z X z a z H z a z H z a z H z

=


Por lo tanto, combinando los diagramas de bloques de las dos ecuaciones anteriores
obtenemos el diagrama de bloques siguiente


Note que solo se utilizan n elementos de retraso, los coeficientes a
i
aparecen como
elementos de realimentacin y los coeficientes b
i
aparecen como elementos de
prealimentacin. Existen otros enfoques para la descomposicin de funciones de
transferencia pulso, que se utilizan para evitar el problema de sensibilidad de los
coeficientes ver [3, seccin 3-6].
El utilizar un nmero mnimo de elementos de retraso y de puntos suma ahorra espacio en
los controladores digitales a la hora de llevarlos a la implementacin.





















Prctica No. 3


Titulo:
Transformada Z inversa

Objetivo: Obtener la transformada Z inversa utilizando las herramientas del entorno de
Matlab.

Desarrollo: Obtener la transformada Z inversa y la grafica de las siguientes secuencias.
Para mas referencias en los comandos utilizados en esta practica ver [3, seccin 2-5]:
a) ( )
1 2
1
1
1
z z
X z
z

+
=


b) ( )
1 2
2 2
(1 )
(1 )
z z
X z
z

=
+

c) ( )
2
2
0.368 0.478 0.154
( 1)
z z
X z
z z
+ +
=


d) ( )
2
1
z
X z
z z
=

(serie de Fibonacci)

Cuestionario:

1. Cules de las funciones anteriores son filtros y porque?
2. En que rea se podran utilizar las herramientas numricas vistas en esta practica
(proporcionar ejemplos especficos)
3. Qu tipo de parmetros puede identificar en las graficas de las funciones vistas en
esta practica, descrbalos?
4. Que relacin existe entre las funciones anteriores y las ecuaciones en diferencias?


















Bibliografa


1. Tratamiento de seales en tiempo discreto
Alan V. Oppenheim, Ronald W. Schafer
Segunda edicin, 1999
Editorial Prentice Hall
2. Digital Control of Dynamic Systems
Gene F. Franklin, J. David Powell, Michael L. Workman
Editorial Addison-Wesley
3. Sistemas de Control en Tiempo Discreto
Katsuhiko Ogata
Segunda edicin, 1995
Editorial Prentice Hall
4. Modern Control Systems Analysis and Design using MATLAB
Robert H. Bishop
Segunda edicin
Editorial Addison-Wesley

También podría gustarte