19
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELECTRÓNICA INTRODUCCIÓN A MATLAB POR: LAURA PATRICIA JIMÉNEZ MIJANGOS ASESOR: Dr. EDUARDO RODRÍGUEZ ÁNGELES NOVIEMBRE 2008

Introduccion a MatLab

Embed Size (px)

Citation preview

Page 1: Introduccion a MatLab

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍA

DIVISIÓN DE INGENIERÍA ELECTRÓNICA

INTRODUCCIÓN A MATLAB

POR: LAURA PATRICIA JIMÉNEZ MIJANGOS ASESOR: Dr. EDUARDO RODRÍGUEZ ÁNGELES

NOVIEMBRE 2008

Page 2: Introduccion a MatLab

1

ÍNDICE

1. Introducción…………………………………………………………………….………………………………………………. 2

2. MatLab……………………………………………………………………………………………………………………………… 2

2.1. Escritura en MatLab…………………………………………………………………………………………………… 2

2.2. Variables Especiales y Variables Preasignadas…….…………………………………………………….. 2

2.3. Comandos de uso General…………………………………………………………………………………………. 2

2.4. Operadores Básicos…………………………………………………………………………………………………… 3

2.5. Funciones Matemáticas Básicas………….…………………………………………………………………….. 4

3. Symbolic…………………………………………………………………………………………………………………………... 4

4. Simulink……………………………………………..…………………………………………………………………………….. 5

5. Comandos utilizados en la Solución de las Prácticas………..……………………………………………….. 6

Page 3: Introduccion a MatLab

2

1. Introducción MatLab es un acrónimo en inglés que significa Laboratorio de Matrices (Matrix Laboratory), es un programa de cálculo numérico, simulación y visualización que integra análisis numérico, cálculo con matrices, procesamiento de señales y gráficas.

Cuenta con paquetes de funciones especializadas llamadas Toolboxes, de los cuales para el desarrollo de las prácticas se utiliza Simulink para la simulación de sistemas por medio de diagramas de bloques y Symbolic para el uso de operaciones de cálculo simbólico, aunque sólo se usen esos dos no se debe pasar por alto que existe una gran variedad de Toolboxes para control (Control system y Robust Control), procesamiento de señales (Signal Processing), procesamiento de imágenes (Image Processing), redes neuronales (Neural Network), y control no lineal (Nonlinear Control Design) entre otros.

Para tener una idea más clara del uso de MatLab como herramienta en el análisis de sistemas y señales se hará una breve introducción a los comandos básicos.

2. MatLab 2.1. Escritura en MatLab

La escritura de las funciones en MatLab obedece la estructura con que se escriben las funciones de manera natural, también el manejo de éstas, ya que se leen de izquierda a derecha y de adentro hacia afuera de los paréntesis, de manera que si se escribe:

5+j*3 El programa lee:

5+j3

2.2. Variables Especiales y Valores Preasignados Como en todos los programas, existen variables preasignadas que responden a determinada forma o valor, a menos que se les indique de otra manera, a continuación se muestran algunas de estas variables preasignadas:

VARIABLE PREASIGNACIÓN

ans Respuesta o resultado

NaN Valor numérico no válido

inf Infinito

i, j Variable imaginaria

pi Tabla 2.1 Variables Especiales y Valores Preasignados

2.3. Comandos de uso General Estos comandos afectan el programa desde la raíz y a cualquier nivel, sin modificar el funcionamiento de los bloques de programación que se hayan desarrollado.

Page 4: Introduccion a MatLab

3

Algunos de estos comandos son:

VARIABLE ACCIÓN QUE EJECUTA

help

Ayuda general del programa, el comando help seguido del nombre de un Toolbox o función despliega la información de ayuda directamente sobre estos temas

lookfor palabra Busca una palabra en el contenido del software

clc Limpiar pantalla

who, whos Lista las variables del espacio de trabajo

clear Borra el valor de las variables, cuando se usa clear seguido del nombre de una variable borra exclusivamente el valor de esa variable

Tabla 2.2 Comandos de uso General

2.4. Operadores Básicos

Los operadores básicos realizan funciones simples que ayudan al seguimiento de los programas y a la realización de operaciones, algunos de estos operadores son:

OPERADOR OPERACIÓN

