Você está na página 1de 33

ESCUELA POLITCNICA NACIONAL MEC9E3 GR1

Facultad de Ingeniera Mecnica

Robtica
MEC9E3

Ing. Gabriel Bravo P., M.Sc.


Profesor

Semestre Abril Septiembre 2017


4/24/17 ROBTICA 1
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 1: Interface de trabajo en MATLAB

Directorio Actual Editor de bloques de cdigo

Espacio de trabajo Ventana de comandos

Figura: Interface de trabajo en MATLAB


Desarrollar la Actividad N1
4/24/17 ROBTICA 2
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 1: Interface de trabajo en MATLAB


Archivos de Bloques de cdigo en MATLAB (Scripts)
El crear archivos de bloques de cdigo en MATLAB permite
reutilizar un conjunto de comandos y funciones cuando sea
necesario.

Figura: Crear un nuevo archivo de bloques de cdigo en MATLAB

Un archivo de bloques de cdigo se guarda como: nombre.m

4/24/17 ROBTICA 3
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 1: Interface de trabajo en MATLAB


Archivos de Bloques de cdigo en MATLAB (Scripts)
Los cdigos contenidos en un Script se ejecutan al dar click en el botn
Run de la barra de herramientas

Figura: Correr el cdigo contenido en un Script

Es posible tambin, dar doble click sobre el archivo listado en el


directorio y seleccionar la opcin Run, o escribir el nombre del archivo
en la ventana de comandos y presionar <enter>.
Las variables creadas y resultados generados estarn disponibles en la
ventana del espacio de trabajo.
4/24/17 ROBTICA 4
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 2: Comandos bsicos y convenciones


Clculos en MATLAB
MATLAB puede ser utilizado como una calculadora
avanzada.
Los comandos a utilizarse con variables escalares se
muestran a continuacin:
Suma a+b Multiplicacin a*b
Resta a-b Divisin a/b
Exponenciacin a^b Notacin Cientfica aebaEb
Nmeros imaginarios A +iB A + jB Raz Cuadrada sqrt(x)
Nmero pi Valor absoluto abs(x)
Exponencial ex exp(x) Logaritmo natural log(x)
Factorial x! factorial(x) Logaritmo base 10 log10(x)

4/24/17 ROBTICA 5
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica
Ayuda en MATLAB
El comando doc <xxx> abre la documentacin de MATLAB y provee
informacin especfica acerca del comando consultado <xxx>.
El comando help <xxx> prove informacin acerca del comando consultado
<xxx> en la ventana de comandos.
Los comandos doc y help nicamente aceptan una palabra <xxx>.
Variables
Todas las variables son arreglos de datos y pueden tener una variedad de
dimensiones.
Las variables son del tipo doble (16 dgitos de datos) por default.
Generalmente se presentan nicamente 5 dgitos.
Los nombre de una variable deben iniciar con una letra, y pueden contener
letras, nmeros y guiones bajos.
Para verificar si el nombre de la variable asignada (vname) ha sido predefinido
en MATLAB, usar help vname.
4/24/17 ROBTICA 6
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica
Trabajando con variables
Las variables se enlistan en la ventana del espacio de trabajo o pueden ser listadas
usando el comando whos.
Es posible observar y editar el contenido de una variable usando el editor de
variables (Doble click sobre la variable en la ventana del espacio de trabajo).
Es posible ingresar el nombre de una variable en la ventana de comandos para
mostrar su contenido.
Otros comandos tiles en MATLAB
<> Muestra los comandos ingresados anteriormente en la ventana de comandos
% Convierte el contenido de un regln en un comentario (<Ctrl + R>;<Ctrl + T>)
... Contina el texto en la lnea siguiente
clear x Borra la variable x del espacio de trabajo (clear all)
close all Cierra todas las ventanas adicionales abiertas
; Al terminar una expresin con ;, no se muestra el resultado en la ventana de
comandos.
<Ctrl + C> Aborta los comandos en ejecucin
4/24/17 ROBTICA 7
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 3: Matrices en MATLAB


