Está en la página 1de 11

Matlab

Condor Espinoza Daniel Steven y Mio Mío Juan Janpier.


daniel.condor2@unmsm.edu.pe, juan.mio@unmsm.edu.pe
Facultad de Ingeniería Electrónica y Eléctrica - UNMSM

Resumen– En esta sesión de laboratorio logramos


familiarizarnos con el entorno de MATLAB (Command
Window, Current Directory / Workspace, Command
History), de igual manera, con el uso de las funciones basicas
necesarias e indispensables para el desarrollo del curso. Se
desarrollaron distintos puntos dados en la GUIA 1, como por
ejemplo: declaración de variables, vectores, matrices y
polinomios, asi como tambien la programación (scripts /
funciones) y comandos básicos para un mejor manejo del
programa.
B. Procedimiento
Palabras claves– Control, matrices, funciones, scripts. o Parte 1: Variables, vectores y matrices.
Para el desarrollo de la parte 1 hacemos uso de la ventana
Abstract– This function is based on the purpose of
de comandos del software Matlab.
FamilySearch, Current Directory / Work Area,
Para crear una variable denominada a=1, debe ingresar la
Command History and the functional version of the
siguiente instrucción en la ventana de comandos.
manual, as well as the optional parameters of the
>> a = 1
course room. If you have a GUIA 1, comus uses
GUIDE 1, as you use it: declaration of variables, Matlab agrega la variable “a” al espacio de trabajo y
muestra el resultado en la ventada de comandos
vectors, matrices and polynomials, as dictated by
the scripts / functions and dasic commas through
a=1
a better management of the program

Key words– Control, functions, arrays, scripts.

I. INTRODUCCIÓN
En líneas generales, MATLAB es una herramienta
interactiva basada en matrices para cálculos científicos
y de ingeniería (de hecho, el termino MATLAB procede
de matrix laboratory). Desde el punto de vista del Figura 1.1
control, MATLAB se puede considerar un entorno En la figura 1.1 se observa el resultado obtenido de lo
matemático de simulación que puede utilizarse para descrito anteriormente en la ventana de comandos.
modelar y analizar sistemas. Permitirá el estudio de
sistemas continuos, discretos, lineales y no lineales, Creamos las siguientes variables en la ventana de
mediante descripción interna y externa, en el dominio comandos.
temporal y frecuencial.
>> b = 2
II. MATERIALES Y MÉTODOS
b=2
A. Equipos ,materiales y herramientas utilizados
>> c = a + b
 Software MATLAB 2017
c=3

>> d = cos(a)

d = 0.5403
FIEE-UNMSM. Condor, Mio. Matlab. 2

>> a = [1 2 3 4]
a=
1 2 3 4

Figura 1.5
En la figura 1.5 se creo un arreglo con variable “a” y
consta de cuatro elementos.
Figura 1.2
Este tipo de arreglo es un vector fila.
En la figura 1.2 se crea las variables pedidas en el Para crear una matriz con varias filas, separe las filas
enunciado anterior y se logra ver los resultados en la con punto y coma.
ventana de comandos.
>>a = [1 2 3; 4 5 6; 7 8 10]
Cuando no se especifica una variable de salida, a=
MATLAB utiliza la variable ans, abreviatura de 1 2 3
answer (respuesta), para almacenar los resultados de 4 5 6
cálculo. 7 8 10

>>sin(a)

ans =0.8415

Figura 1.6
Figura 1.3 En la figura 1.6 se creo una matriz separando las filas
con punto y coma.
En la figura 1.3 se comprueba que cuando no damos
una variable especifica para ejecutar una operación, el Realice las siguientes operaciones y explique el resultado
software nos brinda el resultado con la variable “ans”. obtenido:
Si una instrucción finaliza con punto y coma,
MATLAB realiza el cálculo, pero elimina la 1)a + 10
visualización de la salida en la ventana de comandos.
>>e = a*b;

2)sin(a)
Figura 1.4

En la figura 1.4 se comprueba que colocando punto y


coma al final de la ejecución, esto conlleva a que la
visualización de la salida en la ventana de comandos
se elimine.

Para crear un arreglo con cuatro elementos en una


fila única, separe los elementos con una coma (,) o un
espacio.

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 3

3)a' En las figuras anteriores se desarrollo las operaciones para


fortalecer lo aprendido.

o Parte 2: Comandos útiles


