Está en la página 1de 18

LABORATORIO DE CONTROL

AUTOMÁTICO

GUIA 1

USO DE MATLAB

Académico: Eduardo Andrés Monje Grandjean


Carrera: Ingeniería en Automatización y Control Industrial
Universidad Tecnológica de Chile, Sede Valdivia

GUÍA DE USO DE MATLAB

Se necesitan unos pocos comandos básicos para empezar a utilizar MATLAB. Esta pequeña
guía explica dichos comandos fundamentales. Habrá que definir vectores y matrices para poder
modificarlos y operar con ellos. Se trata de comandos cortos de alto nivel, porque MATLAB trabaja
constantemente con matrices, entre las aplicaciones que ofrece este software tenemos: realizar
operaciones de álgebra lineal mediante una serie de instrucciones cortas:

La palabra eye designa a la matriz identidad. La submatriz u=E(:,1) toma la primera columna de
la anterior. La instrucción E(3,1)=5 reemplaza por el número el elemento presente en la matriz E en
la coordenada (3,1) (Nota: no olvidar la convención de coordenadas como (fila, columna) ). El
comando E*u multiplica las matrices E y u. todos estos comandos se repiten en la lista que aparece
a continuación. Aquí se presenta un ejemplo de cómo invertir una matriz y resolver un sistema
lineal:

Se sumó una matriz formada por unos a eyes(3), y b es su tercera columna. A continuación, inv(A)

genera la matriz inversa. El sistema Ax=b se resuelve mediante x=inv(A)*b, el método lento.

Comentarios: Precedidos por el símbolo %


% Los símbolos a y A son diferentes: MATLAB distingue por defecto entre unos casos y otros.

% Escribir help y luego el comando: para obtener una explicación del modo de utilizar el comando
o símbolo. La palabra help (ayuda) puede ir seguida de un símbolo o del nombre de un
comando o de un archivo (de extensión .m) de MATLAB.
% Para ver los números con 16 dígitos, escribir format long (formato largo). El formato normal,
format short (formato corto), muestra 4 dígitos decimales.
% Si se escribe punto y coma luego de redactar un comando, el programa no mostrará su
resultado. Ejemplo: A=ones(3); no mostrará la matriz identidad 3x3.
% Utilizar la flecha del desplazamiento hacia arriba del cursor para volver a comandos anteriores.
Universidad Tecnológica de Chile, Sede Valdivia

Cómo introducir un vector filas o columna

u = [2 4 5] Tiene una fila con tres elementos (matriz de dimensión 1x3).


v = [2; 4; 5] Tiene tres filas separadas por puntos y comas (matriz de 3x1).
w = 2:5
 Define el vector fila w= [2 3 4 5] mediante valores que aumentan sucesivamente en
una unidad.
u=1:2:7 Asigna valores que aumentan en dos unidades para obtener u = [1 3 5 7]

Cómo definir una matriz (introduciendo las filas una por una)

A = [1 2 3; 4 5 6] Tienes dos filas (el punto y coma siempre separa unas filas de otras).
A = [1 2 3
4 5 6] También genera la matriz A, pero es más difícil de escribir.

Cómo generar matrices especiales

diag(v) Genera una matriz diagonal con el vector v como diagonal.


ones(n) Genera una matriz de dimensión n x n con todos los valores igual a uno.
zeros(n) Genera una matriz de dimensión n x n con todos los valores igual a cero.
eye(n) Genera una matriz identidad de dimensión n x n.
rand(n) Genera una matriz de dimensión n x n con elementos de valor aleatorio entre 0 y 1.
ones(m,n), zeros(m,n), rand(m,n) Generan matrices de dimensión m x n.

Cómo cambiar elementos en una matriz A dada

A (3,2) = 7 Reemplaza un 7 en la coordenada (3,2) de la matriz A.


A (3,:) = v Sustituye los valores de la tercera fila por los de v.
A (:,2) = w Sustituye los valores de la segunda columna por los de w.

