Está en la página 1de 15

INGENIERA ELECTROMECNICA

TPICOS DE CONTROL DIGITAL O DISCRETO

I. SEALES EN SISTEMAS DE CONTROL

Los sistemas de control se caracterizan por la ecuacin que rige la ley de su dinmica, para
conocer la respuesta del sistema a una entrada particular, se utilizan las seales elctricas, las
cuales sirven de excitacin o entrada del sistema. A continuacin se definen algunas de las
seales ms utilizadas en sistemas de control anlogo.

1. Impulso unitario: La funcin impulso es ms un concepto matemtico que una funcin,


que se define de la siguiente manera:
(t) (t- )
1

t
0
La funcin es cero para cualquier valor de t, excepto cero.
Cuando la t tiende a cero por la derecha o por la izquierda su valor tiende a infinito
Por definicin el rea de esta funcin es igual a uno.

La funcin impulso posee algunas propiedades que pueden resultar tiles.

Tambin es importante para posteriores desarrollos la propiedad de desplazamiento o


corrimiento.

Fsicamente existen efectos en la naturaleza a los que se puede asociar esta funcin como
por ejemplo la fuerza aplicada en un lapso muy corto, como cuando un martillo golpea un
clavo, o la presencia de un voltaje por un instante muy corto que en trminos de esta
funcin como:
2. Escaln Unitario: La funcin escaln unitario se define como la integral de la funcin
impulso desde el infinito negativo hasta el tiempo t, la integral de la funcin impulso es 0
si el tiempo t es menor que 0, y 1 si el tiempo t es mayor que 0. El escaln unitario se
define exactamente como: u(t)

1
t

El tipo de escaln unitario corresponde a una salida. El valor de la funcin en t=0, es


indefinido. Otros textos lo pueden definir como 1 o 0. As pues sta funcin representa la
corriente continua disipada en un dispositivo.

En el caso de la funcin escaln, fsicamente representa un cambio instantneo que se


produce en t = 0, es una suposicin el hecho de representar una funcin con tiempos
negativos (lo cual no existe), en cambio sirve para representar el caso de un interruptor
que permanece abierto hasta que en un instante se cierra, estableciendo el mximo voltaje
a una carga.

3. Pulso Rectangular: Es una funcin muy til en sistemas de control, existe para un
intervalo de tiempo, siendo cero en cualquier otro caso, se concibe como una seal
compuesta, ya que se deriva de la suma algebraica de dos escalones; uno en 0 y otro
retrasado un tiempo t = . A continuacin se muestra la conformacin de la seal pulso
rectangular.

u(t)

1 +

t t
-1
-u(t- )
pulso

1 Pulso = u(t) u(t - )


=
t

4. Rampa Unitaria: La funcin rampa es la integral de la funcin escaln. Si se considera la


suma de toda el rea bajo la funcin escaln hasta un tiempo t. Si t < 0 (cero), el valor de
la integral ser 0 (cero). Si t > 0 (cero) , entonces el valor ser igual a la integral de 1 desde
el tiempo 0 hasta el tiempo t, la cual tambin tiene el valor t, es decir:
r(t)

1
1 t

La rampa unitaria tiene una pendiente igual a 1 (uno).

5. Pulso Triangular: La seal pulso triangular, al igual que el pulso rectangular, tambin es
una seal compuesta, ya que se genera a partir de una serie de sumas algebraicas de
rampas unitarias. En la siguiente grfica se muestra como se conforma una seal pulso
triangular a partir de seales tipo rampa.

, sean:

f(t)
tripulso
1 1
r(t+1) r(t-1)

t
=
t
-1 1 -1 1
2r(t)

-2

6. Exponencial: Como su nombre lo indica, las seales exponenciales crecen o decrecen de


manera exponencial, se tomar como elemento de partida la siguiente expresin:

De la cual se derivan los siguientes casos:


Seales exponenciales reales: si a es positiva entonces

conforme t se incrementa x(t) es una exponencial creciente. Si a es negativa, entonces


x(t) es una exponencial decreciente.

10

a<0
6
Ejemplos: A =1, a = 0.3, b=0
a>0
A =1, a = -0.3, b = 0
2

-8 -4 4 8
-2

Seales exponenciales complejas: Esta seal, muy

usada para describir muchos procesos fsicos, es peridica con periodo

Usando la relacin de Euler se puede escribir en trminos de seales senoidales as:

La siguiente figura, obtenida en Matlab a travs del script mostrado, representa la seal
exponencial para las condiciones dadas.
% Seal exponencial compleja
t=0:0.01:10;
b=2;
x=cos(b*t)+j*sin(b*t);
x1=real(x);
x2=imag(x);
subplot(2,1,2)
plot(t, x2, 'b')
title('Parte imaginaria')
subplot(2,1,1);
plot(t, x1, 'r')
title('Parte real')

Seales exponenciales generales: El caso ms general

de una exponencial compleja; si a > 0, x(t) corresponde a senoidales multiplicadas por


exponenciales crecientes; si a < 0, x(t) corresponde a senoidales multiplicadas por
exponenciales decrecientes. Usando la relacin de Euler se puede escribir:

A continuacin se muestra la grfica para: {A = 1; a = -0,3 y b = 5}

% Exponenciales generales
t=0:0.01:10;
a=-0.3;
b=5;
x=(cos(b*t)+j*sin(b*t)).*exp(a*t);
x1=real(x);
x2=imag(x);
subplot(2,1,2)
plot(t, x2, 'b')
title('Parte imaginaria')
subplot(2,1,1);
plot(t, x1, 'r')
title('Parte real')
II. CARACTERIZACIN DE LAS SEALES USANDO MATLAB

El objeto bsico usado en MATLAB es una matriz numrica con la posibilidad de almacenar
nmeros complejos. Los datos encontrados en el estudio de seales y sistemas son siempre,
muy bien representados en forma de matrices. En esta seccin se usar MATLAB para la
generacin de seales elementales como lo son las seales exponenciales, senoidales, etc.

El ToolBox de procesamiento de seales de MATLAB posee una larga variedad de funciones


para la generacin de seales, estas seales requieren de una representacin vectorial de la
variable tiempo, de manera continua o discreta. Para realizar una simulacin de un intervalo
continuo, se usa un vector de valores discretos con un intervalo de muestreo muy pequeo.

El siguiente comando genera un vector llamado t de valores que representan la variable


tiempo, con un intervalo de muestreo de 1ms entre 0 y 1seg.

t = 0:0.001:1;

Para generar un vector llamado n de valores que representan la variable tiempo para una seal
discreta en el intervalo de 0 a 1000, se puede usar el siguiente comando.

n = 0:1000;

Despus de creado el vector que representa la variable tiempo, es posible iniciar el desarrollo
de alguna seal de inters.

En MATLAB una seal discreta en el tiempo se representa exactamente, porque los valores de
la seal son representados como los elementos de un vector. Sin embargo las seales de
tiempo continuo en MATLAB son tan solo aproximaciones. La aproximacin consiste de un
vector cuyos elementos son muestras de la verdadera seal de tiempo continuo. Cuando se usa
esta tcnica para la representacin de seales continuas es importante escoger el intervalo de
muestreo lo suficientemente pequeo para asegurar que las muestras capturan todos los
detalles de la seal.

SEALES PERIODICAS

La generacin de seales peridicas tales como ondas cuadradas y triangulares es una


actividad muy fcil de realizar en MATLAB. Consideremos primero la generacin de una
onda cuadrada de amplitud A, frecuencia fundamental w (medida en radianes por segundo) y
ciclo til rho. Recordemos que el ciclo til es la fraccin de cada periodo en donde la seal es
positiva.

Para generar dicha seal se puede usar el siguiente conjunto de comandos:

A = 1;
w = 10 * pi;
rho = 0.5;
t = 0:0.001:1;
sq = A*square(w*t+rho);
plot(t,sq);

El resultado se puede observar en la siguiente grfica:

En la segunda lnea, pi es una funcin interna de matlab que calcula el nmero ms cercano a
la constante PI en formato de coma flotante. El ltimo comando es usado para ver la seal
generada. El comando plot dibuja lneas conectando los valores sucesivos de la seal y as da
la apariencia de una seal en tiempo continuo.

Consideremos ahora la generacin de una onda triangular de amplitud A, frecuencia


fundamental w y ancho Wdt. El periodo de la onda triangular ser T con el mximo valor de la
seal ocurriendo en t = WT. El comando bsico para generar esta seal es:

A * sawtooth(w*t + Wdt)

El listado completo de comandos sera:

A = 1;
w = 10 * pi;
Wdt = 0.5;
t = 0:0.001:1;
tri = A*sawtooth(w*t + Wdt);
plot(t,tri);

El resultado se puede visualizar en la grfica del lado derecho.

Como se mencion anteriormente, una seal generada en MATLAB es inherentemente de


