Está en la página 1de 23

DEPARTAMENTO DE ELECTRICA Y ELECTRÓNICA

CARRERA DE ELECTRÓNICA E INSTRUMENTACIÓN

SISTEMAS DE CONTROL

“LABORATORIO DE SISTEMAS DE CONTROL

PARCTICA 01”

NIVEL: SEXTO

GRUPO DE PROYECTO

ALEX GUANOPATIN

EDWIN QUINATOA

JHONATAN TERCERO

MIGUEL VELASCO

11 de junio del 2020


LABORATORIO DE SISTEMAS DE CONTROL
PRÁCTICA NO 01

1. Tema
Introducción a Matlab

2. Objetivos
• Familiarizar al estudiante con el uso del programa desarrollado por MathWorks y con el toolbox
denominado SIMULINK que sirve para la simulación de sistemas.

• Incentivar en el estudiante el uso de un computador personal como herramienta de análisis y


diseño, en el entorno de programación de MATLAB.

3. Marco Teórico

Describir en seis páginas los comandos principales del software Matlab, específicamente para:

• Manipulación de matrices

Las matrices y los arreglos son la representación fundamental de la información y los


datos en MATLAB®. Es posible crear arreglos y cuadrículas comunes, combinar arreglos
existentes, manipular la forma y el contenido de un arreglo, y utilizar la indexación para acceder
a los elementos del arreglo. [1]

Todas las variables de MATLAB son arreglos multidimensionales, sin importar el tipo de datos.
Una matriz es un arreglo bidimensional que a menudo se utiliza para el álgebra lineal.

Creación de arreglos

Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con una coma
(,) o un espacio.
𝑎 = [1 2 3 4]
𝑎 = 1×4

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.
𝑎 = [1 2 3; 4 5 6; 7 8 10]
𝑎 = 3×3

1 2 3
4 5 6
7 8 10
Otra forma de crear una matriz es usando una función, como ones, zeros o rand. Por ejemplo, cree
un vector columna de ceros de 5 por 1.
𝑧 = 𝑧𝑒𝑟𝑜𝑠(5,1)
𝑧 = 5×1

0
0
0
0
0
Operaciones con matrices y arreglos

MATLAB le permite procesar todos los valores de una matriz mediante el uso de una sola función
u operador aritmético.
𝑎 + 10
𝑎𝑛𝑠 = 3 × 3

11 12 13
14 15 16
17 18 20

𝑠𝑖𝑛(𝑎)
𝑎𝑛𝑠 = 3 × 3

0.8415 0.9093 0.1411


−0.7568 − 0.9589 − 0.2794
0.6570 0.9894 − 0.5440