= Asignación

>>x Ver variable x

Recuperar operación anterior, si se presiona varias veces se recuperan las operaciones

anteriores en orden ascendente

+ Suma matricial

- Resta matricial

‘ Transpuesta conjugada

.’ Transpuesta no conjugada

* Producto matricial

.* Producto elemento a elemento

^ Potencia matricial

.^ Potencia de cada elemento de la matriz

/ División matricial

./ División elemento a elemento

\ División matricial izquierda

.\ División izquierda elemento a elemento

== Comparación de igualdad

Comparación de desigualdad

> Comparación mayor que

< Comparación menor que

Page 5: Introduccion a MatLab

4

>= Comparación mayor igual que

<= Comparación menor igual que

& AND

I OR

NOT

II OR directa

&& AND directa

:X Formar columna a partir de una matriz

:, 2X Extraer una parte de una matriz

:, 2X y Sustituir una parte de una matriz

[ ; ]X X y Agregar renglones a una matriz

[ , [3; 2;1; 7 ]]X X Agregar columnas a una matriz

:, 4 [ ]X Eliminar columnas de una matriz

4,: [ ]X Eliminar renglones de una matriz

0:0.1:10 Generar un vector

; No mostrar el resultado de la operación

, Separar comandos o valores Tabla 2.3 Operadores Básicos

2.5. Funciones Matemáticas Básicas

Las funciones básicas son las trigonométricas, exponenciales y logarítmicas, no todas las funciones utilizadas en las prácticas se mencionan en la siguiente tabla, pero éstas se encuentran en los capítulos y explicadas más detalladamente en la ayuda general de MatLab.

COMANDO FUNCIÓN

sin Seno

cos Coseno

tan Tangente

asin Seno inverso

atan Tangente inversa

exp Exponencial

log Logaritmo natural

log10 Logaritmo común Tabla 2.4 Funciones Matemáticas Básicas

3. Symbolic El Toolbox Symbolic permite el cálculo de integrales, derivadas, transformadas, etc., de manera simbólica, esto es, es necesario definir las variables como simbólicas antes de empezar a operar sobre ellas con las funciones y operadores, por lo que los resultados de las operaciones no tendrán un valor numérico, sino, valores simbólicos de acuerdo con las variables definidas.

Page 6: Introduccion a MatLab

5

Algunos comandos que se encuentran dentro del Toolbox Symbolic son:

COMANDO FUNCIÓN

diff Diferenciación

int Integración

limit Cálculo de límites

taylor Expansión en serie de Taylor

jacobian Obtención de matriz Jacobiana

symsum Suma de series

simplify Simplificación de funciones

expand Expansión de funciones Tabla 3.2 Comandos contenidos en Symbolic

4. Simulink Simulink es el Toolbox que permite la simulación de sistemas por medio de diagramas de bloques, con operaciones sobre variables continuas o discretas, se puede construir el sistema y visualizar su comportamiento en cualquier punto del mismo.

Algunos grupos de Simulink son: continuo (Continuous) donde se encuentran bloques como derivador, integrador y función de transferencia entre otros; operaciones matemáticas (Math Operations), donde se encuentran los bloques de suma, multiplicación, ganancia, división y suma de elementos entre otros; ruteo de señales (Signal Routing), donde se encuentra el bloque de multiplexión, demultiplexión e interruptor manual entre otros; visualización (Sinks), donde se encuentra el osciloscopio entre otros bloques; fuentes (Sources), donde se encuentran los bloques de entrada escalón, rampa, onda senoidal, generador de señales y constructor de funciones entre otros.

Las entradas utilizadas pueden ser de tipo funciones singulares escalón y rampa, funciones senoidales, exponenciales, trigonométricas, constantes, etc.

Cuenta además con un generador de señales del cual se pueden obtener señales cuadradas, señales senoidales o triangulares; y un constructor de señales de manera que se puedan manejar las características, magnitudes, desfasamientos, corrimientos y amplitudes de las señales con completa libertad, construir señales periódicas, aperiódicas o compuestas por funciones singulares.

Existe también un bloque de entrada constante al que se le pueden dar valores escalares, vectoriales o matriciales de acuerdo con el sistema que se simula.

