Está en la página 1de 5

Laboratorio de Sistemas de Control I 2018-II

Curso de Laboratorio de Sistemas de Control I


Guía Nº 1
Matlab
I- Objetivos
a. Familiarizarse con el entorno de Matlab.
b. Familiarizarse con las funciones básicas de Matlab para el desarrollo del curso.

II- Introducción
MATLAB (MATrix LABoratory) es un programa orientado al cálculo con matrices, al
que se reducen muchos de los algoritmos que resuelven problemas de matemática
aplicada e Ingeniería.

En la figura 1 se presentan las principales partes del entorno de Matlab.

Editor de funciones
Carpeta Actual Área de
(Directorio) trabajo

Ventana de comandos

Figura 1. Entorno de Matlab R2014a

El escritorio incluye los siguientes paneles:


-Carpeta actual (Current Folder): para acceder a los archivos.
-Ventana de comandos (Command Windows): para ingresar comandos en la línea de
comandos, identificada por el indicador (>>).
-Área de trabajo: para explorar datos que cree o importe de archivos.

III- Procedimiento
a. Parte 1: Variables, vectores y matrices
Para crear una variable denominada a, debe ingresar esta instrucción en la línea de
comandos:
>> a = 1

MATLAB agrega la variable a al área de trabajo y muestra el resultado en la ventana de


comandos.

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica y Eléctrica


JCMF
Laboratorio de Sistemas de Control I 2018-II

a=
1
Cree algunas variables más.
>>b = 2
b=
2
>>c = a + b
c=
3
>>d = cos(a)
d=
0.5403

Cuando no se especifica una variable de salida, MATLAB utiliza la variable ans,


abreviatura de answer (respuesta), para almacenar los resultados del cálculo.
>>sin(a)
ans =
0.8415

Si una instrucción finaliza con punto y coma, MATLAB realiza el cálculo, pero elimina
la visualización de la salida en la ventana de comandos.
>>e = a*b;
Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con
una coma (,) o un espacio.
>> a = [1 2 3 4]
a=
1 2 3 4

Este tipo de arreglo es un vector fila.

Para crear una matriz con varias filas, separe las filas con punto y coma.
>>a = [1 2 3; 4 5 6; 7 8 10]
a=
1 2 3
4 5 6
7 8 10

Realice las siguientes operaciones y explique el resultado obtenido:


a + 10; sin(a); a'; p = a*inv(a); a.*a; a.^3; A = [a,a]; B = [a; a]

b. Parte 2: Comandos útiles


Describa en sus propias palabras las siguientes instrucciones y muestre un ejemplo de su
utilización:
- Help función
- Clc
- Clear variable

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica y Eléctrica


JCMF
Laboratorio de Sistemas de Control I 2018-II

- Clear all
- Close all

c. Parte 3: Guardar y Recuperar datos


Para almacenar todo lo introducido y obtenido en la ventana de comandos, se utiliza la
siguiente instrucción
>>diary(‘sesion1.txt’); (almacena todo lo que aparezca en la ventana de
comandos en el archivo sesion1.txt )
>>diary on (activa el almacenamiento en el archivo)
>>diary off (desactiva el almacenamiento en el archivo)
Para Guardar variables, que ya estén previamente definidas, en un archivo de extensión
.mat, se utiliza las siguientes instrucciones:
>> save datos1.mat ; (guarda todas las variables en el archivo datos1.mat)
>> save datos2.mat x; (sólo guarda la variable x en el archivo datos2.mat )
Para Recuperar variables
>>load(‘datos.mat’)
Para el informe final adjunte el archivo Sesion1.txt y el archivo varPol.mat donde
incluye todo lo desarrollado y las variables creadas para e desarrollo de la Parte 4.

d. Parte 4: Polinomios
En Matlab los polinomios son representados por vectores. Por ejemplo el siguiente
polinomio:
𝑃(𝑠) = 𝑠 4 + 2𝑠 3 − 9𝑠 2 − 2𝑠 + 8

Se representaría en Matlab de la siguiente manera:


>> P=[1 , 2, -9 , -2 ,8];
Para extraer las raíces de un polinomio
>> r=roots(P);
Para hallar el polinomio cuyas raíces sean r1=0.5, r2=1 y r3=3
>> P2=poly([1 0.5 3]);
Para multiplicar polinomios
>> P3=conv(P,P2);
Para dividir:
>> [Q,R]=deconv(P3,P);

Ahora defina el siguiente polinomio: 𝑄(𝑠) = 2𝑠 4 − 𝑠 2 + 0.5𝑠 + 6 y obtenga los


resultados de las siguientes operaciones:
P(s)+Q(s) P(s)xQ(s) P(s)/Q(s)

