Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO DE VERANO
MATERIA:
CONTROL I
HORARIO:
11:00 A 15:00 HRS
CATEDRATICO:
PRÁCTICA 1:
CONOCIMIENTO DE MATLAB
ALUMNO:
ÍNDICE
1.- Definición del software de MATLAB. ............................................................................................................2
2.- Definición del toolbox de SIMULINK. ............................................................................................................2
3.- Cómo definir una variable. ..............................................................................................................................3
4.- Cómo definir una función. ...............................................................................................................................4
5.- Cómo definir un vector y qué función cumplen los dos puntos (:). ..........................................................6
6.- Cómo definir una matriz. .................................................................................................................................7
7.- Orden de precedencia de operaciones en MATLAB. .............................................................................. 11
8.- Cómo se elevar al cuadrado. ...................................................................................................................... 13
9.- Cómo obtener funciones trigonométricas. ................................................................................................ 14
10.- Cómo obtener raíz cuadrada. ................................................................................................................... 15
11.- Cómo elevar a un exponente. ................................................................................................................... 16
12.- Cómo obtener un logaritmo....................................................................................................................... 16
13.- Cómo definir la parte real y la parte imaginaria de un número complejo. ......................................... 17
14.- Cómo obtener y representar π (Pi) .......................................................................................................... 17
15.- Qué significan las siglas NaN. .................................................................................................................. 18
16.- Formatos que se utilizan para representar el resultado de una salida. ............................................. 18
17.- Qué es el comando linspace y su función. ............................................................................................. 21
18.- Cómo graficar el seno y coseno de una función. ................................................................................... 22
19.- Qué es el comando subplot. ..................................................................................................................... 22
20.- Qué es el comando grid............................................................................................................................. 24
21.- Qué es el comando tittle. ........................................................................................................................... 25
22.- Qué es el comando text. ............................................................................................................................ 27
23.- Cómo cambiar de color una gráfica. ........................................................................................................ 28
24.- Cómo cambiar el tipo de linea de una gráfica. ....................................................................................... 29
25.- Biblografía. ................................................................................................................................................... 32
1
1.- Definición del software de MATLAB.
Simulink es una aplicación de MATLAB que permite construir y simular modelos de sistemas
físicos y sistemas de control mediante diagramas de bloques. Puede simular sistemas lineales
y no lineales, modelos en tiempo continuo y tiempo discreto y sistemas híbridos de todos los
anteriores. Es un entorno gráfico en el cual el modelo a simular se construye clicando y
arrastrando los diferentes bloques que lo constituyen. Los modelos SIMULINK se guardan en
ficheros con extensión *.mdl.
El comportamiento de dichos sistemas se define mediante funciones de transferencia,
operaciones matemáticas, elementos de Matlab y señales predefinidas de todo tipo.
Simulink dispone de una serie de utilidades que facilitan la visualización, análisis y guardado
de los resultados de simulación. Simulink se emplea profusamente en ingeniería de control.
2
3.- Cómo definir una variable.
La mejor manera de familiarizarse con MATLAB consiste en aprender a manejar las matrices.
En MATLAB, una matriz es un arreglo rectangular de números. Las matrices de 1x1 se conocen
como escalares, y las matrices con una sola columna o renglón se conocen como vectores.
Estas matrices y/o vectores pueden contener datos tanto numéricos como no numéricos.
Los datos pueden introducirse a MATLAB de diferentes maneras:
• como una lista explícita de elementos
• cargando los datos de un archivo externo
• generados por otras funciones
• creados por archivos M creados por el usuario.
Para asignar un escalar a una variable, se introducen los datos de la siguiente forma
Ejemplo. Definición de variables.
» Num = 25
Esta variable crea una matriz de 1 x 1 llamada Num y almacena el valor de 25.
Ejemplo. Dar a la variable dato el valor 2001
» dato = 2001
y MATLAB responde de la siguiente manera:
dato =
2001
Para introducir una matriz o un vector, se siguen los siguientes convencionalismos
• separar los elementos de una columna usando espacios en blanco
• usar punto y coma (;) para indicar el fin de una columna o el fin del vector
• encerrar la lista de elementos con paréntesis rectangulares [ ]
Ejemplo. Si se desea introducir el siguiente vector
y = {0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580}
Teclear en la línea de comando:
» y = [0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580]
y MATLAB despliega
0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580
3
4.- Cómo definir una función.
Las funciones se crean del mismo modo que un script seleccionado en el menú New/Function
y se guardan en un fichero que tiene el mismo nombre que la función y extensión .m
4
La primera línea en el editor es la definición de la función que comienza con la palabra clave
function
nombre_funcion, es el nombre significativo que se le asigna a la función y coincide
con el nombre del fichero de extensión .m en el que se guarda el código de dicha
función. Las reglas para nombrar un función son las mismas que para las variables, los
nombres no deben de incluir espacios, ni se pueden utilizar plabras reservadas por
MATLAB.
variables_entrada, es el conjunto de parámetros que se le pasa a la función. Los
nombres de las variables van entre paréntesis y separadas por coma.
variabales_salida, es el valor o conjunto de valores de las variables devueltos por
la función. Las variables de salida van después de la palabra reservada function entre
corchetes cuadrados y separados por comas si hay varios.
sentencias, líneas de código que tomando los valores de los parámetros de entrada
calculan mediante expresiones los valores que devuelve la función.
end, marca el final de la función es opcional (salvo en las funciones anidadas) pero es
conveniente acostumbrarse a ponerlo al finalizar la función.
Opcionalmente, en la segunda línea se pone un comentario, en el que se explica la tarea que
realiza la función. A continuación, una explicación detallada sobre las variables de entrada y
de salida
Cuando una función no devuelve ningún valor, se define
function nombre_funcion(variables_entrada)
Cuando una funcion no precisa de variables de entrada se define
function variables_salida=nombre_funcion
Cuando una función devuelve una solo resultado y se puede escribir, de dos maneras
function [y]=nombre_funcion(a,b,c) function y=nombre_funcion(a,b,c)
En general, definiremos una función del siguiente modo:
function [y1,y2]=nombre_funcion(a,b,c)
con tres argumentos a, b y c variables de entrada y que devuelve dos resultados en las
variables y1 e y2.
Una función se llama del mismo modo que las funciones predefinidas. Las funciones se pueden
llamar desde la ventana de comandos, desde un fichero script o desde otra función.
Todas las variables en una función son locales a dicha función, incluyendo las de entrada y las
de salida.
5
5.- Cómo definir un vector y qué función cumplen los dos puntos (:).
El signo de dos puntos es uno de los operadores más útiles de MATLAB®. Permite crear
vectores, generar subíndices de arrays y especificar iteraciones de for.
Sintaxis
x = j:k
x = j:i:k
A(:,n)
A(m,:)
A(:)
A(j:k)
Descripción
x = j:k crea un vector x de espaciado unitario con elementos [j,j+1,j+2,...,j+m] donde m =
fix(k-j). Si j y k son números enteros, entonces esto es simplemente [j,j+1,...,k].
x = j:i:k crea un vector x con espaciado regular mediante i como incremento entre
elementos. Los elementos vectoriales son aproximadamente iguales a [j,j+i,j+2*i,...,j+m*i],
donde m = fix((k-j)/i). Sin embargo, si i no es un entero, entonces la aritmética en punto flotante
desempeña un papel a la hora de determinar si colon incluye el extremo k en el vector, ya que
k puede no ser exactamente igual a j+m*i. Si especifica arrays no escalares, MATLAB
interpreta j:i:k como j(1):i(1):k(1).
x = colon(j,k) y x = colon(j,i,k) son formas alternativas de ejecutar los comandos
j:k y j:i:k, pero raramente se utilizan. Estas sintaxis permiten la sobrecarga de operadores para
las clases.
A(:,n), A(m,:), A(:) y A(j:k) son expresiones de indexación comunes para una
matriz A que contiene el operador de dos puntos. Cuando se utilizan los dos puntos como
subíndice en una expresión de indexación, como A(:,n), actúa como clave para incluir todos
los subíndices de una dimensión de array determinada. También es común crear un vector con
dos puntos para fines de indexación, como A(j:k). Algunas expresiones de indexación
combinan ambos usos de los dos puntos, como en A(:,j:k).
Las expresiones de indexación comunes que contienen dos puntos son:
A(:,n) es la n.ª columna de la matriz A.
A(m,:) es la m.ª fila de la matriz A.
A(:,j:k) incluye todos los subíndices de la primera dimensión, pero utiliza el vector
j:k para indexar en la segunda dimensión. Esto devuelve una matriz con columnas
[A(:,j), A(:,j+1), ..., A(:,k)].
EJEMPLOS
Creación de arreglos
Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con una
coma (,) o un espacio.
7
a = [1 2 3 4]
a =
1 2 3 4
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.
z = zeros(5,1)
z =
0
0
0
0
0
a + 10
8
ans =
11 12 13
14 15 16
17 18 20
sin(a)
ans =
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:
p = a*inv(a)
p =
1.0000 0 -0.0000
0 1.0000 0
0 0 1.0000
9
Observe que p no es una matriz de valores enteros. MATLAB almacena los números como
valores de punto flotante, y las operaciones aritméticas son sensibles a pequeñas diferencias
entre el valor real y su representación en punto flotante. Para visualizar más dígitos decimales,
use el comando format:
format long
p = a*inv(a)
p =
1.000000000000000 0 -
0.000000000000000
0 1.000000000000000 0
0 0
0.999999999999998
Cada uno de los operadores de matriz para la multiplicación, la división y la potencia tienen un
operador de arreglo correspondiente que opera elemento por elemento. Por ejemplo, eleve
cada elemento de a a la tercera potencia:
a.^3
ans =
1 8 27
64 125 216
343 512 1000
10
Concatenación
La concatenación es el proceso que consiste en unir arreglos para crear otros más grandes.
De hecho, el primer arreglo de este capítulo resultó de la concatenación de sus elementos
individuales. El operador de concatenación es el par de corchetes: [].
A = [a,a]
A =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 10 7 8 10
La concatenación de arreglos uno junto a otro mediante el uso de comas se conoce como
concatenación horizontal. Cada arreglo debe tener la misma cantidad de filas. De forma similar,
cuando los arreglos tienen la misma cantidad de columnas, es posible concatenarlos
verticalmente mediante el uso de punto y coma.
A = [a; a]
A =
1 2 3
4 5 6
7 8 10
1 2 3
4 5 6
7 8 10
11
El orden de precedencia es:
Aunque la mayoría de los operadores trabajan de izquierda a derecha, los operadores (^-), (.^-), (^+), (.^+),
(^~), y (.^~) trabajan de segundo de la derecha a la izquierda. Se recomienda que utilice paréntesis para
especificar explícitamente la precedencia prevista de las instrucciones que contengan estas combinaciones
de operador.
Ejemplos:
>> a = 7 % damos valor a la variable a y la escribe por pantalla
a =
7
>> b = 4; % no escribe el valor de b por el ; del final
>> a + b % realiza la suma de dos variables y guarda la solución
en la variable ans
ans =
11
>> a / b
ans =
1.7500
>> a ^ b
ans =
2401
>> 5 * a
ans =
35
power, .^
Energía Element-Wise
Sintaxis de
C = A.^B
C = power(A,B)
13
Descripción
C = A.^B eleva cada elemento de A la potencia correspondiente en B.
C = power(A,B) es una forma alternativa para ejecutar A.^B, pero se utiliza raramente.
Permite sobrecarga para las clases de operadores.
Ejemplo
Cuadrado de cada elemento del Vector
Crear un vector, el Ay el cuadrado de cada elemento.
A = 1:5;
C = A.^2
C = 1×5
1 4 9 16 25
degrees = raduans*180/pi;
radians = degrees * pi/180;
Para realizar estos cálculos, es necesario el valor de p, de modo que una constante, pi, es
interna a MATLAB. Sin embargo, dado que p no se puede expresar como número en punto
flotante, la constante pi en MATLAB sólo es una aproximación de la cantidad matemática p.
Usualmente esto no es importante; sin embargo, puede notar algunos resultados
sorprendentes. Por ejemplo, para cuando usted espera una respuesta de cero.
Sin(pi)
Ans =
1.2246e-016
14
Puede acceder a la función help desde la barra de menú para obtener una lista completa de
funciones trigonométricas disponibles en MATLAB. La tabla 3.4 muestra algunas de las más
comunes.
Muchos de los nombres de las funciones internas de MATLAB son los mismos que los definidos
no sólo en el lenguaje de programación C, sino también en FORTRAN. Por ejemplo, para sacar
la raíz cuadrada de las variable x, se escribe
b = sqrt(x);
Una de las grandes ventajas de MATLAB es que los argumentos de la función, por lo general,
pueden ser escalares o matrices. En el ejemplo, si x es un escalar, se regresa un resultado
escalar. Por tanto, el enunciado
x = 9;
b = sqrt(x);
regresa un escalar:
15
b =
3
exp
Exponencial
Sintaxis
Y = exp(X)
Descripción
Y = exp(X) devuelve el exponencial ex de cada elemento del array X. Para los elementos
complejos z = x + iy, devuelve el exponencial complejo.
ez=ex(cosy+isiny) .
Utilice expm para calcular una matriz exponencial.
Ejemplo
Representación numérica de e
Calcule el exponencial de 1, que es el número de Euler, e.
exp(1)
ans = 2.7183
16
13.- Cómo definir la parte real y la parte imaginaria de un número complejo.
MATLAB incluye varias funciones que se usan principalmente con números complejos. Los
números complejos consisten de dos partes: una parte real y un componente imaginario. Por
ejemplo, 5 + 3i
es un número complejo. El componente real es 5 y el componente imaginario es 3. Los
números complejos se pueden ingresar en MATLAB de dos formas: como un problema de
suma, como
A=5 + 3i ó A=5+3*i
o con la función complex, como en
A=complex(5,3)
que regresa
A=
5.0000 + 3.0000i
Se pueden usar las funciones real e imag para separar los componentes real e imaginario de
los números complejos. Por ejemplo, para A=5 + 3*i, se tiene
real(A)
ans =
5
imag(A)
ans =
3
La función isreal se puede usar para determinar si una variable almacena un número complejo.
Regresa 1 si la variable es real y 0 si es compleja. Dado que A es un número complejo, se
obtiene
isreal(A)
ans =
0
Por tanto, la función isreal es falsa y regresa un valor de 0.
Pi
17
Relación de la circunferencia de un círculo a su diámetro,
Sintaxis
Pi
Descripción
sin (pi)
ans =
1.2246e-16
El valor NaN (No es Número) de MATLAB normalmente se usa para representar datos
faltantes. Los valores NaN permiten que las variables con datos faltantes mantengan su
estructura (en este caso, vectores de 24 por 1 con indexación consistente entre las tres
intersecciones).
19
A =
51.1000
Cuando los números se vuelven demasiado largos o demasiado pequeños para que MATLAB
los despliegue en el formato por defecto, automáticamente los expresa en notación científica.
Por ejemplo, si usted ingresa la constante de Avogadro en MATLAB en notación decimal como
a = 602000000000000000000000
el programa regresa
a =
6.0200e+023
Usted puede forzar a MATLAB a desplegar todos los números en notación científica con
format short e (con cuatro dígitos decimales) o format long e (con 14 dígitos decimales. Por
ejemplo,
format short e
x = 10.356789
regresa
x =
1.0357e+001
Con los formatos largo y corto se aplica un factor de escala común a toda la matriz, si los
elementos se vuelven muy largos o muy cortos. Este factor de escala se imprime junto con los
valores escalados. Por ejemplo, cuando la ventana de comando regresa a
format short
los resultados del ejemplo 2.3 se despliegan como
Otro par de formatos que ocasionalmente pueden ser útiles son format + y format rat. Cuando
una matriz se despliega en format +, los únicos caracteres que se imprimen son los signos
más y menos. Si un valor es positivo, se desplegará un signo más; si un valor es negativo, se
desplegará un signo menos. Si un valor es cero, no se desplegará nada. Este formato permite
visualizar una matriz grande en términos de sus signos:
20
format +
B = [1, -5, 0, 12; 10005, 24, -10,4 ]
B =
+- +
++-+
El comando format rat despliega números como números racionales (es decir: como
fracciones). En consecuencia,
format rat
x = 0:0.1:0.5
regresa
x =
0 1/10 1/5 3/10 2/5 1/2
El comando format también le permite controlar cuán apretadamente se espacia la información
en la ventana de comando. Por defecto (format loose) se inserta un salto de línea entre las
expresiones proporcionadas por el usuario y los resultados que regresa la computadora. El
comando format compact remueve dichos saltos de línea. Los ejemplos en este texto usan el
formato compacto para ahorrar espacio. La tabla 2.2 muestra cómo se despliega el valor de p
en cada formato. Si ninguno de estos formatos de despliegue numérico predefinidos son
adecuados para usted, puede controlar líneas individuales de salida con la función fprintf.
y1 = linspace(-5,5,7)
y1 = 1×7
La función fplot le permite graficar una función sin definir arreglos de valores x y y
correspondientes.Por ejemplo,
Fplot(‘sin(x)’,[-2*pi,2*pi])
crea una gráfica (figura 5.26) de x contra sen(x) para valores x desde 22p hasta 2p. MATLAB
calcula automáticamente el espaciamiento de los valores x para crear una curva suave. Note
que el primer argumento en la función fplot es una cadena que contiene la función y el
segundo argumento es un arreglo.
22
subplot(m,n,p,'align')
subplot(m,n,p,ax)
subplot('Position',pos)
subplot(___,Name,Value)
ax = subplot(___)
subplot(ax)
Descripción
subplot(m,n,p) divide la figura actual en una cuadrícula de m por n y crea ejes en la posición
especificada por p. MATLAB® numera las posiciones de subgráfico por fila. El primer subgráfico
es la primera columna de la primera fila, el segundo subgráfico es la segunda columna de la
primera fila, y así sucesivamente. Si existen ejes en la posición especificada, este comando
convierte los ejes en los ejes actuales.
23
Ejemplo.
Subgráficos superiores e inferiores
Cree una figura con dos subgráficos apilados. Trace una onda sinusoidal en cada uno.
subplot(2,1,1);
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
subplot(2,1,2);
y2 = sin(5*x);
plot(x,y2)
grid off quita todas las líneas de cuadrícula de los ejes o gráficos actuales.
24
grid alterna la visibilidad de las líneas de cuadrícula principales.
grid minor alterna la visibilidad de las líneas de cuadrícula menores. Las líneas de
cuadrícula menores están entre las marcas de las garrapatas. No todos los tipos de gráficos
soportan líneas de cuadrícula menores.
grid(target,___) utiliza los ejes o el gráfico especificados por target en lugar de los
ejes o el gráfico actuales. Especifique target como el primer argumento de entrada. Utilice
comillas simples alrededor de otros argumentos de entrada, por ejemplo, grid(target,'on').
Ejemplo
Mostrar líneas de cuadrícula
Mostrar las líneas de cuadrícula para
una trama sinusoidal.
x = linspace(0,10);
y = sin(x);
plot(x,y)
grid on
title
Agregar título
Sintaxis
title(txt)
title(target,txt)
title(___,Name,Value)
t = title(___)
25
Descripción
title(txt) agrega el título especificado a los ejes o el gráfico devueltos por el comando gca . Al
volver a emitir el comando title , el nuevo título reemplazará el título anterior.
title(target,txt) agrega el título a los ejes, la leyenda o el gráfico especificados por target.
t = title(___) devuelve el objeto utilizado para el título. Utilice t para realizar modificaciones
futuras en el título.
Ejemplos
Agregar título a los ejes actuales
Cree una figura y muestre un título en los
ejes actuales.
plot((1:10).^2)
title('My Title')
26
22.- Qué es el comando text.
text
Agregar descripciones de texto a puntos de datos
Sintaxis
text(x,y,txt)
text(x,y,z,txt)
text(___,Name,Value)
text(ax,___)
t = text(___)
Descripción
text(x,y,txt) agrega una descripción de texto a uno o más puntos de datos de los ejes
actuales utilizando el texto especificado por txt. Para agregar texto a un punto, especifique x
y y como escalares en unidades de datos. Para agregar texto a varios puntos, especifique x y
y como vectores con igual longitud.
text(x,y,z,txt) coloca el texto en coordenadas 3-D.
text(___,Name,Value) especifica las propiedades de objeto Text mediante uno o varios pares
de valor de nombre. Por ejemplo, 'FontSize',14 establece el tamaño de fuente en 14 puntos.
Puede especificar propiedades de texto con cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores. z si especifica las propiedades Position y String como
pares nombre-valor, a continuación, no es necesario especificar el x, y, entradas y txt .
text(ax,___) crea el texto de los ejes especificados por ax en lugar de en los ejes actuales
(gca). La opción ax puede preceder a cualquiera de las combinaciones de argumentos de
entrada de las sintaxis anteriores.
t = text(___) devuelve uno o más objetos de texto. Utilice t para modificar las propiedades de
los objetos de texto una vez creados. Para obtener una lista de propiedades y descripciones,
vea Text Properties. Puede especificar un resultado con cualquiera de las sintaxis anteriores.
Ejemplos
Agregar texto a varios puntos de datos
Trazar una línea. Añada el mismo texto a dos puntos a lo largo de la línea.
x = linspace(-5,5);
27
y = x.^3-12*x;
plot(x,y)
xt = [-2 2];
yt = [16 -16];
str = 'dy/dx = 0';
text(xt,yt,str)
Agregue texto diferente a cada punto especificando str como una matriz de celdas.
x = linspace(-5,5);
y = x.^3-12*x;
plot(x,y)
xt = [-2 2];
yt = [16 -16];
str = {'local max','local
min'};
text(xt,yt,str)
Color Código
Amarillo ‘y’
Magenta ‘m’
Cian ‘c’
Rojo ‘r’
Verde ‘g’
28
Azul ‘b’
Blanco ‘w’
Negro ‘k’
29
Si deseamos cambiar el tipo de marcador con el cual se encuentran representados nuestros
datos, utilizamos alguno de los siguientes códigos:
Marcador Código
Circulo ‘o’
Signo de suma ‘+’
Asterisco ‘*’
Punto ‘.’
Cruz ‘x’
Cuadrado ‘s’
Diamante ‘d’
Triángulo hacia arriba ‘^’
Triángulo hacia abajo ‘v’
Triángulo a la derecha ‘>’
Triángulo a la izquierda ‘<’
Pentágono ‘p’
Hexágono ‘h’
30
31
25.- Biblografía.
https://es.wikipedia.org/wiki/MATLAB
https://es.wikipedia.org/wiki/Simulink
https://la.mathworks.com/help/symbolic/create-symbolic-numbers-variables-and-
expressions.html
https://la.mathworks.com/help/matlab/learn_matlab/scripts-and-functions.html
https://la.mathworks.com/help/matlab/ref/colon.html
https://la.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html
https://la.mathworks.com/help/matlab/matlab_prog/operator-precedence.html
https://la.mathworks.com/help/matlab/ref/power.html
https://la.mathworks.com/help/matlab/math/roots-of-polynomials.html
https://la.mathworks.com/help/matlab/ref/exp.html
https://la.mathworks.com/help/matlab/ref/log.html
http://www.ece.northwestern.edu/local-apps/matlabhelp/techdoc/ref/pi.html
https://la.mathworks.com/help/matlab/matlab_prog/complex-numbers.html
https://la.mathworks.com/help/matlab/matlab_prog/infinity-and-nan.html
https://la.mathworks.com/help/matlab/ref/format.html
https://la.mathworks.com/help/matlab/ref/linspace.html
https://la.mathworks.com/help/matlab/learn_matlab/basic-plotting-functions.html
http://usuariosmatlabesp.blogspot.com/2017/08/personalizando-graficos-en-matlab.html
32