Guia Matlab JASM

7

Click here to load reader

Transcript of Guia Matlab JASM

Page 1: Guia Matlab JASM

FACULTAD DE INGENIERÌA ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA LABORATORIO DE FUNDAMENTOS DE CONTROL PERIODO AGOSTO-DICIEMBRE DE 2009 INTRODUCCIÓN AL SOFTWARE MATLAB

1. INTRODUCCIÓN MATLAB (MATrix LABoratory) es un software creado por la compañía The Mathworks que es ampliamente utilizado debido a su versatilidad en el desarrollo de cálculos muy complejos utilizando como unidad básica arreglos numéricos (vectores y matrices). No obstante, el uso de herramientas conocidas como Toolboxes incluidas en el entorno, permiten crear aplicaciones muy interesantes. Los usuarios pueden emplear funciones incluidas en el software para desarrollar nuevas aplicaciones. MATLAB dispone de un ambiente gráfico llamado Simulink, en el cuál se interconectan bloques y se pueden emplear datos y variables provenientes del Workspace para realizar las simulaciones. Este entorno facilita enormemente el desarrollo de nuevas aplicaciones y facilita varios aspectos en términos de depuración y edición. De igual manera, algunos bloques de los toolboxes se encuentran disponibles en Simulink. Para el análisis y diseño de sistemas de control se incluyen diferentes herramientas tales como:

Control System toolbox: Toolbox dedicado al análisis y diseño de sistemas de control. Dispone de una herramienta gráfica conocida como Sisotool que permite ajustar sistemas de control, usando el modelo de una planta, características de los bloques de realimentación, actuadores, perturbaciones. Los controladores se pueden ajustar y observar el comportamiento del sistema ante diversas señales de entrada.

Signal processing toolbox: Este paquete permite procesar señales. Por ejemplo, en ocasiones es necesario crear filtros para realizar un sistema de control de seguimiento de referencia y es necesario diseñar filtros óptimos que, inclusive, pueden ser implementados en hardware.

Curve fitting toolbox, System identification Toolbox: El primero facilita la interpolación de datos. El segundo permite obtener modelos en la variable compleja s de una serie de datos.

2. OBJETIVOS DE ESTA GUÍA Esta guía permitirá a los estudiantes realizar el manejo básico de algunas funciones de Matlab y el uso de Simulink como herramientas para el análisis y diseño de sistemas de control.

Page 2: Guia Matlab JASM

3. OPERACIONES BÁSICAS 3.1 Creación de señales y representarlas gráficamente

Se creará una señal senoidal con una frecuencia de 1Hz, una amplitud de 1 y se visualizarán 3 segundos de esta señal.

En primer lugar, se creará un vector tiempo de la siguente manera: tiempo=0:0.05:3; Esta sintaxis permite crear un vector cuyo valor mínimo es 0, valor máximo 3 y se incrementará en 0.05.

Ahora, se creará la señal senoidal. Se usa este vector de tiempo para el respectivo cálculo. Escribir lo siguiente: seno=1*sin(2*pi*1*tiempo); de esta manera se creará el vector que contiene los valores de la función seno antes mencionada.

Ahora bien, se empleará el comando plot para realizar las gráficas. Se utiliza el comando plot(tiempo,seno);.grid; De esta manera, aparecerá una ventana emergente que permitirá visualizar el gráfico Amplitud Vs Tiempo de la señal senoidal, con una grilla que facilita la visualización. Los resultados se muestran en la figura 1.

Figura 1. Resultados al crear la señal seno.

Ahora, se pide calcular una señal coseno que se graficará junto a la señal seno. Las propiedades son las mismas. Usar el comando coseno=1*cos(2*pi*1*tiempo);

El comando para graficar las dos curvas en la misma ventana será el siguiente: figure(2);plot(tiempo,seno,tiempo,coseno);grid; Se graficarán dos señales desfasadas 90º una de otra. El comando figure(2); crea una nueva ventana donde se graficarán las señales seno y coseno creadas.