Describa en sus propias palabras las siguientes
instrucciones y muestre un ejemplo de su utilización:

-Help función: Se usa Help función para que el software


nos brinde ayuda en cómo utilizar correctamente una
4) p = a*inv(a)
función o para que sirve dicha función.

5) a.*a

Figura 2.1

En la figura 2.1 hizo uso de la instrucción help, haciendo


que el software nos brinde ayuda en como usar
correctamente la función conv.

-Clc: Esta instrucción es para limpiar la ventana de


6) a.^3 comandos.

7) A = [a,a]
Figura 2.2

En la figura 2.2 se logra demostrar el funcionamiento de


la instrucción clc.
-Clear variable: Esta instrucción nos sirve para borrar una
variable en específico descrita en el espacio de trabajo.

8) B= [a;a]

Figura 2.3
En la figura 2.3 se logra demostrar lo definido
anteriormente borrando la variable a del espacio de
trabajo.

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 4

-Clear all: Esta instrucción nos sirve para borrar todas En la figura 3.1 se creo un archivo sesion0.txt, luego
las variables del espacio de trabajo. escribimos en la ventana de comandos la palabra diary
on para activar el almacenamiento en el archivo
sesion0.txt, después escribimos en la ventana de
comandos diary off para desactivar el almacenamiento en
el archivo sesion0.txt.
Como resultado obtendremos el archivo sesion0.txt que
podemos visualizar en la figura 3.2.

Figura 2.4
En la figura 2.4 se comprueba lo definido anteriormente
borrando todas las variables del espacio de trabajo.
-Close all: Esta instrucción nos sirve para borrar las
ventanas adicionales que se abren de Matlab, como las
gráficas.
Figura 3.2
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)

Figura 2.5
En la figura 2.5 se comprueba lo definido anteriormente
cerrando la gráfica denominada figure 1. Figura 3.3

En la figura 3.3 se creo un archivo con la extensión. mat,


o Parte 3: Guardar y Recuperar datos en donde guardamos todas las variables.
Para almacenar todo lo introducido y obtenido en la >> save datos2.mat x; (sólo guarda la variable x en el
ventana de comandos, se utiliza la siguiente instrucción archivo datos2.mat)
>>diary (‘sesion1.txt’); (almacena todo lo que aparezca Para Recuperar variables
en la ventana de comandos en el archivo sesion1.txt)
>>load (‘datos.mat’)
>>diary on (activa el almacenamiento en el archivo)
>>diary off (desactiva el almacenamiento en el archivo)

Figura 3.4

En la figura 3.4 se creo un archivo con la extensión. mat


en donde guardamos solo la variable a.

Figura 3.1

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 5

Para el informe final adjunte el archivo Sesion1.txt y el Para multiplicar polinomios


archivo varPol.mat donde incluye todo lo desarrollado y
>> P3 = conv (P, P2);
las variables creadas para el desarrollo de la Parte 4.

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

Figura 4.4

En la figura 4.4 se realizó la multiplicación usando el


comando conv.
Figura 4.1 Para dividir:
En la figura 4.1 se representó el polinomio P(s). >> [Q, R] = deconv P3, P);

Para extraer las raíces de un polinomio


>> r = roots (P);

Figura 4.5
Figura 4.2
En la figura 4.5 se realizó la división usando el
En la figura 4.2 se calculó las raíces del polinomio P(s) comando deconv.
mediante el comando roots.
Ahora defina el siguiente polinomio:
Para hallar el polinomio cuyas raíces sean r1=0.5, r2=1
y r3=3 𝑄(𝑠) = 2𝑠 4 − 𝑠 2 + 0.5𝑠 + 6

>> P2 = poly ([1 0.5 3]);

Figura 4.6

En la figura 4.6 se representó el polinomio Q(s).

Figura 4.3

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 6

y obtenga los resultados de las siguientes operaciones:


Existen dos tipos de archivos de programa:
P(s)+Q(s) P(s)xQ(s) P(s)/Q(s)
Scripts, que no aceptan argumentos de entrada ni
devuelven argumentos de salida. Operan sobre datos en
En la figura 4.7 realizamos un código para el cálculo
el área de trabajo.
de la suma de los polinomios P y Q, la multiplicación
de P y Q y la división de P y Q. 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
Figura 4.7 script. Sin embargo, en lugar de actualizarlo
manualmente cada vez, se puede hacer un programa
En la figura 4.8 visualizamos los respectivos resultados más flexible convirtiéndolo en una función. Reemplace
del código. 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