Para trasponer una matriz, use una comilla simple ('):


𝑎′
𝑎𝑛𝑠 = 3 × 3

1 4 7
2 5 8
3 6 10

Para realizar una multiplicación de matrices estándar, la cual calcula los productos internos entre
filas y columnas, use el operador *. Por ejemplo, confirme que el producto de una matriz por su
inversa es igual a la matriz identidad:
𝑝 = 𝑎 ∗ 𝑖𝑛𝑣(𝑎)
𝑝 = 3×3

1.0000 0 0
0.0000 1.0000 0
0.0000 − 0.0000 1.0000

• Manejo de gráficas

Matlab ofrece gran número de posibilidades a la hora de realizar representaciones gráficas. Dibuja
curvas planas y superficies. Permite agrupar y superponer representaciones. Todo ello con
variaciones de estilo y de coordenadas. Permite a su vez realizar gráficos de tipo estadístico: de
barra, histogramas, etc.

El comando básico para la representación de gráficos 2D es el comando plot.

Su sintaxis puede ser:


plot(x,y): dibuja el conjunto de puntos (x,y) donde las abscisas de los puntos se encuentran en el
vector x y las ordenadas en el y.

Para representar una función f(x) es necesario conocer los valores de puntos de la forma (x,f(x)).
Para ello puede seguirse alguno de estos caminos:

- Definir un vector x con el rango de variación donde se desea pintar la función. Para ello puede
ser muy útil el comando linspace(xmin,xmax,n).

Crear el vector y evaluando f en x. Por ejemplo:

>> 𝑥 = 𝑙𝑖𝑛𝑠𝑝𝑎𝑐𝑒(0,10,100);

>> 𝑦 = 𝑠𝑖𝑛(𝑥);

>> 𝑝𝑙𝑜𝑡(𝑥, 𝑦)

Hemos visto que el comando plot(x,y) dibuja los gráficos con unas características predefinidas en
el programa, es posible alterarlas a partir de plot(x,y,s) donde s se compone de dos dígitos entre
comillas. Uno fija el color de la línea y otro el carácter a usar en el gráfico. Por ejemplo:

>> 𝑝𝑙𝑜𝑡(𝑥, 𝑦, ′ −∗ 𝑔′)

Dibuja los puntos unidos con una línea continua, marcando los puntos con *, y en verde.

Otros tipos de marcadores son: .∗ 𝑥 𝑜 + (marcan los puntos en el gráfico).

Otros tipos de línea: los puntos se unen con una línea con las siguientes posibilidades de
apariencia:

- (línea continua)

- - (línea formada por trazos discontinuos)

-. (línea formada por puntos y trazos)

Títulos y etiquetas

Matlab permite manejar correctamente anotaciones sobre los gráficos y los ejes mediante la
colocación adecuada de títulos y etiquetas, rejillas o leyendas. Los comandos más usados son:

title (‘texto’): añade el texto entre comillas como título del gráfico.

xlabel(‘texto’): añade el texto entre comillas como texto al lado del eje x.

ylabel(‘texto’): añade el texto entre comillas como texto al lado del eje y.

legend(‘texto’): sitúa la leyenda especificada en el texto.

grid: crea rejillas en los ejes

gtext(‘texto’): permite situar el texto especificado en el punto que señalemos con el ratón dentro
de la ventana de trabajo.

• Funciones y subfunciones

Este tema explica el término función local y muestra cómo crear y usar funciones locales.
Los archivos de programa de MATLAB® pueden contener código para más de una función. En
un archivo de funciones, la primera función del archivo se denomina función principal. Esta
función es visible para las funciones en otros archivos, o puede llamarla desde la línea de
comandos. Las funciones adicionales dentro del archivo se denominan funciones locales, y
pueden ocurrir en cualquier orden después de la función principal. Las funciones locales solo son
visibles para otras funciones en el mismo archivo. Son equivalentes a subrutinas en otros
lenguajes de programación, y a veces se llaman subfunciones.

A partir de R2016b, también puede crear funciones locales en un archivo de script, siempre que
todas aparezcan después de la última línea de código de script. Para obtener más información,
consulte Agregar funciones a los scripts.

Por ejemplo, cree un archivo de funciones llamado mystats.m que contenga una función principal,
mystats y dos funciones locales, mymean y mymedian
𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 [𝑎𝑣𝑔, 𝑚𝑒𝑑] = 𝑚𝑦𝑠𝑡𝑎𝑡𝑠(𝑥)
𝑛 = 𝑙𝑒𝑛𝑔𝑡ℎ(𝑥);
𝑎𝑣𝑔 = 𝑚𝑦𝑚𝑒𝑎𝑛(𝑥, 𝑛);
𝑚𝑒𝑑 = 𝑚𝑦𝑚𝑒𝑑𝑖𝑎𝑛(𝑥, 𝑛);
𝑒𝑛𝑑

𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑎 = 𝑚𝑦𝑚𝑒𝑎𝑛(𝑣, 𝑛)
% 𝑀𝑌𝑀𝐸𝐴𝑁 𝐸𝑥𝑎𝑚𝑝𝑙𝑒 𝑜𝑓 𝑎 𝑙𝑜𝑐𝑎𝑙 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛.

𝑎 = 𝑠𝑢𝑚(𝑣)/𝑛;
𝑒𝑛𝑑

𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑚 = 𝑚𝑦𝑚𝑒𝑑𝑖𝑎𝑛(𝑣, 𝑛)
% 𝑀𝑌𝑀𝐸𝐷𝐼𝐴𝑁 𝐴𝑛𝑜𝑡ℎ𝑒𝑟 𝑒𝑥𝑎𝑚𝑝𝑙𝑒 𝑜𝑓 𝑎 𝑙𝑜𝑐𝑎𝑙 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛.

𝑤 = 𝑠𝑜𝑟𝑡(𝑣);
𝑖𝑓 𝑟𝑒𝑚(𝑛, 2) == 1
𝑚 = 𝑤((𝑛 + 1)/2);
𝑒𝑙𝑠𝑒
𝑚 = (𝑤(𝑛/2) + 𝑤(𝑛/2 + 1))/2;
𝑒𝑛𝑑
𝑒𝑛𝑑

Las funciones locales mymean y mymedian calculan el promedio y la mediana de la lista de


entrada. La función principal mystats determina la longitud de la lista n y la pasa a las funciones
locales.

Aunque no puede llamar a una función local desde la línea de comandos o desde funciones en
otros archivos, puede acceder a su ayuda utilizando la función de ayuda. Especifique los nombres
tanto del archivo como de la función local, separándolos con un carácter>:
ℎ𝑒𝑙𝑝 𝑚𝑦𝑠𝑡𝑎𝑡𝑠 > 𝑚𝑦𝑚𝑒𝑎𝑛
• Script

El tipo de programa más simple de MATLAB® se conoce como script. Un script es un archivo
que contiene varias líneas secuenciales de comandos y llamadas a funciones de MATLAB. Para
ejecutar un script, escriba su nombre en la línea de comandos.

Scripts

Para crear un script, use el comando edit


𝑒𝑑𝑖𝑡 𝑚𝑦𝑠𝑝ℎ𝑒𝑟𝑒

Este comando abre un archivo en blanco llamado mysphere.m. Introduzca código para crear una
esfera de unidad, duplicar el radio y representar gráficamente los resultados:

[𝑥, 𝑦, 𝑧] = 𝑠𝑝ℎ𝑒𝑟𝑒;

𝑟 = 2;

𝑠𝑢𝑟𝑓(𝑥 ∗ 𝑟, 𝑦 ∗ 𝑟, 𝑧 ∗ 𝑟)

𝑎𝑥𝑖𝑠 𝑒𝑞𝑢𝑎𝑙

A continuación, agregue código para calcular el área de superficie y el volumen de una esfera:

𝐴 = 4 ∗ 𝑝𝑖 ∗ 𝑟^2;

𝑉 = (4/3) ∗ 𝑝𝑖 ∗ 𝑟^3;

Cuando escriba código, se recomienda agregar comentarios que describan el código. Los
comentarios permiten que otros comprendan su código y, además, pueden refrescar su memoria
cuando vuelva a examinarlo más tarde. Para agregar comentarios, use el símbolo de porcentaje
(%).

[𝑥, 𝑦, 𝑧] = 𝑠𝑝ℎ𝑒𝑟𝑒;

𝑟 = 2;

𝑠𝑢𝑟𝑓(𝑥 ∗ 𝑟, 𝑦 ∗ 𝑟, 𝑧 ∗ 𝑟)

𝑎𝑥𝑖𝑠 𝑒𝑞𝑢𝑎𝑙

𝐴 = 4 ∗ 𝑝𝑖 ∗ 𝑟^2;

𝑉 = (4/3) ∗ 𝑝𝑖 ∗ 𝑟^3;

Guarde el archivo en la carpeta actual. Para ejecutar el script, escriba su nombre en la línea de
comandos:

𝑚𝑦𝑠𝑝ℎ𝑒𝑟𝑒

• Simulink

Cuando utiliza MATLAB® y Simulink® conjuntamente, en realidad está combinando


programación textual y gráfica para diseñar su sistema en un entorno de simulación.

Utilice de forma directa los miles de algoritmos que ya se encuentran en MATLAB. Solo tiene
que incluir su código de MATLAB en un bloque de Simulink o un gráfico de Stateflow®.

Utilice MATLAB para crear conjuntos de datos de entrada que pongan en marcha la simulación.
Ejecute miles de simulaciones en paralelo. Después analice y visualice los datos en MATLAB.

Modele y simule su sistema

Explore un amplio espacio de diseño mediante el modelado del sistema y de la planta física. Su
equipo al completo puede utilizar un solo entorno multidominio para simular el comportamiento
de todas las partes del sistema.
Realice pruebas de forma anticipada y frecuente

Reduzca los prototipos caros mediante la realización de pruebas del sistema en condiciones que,
en otras circunstancias, serían demasiado peligrosas o lentas. Valide su diseño con pruebas
hardware in-the-loop y creación rápida de prototipos. Mantenga la trazabilidad a partir de los
requisitos para diseñar el código.

Genere código automáticamente

En vez de redactar manualmente miles de líneas de código, genere automáticamente código C y


HDL de calidad de producción que se comporta igual que el modelo creado en Simulink. Luego
despliéguelo directamente en su MCU, DSP o FPGA.

Ilustración 1 Ventana de simulink en ejecución

• Relación entre SIMULINK y Workspace de Matlab

Interacción con el workspace de MATLAB: Desde un modelo SIMULINK, es posible usar


funciones *.m, *.mat y variables del workspace de MATLAB. Los bloques relacionados son los
bloques From File, From Workspace (en la librería Sources), To File, To WorkSpace (en la
librería Sinks) y MATLAB Fcn (en la librería Functions & Tables).
También es posible poner nombres de variables del workspace dentro del modelo Simulink. Por
ejemplo:

Ilustración 2 Modelo Simulink con variables Workspace (a y T)

Antes de ejecutar el modelo, estas variables deben tener asignado un valor:

>> 𝑎 = 0.5; 𝑇𝑓𝑖𝑛 = 10;

>> 𝑠𝑖𝑚(′𝑢𝑛𝑡𝑖𝑡𝑙𝑒𝑑′)
4. Desarrollo

Desarrollar los ejercicios propuestos mediante el uso del software de simulación de MatLab.

• Ejercicio 1:

Desarrollar un script de Matlab (archivo .m) con los literales a continuación, considere la siguiente
matriz

14 23 31 22
𝐴 = [55 63 41 38]
96 𝑐3 21 1
29 18 73 45

a) A(:,2) b) A(1,:) c) A(:,1:3)