e. Parte 5: Programación
En Matlab es posible ingresar comandos del lenguaje uno por uno en la línea de
comandos, o en su lugar, escribir una serie de comandos en un archivo y luego ejecutarlo
como cualquier función de MATLAB. Use el editor de MATLAB o cualquier otro editor
de texto para crear sus propios archivos de funciones. Llame a estas funciones como lo
haría con cualquier otra función o comando de MATLAB.

Existen dos tipos de archivos de programa:

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica y Eléctrica


JCMF
Laboratorio de Sistemas de Control I 2018-II

Scripts, que no aceptan argumentos de entrada ni devuelven argumentos de salida.


Operan sobre datos en el área de trabajo.
Funciones, que aceptan argumentos de entrada y devuelven argumentos de salida. Las
variables internas son locales para la función.

Clarifiquemos esto con el siguiente ejemplo:


En el Editor creamos el siguiente script llamando: triarea.m que calcula el área del
triángulo:

b = 5;
h = 3;
a = 0.5*(b.*h)

Después de guardar el script, este puede ser ejecutado desde la línea de comandos, de
la siguiente manera:

>> triarea
a=
7.5000

Nótese que si queremos calcular el área de otro triangulo usando el mismo script, se
debería actualizar los nuevos valores de b y n modificando el código del script. Sin
embargo, en lugar de actualizarlo manualmente cada vez, se puede hacer un programa
más flexible convirtiéndolo en una función. Reemplace las líneas de asignación de
valores a b y h con la instrucción de declaración de función de la siguiente manera:

function a = triarea(b,h)
a = 0.5*(b.*h);
end

Después de guardar la función, puede ser llamada con diferentes valores de base y altura,
desde la línea de comandos sin modificar su codificación, de la siguiente manera:

>>a1 = triarea(1,5)
>>a2 = triarea(2,10)
>>a3 = triarea(3,6)
a1 =
2.5000
a2 =
10
a3 =
9

Desarrolle los siguientes ejercicios:


i. Cree un script que pida al usuario que ingrese los coeficiente de una ecuación
cuadrática (𝑎𝑥 2 + 𝑏𝑥 + 𝑐) y que arroje como resultado las soluciones
siempre y cuando sean reales caso contrario que muestre un mensaje que las
soluciones no son reales. Luego convertirla en una función.

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica y Eléctrica


JCMF
Laboratorio de Sistemas de Control I 2018-II

ii. Cree un script que muestre la gráfica de la función 𝑌(𝑡) = e−3∗t sin(2 ∗
𝑝𝑖 ∗ 10 ∗ 𝑡) , para un intervalo de 0 a 1 segundo.
iii. Cree una función que grafique Y para una determinada frecuencia e intervalo
de tiempo que son ingresados como argumentos de entrada de la función.
iv. Cree una función que calcule el factorial de un número.
v. Cree una función que sea capaz de multiplicar dos matrices y obtener la matriz
inversa del resultado.

f. Parte 6: Comandos básicos para sistemas de control


Para definir una función de transferencia en Matlab, lo hacemos con el comando tf.
Definamos la siguiente función de transferencia:
𝑠 2 + 2𝑠 + 3
𝐻(𝑠) =
𝑠 3 + 3𝑠 2 + 3𝑠 + 1
>>% Introducir una función de transferencia polinómica
>>num=[ 1, 2, 3]; % declaramos el numerador como un polinomio
>>den=[1, 3, 3, 1]; % declaramos el denominador como un polinomio
>>sys=tf(num,den) % declaramos la función de transferencia

sys =
s^2 + 2 s + 3
---------------------
s^3 + 3 s^2 + 3 s + 1

Continuous-time transfer function.

Desarrolle los siguientes ejercicios:


i. En sus propias palabras defina que es una función de transferencia.
ii. Defina en Matlab la siguiente función de transferencia:
𝑠 2 + 64
𝐺(𝑠) =
(𝑠 + 1)(𝑠 2 + 6𝑠 + 8)
iii. Encontrar el equivalente en funciones parciales de G(s).
iv. Encuentre los ceros de G(s) y H(s). (cuando el numerador se hace cero).
v. Encuentre los polos de G(s) y H(s). (cuando el denominador se hace cero).
vi. Obtener la respuesta temporal de G(s) y H(s) ante una entra escalón unitario
(step)

IV- Bibliografía
a. Documentación de Matlab (https://es.mathworks.com/help/matlab/)

V- Informe Final
a. Presente los resultados obtenidos de forma ordenada y detallada obtenidos durante el
procedimiento desarrollado.
b. Se presentará un informe final (si es digital usar sólo formato *.doc o *.pdf) y además
adjuntar en otro fichero comprimido (*.rar o * zip) conteniendo los archivos que hayan
sido creados en el desarrollo de la guía.
c. Plazo máximo de presentación: 1 semana después de presentación de la experiencia.

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica y Eléctrica


JCMF