Figura 5.1

En la figura 5.1 implementamos el código de la función


triarea que se encarga de calcular el área de una región
triangular, teniendo como variables de entrada “b” y “h”
Después de guardar la función, puede ser llamada con
diferentes valores de base y altura, desde la línea de
Figura 4.8
comandos sin modificar su codificación, de la siguiente
manera:
Parte 5: Programación
>>a1 = triarea(1,5)
En Matlab es posible ingresar comandos del lenguaje
uno por uno en la línea de comandos, o en su lugar, >>a2 = triarea(2,10)
escribir una serie de comandos en un archivo y luego
>>a3 = triarea(3,6)
ejecutarlo como cualquier función de MATLAB. Use el
editor de MATLAB o cualquier otro editor de texto para a1 =
crear sus propios archivos de funciones. Llame a estas
2.5000
funciones como lo haría con cualquier otra función o
comando de MATLAB. a2 =

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 7

10
a3 =
9

Figura 5.4

Se calcularon las raíces de la ecuación cuadrática


con coeficientes a=2, b=2, c=2, teniendo como
resultado las raíces NO REALES correspondintes
x1, x2.

Figura 5.2

Se calculó el área de la región triangular en cada caso,


llamando a la función triarea con sus respectivas
variables.

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 Figura 5.5
contrario que muestre un mensaje que las
soluciones no son reales. Luego convertirla en una Se calcularon las raíces de la ecuación cuadrática
función. con coeficientes a=1, b=2, c=-4, teniendo como
resultado las raíces REALES correspondintes x1,
x2.

ii. Cree un script que muestre la gráfica de la función


Y(𝑡)=e−3∗tsin(2∗𝑝𝑖∗10∗𝑡), para un intervalo de 0
a 1 segundo.

Figura 5.3
Figura 5.6
Se implementó un script para el cálculo de raíces de
Se implementó un script el cual nos dara como
una ecuación cuadrática, teniendo en cuenta los
resultado la gráfica de la función 𝑦(𝑡) = 𝑒 −3𝑡 ∗
distintos casos respecto a la discriminante las raíces
sin(𝑤) en un intervalo de tiempo de 0 a 1.
pueden ser reales o no reales.

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 8

Gráfica para la función 𝑦(𝑡) = 𝑒 −3𝑡 ∗ sin(𝑤) en un


intervalo de tiempo de 0 a 1 con frecuencia 10.
iv. Cree una función que calcule la factorial de un número.

Figura 5.7

Gráfica del script creado para la función 𝑦(𝑡) = 𝑒 −3𝑡 ∗


sin(𝑤) en un intervalo de tiempo de 0 a 1.
Figura 5.11
iii. Cree una función que grafique Y para una determinada
frecuencia e intervalo de tiempo que son ingresados En la Figura 5.11 se implementó un script el cual no
como argumentos de entrada de la función. mostrara la factorial de un número teniendo en cuenta
los casos de números negativos, positivos e igual a cero.

Figura 5.8

Se implementó una función y el cual nos dara como


resultado la gráfica de la función 𝑦(𝑡) = 𝑒 −3𝑡 ∗ sin(𝑤)
teniendo como entrada la frecuencia (f) y el intervalo de
tiempo (t2).

Figura 5.12

En la Figura 5.12 se muestran los resultados del


cálculo del factorial de un numero cualquiera N!
.
v. Cree una función que sea capaz de multiplicar dos
Figura 5.9
matrices y obtener la matriz inversa del resultado.
Se llamó a la función el cual nos dará como resultado
la gráfica de la Figura 5.10

Figura 5.10

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 9

Figura 5.13 >>sys = tf(num,den) % declaramos la función


de transferencia
Se implementó una función y el cual nos dará como
resultado la multiplicación de dos matrices a y b sys =
teniendo en cuenta sus dimensiones. También nos s^2 + 2 s + 3
mostrara la matriz inversa de dicho producto (ab). ------------------------
s^3 + 3 s^2 + 3 s + 1
Continuous-time transfer function.

En la figura 6.1 se muestra el código para mostrar la


función de transferencia de H(s).

Figura 6.1

En la figura 6.2 se muestra el resultado del código de la


figura 6.1 obteniendo de esta forma la función de
transferencia.

Figura 6.2

Figura 5.14 Desarrolle los siguientes ejercicios:

Resultados de la función multmatriz, teniendo en i. En sus propias palabras defina que es una función
de transferencia.
cuenta las entradas de las matrices a y b. se pueden
apreciar los distintos casos a analizar La función de transferencia de un sistema la
definimos como la relación que hay entre la
Parte 6: Comandos básicos para sistemas de control transformada de Laplace de la variable de salida y la
Para definir una función de transferencia en Matlab, lo transformada de Laplace de la variable de entrada,
hacemos con el comando tf. Definamos la siguiente suponiendo que las condiciones iniciales se hacen
función de transferencia: iguales a 0.

𝑠 2 + 2𝑠 + 3 ii. Defina en Matlab la siguiente función de


𝐻(𝑠) = transferencia:
𝑠 3 + 3𝑠 2 + 3𝑠 + 1
𝑠2 + 4
𝐺(𝑠) =
>>% Introducir una función de transferencia (𝑠 + 1)(𝑠 2 + 6𝑠 + 8)
polinómica

>>num = [1, 2, 3]; % declaramos el


numerador como un polinomio

>>den = [1, 3, 3, 1]; % declaramos el


denominador como un polinomio

Figura 6.3

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 10

En la figura 6.3 se muestra el código para mostrar la En la figura 6.7 se muestra el código para mostrar
función de transferencia de G(s). los ceros de los polinomios G(s) y H(s).

Figura 6.7
Figura 6.4
En la figura 6.8 se muestra el resultado del código de
En la figura 6.4 se muestra el resultado del código de la figura 6.7 obteniendo de esta forma los ceros de
la figura 6.3 obteniendo de esta forma la función de los polinomios.
transferencia.

iii. Encontrar el equivalente en funciones parciales de


G(s).

En la figura 6.5 se muestra el código para mostrar las


fracciones parciales.

Figura 6.8

v. Encuentre los polos de G(s) y H(s). (Cuando el


Figura 6.5 denominador se hace cero).

En la figura 6.6 se muestra el resultado del código de En la figura 6.9 se muestra el código para mostrar
la figura 6.5 obteniendo de esta forma las funciones los polos de los polinomios G(s) y H(s).
parciales.

Figura 6.9

Figura 6.6 En la figura 6.10 se muestra el resultado del código


iv. Encuentre los ceros de G(s) y H(s). (Cuando el de la figura 6.9 obteniendo de esta forma los polos
numerador se hace cero). de los polinomios.

Informe final de laboratorio (1) Sistemas de Control I


FIEE-UNMSM. Condor, Mio. Matlab. 11

Figura 6.12

Figura 6.10 III. CONCLUSIONES Y RECOMENDACIONES

 Utilizamos en MATLAB diferentes comandos con los


cuales podemos realizar diferentes funciones. El
vi. Obtener la respuesta temporal de G(s) y H(s) ante
manejo de estos será necesario para el desarrollo del
una entra escalón unitario (step)
curso.
 Se identificaron las diferencias entre un script y una
En la figura 6.11 se muestra el código para obtener función.
la respuesta temporal de G(s) y H(s) ante una entrada  Se comprobó que la utilización de una función es
escalón unitario haciendo uso del comando step. mucho más eficiente que la de un script, dado que
podemos introducir distintas entradas a nuestra
conveniencia sin tener que cambiar líneas de código
del programa.
 Se aprendieron algunas herramientas en Matlab para
utilizarlas en los intervalos de la gráfica.
 Sabiendo utilizar los comandos adecuados, pudimos
aprender a modelar de una manera práctica y clara la
función de transferencia de cualquier sistema.
 La importancia de esta práctica, es que además de
anexar una lista de comandos en un lenguaje de
instrucciones se busca en general el entendimiento del
proceso, las funciones que ejercen los comandos
introducidos por el usuario, tienen una función
determinada, lo que se busca es facilitar estos procesos
que requieren que se resuelvan a papel y lápiz, pero
con solo entender lo que se necesita realizar, podemos
lograr estos cálculos utilizando de manera esencial la
herramienta Matlab
Figura 6.11

En la figura 6.12 se muestra el resultado del código de la REFERENCIAS


figura 6.11 obteniendo de esta forma la respuesta temporal [1]. Documentación de Matlab
ante una entrada escalón unitario. (https://es.mathworks.com/help/matlab/)

Informe final de laboratorio (1) Sistemas de Control I

También podría gustarte