% El símbolo de los dos puntos ‘:’ significa todo (todas las columnas o todas las filas)

A([2 3], :) = A([3 2],:) Intercambia las filas 2 y 3 de A.

Cómo crear submatrices de una matriz A de m x n

A(i,j) Muestra el elemento (i,j) de la matriz A (escalar = matriz de 1x1)


A(i,:) Muestra la fila i-ésima de A (como vector fila).
A(:,j) Muestra la columna j-ésima de A (como vector columna).
A(2:4, 3:7) Muestra las filas de la 2 a la 4 y las columnas de la 3 a la 7 (en forma de matriz de 3
x 5 en este caso).
A([2 4], :) Muestra las filas 2 y 4 y todas las columnas (en forma de matriz de 2 x n).
A(:)
 Muestra una sola columna larga formada a partir de las columnas de A (matriz de mn
x 1)
triu(A) Coloca ceros en todos los elementos por debajo de la diagonal.
tril(A) Coloca ceros en todos los elementos por encima de la diagonal.

2
Universidad Tecnológica de Chile, Sede Valdivia

Multiplicación e inversión de matrices

A*B Da la matriz resultante del producto AB (si dicha operación es posible).


A.*B Da el producto elemento por elemento (si tamaño de A = tamaño de B)
inv(A)
 Da A-1 si A es cuadrada e invertible.
A/B Da inv(A)*B si existe inv(A), la barra inversa es la división por la izquierda.
X=A/b Da la solución de Ax=b si existe inv(A).

Números y matrices asociados a una matriz A conocida

det(A) Es el determinante (si A es una matriz cuadrada)


rank(A) Es el rango (dimensión del espacio de filas y del espacio de columnas)
trace(A) Es la traza suma de los elementos de la diagonal

3
Universidad Tecnológica de Chile, Sede Valdivia

Creación de gráficos

A continuación se muestran los pasos básicos para representar gráficamente en MATLAB la


función seno:

t=0:0.1:10; %Se define el eje de tiempo, como un vector con valores desde 0 a 10 con un
%incremento igual a 0.1
y1=sin(t); %Se define la función que se desea graficar, en este caso la función seno ‘sin(t)’
plot(t,y1) %El comando plot sirve para graficar. La convención es plot(eje X, eje Y)

Luego de escribir las líneas en la ventana de comando MATLAB automáticamente abre una
ventana mostrando la representación gráfica de la función:

Ahora para mejorar la apariencia de una representación gráfica, se tienen los siguiente comandos:

xlabel(‘tiempo’) % Etiquetado del eje horizontal


ylabel(‘amplitud’) % Etiquetado del eje vertical
title(‘Gráficas de la función seno’) % Nombre del gráfico

Observe el aspecto de la figura creada:

4
Universidad Tecnológica de Chile, Sede Valdivia

grid % Comando que sirve para aplicar un cuadriculado al gráfico

Para representar varias señales a la vez, puede realizar el siguiente conjunto de instrucciones:

t=0:0.1:10;
y1=sin(t);
y2=sin(t-0.5);
y3=sin(t-0.25);
plot(t,y1,t,y2,t,y3)

5
Universidad Tecnológica de Chile, Sede Valdivia

clf % Comando que sirve para borrar la gráfica anterior

Veamos comando para subdividir la pantalla y representar distintas gráficas de manera


independientes en una sola ventana:

subplot(2,2,1); plot(t,y1);
 % Con el comando subplot se genera la subdivisión con


% dimensión de 2x2 para este caso y se grafica en el elemento
% 1 de la matriz generada el plot(t,y1).

6
Universidad Tecnológica de Chile, Sede Valdivia

Para representar gráficamente las demás funciones en una misma ventana, se tiene:

subplot(2,2,1); plot(t,y1);
subplot(2,2,2); plot(t,y2);
subplot(2,2,3); plot(t,y3);

7
Universidad Tecnológica de Chile, Sede Valdivia

Edición de Dibujos