Para recibir información sobre la interacción de las funciones anteriormente empleadas, usar el comando help funcion; para recibir ayuda de MATLAB. Por ejemplo, usar el comando help plot mostrará las opciones que tiene la función de graficación plot. De esta manera, se puede obtener información referente al funcionamiento de

Page 3: Guia Matlab JASM

CUALQUIER funcion que se encuentre incluida en MATLAB o en cualquiera de sus Toolboxes.

Figura 2. Resultados al graficar las señales seno y coseno. 3.2 Manipulación de vectores y matrices

Cree un vector x con 10 elementos del 1 al 10, de la siguiente manera: x=1:10; Los elementos en un vector se acceden como nombreArreglo(Elemento), donde elemento

va de 1 hasta n. Ahora, si queremos observar los primeros 5 elementos escribir el comando x(1:5) Una matriz se crea separando los elementos de cada COLUMNA por espacios y las filas

se separan con “;”. Crear una matriz y asi: y=[1 2 3;4 5 6;7 8 9]; Para acceder a una fila en particular, por ejemplo la segunda fila se puede usar el

comando y(2,:). Esto equivale a una sintaxis como “de la segunda fila, seleccione TODOS los elementos. Si la sintaxis cambia a y(2,1:2) se seleccionarán los primeros 2 elementos de la segunda fila.

Para acceder a columnas de una matriz, la sintaxis cambia a y(:,3). En este caso, se está accediendo a la tercera columna de la matriz. Evidentemente, se retorna un VECTOR COLUMNA.

De igual manera, para seleccionar elementos de una columna, se utiliza la sintaxis y(2:3,3),donde se seleccionan los elementos de las 2 ultimas filas de la ultima columna de la matriz y.

El acceso a un elemento de la matriz se realiza con nombreMatriz(fila)(columna), donde fila y columna se encuentran entre 1 y n (filas) y 1 y m (columnas).

Es posible obtener transpuestas de vectores y matrices. Agregar simplemente la comilla simple al nombre del arreglo. Por ejemplo, usar transX=x’; donde se obtiene el

Page 4: Guia Matlab JASM

vector columna del vector x. Al usar el comando transY=y’ se obtiene la matriz transpuesta de y.

También es posible realizar la solución de un sistema de ecuaciones gracias a las operaciones matriciales. Recuerden que un sistema de ecuaciones se puede expresar de la forma AX=B, donde la solución es X=A-1B.

Resolver el siguiente sistemas de ecuaciones:

045

;11186

;832

zyx

zyx

zyx

La matriz A se crea como A=[1 2 3;-6 8 11;5 1 4] y el vector columna B se

crea como: B=[8 -1 0]’. La inversa de A se crea con el comando InvA=inv(A); Finalmente, se puede calcular la solución al sistema de ecuaciones asi: X=InvA*B; En este caso, se ha usado UNA MULTIPLICACION de matrices sin inconvenientes.

Estas operaciones no solamente se limitan a esto. Tambien se puede realizar un producto elemento por elemento, sumas, restas, entre otros.

3.3 Creación de funciones de transferencia y sistemas en espacio de estado

Se creará una función de transferencia del tipo H(S)=1/(2s+1). El sistema tiene una constante de tiempo de 2 segundos al cambio de escalón.

Para esto, se crea un par de vectores que serán el numerador y el denominador de H(s). crear un vector num=[1]; y un vector den=[2 1]. El vector den está en potencias decrecientes de la variable compleja s.

Ahora, se creará la función de transferencia con el comando tf. Escribir Hs=tf(num,den)

Finalmente, para observar la respuesta ante el escalon unitario de esta función de transferencia, se puede usar el comando step(Hs). Los resultados se muestran en la figura 3.

Page 5: Guia Matlab JASM

Figura 3. Respuesta ante el escalón de una función de transferencia

Es posible realizar una conversión de un modelo expresando en función de transferencia al espacio de estados. El comando que debe emplearse para este ejemplo es: [A1,B1,C1,D1]=tf2ss(num,den); En este caso, la función tf2ss retornará 4 matrices A1,B1,C1,D1 propias del modelo en espacio de estados del sistema.