naturaleza discreta. Para visualizar una seal en tiempo discreto se puede hacer uso del
comando stem. Especficamente stem(n, x), bosqueja los datos contenidos en el vector x como
una seal de tiempo discreto con los valores de tiempo definidos por el vector n. Los vectores
n y x deben tener dimensiones compatibles, es decir deben tener el mismo nmero de
elementos. El siguiente ejemplo genera una seal cuadrada en tiempo discreto de amplitud
igual a la unidad, ciclo til igual a 50% y una frecuencia angular igual a:
El resultado se puede ver en la siguiente grfica:

A = 1;
omega = pi/4;
rho = 0.5;
n = -10:10;
x = A*square(omega*n + rho);
stem(n,x);

SEALES EXPONENCIALES

Las seales exponenciales se pueden clasificar segn su comportamiento en decrecientes y


crecientes. El comando en MATLAB para generar una seal exponencial decreciente es:

B*exp(-a*t);

Para generar una seal exponencial creciente se usa el comando:

B*exp(a*t);

En ambos casos el parmetro a es positivo. El siguiente ejemplo muestra la generacin de una


seal exponencial decreciente:

B = 5;
a = 6;
t = 0:0.001:1;
x = B*exp(-a*t); % seal exponencial decreciente.
plot(t, x);

Siendo el resultado como sigue:


Para la generacin de una seal exponencial creciente se puede usar el siguiente ejemplo:

B = 1;
a = 5;
t = 0:0.001:1;
x = B * exp( a * t );
plot( t, x ) ;
Existen casos particulares en los que la base de la operacin de exponenciacin no es el
nmero irracional e, puede ser cualquier otro nmero. Para estos casos se usa una notacin
diferente la cual est basada en la utilizacin del smbolo ^. Observando el ejemplo que sigue
se nota que r es un nmero mientras que n es un vector, por lo tanto se usa una combinacin
del smbolo exponenciacin con el carcter . Lo cual significa que a cada valor del vector le
ser aplicada la funcin.

El siguiente ejemplo genera la seal:

B = 1;
r = 0.85;
n = -10:10;
x = B*r.^n;
stem(n, x);

SEALES SINUSOIDALES.

MATLAB tambin contiene funciones trigonomtricas que pueden ser usadas para generar
seales sinusoidales. Una seal coseno de amplitud A, frecuencia w0 (medida en radianes por
segundo) y ngulo de fase phi (en radianes) se obtiene usando el comando:

A*cos(w0*t + phi);

Alternativamente se puede usar la funcin seno para generar una seal sinusoidal usando el
siguiente comando:
A*sin (w0*t + phi);

En seguida se muestran ejemplos para cada uno de las seales respectivamente:

A = 4;
w0= 20 * pi;
phi = pi/6;
t = 0:0.001:1;
coseno = A*cos(w0*t + phi);
plot(t, coseno) ;
A = 0.5;
w0 = 20*pi;
phi = pi/2;
t = 0:0.001:1;
seno = A*sin(w0*t + phi);
plot(t,seno);

SEALES SINUSOIDALES CON AMORTIGUACIN EXPONENCIAL.

En todos los comandos de generacin de seales descritos anteriormente, se ha generado la


amplitud deseada de las seales, realizando una multiplicacin por un escalar A. Esta
operacin se describe usando el smbolo asterisco *. Supongamos que se desea multiplicar
una seal sinusoidal por una seal exponencial para producir como resultado una seal con
amortiguacin exponencial. La siguiente ecuacin describe mejor el supuesto caso:

Debido a que tanto la componente sinusoidal de la seal como la exponencial son vectores, el
procedimiento para la generacin de la seal final requiere de una multiplicacin de dos
vectores elemento por elemento. En MATLAB este tipo de multiplicacin se representa
usando el smbolo punto (.) seguido por el smbolo asterisco (*). As el comando para generar
la ecuacin anterior sera;

A*sin(w0*t + phi).*exp(-a*t);

Y un ejemplo completo sera:

A = 60;
w0 = 20*pi;
phi = 0;
a = 6;
expsen = A*sin(w0*t + phi).*exp(-a*t);
plot(t, expsen);

Dando como resultado la siguiente grfica:

La versin discreta de la misma seal se puede obtener haciendo uso de los comandos
mostrados anteriormente de la siguiente manera:

A = 10;
a = -0.1;
w0 = 2 * pi / 12;
phi = 0;
n = -10 : 10;
x = A * sin( w0 * n + phi);
y = exp(a*n);
z = x .* y;
stem(n, z)

SEALES IMPULSO, PASO Y RAMPA.