d) A(:,1:3:4) e) B=[A,[ones(2,2);eye(2)]] f) A(:,:)
g) A(2:4)=[] h) ones(3,2) i) eye(4)
j) diag(A) k) zeros(size(A)) l) rand(size(A))
m) magic(length(A)) n) eig(A) ñ. rank(A)

CODIGO:
EJECUCIÓN:
a) A(:,2)

b) A(1,:)
c) A(:,1:3)

d) A(:,1:3:4)

e) B=[A,[ones(2,2);eye(2)]]

f) A(:,:)
g) A(2:4)=[]

h) ones(3,2)

i) eye(4)

j) diag(A)
k) zeros(size(A))

l) rand(size(A))

m) magic(length(A))

• Ejercicio 2:
Graficar las siguientes funciones sobre un mismo gráfico
1 − cos 2 (2𝑡) 2𝑡 + 1
𝑦 (𝑡 ) = ; 𝑧 (𝑡 ) = 2 ; 𝑐𝑜𝑛 − 10 ≤ 𝑡 ≤ 10
2𝑡 𝑡 +2

Los vectores deberían tener al menos 300 puntos para ser graficados, y deberán tener
distinto tipo de línea e incluir etiquetas en los ejes, título del gráfico, leyendas en la
figura.
Código de funciones:

%%GRAFICAR DOS ECUACIONES


clc;
close all;
clear all;%Borrar y limpiado de memoria
t=linspace(-10,10,300);%Vector en el rango de inicio -10 final 10 y con 300 puntos de grafico
y=1-(cos(2*t).^2)./(2*t);%Funcion en tiempo y(t)
z=(2*t+1)./((t.^2)+2);%Funcion en tiempo z(t)
plot(t,y,t,z)%Sirve para graficar dos funciones en un solo plano
title('REPRESENTACION DE FUNCIONES y(t) y z(t)')%El titulo de la grafica
xlabel('-10<t<10')%Eje lateral x
ylabel('FUNCION y(t) y z(t)')%Eje lateral y
legend('y=(1-(cos(2*t)^2)./2*t','z=(2*t+1)./((t^2)+2)','location','')%Leyenda de las dos señales
ax=gca;%Funcion para la posisicon del plano
ax.XAxisLocation = 'origin';%El eje x esta en el origen
ax.YAxisLocation = 'origin';%El eje y esta en el origen

Grafica de funciones:
• Ejercicio 3:
Implemente los siguientes diagramas de bloques y obtener su respuesta, adicionalmente
graficar la respuesta desde un script de Matlab (archivo .m)
EJERCICIO A)

Gráfica en Simulink:

