0% encontró este documento útil (0 votos)
13 vistas12 páginas

Introducción a MATLAB para Robótica

La guía presenta una introducción a MATLAB, destacando su capacidad para cálculos y simulaciones matemáticas mediante un entorno amigable. Se explican operaciones con matrices, cómo crear y manipular variables, y se ofrecen ejemplos prácticos y actividades resueltas para aplicar los conceptos. Además, se incluyen actividades propuestas para profundizar en el uso de MATLAB en el contexto de la robótica y automatización industrial.

Cargado por

jlopezgomez1979
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas12 páginas

Introducción a MATLAB para Robótica

La guía presenta una introducción a MATLAB, destacando su capacidad para cálculos y simulaciones matemáticas mediante un entorno amigable. Se explican operaciones con matrices, cómo crear y manipular variables, y se ofrecen ejemplos prácticos y actividades resueltas para aplicar los conceptos. Además, se incluyen actividades propuestas para profundizar en el uso de MATLAB en el contexto de la robótica y automatización industrial.

Cargado por

jlopezgomez1979
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ROBÓTICA Y AUTOMATIZACIÓN IND.

II
TERCER CURSO DEL GRADO EN
INGENIERÍA ELECTRÓNICA INDUSTRIAL

Guía 1
INTRODUCCIÓN A MATLAB
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Introducción a Matlab

Introducción
MATLAB es un paquete de software que proporciona un entorno potente y amigable para
cálculo y simulación. El entorno de programación ofrece operaciones matemáticas básicas más
una serie de procedimientos operacionales (conocidos como funciones).

La programación en MATLAB permite realizar de forma directa diversas tareas que requieren
cierta complejidad computacional. Las herramientas de programación abarcan operaciones
matemáticas básicas y también un gran conjunto de procedimientos computacionales que se
diseñan para tareas específicas. Así, el usuario tiene la opción de desarrollar un programa a
medida o de llamar a cualquiera de las funciones de propósito especial que residen en los
ficheros de MATLAB. Además, un potente procesador gráfico permite visualizaciones de alta
calidad de las variables en diversos formatos. Programando en MATLAB, cada variable se
supone que es una matriz y no existe ningún requisito para el dimensionamiento y declaración
de variables. Las dimensiones de la matriz se definen mediante una lista explícita de elementos
o por reglas que se aplican a las operaciones matemáticas.

Las sentencias de MATLAB están típicamente en el formato general de variable=expresión (o


simplemente expresión), y se devuelve una variable como respuesta a una interpretación de
MATLAB de la evaluación de la expresión. Un ejemplo simple es:

y = 10*sin(pi/6)

El resultado devuelto es un escalar (matriz de 1 por 1) con un valor de 5,0. además el usuario
podrá insertar la variable de salida y en cualquier sentencia que siga.

Frecuentemente es útil considerar una expresión que se puede utilizar para generar un vector
que describa el tiempo o una variable independiente. Debido a que se trata de un cálculo
numérico, el tiempo deberá expresarse en pasos discretos. Por ejemplo, se considera la
generación de un vector fila con valores que aumentan desde 0 a 4 con un tamaño de paso fijo
de 0,02. El procedimiento más simple para obtener este vector es una sentencia que expresa:

t =0 : 0.02 : 4

El resultado es una variable matricial t con una fila y 201 columnas. Si el tamaño del paso se
omite el valor por defecto es la unidad. No se requieren los paréntesis para generar un vector
fila; sin embargo, si los paréntesis derechos van seguidos por apóstrofe la matriz se transpone
y el vector de tiempos de transforma en un vector columna.

t = (0 : 0.02 : 4)’

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Operaciones con matrices

Las matriciales con filas múltiples se pueden especificar colocando un punto y coma, que
indica el comienzo de una nueva fila o comenzando la nueva fila en la línea siguiente. Una
sentencia tal como

a = [12 40 8 4; 10 2 16 36; 2 7 5 4]

producirá una matriz con tres filas y cuatro columnas. Los elementos de la matriz se identifican
mediante el número de fila y columna; así, una sentencia que especifica:

a(1,2)= 30

cambiará 40 por 30. Si se desea crear una matriz con los valores la primera fila, puede
utilizarse la sentencia:

g = a(1,:)

Si por el contrario se desea que g contenga todas las filas y solo las tres primeras
columnas la sentencia a utilizar es:
g = a( : , 1:3)

Las expresiones que contienen matrices deben, por supuesto, seguir las reglas del álgebra
matricial. Si se obtiene un mensaje de error debido a matrices con dimensiones no acordes, el
usuario puede comprobar rápidamente las dimensiones de una variable (tal como a)
escribiendo size(a). La respuesta se presenta con el número de filas seguido por el número de
columnas.

Todos los elementos de una variable se pueden borrar utilizando la orden clear a, o se pueden
borrar todas las variables escribiendo simplemente clear.

Las operaciones matriciales incluyen el símbolo de apóstrofe para trasponer y los símbolos +, ‐,
* y ^ para la suma, resta, multiplicación y elevar a una potencia. La expresión inv(a) producirá
la inversa de la matriz a. Si dos matrices tienen las mismas dimensiones, puede ser útil una
operación de arrays. La operación de array se efectúa elemento a elemento, creando así una
nueva matriz de igual dimensión. Un símbolo de operación de array se designa colocando un
punto justamente antes del símbolo que se aplica a la operación matricial. Por ejemplo:

t = 0 : 0.05 : 6:

y = (4*t).*(exp(‐2*t));