Contiene bloques de suma como los que se utilizan en un diagrama de bloques común de sistemas, por lo que los lazos de retroalimentación, las conexiones en serie y paralelo o sus combinaciones son confiables.

El bloque de ganancia puede ser escalar, vectorial o matricial, toma la información de la salida del bloque anterior y la multiplica por un factor de ganancia sin afectar otra característica de la señal.

Para la simulación de sistemas descritos por ecuaciones diferenciales se usa principalmente un bloque integrador, cabe mencionar que las condiciones iniciales del sistema se indican precisamente en este bloque.

Page 7: Introduccion a MatLab

6

Cabe mencionar que también cuenta con un bloque derivador, regularmente no se utiliza, ya que esta operación de por sí genera cierto grado de inestabilidad en el comportamiento de los sistemas.

El osciloscopio muestra la señal en el punto o etapa del sistema donde se conecta, a diferencia de muchos otros simuladores, su comportamiento no está idealizado, se apega al comportamiento típico real de la mayoría de los elementos del sistema por lo que las lecturas desplegadas por el osciloscopio son confiables y muy cercanas a lo que sucedería si se probara el comportamiento de los sistemas de manera experimental.

5. Comandos utilizados en la Solución de las Prácticas

Para el análisis y solución de los problemas planteados en las prácticas, se utilizaron comandos básicos de MatLab, todos los comandos se encuentran en la ayuda de MatLab, sin embargo, es importante mencionarlos, su uso y algunos ejemplos para minimizar las dudas que se puedan generar.

abs(x)

Este comando calcula la magnitud de un valor dado do los elementos de una matriz, se utiliza en el cálculo de espectros de magnitud de las señales:

x=3+j*2; abs(x) ans =

3.6056 angle(x)

Calcula la fase o argumento de una función o elementos de una matriz en radianes, se utiliza para el cálculo de espectros de fase, en algunas versiones de MatLab se puede encontrar el comando phase(x), que es equivalente en funcionamiento a angle(x), como no se encuentra en todas las versiones, no se hace referencia a él para la solución de las prácticas; un ejemplo es:

x=3+j*2; angle(x) ans =

0.5880

Fourier(x)

Este comando que se encuentra en el Toolbox Symbolic permite obtener la transformada de Fourier de una función definida en forma simbólica, es necesario hacer dos consideraciones, la definición simbólica de las variables antes de realizar la conversión y el uso de señales acotadas en el tiempo, por lo menos en uno de sus límites de manera que el cálculo no se realice de manera infinita ya que esto genera errores de cálculo.

Page 8: Introduccion a MatLab

7

Un ejemplo del uso del comando fourier(x) es:

syms t y=fourier(exp(-t^2)) y =

pi^(1/2)*exp(-1/4*w^2) pretty(y)

pi1/2 exp(- 1/4 w2 )

Una observación importante es que la respuesta que entrega MatLab, de una transformada de Fourier es en función de la frecuencia , pero se puede definir no sólo la variable de entrada, sino también la variable de salida, de tal manera que se supone una señal en función de x cuya salida se requiere en función de y , se tiene entonces:

syms x y y=fourier(exp(-x^2),x,y) y =

pi^(1/2)*exp(-1/4*y^2) pretty(y)

pi1/2 exp(- 1/4 y2 )

ifourier(x)

El comando ifourier(x) que se encuentra el Toolbox Symbolic calcula la transformada inversa de Fourier de una función simbólica dada, la señal se puede definir directamente en función de la frecuencia y la salida será en función de otra variable x , pero de la misma manera que en fourier(x) se le pueden definir las variables de entrada y salida, un ejemplo de su uso es: syms x w

y=ifourier(w*exp(-3*w)*sym('Heaviside(w)')) y =

1/2/(-3+i*x)^2/pi pretty(y)

1 1/2 -------------- (-3 + x I)2 pi

En este caso el comando Heaviside, es un escalón unitario que inicia en 0 , en el siguiente ejemplo, la entrada será y y la salida será t ; además el escalón se plantea con corrimiento de 1:

syms t y y=ifourier(y*exp(-3*y)*sym('Heaviside(y-1)'),y,t) y =

1/2/pi*(4-i*t)/(i*t-3)^2*exp(i*t-3)

Page 9: Introduccion a MatLab