De igual manera, se pueden obtener el numerador y denominador de las funciones de transferencia de acuerdo al modelo en espacio de estados. Emplear ahora [num1,den1]=ss2tf(A1,B1,C1,D1,1) y comparar los vectores num1, den1 con los vectores num,den.

3.4 Uso de Simulink

Escribir el comando simulink; de esta manera iniciará simulink. Dar click en el ícono New y aparecerá una ventana con un área blanca. De igual manera, se activa una ventana que muestra las diferentes librerias.

Se creará una simulación donde se realice la excitación de dos señales escalón unitario para un sistema de segundo orden. Se observará la señal de entrada y la señal de salida.

Para esto, es necesario utilizar los siguientes bloques: o Librería Simulink, bloque commonly used block, elemento Bus Creator. o Librería Simulink, bloque commonly used block, elemento Scope. o Librería Simulink, bloque continuous, elemento Transfer fcn. o Librería Simulink, bloque sources, elemento Step.

Page 6: Guia Matlab JASM

En el bloque Transfer fcn dar doble click. Observar que aparecen renglones donde se puede configurar los coeficientes del numerador y del denominador y tienen sintaxis de creación de vectores. Dejar el numerador como [1] y el denominador cambiarlo a [2 1]

En el bloque Step, dar doble click. En el parámetro Step time configurarlo al valor 15, inicial value cambiarlo a 1 y final value cambiarlo a 2. De esta manera, se obtiene una excitación tipo escalón de magnitud 1 al sistema cuando inicia la simulación y cambiará a un escalón de magnitud 2 a los 15 segundos.

En la parte superior, modificar el tiempo de simulación (aparece un recuadro configurado en 10.0). Cambiarlo a 30. de esta manera, la simulación tomará 30 segundos.

Para cambiar los parámetros de la simulación (métodos numéricos empleados, paso de desarrollo de los métodos, tiempos máximos y minimos, entre otras) se puede acceder al menú simulation>configuration parameters y usar la opción solver. Debe tenerse en cuenta una buena configuración para evitar errores en los pasos de solución de los métodos numéricos, esto para sistemas MUY complejos o cuando se trabaje con sistemas en tiempo discreto.

Unir los puertos de entrada y salida de los bloques. Luego, presionar el botón de inicio y abrir el objeto scope. Ver la figura 4 donde se muestran los resultados.

Figura 4. Primera simulación en Simulink

Los resultados de los scope en Simulink se pueden almacenar como vectores o estructuras de datos en el workspace. Esto es con el fin de mejorar la visualización de los datos obtenidos en los informes. Dar doble click en el objeto Scope y acceder a la opción Parameters en la barra de herramientas del objeto. En la pestaña Data History se puede MANIPULAR la máxima cantidad de datos que se despliegan en el elemento, el cuál se puede manipular en caso de disponer de grandes. Activar la opción Save data to workspace, seleccionar como formato array y modificar el nombre a conveniencia.

Page 7: Guia Matlab JASM

Una vez ejecutada la simulación, observar que en el workspace se ha creado una matriz, cuya cantidad de columnas corresponde a la magnitud de las señales y el tiempo. La primer columna SIEMPRE es el tiempo.

Se graficarán las señales nuevamente, en un plot , con los siguientes comandos (ver figura 5):

o tiempoSim=ScopeData(:,1); o senal1=ScopeData(:,2); o senal2=ScopeData(:,3); o plot(tiempoSim,senal1,tiempoSim,senal2);

Figura 5. Grafica de datos generados en Simulink en el workspace

3.5 Actividades adicionales

El libro INGENIERÍA DE CONTROL MODERNA de K. Ogata dispone de una serie de ejercicios al finalizar cada uno de sus capítulos donde emplea el programa Matlab. En Internet hay gran cantidad de tutoriales e inclusive, la ayuda de la herramienta dispone de MULTIPLES ejemplos al respecto.

Leer el documento guia_matlab.pdf presente en el Campus Virtual, para afianzar algunas habilidades adicionales en el manejo del software. Realizar los ejercicios