Vectores
Lista de nmeros:
Vector columna Nmeros separados por ;
Vector fila Nmeros separados por ,
Creando vectores fila usando el comando de espaciado uniforme y
el comando linspace:
Espaciado uniforme: x = a : dx : b
Comando linspace: x = linspace(a, b, n)
Donde: a = Punto inicial; b = Punto final; dx = Espacio;
n = Tamao del vector
Los vectores columna son vectores fila transpuestos: v_c = v_f
4/24/17 ROBTICA 8
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 3: Matrices en MATLAB


Matrices
Lista de datos en 2 dimensiones.
Se crean mediante la combinacin de vectores.
Ejemplo: A = [5 , 4, 3; 8, 7, 6]
Matrices especiales:
zeros (m, n) Matriz de ceros con m filas y n columnas
eye (m, n) Matriz identidad con m filas y n columnas
ones (m, n) Matriz de unos con m filas y n columnas
diag (v, k) Matriz cuadrada con el vector v como la diagonal nmero k
y ceros en las dems posiciones
rand (m, n) Matriz de nmeros tomados al azar de una distribucin
uniforme en el intervalo (0, 1)
4/24/17 ROBTICA 9
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Extraccin de datos de una matriz o un vector


En el editor de variables:
a. Seleccionar datos
b. Dar click derecho
c. Opcin: Crear variable a partir de la seleccin
d. Nombrar la variable
Notacin de ndices:
A(i, j) - Elemento de A en la fila i y en la comluna j
A (i , a : b) - a : b especifica un rango de ndices
A (: , j) - : especifica todos los ndices existentes
Ejm: A (4 , : ) - Especifica todos los elementos en la 4ta fila de A
A (k) - ndice singular que especifica un elemento contando desde
la esquina superior izquierda de una matriz y movindose hacia
abajo a lo largo de cada columna.
end - Specifica el ltimo elemento de una matriz
4/24/17 ROBTICA 10
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Operaciones con matrices y/o vectores


Sean A y B matrices, v y u son vectores, y c y d son constantes.

A c, v c Suma\resta c a cada elemento en la matriz o vector