Cuando aparece una figura, podemos emplear las opciones que aparecen en los menús
desplegables de la parte superior y las herramientas de la barra de tareas para editar el dibujo.
Se puede emplear el editor de propiedades que se encuentra en el menú EDIT de una figura para
cambiar las propiedades de los distintos elementos de la figura.

8
Universidad Tecnológica de Chile, Sede Valdivia
Universidad Tecnológica de Chile, Sede Valdivia

EJERCICIOS:

Graficar las siguientes señales para t desde -10 hasta +10 con incremento de 0,05:

U1= 4t+10

U2= 2e- 0,5 t – 8

U3= 4t2 + 2t - 4

10
Universidad Tecnológica de Chile, Sede Valdivia

Programación en MATLAB

Creación de archivos de extensión .m: Scripts y Funciones

MATLAB permite trabajar no sólo desde la línea de comandos (Command Window) sino también
mediante la edición de ficheros ‘.m’ como extensión. Los archivos con la terminación .m que
MATLAB utiliza para trabajar pueden clasificarse en dos tipos: funciones y scripts. Un script es una
secuencia de comandos que se pueden ejecutar a menudo y que se pueden guardar en un archivo
de extensión .m para no tener que escribirlos de nuevo. Los scripts no aceptan argumentos de
entrada ni devuelven resultados, operan con las variables del workspace. Las funciones aceptan
argumentos de entrada y SI devuelven resultados.
Para elaborar sus propios scripts o funciones deberán generar un nuevo archivo de texto con el
nombre que usted desee, siempre y cuando termine en .m para que MATLAB lo reconozca. Este
tipo de archivos se pueden crear, editar y guardar con cualquier editor de textos. Un archivo de
script es simplemente una lista de comandos de MATLAB. Cuando se escribe el nombre del
archivo en el command window de MATLAB, su contenido se ejecuta. Para que un archivo .m sea
una función, tiene que empezar por la palabra function seguida de las variables de salida entre
paréntesis, el nombre de la función y las variables de entrada.
Para crear un script nuevo seleccione FILE en el menú principal. Seleccione ahora la opción NEW
y finalmente seleccione M-FILE. Aparece ahora el editor de MATLAB. Un ejemplo sencillo se
muestra a continuación:
Universidad Tecnológica de Chile, Sede Valdivia

Luego en command window escribir: seno

12
Universidad Tecnológica de Chile, Sede Valdivia

Transformada de Laplace

La ventaja de MATLAB sobre los demás software es que es una fuerte herramienta matemática
para poder desarrollar diversas aplicaciones tanto en la matemática como en la simulación.
Una de las herramientas matemáticas a utilizar en MATLAB es la Transformada de Laplace y su
respectiva Transformada inversa.
Antes de aplicar esta herramienta en MATLAB es necesario conocer el concepto:

La transformada de Laplace de una función f (t) definida t > 0 (positiva), es la función F(s), definida
por:

Para aplicar en MATLAB esta transformada primero se deben declarar las variables a utilizar. En la
ventana de comando es donde se declaran las variables:

>>syms s t % El comando syms sirve para declarar variables y las almacena en workspace

Ahora si por ejemplo se desea obtener la transformada de Laplace de la función f(t)=t, en la


ventana de comando se escribe:

>> laplace(t) % El comando laplace() sirve para obtener la transformada de Laplace y la función

%que se desee obtener la transformada se escribe entre paréntesis.

Luego de escribir esto en la ventana de comando MATLAB entregará el resultado:

ans=
1/s^2 % Transformada de Laplace de f (t) = t, es decir, una rampa

Para obtener la Transformada inversa de Laplace de una función F(s) en MATLAB, por ejemplo
para F(s)=1/s. Se debe escribir lo siguiente en la ventana de comando:

>> ilaplace(1/s)
 % El comando ilaplace() sirve para obtener la transformada inversa de


%Laplace de la función en ‘’s’’ que se encuentre entre los paréntesis.

ans=

1
 % Transformada inversa de Laplace de F(s)=1/s, es decir, un escalón

EJERCICIOS:

Obtener las transformadas de Laplace para las siguientes funciones en el tiempo. Luego de ello
aplique a este resultado la transformada inversa de Laplace para corroborar sus resultados:

U1= 4t+10

U2= 2e- 0,5 t – 8

U3= 4t2 + 2t - 4

13
Universidad Tecnológica de Chile, Sede Valdivia

Análisis de sistemas

Cálculo de la función de transferencia para un proceso dado y respuesta de un proceso:

Sea la función de transferencia H(s) definida como:

H(s)= B(s) Tal que:


A(s)

Donde algunos ai y bi pueden ser cero. En MATLAB, los vectores filas ‘num’ y ‘den’ especifican los
coeficientes del numerador y del denominador en la función de transferencia. Es decir:

num=[b0 b1 b2 . . . bn]
den=[a0 a1 a2 . . . an]

El comando H=tf(num,den)

Entrega la expresión de función de transferencia por los dos vectores filas ‘num’ y ‘den’

Para encontrar la respuesta de un proceso a una entrada cualquiera, utilizamos el siguiente


comando:
[y,t]=lsim(H,u,t)

Donde u corresponde a la entrada al sistema y t es la cantidad en que varía la variable de entrada:

ENTRADA SALIDA
U
 Y
FUNCIÓN DE
TRANSFERENCIA
H

EJERCICIO:

Sea H(s) definida como:

H(s) = ____2_____
(s+5) (s+100)

Obtener la respuesta del sistema para las siguientes entradas:

u1= 4t+10

u2= 2e- 0,5 t – 8

u3= 4t2 + 2t - 4
14
Universidad Tecnológica de Chile, Sede Valdivia

Representación gráfica de la respuesta de la función de transferencia para un proceso dado:

Diagrama de Bode:
Un Diagrama de bode esta formado por dos gráficas: una es la gráfica del logaritmo de la magnitud
de la función de transferencia representada en decibeles y la otra es la gráfica del ángulo de fase.
Para graficar un diagrama de bode en MATLAB se debe introducir en la ventana de comando:

bode(num,den)

Ahora bien, si la función de transferencia fue definida anteriormente y asignada a una variable H
por ejemplo, la otra forma de escribir en la ventana de comando para obtener un diagrama de bode
sería:
bode(H)

EJERCICIO:

Obtener el Diagrama de bode para la siguiente función de transferencia:

H(s) = ____2_____
(s+5) (s+100)

Primero se debe expresar tanto el numerador como el denominador de la forma:


num=[b0 b1 b2 . . . bn]
den=[a0 a1 a2 . . . an]

De esta manera la función de transferencia queda expresada de la siguiente manera:

H(s) = ____2_____
s2+105s+500

En la ventana de comando se escribe entonces:

>>num=[2]
>>den=[1 105 500]

>>H=tf(num,den)
Transfer function:
2
-----------------
s^2 + 105 s + 500
>>bode(H)

O bien escribir:
>>bode(num,den)

15
Universidad Tecnológica de Chile, Sede Valdivia

Diagramas de Bloques

Reducción de bloques en sistemas

Para obtener las funciones de transferencias de un sistema en cascada (serie), paralelo,


realimentado (lazo cerrado) o realimentación unitaria se utilizan las siguientes instrucciones:

Caso 1: Bloques en serie

[num,den]=series(num1,den1,num2,den2)

Caso 2: Bloques en paralelo

[num,den]=parallel(num1,den1,num2,den2)

Caso 3: Bloques con realimentación

[num,den]=feedback(num1,den1,num2,den2,-1)

16
Universidad Tecnológica de Chile, Sede Valdivia

Caso 4: Bloques con realimentación unitaria

[num,den]=cloop(num1,den1,-1)

EJERCICIO:

REDUCIR GUIA DE DIAGRAMAS DE BLOQUES A PARTIR DE LOS COMANDOS DE


REDUCCIÓN EN MATLAB. COMPARE CON LO REALIZADO EN PAPEL.

17

También podría gustarte