8

pretty(y) (4 - t I) exp(t I - 3)

1/2---------------------------- pi (t I - 3)2

ilaplace(x)

El comando ilaplace(x) calcula la transformada inversa de Laplace, las mismas consideraciones que fueron hechas para la transformada de Laplace deben hacerse. A continuación un ejemplo del uso de la transformada inversa de Laplace, con la variación de definir las variables de entrada y salida, de manera que las variables no serán las que MatLab usa por default, como se ha mostrado en otros ejemplos:

syms y x w r=y/(y^2 + w^2) s=ilaplace(r,y,x) s = cos(w*x)

imag(x)

El comando imag(x) calcula la parte imaginaria de un valor dado, un ejemplo del funcionamiento de este comando es:

x=exp(j*5)+j*3+2; y=imag(x) y = 2.0411

int(x,t,a,b) ó int(x)

El comando int(x), que se encuentra en el Toolbox Symbolic, se utiliza para integrar simbólicamente una función, de manera que x representa la función que se integrará, t es la variable respecto a la que se realiza la integral, y los valores a y b son los límites inferior y superior de integración

respectivamente. La integral puede ser definida o no definida, un ejemplo cuando es definida es:

syms t x=exp(t); int(x,t,0,1) ans = exp(1)-1

Un ejemplo cuando la integral es no definida es: syms t ó syms t x=exp(t); x=exp(t); int(x,t) int(x) ans = ans =

exp(t) exp(t)

Page 10: Introduccion a MatLab

9

laplace(x)

El comando laplace(x) tiene como resultado la transformada de Laplace de una función de una variable simbólica, es necesario definir primero las variables que se involucrarán en el proceso por medio de syms, luego definir la función que se transformará; la salida de una transformada de Laplace calculada por medio de MatLab, por default tiene como variable de salida la variable s . A continuación un ejemplo del uso de laplace:

syms t s x=sin(3*t) y=laplace(x) y = 3/(s^2+9) pretty(y)

__3__ s2 + 9

meshgrid(x)

Se usa para generar matrices con tantos renglones y tantas columnas como elementos tenga el vector, los renglones contendrán los elementos del vector y las columnas contengan el mismo elemento repetidamente, un ejemplo de una matriz generada con meshgrid es:

[n]=meshgrid(0:1:3) n =

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

meshgrid(x,y) Por otra parte se pueden generar dos matrices con meshgrid(x,y), de tal manera que tengan tantas columnas como elementos tenga el primer vector y tantos renglones como elementos tenga el segundo vector, en la primera matriz los elementos del primer vector se repiten como renglones, y en la segunda matriz los elementos del segundo vector se repiten por columna. Para ver esto:

[n,t]=meshgrid(0:1:2,0:1:5) n = t =

0 1 2 0 0 0 0 1 2 1 1 1 0 1 2 2 2 2 0 1 2 3 3 3 0 1 2 4 4 4 0 1 2 5 5 5

Page 11: Introduccion a MatLab

10

Al aplicar este comando y obtener dos matrices de dimensiones iguales, la evaluación de sus valores en una función de dos variables genera una matriz cuadrada que toma los valores obtenidos de evaluar cada n y cada t en la función, por ejemplo:

s=t.*n s =

0 0 0 0 1 2 0 2 4 0 3 6 0 4 8 0 5 10

Cabe mencionar que estas operaciones deben hacerse elemento a elemento o se debe transponer una de las dos matrices para que sus dimensiones correspondan. Para poder graficar los valores que se obtienen de esta operación, es necesario transponer la matriz resultado, ya que la suma se realiza sobre los elementos de cada columna y lo que se requiere es el valor de la suma de cada renglón. Para obtener la gráfica de una serie de Fourier se puede usar el siguiente ejemplo:

[n,t]=meshgrid(1:2:4,0:0.1:2*pi); p=(-12./(j*n*pi)).*exp(-j*2*n.*t); x=sum(p'); plot(t(:,1),x);

plot(x,y)

El comando plot(x,y) grafica dos vectores, uno en relación con el otro, lo que se conoce como la gráfica de una función ya que toma los valores de la variable independiente x , contenidos en un vector previamente definido y los relaciona con los valores obtenidos de un vector y , que se pueden calcular por medio de una función de

x previamente definida, une los puntos para dibujar una curva continua en el plano cartesiano otorgando a x la abscisa y a y la ordenada. Para copiar la gráfica como una imagen, del menú Edit se toma la opción Copy

Figure y copia con todas sus características.

El comando plot(x,y) presenta la facilidad de manipular las gráficas que se generan hasta cierto punto, por ejemplo se puede modificar la forma, color y grosor de la línea o líneas que representan la curva y agregar marcadores; escribiendo estos atributos directamente sobre la descripción de plot(x,y).

Se puede también modificar el tamaño de los ejes por medio de comando axis, agregar cuadrícula al plano por medio del comando grid, agregar leyendas a los ejes por medio de xlabel y ylabel; agregar un titulo a las gráficas por medio de title; en este caso existen caracteres especiales que permiten agregar superíndices y subíndices _ tomando en cuenta que estos caracteres sólo convierten el

siguiente caracter y hay que agregar uno por cada caracter que se desee convertir, además brinda la opción de mostrar símbolos como: \in= , \omega= , \pi= , \theta= , etc. Además se puede modificar el tamaño de la letra del título usando \fontsize{x}.

Page 12: Introduccion a MatLab

11

Para dar un ejemplo se tiene:

t=0:0.1:2*pi; x=sin(t); plot(t,x,'k-.','LineWidth',4) axis([0 2*pi -1.2 1.2]) grid xlabel('Tiempo [seg]') ylabel('f(t)') title('\fontsize{14} Gráfica de f_1(t)=sen(t), \omega_0=1')

La letra k cambia el color de la línea a negro, el símbolo -. Modifica el tipo de línea, el comando LineWidth modifica el grosor de la línea a 4 puntos; dentro del comando axis, los valores corresponden a xmin, xmax, ymin y y max respectivamente. Todas estas modificaciones se pueden realizar también a los comandos stem y polar. La grafica obtenida es la siguiente:

0 1 2 3 4 5 6

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [seg]

Am

plitu

d

Gráfica de f1(t)=sen(t),

0=1

Figura 5.1 Aplicación de Modificaciones a comando plot(x,y)

plot(x1,y1, x2,y2)

En las secciones 1.5 y 2.4 se ha visto el funcionamiento del comando plot(x), ahora se explicará que usado de esta manera permite visualizar dos funciones diferentes en el mismo plano, estas curvas se pueden modificar por separado como se menciono anteriormente basta con anotar las cualidades de cada curva delante de los vectores que describen la curva, y todos los comandos para definir las características de la gráfica se utilizan de la misma manera. Otra manera de visualizar dos curvas en el mismo plano es con el comando hold que mantiene toda la información de la primera curva que se grafica en el plano dónde se grafica una segunda curva. Para visualizar dos planos cartesianos en la misma ventana se usa el comando subplot(a,b,c), donde a y b describen una matriz de posiciones en las que se ubicarán los planos y c es la posición del plano en la ventana. Para identificar las curvas en los planos se utiliza el comando legend(‘d’,’e’) donde ‘d’ es la descripción de la primera curva, ‘e’ la descripción de la segunda curva y así sucesivamente; la ubicación de la leyenda dentro o fuera del plano cartesiano se define con la instrucción location seguida de la ubicación. Se pueden agregar a un plano tantas curvas como se desee, siempre que no se pierda la visibilidad de las curvas.

Page 13: Introduccion a MatLab

12

Para ver cómo actúan estos tres comandos se tiene:

t=-2*pi:0.1:2*pi; t1=-pi:0.1:pi; w=sin(t);x=cos(t); y=tan(t1); z=cot(t1); subplot(1,2,1), plot(t,w); hold subplot(1,2,1), plot(t,x, 'g'); title('\fontsize{12} Gráficas de f(t) trigonométricas'); xlabel('Tiempo'); ylabel('f(t)'); axis([0 2*pi -1.2 1.2]); legend('sen(t)','cos(t)','location','North'); grid; subplot(1,2,2), plot(t1,y,'r',t1,z,'k'); title('\fontsize{12} Gráficas de f(t) trigonométricas'); xlabel('Tiempo'); ylabel('f(t)'); axis([-pi pi -35 35]); legend('tan(t)','cot(t)','location','North'); grid;

0 1 2 3 4 5 6

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Gráficas de f(t) trigonométricas

Tiempo

f(t)

sen(t)

cos(t)

-3 -2 -1 0 1 2 3

-30

-20

-10

0

10

20

30

Gráficas de f(t) trigonométricas

Tiempo

f(t)

tan(t)

cot(t)

Figura 3.4 Dos Planos Cartesianos en Una Ventana Conteniendo Dos Curvas Cada Uno a la Derecha usando hold y a la Izquierda usando plot(x1,y1,x2,y2)

polar(x,y)

El comando polar sirve de la misma manera que plot para desplegar gráficas de funciones, pero éstas se presentan en el plano polar, es decir, sirve para observar el comportamiento de señales complejas en función de su magnitud y fase, en este caso x es la fase y y corresponde a la magnitud con que se

Page 14: Introduccion a MatLab

13

posicionan los puntos dentro del plano complejo. Para mostrar el comportamiento de este comando se muestra la siguiente figura:

t=-1.2:0.1:1.2; x=sin(t*pi/2)+j*tan(t); polar(angle(x),abs(x))

1

2

3

30

210

60

240

90

270

120

300

150

330

180 0

Figura 5.3 Gráfica Polar en el Plano Polar

pretty(x)

El comando pretty(x) que se encuentra en el Toolbox Symbolic se utiliza para llevar una expresión que inicialmente estaba escrita “en línea” para presentarla de manera algebraica; se utilizó en todos los ejemplos anteriores para presentar de manera más adecuada las respuestas obtenidas de las operaciones efectuadas, otro ejemplo de pretty(x) es:

syms t x=(cos(t)^2)*sin(t) x =

cos(t)^2*sin(t) pretty(x)

2 cos(t) sin(t)

Para el desarrollo de la práctica se utiliza únicamente Simulink de MatLab, pero es posible calcular la transformada de Laplace de las señales desde MatLab utilizando el Toolbox Symbolic.

rand(n,m)

Este comando genera una matriz de valores aleatorios, con n renglones y m columnas, tantas veces como se genere la matriz los valores cambiarán, ya que no responden a una función determinística.

Page 15: Introduccion a MatLab

14

Un ejemplo de cómo se ve la matriz generada es:

Primera corrida de rand(n,m) Segunda corrida de rand(n,m)

rand(2,2) rand(2,2) ans = ans =

0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185

real(x)

El comando real(x) calcula la parte real de un valor complejo, un ejemplo del funcionamiento de este comando es:

x=7/2*pi+j*6; y=real(x) y =

10.9956

stem(x,y)

Este comando presenta un comportamiento semejante a plot, con la variación de desplegar gráficas discretas, esto es se genera un vector de puntos en función de un vector definido para una variable independiente, pero los puntos no se unen formando una curva, si no que se presentan como impulsos respetando la forma de onda. Para dar un ejemplo se tiene la siguiente figura:

t=0:pi/8:2*pi; x=sin(t); stem(t,x)

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Figura 5.4 Gráfica Discreta en el Plano Cartesiano

Page 16: Introduccion a MatLab

15

sum(x)

El comando sum(x) aplicado directamente sobre una matriz, suma el valor de los elementos de cada columna de la matriz, en este caso ayuda a calcular las sumatorias utilizadas en la representación de series de Fourier de las señales, un ejemplo es:

[n]=meshgrid(0:1:3) n =

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

sum(n) ans =

0 4 8 12 syms

El comando syms, que se encuentra en el Toolbox Symbolic, tiene como finalidad definir variables simbólicas para el cálculo simbólico de operaciones matemáticas, como integración, derivación, obtención de transformada de Fourier y Laplace, etc., por ejemplo para definir la variable tiempo como una variable simbólica, es decir sin valor definido, se usa:

syms t

Simulink

Simulink es un Toolbox de MatLab de uso específico para la simulación del comportamiento de sistemas, permite una variedad virtualmente infinita de operaciones, interconexiones y diagramas que le dan la capacidad de simular prácticamente cualquier sistema representado en EDOL. Algunos bloques usados son:

Bloque de entrada, existen bloques que simulan escalones (Step), rampas (Ramp), funciones periódicas como el seno (Sine Wave) o trenes de pulsos (Signal Generator), etc. En estos bloques se puede modificar su amplitud, fase, frecuencia y corrimientos, si es que existen, para definir las señales de entrada correctamente.

Otro bloque de entrada que permite modificar prácticamente todas las características de las señales es el constructor de señales (Signal Builder), en éste algunos puntos de las señales son móviles, lo que permite modificar la señal fácilmente.

Cuando las señales presentan corrimientos a la izquierda, es entendible que la simulación deba verse en tiempo menor a cero, para hacer esto se fija el tiempo de simulación en el

Page 17: Introduccion a MatLab

16

constructor de señales y de manera global en Simulink para que las lecturas sean homogéneas.

Se usa el bloque integrador (Integrator), que tiene como entrada cualquier señal y como salida la integral de dicha señal, si existen condiciones iniciales en el sistema se incluyen en este bloque.

Hay también un bloque derivador (Derivative), tiene como entrada cualquier señal y como salida la derivada de dicha señal, la mayoría de las operaciones de derivación inyectan cierto grado de inestabilidad a los sistemas, por lo que se busca usar este bloque lo menos posible.

Existen bloques de operaciones aritméticas simples: suma y producto que relacionan dos señales por medio de estas operaciones y tienen como salida el resultado de la operación correspondiente.

El bloque de ganancia (Gain) amplifica la señal por factores que pueden ser escalares, vectores o matrices.

El bloque osciloscopio (Scope) ayuda a observar lo que sucede en el sistema, se conecta directamente a los puntos del sistema cuyo comportamiento se desea conocer y en la ventana se observan estas señales, se puede conectar más de un punto al osciloscopio y ver dos o más canales en la misma ventana.

Es importante mencionar que no existe un bloque de impulso unitario en Simulink, por lo que si se desea simular in sistema LIVT con una entrada impulso unitario, recordando que la derivada de la salida de un sistema a un escalón unitario es la salida del sistema a un impulso unitario, se puede

Page 18: Introduccion a MatLab

17

simular el sistema con una entrada escalón unitario y derivar la salida para conocer la respuesta a un impulso unitario.

Para ejemplificar el funcionamiento de este Toolbox se muestra el diagrama de un sistema simulado y la lectura obtenida del osciloscopio:

La ecuación diferencial del sistema simulado es:

21 2

( )2 4

y y y x t

Figura 5.5 Diagrama de Bloques de Simulación Figura 5.6 Lectura de la Respuesta del Sistema de de un Sistema de Segundo Orden Segundo Orden a una Entrada Escalón Unitario

Simulink cuenta con bloques para el manejo de señales continuas, discontinuas y discretas, pero cabe mencionar que no se pueden simular funciones de la frecuencia ni señales representadas por series de Fourier ya que el osciloscopio representa funciones cuya única variable es el tiempo, por lo que si se desea simular un sistema, es necesario conocer su función del tiempo, es mucho más sencillo si se toma la ecuación diferencial que representa el sistema ya que se usan los bloques de derivación e integración para construir el diagrama de bloques.

Para la simulación de sistemas, utilizando la representación de la transformada de Laplace, se considera que los bloques son:

El bloque de entrada, el bloque de suma, bloques de ganancia, ya sea en lazo directo o en retroalimentación, y el osciloscopio.

Los bloques de integración que se ocupan generalmente para representar la ecuación diferencial del sistema, se pueden sustituir por un sólo bloque que contenga la función de transferencia (Transfer Fcn) del sistema.

Page 19: Introduccion a MatLab

18

Si se quiere simular un sistema LIVT a una entrada impulso unitario, recuerde que la salida de un sistema a un impulso unitario es la derivada de la salida del sistema a un escalón unitario. En términos de la función de transferencia, esto se puede implementar en Simulink de otra forma: se multiplica la función de transferencia por s , se simula esta nueva función de transferencia a una entrada escalón unitario, y la salida obtenida es la salida a un impulso unitario.

Para dar un ejemplo del uso de estos bloques con una función de transferencia se tiene la siguiente simulación:

Figura 5.7 Diagrama de Bloques del Sistema Simulado Figura 5.8 Arriba: Señal de entrada del sistema Abajo: Señal de salida del sistema