Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS DE CONTROL
PARCTICA 01”
NIVEL: SEXTO
GRUPO DE PROYECTO
ALEX GUANOPATIN
EDWIN QUINATOA
JHONATAN TERCERO
MIGUEL VELASCO
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.
3. Marco Teórico
Describir en seis páginas los comandos principales del software Matlab, específicamente para:
• Manipulación de matrices
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
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
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.
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).
>> 𝑥 = 𝑙𝑖𝑛𝑠𝑝𝑎𝑐𝑒(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 línea: los puntos se unen con una línea con las siguientes posibilidades de
apariencia:
- (línea continua)
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.
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;
𝑒𝑛𝑑
𝑒𝑛𝑑
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
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
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.
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.
>> 𝑠𝑖𝑚(′𝑢𝑛𝑡𝑖𝑡𝑙𝑒𝑑′)
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
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:
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:
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
• 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):
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
5. CONCLUSIONES