A B, v u Suma\resta cada elemento en A (o v) al elemento correspondiente en B
(o u) (El tamao de las matrices o vectores debe ser el mismo)
A * c, A / c Multiplica (divide) cada elemento de A por c
A .* B, v .* u Multiplica\divide cada elemento en A (o v) por el elemento
A ./ B, v ./ u correspondiente en B (o u) (El tamao de las matrices o vectores debe
ser el mismo
A * B, v * u Producto cruz (Las dimensiones internas deben ser las mismas)
A .^c Eleva cada elemento de A a la potencia c
A ^c Eleva la matriz A a la potencia c (Multiplica A c veces)

Desarrollar la Actividad N3

4/24/17 ROBTICA 11
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 4: Funciones preeterminadas en MATLAB


Funciones predeterminadas
Sintaxis: salida = Nombre_Funcin(entrada)
Vectores y matrices pueden usarse como salidas y/o entradas
Una funcin puede tener mltiples entradas y/o salidas
[salida1, salida2]= Nombre_Funcin(entrada1, entrada2)
Mayor informacin referente a funciones
Click en el navegador de funciones fx
Comandos para obtener una lista de funciones:
doc elfun Funciones matemticas elementales
doc datafun Funciones estadsticas y de anlisis de datos
doc elmat Funciones matriciales
doc specfun Funciones matemticas especializadas
helpwin Todas las funciones disponibles

4/24/17 ROBTICA 12
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 4: Funciones preeterminadas en MATLAB


Ejemplo de Funciones elementales
max Encuentra el mximo
min Encuentra el mnimo
size Encuentra las dimensiones de un matriz
length Encuentra las dimensiones de un vector
round Redondea un nmero al entero ms cercano
mean Calcula el promedio
sum Encuentra la suma de un arreglo de nmeros
prod Encuentra el producto de un arreglo de nmeros
cumsum Encuentra la suma acumulada de un elemento a la vez
sort Ordena los elementos de un arreglo de nmeros en order ascendente

Desarrollar la Actividad N4
4/24/17 ROBTICA 13
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 5: Grficos en MATLAB


Crear grficos en MATLAB
El comando figure abre una nueva ventana de rea de
grfico
Usar el comando plot(x,y)
Para aadir un grfico adicional a un grfico ya existente,
usar el comando hold on
La cuadrcula se activa o desactiva con el comando grid
Editar grficos en MATLAB
Usar las herramientas de grafico para editar y aadir datos

Figura: Barra de herramientas en un grfico


4/24/17 ROBTICA 14
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 5: Grficos en MATLAB


Editar un grfico en MATLAB implica:
Generar el grfico en un archivo de bloque de cdigos, de modo que el
mismo pueda ser recreado cuando sea necesario.
Aadir un ttulo, etiquetas de ejes, y leyendas de datos, mediante los
siguientes comandos:
Ttulo: title (texto)
Etiqueta eje x: xlabel (texto)
Etiqueta eje y: ylabel (texto)
Leyenda de datos: label (texto_leyenda1,, texto_leyendaN)
Dar formato a las curvas de datos y puntos de datos (colores y espesor de
lneas) aadiendo propiedades en el comando plot(x,y)
Usar la ayuda de MATLAB: help plot
Incluir varios pares de ejes en una misma ventana de grafco usando el
comando subplot
Desarrollar la Actividad N5
4/24/17 ROBTICA 15
ESCUELA POLITCNICA NACIONAL MEC9E3 GR1
Facultad de Ingeniera Mecnica

Leccin 6: Funciones en MATLAB


Crear una funcin en MATLAB:
Crear un archivo de bloque de cdigo (script) cuyo nombre corresponda al
nombre de la funcin.
La primera lnea de cdigo debe corresponder a la declaracin de la funcin:
function [salida1, , salidaN] = Nombre_Funcin (entrada1, , entradaN)
Una funcin puede trabajar con un nmero indefinido de entradas y/o salidas.
El nombre de las variables en el cdigo de la funcin no deben corresponder al
nombre de la variable en el cdigo de invocacin de la funcin.
La funcin creada debe ser invocada desde un script diferente al script donde
se creo la funcin.
La funcin creada puede ser invocada tambin desde la ventana de comandos.

Desarrollar la Actividad N6
4/24/17 ROBTICA 16
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 7: Control de Flujo y Lazos en MATLAB


Control de Flujo:
Sintaxis: if elseif else
if condicin1 == verdadero
definicin 1 (operacin 1)
elseif condicin2 == verdadero
definicin 2 (operacin 2)
else
definicin 3 (operacin 3)
end
4/24/17 MECATRNICA 17
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 7: Control de Flujo y Lazos en MATLAB


Control de Lazos:
Lazos while: Ejecuta iteraciones hasta que una condicin deje
de ser verdadera.
while condicin1 == verdadero
Ejecuta la operacin de lazo
end
Lazo for: Repite una operacin por un nmero definido de
iteraciones.
for contador = rango
Ejecuta la operacin de lazo
end
4/24/17 MECATRNICA 18
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 7: Control de Flujo y Lazos en MATLAB


Control de Lazos:
El rango para el lazo for puede ser cualquier vector
ordenado o desordenado.
Si el contador para el lazo for es definido en funcin de
ndeces, stos deben ser positivos.
Comando break: Interrupe un control de lazos si una
condicin se cumple.
while condicin1 == verdadero
Ejecuta la operacin de lazo
if condicin2 == verdadero
break
end
4/24/17 MECATRNICA 19
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 7: Control de Flujo y Lazos en MATLAB


Operadores lgicos y de comparacin:

== Igual a & Operador y Todas las condiciones


deben cumplirse
~= No igual a
<, > Menor que, mayor que | Operador o Una de la condiciones
debe cumplirse
<= Menor que o igual a
~ Operador de negacin
>= Mayor que o igual a
all Todos son verdaderos
any Todos son falso

Mayor informacin acerca de los operadores lgicos y de


comparacin en la ventana de ayuda.
Ingresar: logical operators and relational operators.
Desarrollar la Actividad N7
4/24/17 MECATRNICA 20
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 8: Solucin de Ecuaciones Diferenciales en


MATLAB
EDOs de Primer Orden
Expresar cada EDO de forma que el trmino derivativo est alineado a la
izquierda del signo igual, y los trminos no derivativos a la derecha del
signo igual.
Usar el comando ode45 para resolver la EDO.
Vector tiempo para la solucin Vector tiempo de entrada Condicin Inicial
[T_salida, Y_salida] = ode45(nombre_fun, t_rango, y0)
Solucin y(t) Nombre de la funcin que contiene la EDO
nombre_fun es el nombre de la funcin (archivo.m) que evala la ODE
definida, y que debe tener la asignacin:
function dx = odefun (t, x)
Para mayor referencia de cmo definir una funcin, revisar la actividad 6
4/24/17 MECATRNICA 21
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 8: Solucin de Ecuaciones Diferenciales en MATLAB


EDOs de Orden Superior (mayor a 1)
Las EDOs de orden superior deben ser redefinidas como EDOs de primer orden. Los
pasos a seguir son:
1. Resolver para el trmino de mayor orden.
2. Redefinir la expresin como la primera derivada de una variable flotante
(virtual).
3. Integrar la expresin obtenida en el paso (2).
4. Si la expresin obtenida en el paso (3) no es de primer orden, repetir los pasos
(2) y (3).
5. Redefinir la expresin obtenida de forma que los trminos alineados a la derecha
del signo igual correspondan a trminos derivativos de primer orden, y que los
trminos a la derecha no contengan ningn trmino derivativo.
6. Usar ode45 con vectores de entrada. El orden en los vectores debe ser
consistente.
7. Seleccionar la columna correcta de la matriz resultante correspondiente a
Y_salida, dependidendo del orden del vector.
Desarrollar la Actividad 8
4/24/17 MECATRNICA 22
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 9: Introduccin a SIMULINK


Interfaz de programacin grfica en MATLAB
El navegador de SIMULINK se abre al ingresar la palabra
simulink en la ventana de comando, o al dar click en el botn
correspondiente de la barra de herramientas de MATLAB.

Figura: Abrir el navegador de Simulink


Crear un nuevo diagrama de Bloques

Figura: Crear un nuevo diagrama de bloques


4/24/17 MECATRNICA 23
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 9: Introduccin a SIMULINK


Navegador de SIMULINK

Bloques de tiempo
continuo

Operadores
Matemticos

Bloques de Salida

Bloques de Entrada

Figura: Navegador de Simulink


4/24/17 MECATRNICA 24
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 9: Introduccin a Simulink


Bloques ms usados
Bloque de ganancia Bloque Graficador de
multiplicador por una funciones
constante (Osciloscopio)
Bloque que suma y/o Bloque de Salida de
resta seales de Tiempo
entrada
Bloque multiplicador Bloque de Funcin
y/o divisor de seales Paso (Escaln)

Bloque de funciones Bloque de Funcin


trigonomtricas Rampa

Bloque integrador de Bloque de funcin


seales seno

4/24/17 MECATRNICA 25
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 9: Introduccin a Simulink


Creacin de Diagrama de Bloques
Arrastrar bloques desde la librera hasta la ventana de trabajo de
Simulink.
Conectar bloques trazando conectores de seal desde los puertos
de salida de un bloque hasta los puertos de entrada de otro
bloque.

Figura: Conexin de bloques


4/24/17 MECATRNICA 26
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 9: Introduccin a Simulink


Creacin de Diagrama de Bloques
Dar doble click sobre un bloque para cambiar o definir
parmetros y obtener mayor informacin.
Etiquetar bloques o seales dando doble click sobre la etiqueta de
cada bloque o sobre el conector.
Editar el formato de un bloque al dar doble click sobre el mismo
y seleccionar la opcin format.
Guardar el modelo creado usando el botn guardar.
Invocar un modelo desde MATLAB, escribiendo su nombre en la
ventana de comandos, o de la forma tradicional al ubicarlo en el
directorio correspondiente (doble click sobre su nombre).
Desarrollar la Actividad 9.

4/24/17 MECATRNICA 27
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 10: Ejecutar una simulacin en Simulink


Ejecutar la simulacin
Dar click en el botn ejecutar (play):

Figura: Barra de herramientas de Simulink

Ajustar el tiempo de parada en la barra de herramientas. Una


entrada de tiempo de parada Inf ejecutar la simulacin en
tiempo continuo.
La simulacin puede ser detenida al dar click sobre el botn de
parada (stop).

4/24/17 MECATRNICA 28
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 10: Ejecutar una simulacin en Simulink


Visualizar resultados
Dar doble click en el bloque graficador de funciones (Osciloscopio).
Ajustar los ejes automticamente dando click sobre el botn de auto-
ajuste.

Figura: Barra de herramientas del Osciloscopio


Ajustar Parmetros de Simulacin.
Men Simulation Model Configuration Parameters Solver
Cambios comunes: paso (step size), tipo de funcin para encontrar la
solucin (solver).
Ayuda adicional: Documentacin Simulink Comando doc
simulink o help simulink
Desarrollar Actividad 10
4/24/17 MECATRNICA 29
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 11: Interconexin entre MATLAB y


Simulink
Importar datos desde Matlab
Incluir en Simulink un bloque de entrada de datos.

Figura: Bloque de entrada de datos desde Matlab a Simulink


Ingresar un nombre de variable (simin por default).
La variable simin en Matlab debe corresponder a
una matriz de dos coulmnas: la primera columna
debe corresponder al vector tiempo, y la segunda
columna debe corresponder a una seal especfica.
4/24/17 MECATRNICA 30
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 11: Interconexin entre MATLAB y


Simulink
Exportar datos desde Matlab
Incluir en Simulink un bloque de salida de datos.

Figura: Bloque de salida de datos desde Simulink a Matlab

Ingresar un nombre de variable (simout por default).


Dentro de las propiedades del bloque de salida de datos,
especificar el formato de los datos guardados como un
arreglo de valores (array).
Exportar los datos correspondientes al vector tiempo y a
la seal generada en Simulink.
4/24/17 MECATRNICA 31
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 11: Interconexin entre MATLAB y


Simulink
Modificar parmetros desde Matlab
Ingresar una variable en cualquiera de los bloques definidos
por parmetros.
Definir el valor de la variable en el espacio de trabajo de
MATLAB.
Ejecutar la simulacin de un mdelo en Simulink desde
MATLAB
Luego de definir una variable (con el mismo nombre usado
en Simulink) y su valor correspondeinte en MATLAB, usar
el comando:
sim (nombre_del_modelo)
Verificar los resultados en Simulink.
Desarrollar la actividad 11.
4/24/17 MECATRNICA 32
ESCUELA POLITCNICA NACIONAL MECATRNICA MEC8R3 GR1
Facultad de Ingeniera Mecnica

Leccin 12: Resolver Ecuaciones Diferenciales en Simulink


Modelado de EDOs:
Definir el sistema de bloques de tal forma que el resultado final
corresponda a la integracin del trmino derivativo de mayor orden
(Despejar el trmino derivativo de mayor orden en la EDO).

Figura: Resultado final de una EDO modelada en Simulink


Ejemplo:

Figura: Ejemplo de aplicacin


Desarrollar Actividad 12
4/24/17 MECATRNICA 33

Você também pode gostar