Respuesta desde el script de Matlab


Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejericio 1
s1=linspace(-1,10); %Vector en entre el rango de -1,10
x1=(3*s1+2)./(s1.^2+3*s1+3);%Función en tiempo y(t)
plot(s1,x1); %Para graficar la función
Gráfica script de Matlab:

EJERCICIO B)

Gráfica en Simulink:
Respuesta desde el script de Matlab
Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejercicio 2
s=linspace(-1,1); %Vector en entre el rango de -1,1
s2=linspace(-1,1); %Vector en entre el rango de -1,1
x=(4*s+7)./(s.^2+9);%Función en frecuencia Y(s)
y=heaviside(s2);%Función del pulso U(s)
plot(s,x,s2,y); %Para graficar la función

Gráfica script de Matlab:

• Ejercicio 4:
Implemente los siguientes diagramas de bloques y obtener las respuestas de las salidas
incluyendo la velocidad para la figura a), adicionalmente graficar las respuestas desde
un script de Matlab (archivo .m).
EJERCICIO A)
Gráfica en Simulink (Velocidad):

Respuesta desde el script de Matlab


Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejericio 1
s=linspace(0,10); %Vector en entre el rango de 0,10
num=[1];% Ceros del función
dem=[1 4];%Polos de la función
G1=tf(num,dem)%Función 1
num=[1]% Ceros del función
dem=[1 3];%Polos de la función
G2=tf(num,dem)%Función 2
Vel=G1*G2%Función VElocidad
%subplot(3,1,1)
step(Vel,s);grid on,%%Genera la Gráfica
Gráfica script de Matlab:

Gráfica en Simulink (Salida 1):

Respuesta desde el script de Matlab


Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejericio 1
s=linspace(0,10); %Vector en entre el rango de 0,10
num=[1];% Ceros del función
dem=[1 4];%Polos de la función
G1=tf(num,dem)%Función 1
num=[1]% Ceros del función
dem=[1 3];%Polos de la función
G2=tf(num,dem)%Función 2
Vel=G1*G2%Función VElocidad
%subplot(3,1,1)
%step(Vel,s);grid on,%%Genera la Gráfica
num=[1]% Ceros del función
dem=[1 0];%Polos de la función
G3=tf(num,dem)%Función 2
Sal1=G1*G2*G3%Función VElocidad
%subplot(3,1,2)
step(Sal1,s);grid on,%%Genera la Gráfica

Gráfica script de Matlab:


Gráfica en Simulink (Salida 2):

Respuesta desde el script de Matlab


Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejericio 1
s=linspace(0,10); %Vector en entre el rango de 0,10
num=[10];% Ceros del función
dem=[1 7 12];%Polos de la función
Sal2=tf(num,dem)%Función 4
step(Sal2,s);grid on,%%Genera la Gráfica
Gráfica script de Matlab:

EJERCICIO B)

Gráfica en Simulink:
Respuesta desde el script de Matlab
Código:
clc;
close all;
clear all;%Borrar y limpiado de memoria
%ejericio 4
s=linspace(0,10); %Vector en entre el rango de 0,10
num=[1]% Ceros del función
dem=[1 0 1];%Polos de la función
G1=tf(num,dem)%Función Simplificada
Sal=G1%Función Salida
step(Sal,s);grid on,%%Genera la Gráfica

Gráfica script de Matlab:

5. CONCLUSIONES

• Se concluyó que mediante el uso de los diferentes comandos de la herramienta Matlab ya


sea como un script o en toolbox de simulink se puede determinar los resultados de los
ejercicios básicos y complejos de una manera rápida y sin tener que escribir demasiadas
líneas de código

• Se determinó que mediante el uso del computador y de la herramienta de simulación


(Matlab &simulink) se realizan efectivamente la resolución de los ejercicios planteados,
teniendo buenos resultados para el análisis y visualización de los mismos.
6. REFERENCIAS

• Pinto, E; Matía, F. “Fundamentos de control con Matlab”; PRETICE HALL;


Edición 1

• MathWorks, «The MathWorks, Inc.,» 2019. [En línea]. Available:


https://es.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html.
[Último acceso: 10 Junio 2020].

También podría gustarte