En MATLAB, el comando ones(M, N) genera una matriz de unos de tamao M x N, y el


comando zeros(M, N) es una matriz de ceros del mismo tamao. Se puede hacer uso de estas
dos matrices para generar dos seales comnmente usadas.

Seal Paso: Una seal paso de amplitud uno, puede ser generada con el siguiente
comando.

U = [zeros(1, 10), ones(1, 11)];

Para la versin continua creamos un vector que represente el tiempo el cual tenga muestras de
un intervalo separados por valores muy pequeos mientras que para la representacin de esta
seal en tiempo discreto creamos un vector que represente el tiempo el cual debe tener valores
separados por una unidad.

Los comandos y los resultados para ambos tipos de seal se muestran a continuacin:

u=[zeros(1,10), ones(1,11);
t = -1 : 0.1 : 1;
plot(t, u)

U = [zeros(1,10), ones(1,11)];
n = -10 : 10;
stem(n, u)

De los comandos anteriores es de notar que para poder usar las funciones plot() y stem(), es
requisito que los vectores (t y u) (n y u) tengan iguales dimensiones. Por esta razn el vector
u se forma como una composicin de diez ceros y 11 unos, debido a que los arreglos t y n,
tienen dimensin 21 dado que incluyen un elemento central el cual es el nmero cero. Para
probar este hecho, se puede hacer uso de otra funcin de MATLAB llamada size() que
devuelve como resultado un vector con las dimensiones de la matriz que se le pasa como
parmetro as:

>> size(n) >> size(u) >> size(t)

ans = ans = ans =

1 21 1 21 1 21
Seal Impulso: La versin discreta de la seal impulso se puede tambin generar con
ayuda de las funciones zeros() y ones(), realizando una composicin como sigue:

delta = [zeros(1 ,10), 1, zeros(1, 10) ];


n = -10:10;
stem(n, delta);

Una versin continua podra evidentemente generarse usando la misma tcnica que se us en
el apartado anterior, sin embargo es necesario aumentar el nmero de muestras a fin de
maximizar la pendiente de la seal, en seguida se vern dos ejemplos con diferentes nmero
de muestras en el mismo intervalo de tiempo, como se puede ver la correspondencia entre las
dimensiones de los vectores se mantienen as que al aumentar el tamao de muestras del
vector que representa el tiempo es necesario aumentar el valor de ceros y de unos con el cual
se esta creando la seal.

En el ejemplo se puede ver que a mayor numero de muestras, la pendiente de la seal se hace
mayor y la aproximacin a la seal verdadera es ms cercana.

delta = [zeros(1,10), 1, zeros(1,10)];


t = -1 : 0.1 : 1;
plot(t, delta)
delta=[zeros(1, 1000), 1, zeros(1, 1000)];
t = -1 : 0.001 : 1;
plot(t, delta)

Seal Rampa: Para generar la seal rampa, tan solo es necesario recordar que esta funcin
puede ser creada, como la composicin de una recta Y(x) = x a partir de cero y de la recta
Y(x) = 0 para valores de x menores de cero, as la versin discreta y continua se muestran a
continuacin:

rampa1 = n1;
n1 = 0 : 30;
rampa1 = n1;
rampa = [zeros(1,29),rampa1];
stem(n, rampa)

t1 = 0 : 0.1 : 10;
rampa1 = t1;
rampa = [zeros(1,101), rampa1];
t2 = -10 : 0.1 : 0;
t = [t2, t1];
plot(t, rampa)
HOMEWORK

1. Desarrollar un conjunto de comandos MATLAB para aproximar las siguientes seales


peridicas en tiempo continuo, dibujando 5 ciclos de cada una:

a. Onda Cuadrada, de amplitud 5 Volts, frecuencia fundamental 20 Hz y ciclo til del


60%.
b. Seal diente de sierra, amplitud 5 Volts y frecuencia fundamental 20Hz

2. La solucin a una ecuacin diferencial esta dada por la siguiente expresin:

Usando MATLAB, grafique la solucin de la ecuacin en el siguiente intervalo [0, 5] con


una frecuencia de muestreo de 100 Hz.

3. Repita el problema nmero dos para la siguiente expresin:

4. Una seal sinusoidal con amortiguacin exponencial est definida por la siguiente
expresin:

Donde el parmetro a es variable y toma valores sobre el siguiente conjunto: 500, 750,
1000. Usando MATLAB, investigar el efecto de variar dicho parmetro en la seal en el
intervalo [-2, 2].

También podría gustarte