Como los factores 4*t y exp(‐2*t) se generan ambos como matrices columnas (121 por 1), la
generación de y con una única sentencia requiere la aplicación de una multiplicación de arrays.
El cálculo tal como se describe crea otra matriz columna (121 por 1) con los valores deseados
para los elementos.

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Ayuda en Línea

Se puede obtener una ayuda en línea escribiendo help, seguido por el nombre de la función o
del tema. Las instrucciones para aplicar ciertos procedimientos, tales como la construcción de
lazos for, lazos while y condiciones if, else se pueden encontrar escribiendo help seguido de
for, while o if, respectivamente.

Actividades resueltas
Actividad 1. Considere la siguiente matriz:

11 12 13 14 
21 22 23 24
A
31 32 33 34
 
41 42 43 44

Se pide:

a) Introducir la matriz A.

b) Obtener los valores de la primera columna.

c) Obtener los valores de la segunda fila.

d) Obtener los valores de la segunda y la tercera columna.

e) Obtener la diagonal de A.

f) Obtener una matriz de 2x2 donde todos lo elementos sean 1.

g) Obtener una matriz unidad de orden 2x2.

Actividad 2. Se trata de diferenciar el uso de funciones orientadas al elemento de las


orientadas a operar con la matriz:

a) Entrar la siguiente matriz:

0 
A   
 6 2 

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

b) Encontrar la matriz transpuesta de A

c) Encontrar los autovalores y autovectores de A

d) Calcular la matriz columna resultante de multiplicar elemento a elemento B y C

1
B  1 y C  2 3 4

1

Actividad 3. Para cada una de las funciones indicadas, escriba un script que permita obtener su
valor para cualquier valor de t. Realice una representación de cada una de ellas para un amplio
rango de valores de t.

a) y(t)= 2 ∙ t

1 para t > 0
u(t)=
b)
0 para t < 0

c) f(t) = u(t‐2)∙ y(t)

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Soluciones

Actividad 1

a) >> A=[11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44]

A=

11 12 13 14

21 22 23 24

31 32 33 34

41 42 43 4

b) >> A(:,1)

ans =

11

21

31

41

c) >> A(2,:)

ans =

21 22 23 24

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

d) >> A(:,2:3)

ans =

12 13

22 23

32 33

42 4

e) >> diag(A)

ans =

11

22

33

44

f) >> ones(2,2)

ans =

1 1

1 1

g) >> eye(2)

ans =

1 0

0 1

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Actividad 2

a) >> A=[0 pi; pi/6 pi/2]

A=

0 3.1416

0.5236 1.5708

>> B2=cos(A)

B2 =

1.0000 ‐1.0000

0.8660 0.0000

b)

c) >> [M,L] = eig(A) % Autovectores (columnas de M) y autovalores (diagonal de L)

M=

‐0.9748 ‐0.8082

0.2230 ‐0.5889

L=

‐0.7185 0

0 2.2893

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

d) >>B.*C'

ans =

Actividad 3

a) fichero recta.m:

function [salida]=recta(t)

salida= t;

comandos desde la consola de MATLAB

» t=-5:0.001:5;

» y=2*recta(t);

» plot(t,y);

10

-2

-4

-6

-8

-10
-5 -4 -3 -2 -1 0 1 2 3 4 5

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

b) fichero escalon.m:

function [salida]=escalon(t)

m=length(t);

salida=zeros(1,m);

for i =1:m;

if t(i)<0

salida(i)=0;

else

salida(i)=1;

end

end

comandos desde la consola de MATLAB

» u=escalon(t);

» plot(t,u)

2.5

1.5

0.5

-0.5

-1
-5 -4 -3 -2 -1 0 1 2 3 4 5

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

c) En primer lugar hay que obtener la función u(t‐2). Representando dicha función junto
a y(t) queda claro que u(t‐2) representa un escalón desfasado 2 unidades:

» u=escalon(t‐2);

» plot(t,y,t,u,'r')

10

-2

-4

-6

-8

-10
-5 -4 -3 -2 -1 0 1 2 3 4 5

la función se obtiene multiplincando ambas funciones, es decir, multiplicando u e y elemento a


elemento:

» f=y.*u;

» plot(t,f)

10

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA
ROBÓTICA Y AUTOMAT. IND II
GUÍA 1

Actividades propuestas:

Actividad 5. Considere la matriz de la práctica 1, obtenga:

a) Una matriz compuesta por los elementos que pertenezcan a las columnas 2 y 3 y a
las filas 2 y 3.

b) Una matriz de orden 4 x 6 formada por : la matriz A, una matriz de 2 x 2 con todos
sus elementos iguales a uno y una matriz identidad de 2 x 2.

Actividad 6. Considere que el número de habitantes de una población evoluciona en el


tiempo de acuerdo con la siguiente función:

N (t )  5e 0.2t cos(0.9t  30º )  0.8e 2t  5, donde 0  t  30

Represente gráficamente la función, interprete dicha evolución en el tiempo. Encuentre el


máximo valor de la función y el instante en el éste se alcanza.

Actividad 7. Dibuje un cuadrado centrado en el origen de coordenadas cuyos vértices se sitúen


en los puntos (1,1), (1,‐1), (‐1,‐1), (‐1,1).

Actividad 8.‐ Dibuje un prisma rectangular cuyas bases estén definidas por dos cuadrados
similares al del ejercicio anterior, separados por una distancia de tres unidades.

_____________________________________________________________________________
GRADO EN INGENIERÍA ELECTRÓNICA
3º CURSO (F. Gómez‐Bravo) DIESIA, UNIVERSIDAD DE HUELVA

También podría gustarte