Sei sulla pagina 1di 24

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: 1

(t) )
0

(tt

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 -1 pulso = 1 +

-u(t )

Pulso = u(t) u(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)
1 1

tripulso

r(t+1)

r(t-1)

t
-1 1

t
-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:

10 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. 6

a<0

-2

a>0

Ejemplos: A =1, a = 0.3,

b=0

-0.3,

b=0

A =1, a =

-8

-4

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 =

21

21

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. 60%. b. Seal diente de sierra, amplitud 5 Volts y frecuencia fundamental 20Hz Onda Cuadrada, de amplitud 5 Volts, frecuencia fundamental 20 Hz y ciclo til del

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].

Potrebbero piacerti anche