You are on page 1of 233

1 /36

Introduccion a la Programacin
con Matlab
M.C Jaime Alejandro Castellanos
2 /36
Objetivo
Al trmino del curso el alumno deber dominar
y conocer los fundamentos bsicos de un
lenguaje de programacin de alto nivel,
orientado al tratamiento del clculo matricial y
visualizacin grfica de la informacin como
una herramienta para los cursos de ingeniera








3 /36

Contenido
1. Introduccin
2. Entorno del sistema
3. Variables
4. Programacin
5. Vectores y matrices
6. Graficas
7. Simulink
8. Trabajo final
4 /36
5 /36
Mathworks
Creado en 1984.
Es una empresa global con
sede en 60 paises:
Ubicada en 3 Apple Hill Drive.
Natick, Boston, Massachusetts

Los principales productos que
ofrece son:

MATLAB Simulink Stateflow
6 /36
MatLab significa MATrix LABoratory.
Es un programa para hacer computacin
numrica.
Fue diseado para manipular matrices y ploteo
de datos.
Ahora incluye funciones para: analizar datos,
procesar seales, optimizar funciones.
Contiene funciones para los grficos 2-Dy 3-D.
Tiene interfaces con otros lenguajes
Qu es a MATLAB?
7 /36
Qu es a MATLAB?
Trabaja nmeros escalares (reales y
complejos), con caracteres y otras estructuras
de datos.
Tiene un lenguaje de programacin propio.
Matlab est constituido por una familia de
aplicaciones especficas llamadas toolboxes.
De acuerdo con el campo en el cual el usuario
va a implementar su aplicacin, selecciona la
Toolbox necesaria.

8 /36
Sistema Matlab
El lenguaje de programacin: Es un lenguaje de
arreglos matriciales de alto nivel, con control de flujo
de sentencias, funciones, estructuras de datos,
entradas/salidas, y especiales caractersticas de
programacin orientada a objetos
Ambiente de trabajo: Este es el kit de herramientas
que uno puede tener disponible como usuario o
programador de Matlab. Incluye facilidades para
manejo de variables en el ambiente de trabajo y
exportacin e importacin de datos
9 /36
Sistema Matlab
Manejador de Grficos: Este incluye un elevado
nivel de comandos para la visualizacin de datos en
dos y tres dimensiones, procesamiento de imgenes,
animaciones y presentacin de grficos
10 /36
Librera de funciones matemticas: Esta es una
robusta coleccin de algoritmos computacionales,
que rene desde funciones elementales como suma,
seno, coseno y aritmtica compleja, hasta funciones
mas sofisticadas como inversas de matrices,
funciones de Bessel y transformadas rpidas de
Fourier
Interfaz con programas: Esta es una librera que
permite escribir programas en C y Fortran que
interactan con Matlab. Incluye facilidades para
llamar rutinas desde Matlab (enlace dinmico)
11 /36
SIMULINK
Este es uno de los programas que acompaa a
Matlab, es un sistema interactivo para simulacin de
sistemas dinmicos no lineales. Este programa
controlado con el mouse nos permite modelar un
sistema dibujando diagramas de bloques.

12 /36
La familia de matlab
13 /36
Stateflow

Stateflow es una librera (toolbox) de Matlab que
permite modelar sistemas de eventos discretos
dentro de Simulink, utilizando cartas de estado
(statecharts). Son una generalizacin de las
maquinas de estados.

14 /36
RTW
Matlab presenta una aplicacin para hacer
simulaciones en tiempo real, esta toolbox es
Real Time Windows . Esta herramienta
presenta diferentes aplicaciones como control en
tiempo real, modelamiento de sistemas fisicos.
15 /36
Caja de herramientas.
Conjunto de funciones para
resolver problemas.
DSP (Digital Signal Processing)
Toolbox
Image Toolbox
Wavelet Toolbox
Neural Network Toolbox
Fuzzy Logic Toolbox
Control Toolbox
Multibody Simulation Toolbox
16 /36
2. Entorno del sistema MATLAB
17 /36
Entorno del sistema
Windows XP/2000
MATLAB se instala en c: \MATLAB7
El cdigo de usuario en algn lugar (por ejempo h: \matlab )

Linux (entorno de red)
MATLAB se instala en /apps/matlab
El cdigo de usuario en /home/username/matlab
La configuracin del entorno en ~/.matlab
18 /36
Ejercicio
Identifique el path donde se ubica el matlab en su
instalacin.
19 /36
Elementos bsicos del escritorio de Matlab

Command Windows: Donde se ejecutan todas las instrucciones y
programas. Se escribe la instruccin o el nombre del programa y se da a
Enter.

Command History: Muestra los ltimos comandos ejecutados en
Command Windows. Se puede recuperar el comando haciendo doble

Current directory: Situarse en el directorio donde se va a trabajar

Help (tambin se puede usar desde comand windows)

Workspace: Para ver las variables que se estn usando y sus
dimensiones (si son matrices)

Editor del Matlab: Todos los ficheros de comandos Matlab deben de
llevar la extensin .m
20 /36
MATLAB Desktop
Command
Window
start
Command
History
>> comando
Command History historia de los comandos y
funciones.
start es usada para proporcionar un facil acceso a,
las herramientas, demos, y documentacin.
Command Window
es usada para la
entrada de
variables,ejecucion
de funciones y
archivos M-files. Es
donde se interactua
directamente con
matlab.
21 /36
MATLAB Desktop contd
Command
Window
Workspace
Current
Directory
Workspace
consiste de un
conjunto de variables
(arrays) creadas
durante la sesin
MATLAB y
almacenadas en
memoria.

Current Directory
Directorio de trabajo
actual.
22 /36
Editor MATLAB
23 /36
Getting MATLAB Help
Teclea cada uno de los
siguientes comandos en la
ventana de comandos:

>>help
>>help topic
>>help command
>>helpwin










24 /36
Lnea de comandos
Permite usar el MatLab como una calculadora.
Permite ingresar rdenes directamente al MatLab.
Los resultados se presentan en la misma pantalla.
Permite ejecutar los m-files.
25 /36
Lnea de comandos
Command Window
26 /36
Espacio de trabajo
MATLAB mantiene un espacio de trabajo activa.
Las variables (datos) cargados o definidos estn siempre
disponibles.
>> who

Your variables are:

x y
who: lista las variables del espacio de trabajo
27 /36
>> whos
Name Size Bytes Class

x 3x1 24 double array
y 3x2 48 double array

Grand total is 9 elements using 72 bytes
whos: listas nombres y propiedades bsicas de las variables
>> pwd
ans =

D:\

>> cd cw96\jun02
>> dir
. 30m_wtv.mat edson2km.mat jun02_30m_runs.mat
.. 960602_sst.mat edson_2km_bulk.mat
pwd, cd, dir, ls: similar a los comandos del sistema operativo
28 /36
Funciones Generales
whos Lista las variables actuales y su tamao
clear Limpia las variables y funciones de la memoria
cd Cambie el directorio actual de trabajo
dir Presenta la lista de archivos en el directorio
pwd Indica el directorio de trabajo actual
clc Limpia el contenido de la lnea de comandos
echo eco de los comandos en m-files
ls Presenta la lista de archivos en el directorio

29 /36
Algunos comentarios sobre la ventana de comandos

Se pueden recuperar instrucciones con las teclas
Se puede mover por la lnea de comandos con las
teclas .
Ir al comienzo de la lnea con la tecla Inicio y al final
con Fin. Con Esc se borra toda la lnea.

Se puede cortar la ejecucin de un programa con
Ctrl+C

30 /36
>> A=3
A =
3



3
A
3. Variables en MatLab
31 /36
Nombre de las Variables

Los nombres de las variables deben
comenzar con una letra. Despus de esa
letra, es vlida cualquier ordenacin de
letras, nmeros y signos de subrayado.
Matlab es sensible a las maysculas.
voltaje,Voltaje, volTAJE y VOLTAJE son
todas variables diferentes.

32 /36
Nombre de las Variables

El nombre de las variables puede contener
hasta 63 caracteres.
Por defecto, Matlab almacena resultados
en la variable ans.
Slo recuerda los primeros 19 caracteres
de un nombre de una variable.
No se puede iniciar en (_), no puede
contener el signo (-).
33 /36
Variable Valor
ans Nombre por defecto de la variable usada para los
resultados.
pi Razn de una circunferencia a su dimetro.
eps Nmero ms pequeo tal que, cuando se le suma 1,
crea un nmero en coma flotante en el computador
mayor que 1.
inf Infinito
NaN Magnitud no numrica
i y j i=j=sqrt(-1)
realmin El nmero real positivo ms pequeo que es
utilizable.
realmax El nmero real positivo ms grande que es utilizable,
Variables Especiales
34 /36
Constantes y nmeros complejos

Constantes caractersticas: pi=t, NaN
(not a number, 0/0), Inf=.

Nmeros complejos: i=sqrt(-1) (slo se
puede usar i o j), z=2+i*4, z=2+4i
Cuidado con no usar luego i como
contador en un bucle trabajando
con complejos.
35 /36
OPERACIONES CON MATLAB

De la misma forma que una calculadora,
Matlab realiza las operaciones matemticas,
para ello se utiliza notacin decimal
convencional, dejando como optativo los
signos.
Matlab reconoce la suma (+), resta (-),
multiplicacin (*), divisin (/ o \) potenciacin
(^).
Matlab evala una expresin de izquierda a
derecha dando precedencia a la potencia sobre
la multiplicacin y la divisin y a stas sobre la
suma y resta.
36 /36
OPERACIONES CON MATLAB

Un punto y coma (;) al final de una orden de
Matlab suprime la impresin de resultados.
Si una orden es demasiado larga, escriba
tres puntos (...) seguido por enter para
continuar la rden de Matlab en la siguiente
lnea.
Se pueden incluir varias expresiones en
una misma lnea separndolas por comas
(,) o puntos y comas (;).

37 /36
Operadores Matemticos & Asignacin
- (unrio) + (unrio)
Adicin + a + b
Sustraccin - a - b
Asignacin = a = b


Potencia ^ .^ a^b a.^b
Multiplicacin * .* a*b a.*b
Divisin / ./ a/b a./b
\ .\ b\a b.\a

Nota: 56/8 == 8\56


38 /36
-5/(4.8+5.32)^2
ans =
-0.0488
(3+4i)*(3-4i)
ans =
25
cos(pi/2)
ans =
6.1230e-017
exp(acos(0.3))
ans =
3.5470
a = 2;
b = 5;
a^b
ans =
32
x = 5/2*pi;
y = sin(x)
y =
1
z = asin(y)
z =
1.5708
El resultado
tiene el nombre
ans si el
nombre no se
especifica

() parntesis para
el ingreso de
funciones

Punto y coma
permite que no
presente el resultado

Calculadora Asignacin de variables
Clculos en la lnea de comandos
39 /36
Ejercicio
Revise las variables creadas
desde que ingreso al MatLab.

Defina una carpeta de trabajo.
cd path_de_trabajo
Grabe todas las variables creadas
hasta en el momento.
save primeraclase
Elimine todas la variables
clear
Recupere las variables
load primeraclase
40 /36
Ejercicio
Calcule las siguientes expresiones en MatLab
e = 2.3026
x = e
2
-2/sin(3)
y = 2x+3cos(x)3
x
a = 3+2i
b = 4+5i
c = a + b
d = a b
e = c*d
s = sin(e)
sin(0)
0/0
1/0
debe de pasar a matlab
41 /36
continua
>> y = 5*3 + 2^2; % operacin aritmetica
>> x = [1 2 4 5 6]; % crea vector x
>> x1 = x.^2; % cuadrado de cada elemento
del vector x
>> E = sum(abs(x).^2); % Suma del cuadrado de los
elementos del vector x
>> P = E/length(x); % Calcula el primedio
>> x2 = x(1:3); % Selecciona los primeros tres
elementpos de x
>> z = 1+i; % Crea un nmero complejo
>> a = real(z); % parte real
>> b = imag(z); % parte imaginaria
>> plot(x); % grafica del vector x
>> t = 0:0.1:100; % genera un vector de tiempo
>> x3=exp(-t).*cos(t); % Genera una seal discreta
>> plot(t, x3, x); % grafica del vector x3
42 /36
Formato de Visualizacin de Nmeros
Orden en Matlab Voltaje Comentario
format long 35.83333333333334 16 dgitos
format short e 3.5833e+01 5 dgitos ms
exponente
format long e 3.583333333333334e+01 16 dgitos ms
exponente
format bank 35.83 2 dgitos decimales
format + + positivo, negativo o
cero
format rat 215/6 aproximacin racional
format short 35.8333 visualizacin por
defecto
42
43 /36
Funciones matemticas
abs(x) valor absoluto de un nmero complejo
acos(x) inversa del coseno
angle(x) ngulo de un nmero complejo
asin(x) inversa del seno
atan(x) inversa de tangente
conj(x) complejo conjugado
cos(x) coseno
exp(x) exponencial ex
imag(x) parte imaginaria de un nmero complejo
log(x) logaritmo natural
log10(x) logaritmo decimal
sign(x) funcin signo
sin(x) seno
sqrt(x) raz cuadrada
tan(x) tangente
44 /36
Otras
funciones
Descripcion
real(x)
imag(x)
round(x)
fix(x)
floor(x)
ceil(x)
factor(x)
gcd
lcm
rem
max, min
mean,
median
std, var
sort
sum, prod
trapz

Real part of complex value x
Imaginary part of complex value x
Round to do nearest integer
Round a real value toward zero
Round x toward -
Round x toward +
1 if x is a prime number, 0 if not
Mximo comn divisor
Mnimo comn mltiplo
Residuo despus de la divisin
Mximo y mnimo de matrices
Promedio y mediana de matrices
desviacin estndar y varianza
orden ascendente
suma y producto de elementos
Integracin numrica trapezoidal
Funciones matemticas
45 /36
4. Programacin
Archivos de Matlab

Archivos de programa: Se construyen mediante una secuencia de
comandos. El archivo principal se llamar main_nombre.m

Archivos de funcin: para crear funciones propias. Son llamados
por los archivos de programa.
La primera lnea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada,
parametros)
El archivo se debe guardar como funcion_nombre.m

Comandos de entrada y salida:
input: permite introducir datos: ae=input(Teclee valor de a);
disp: muestra un texto por pantalla: disp(El algoritmo no ha
convergido)


46 /36
Archivos MATLAB m-files
Para editar un archivo m-file, abrir el editor de textos Matlab
Click
47 /36
MATLAB m-files
Script Files
En la lnea de comandos
>>x=3.0;
>>y=x^2;
>>y
y =
9.0
>>
En el editor de textos salvar como test.m
En la lnea de comandos
>>test
y =
9.0
>>
48 /36
MATLAB m-files
Funciones
Para declarar una funcion en Matlab usar function y return
El nombre de la funcin debe tener el mismo
nombre que el archivo
49 /36
file x2.m
MATLAB m-files
Funciones
>>r=3;
>>d=x2(r);
>>d
d =
9.0
>>
>>h=x2(4.2);
>>h
h =
17.64
>>
50 /36
MATLAB m-files
Funciones
Multiples entradas y salidas
Salidas , [ ]
entradas ( )
51 /36
Flow Control
if
for
while
break
.
52 /36
Programacin
Estructuras de control condicionadas


if
end
if
else
end
if
elseif
else
end
53 /36
Estructuras de control


if (Condition_1)
Matlab Commands
elseif (Condition_2)
Matlab Commands
elseif (Condition_3)
Matlab Commands
else
Matlab Commands
end


Ejemplo

if ((a>3) & (b==5))
Some Matlab Commands;
end

if (a<3)
Some Matlab Commands;
elseif (b~=5)
Some Matlab Commands;
end

if (a<3)
Some Matlab Commands;
else
Some Matlab Commands;
end


54 /36
Switch, Case, and Otherwise
switch input_num
case -1
input_str = 'minus one';
case 0
input_str = 'zero';
case 1
input_str = 'plus one';
case {-10,10}
input_str = '+/- ten';
otherwise
input_str = 'other value';
end
Mas eficiente que
elseif
55 /36
Programacin
Ciclos

for k=n1:incre:n2

end

for k=vector_columna

end

while

end


56 /36
Estructuras control


for i=Index_Array
Matlab Commands
end



Ejemplo

for i=1:100
Some Matlab Commands;
end

for j=1:3:200
Some Matlab Commands;
end

for m=13:-0.2:-21
Some Matlab Commands;
end

for k=[0.1 0.3 -13 12 7 -9.3]
Some Matlab Commands;
end

57 /36
Estructuras de control


while (condition)
Matlab Commands
end

Ejemplo

while ((a>3) & (b==5))
Some Matlab Commands;
end



58 /36
Similar a otros
lenguajes de
programacin

Repite el ciclo N veces

Pueden ser anidados
for
N=10;
for I = 1:N
for J = 1:N
A(I,J) = 1/(I+J-1);
end
end
59 /36
while loop
I=1; N=10;
while I<=N
J=1;
while J<=N
A(I,J)=1/(I+J-1);
J=J+1;
end
I=I+1;
end
60 /36
MATLAB Flow Control
example
script file to cycle through x values
function file to generate the y values
61 /36
Operaciones lgicas
Mass = [-2 10 NaN 30 -11 Inf 31];
each_pos = Mass>=0
each_pos =
0 1 0 1 0 1 1
all_pos = all(Mass>=0)
all_pos =
0
all_pos = any(Mass>=0)
all_pos =
1
pos_fin = (Mass>=0)&(isfinite(Mass))
pos_fin =
0 1 0 1 0 0 1
= = equal to
> greater than
< less than
>= greater or equal
<= less or equal
~ not
& and
| or
isfinite(), etc. . . .
all(), any()
find
Nota:
1 = TRUE
0 = FALSE
62 /36
Operator Description
~=
Not equal to
63 /36
64 /36
65 /36
D.
66 /36
67 /36
1. Un numero perfecto es el que es igual a la suma de sus divisores,
excluido el mismo.

Ejemplo de numero perfecto: 6 = 1+2+3 Contraejemplo: 12 1+2+3+4+6
Se pide:

Escribir un programa que reciba un numero entero y muestre por pantalla
los nmeros perfectos que hay desde el 1 al 200.
68 /36
69 /36
70 /36
Notacin matricial
La mayor potencialidad de MATLAB es su
capacidad para manejar matrices y
vectores mediante un sistema de
indexacin flexible, que permite realizar
numerosas operaciones con comandos
sencillos que no requieren procedimientos
iterativos
71 /36
Notacin matricial
Los escalares son matrices de un
elemento por un elemento y los vectores
son matrices de una fila o de una
columna
72 /36
2 7 4
2
7
4
2 7 4
3 8 9
?
Ejemplo
X=[2 7 4];
X=[2; 7; 4];
X=[2 7 4];
X=[2 7 4;3 8 9];

Y=[X X];


2 7 4
3 8 9
2 7 4
3 8 9
Vector
rengln
Vector columna
Matriz de 2D
Matriz
de
matriz
73 /36
Operador dos puntos (:)
Este operador es muy importante en MATLAB y
puede usarse de varias formas.
Para empezar, defnase un vector x con el siguiente
comando:
x=1:10
x=
1 2 3 4 5 6 7 8 9 10
En cierta forma se podra decir que el operador (:)
representa un rango.
x=1:2:10
x =
1 3 5 7 9
74 /36
Operador dos puntos (:)
x=1:1.5:10
x =
1.0000 2.5000 4.0000 5.5000 7.0000 8.5000
10.0000
x=10:-1:1
x =
10 9 8 7 6 5 4 3 2 1
Puede verse que, por defecto, este operador
produce vectores fila. Si se desea obtener un
vector columna basta trasponer el resultado.
x=[0.0:pi/50:2*pi] ';
y=sin(x); z=cos(x);
75 /36
Vectores

Definicin de vectores:

Vectores fila; elementos separados por blancos o comas
>> v =[2 3 4]

Vectores columna: elementos separados por punto y coma (;)
>> w =[2;3;4;7;9;8]

Dimensin de un vector w: length(w)

Generacin de vectores fila:
Especificando el incremento h de sus componentes v=a:h:b
Especificando su dimensin n: linspace(a,b,n)
Componentes logartmicamente espaciadas logspace(a,b,n) (n
puntos logartmicamente espaciados entre 10
a
y 10
b.


76 /36
linspace crea un vector con elementos
correspondiente a una recta

>> lin=linspace(1,10,5)

lin =

1.0000 3.2500 5.5000 7.7500 10.0000
logspace igual que anterior correspondiente a un
logaritmo

>> a=logspace(1,2,4)

a =

10.0000 21.5443 46.4159 100.0000
77 /36
>> a=logspace(1,2,4);
>> lin=linspace(1,10,5);
1 1.5 2 2.5 3 3.5 4 4.5 5
1
2
3
4
5
6
7
8
9
10
78 /36
Vectores
x = start:end Crea un vector rengln x, iniciando con start,
incremento en 1 , terminando en end
x = initial value : increment : final
value
Crea un vector rengln x, iniociando con start,
incremento especifico, terminando en end
x = linspace(start,end,number) Crea un vector con elementos correspondiente a una
recta.
x = logspace(start,end,number) Crea un vector rengln logaritmicamente espaciado x,
iniciado en start, terminado con end, teniendo number
elementos
length(x) Regresa la longitud del vector x
y = x Transpuesta del vector x
dot(x,y), cross(x,y) Regresa el producto punto y el producto cruz de dos
vectores
79 /36
Polinomios

Los polinomios se representan en Matlab por un vector fila de
dimensin n+1 siendo n el grado del polinomio. Ejemplo: x
3
+2x-7 se
representa por
>> pol1=[1 0 2 -7]

Clculo de las races: roots (da un vector columna, aunque pol1 es
un vector fila)
>>raices=roots(pol1)

Un polinomio puede ser reconstruido a partir de sus races con el
comando poly
>> p=poly(raices) (da un vector fila) **

Si el argumento de poly es una matriz se obtiene el polinomio
caracterstico de la matriz.
80 /36
Polinomios
Funciones de Matlab para polinomios

Calcular el valor de un polinomio p en un punto dado x: polyval
>>y=polyval(p,x)

Multiplicar y dividir polinomios: conv(p,q) y deconv(p,q)

Calcular el polinomio derivada: polyder(p)
81 /36
Polinomios e interpolacin
Polinomios
Representacin
Races ( >> roots)
La evaluacin (>> polyval)
Derivadas (>> polyder)
Ajuste de curva (>> polyfit)
Expansin de fraccin parcial (>> residue)

Interpolacin
Unidimensional (interp1)
Bidimensional (interp2)
82 /36
Ejemplo
polysam=[1 0 0 8];
roots(polysam)
ans =
-2.0000
1.0000 + 1.7321i
1.0000 - 1.7321i

polyval(polysam,[0 1 2.5 4 6.5])
ans =
8.0000 9.0000 23.6250 72.0000 282.6250

polyder(polysam)
ans =
3 0 0

[r p k]=residue(polysam,[1 2 1])
r = 3 7
p = -1 -1
k = 1 -2
83 /36
Ejemplo
x = [0: 0.1: 2.5];
y = erf(x);
p = polyfit(x,y,6)
p =
0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004
interp1(x,y,[0.45 0.95 2.2 3.0])
ans =
0.4744 0.8198 0.9981 NaN
84 /36
Interpolacin

1D:
Se define un polinomio de un cierto grado (ejemplo, n=2,
ax^2+bx+c), para hacer la interpolacin: p=polyfit(x,y,n). Si se
quiere la interpolacin en ciertos valores xi: yi=polyval(p,xi).
yi = interp1(x,Y,xi,metodo). Mtodos: linear (interpolacin
lineal), cubic (cbica), spline (spline cbica)

2D:
matriz_Z=interp2(X,Y,Z,matriz_X,matriz_Y,metodo). Mtodos:
bilinear (interpolacin lineal), bicubic (cbica)

85 /36
Matrices en MatLab
Matriz rectangular:
Escalar: matriz de 1X1
Vector: matriz de mX1
matriz de 1Xn
Matriz: matriz de mXn
4 10 1 6 2
8 1.2 9 4 25
7.2 5 7 1 11
0 0.5 4 5 56
23 83 13 0 10
1

2

Filas (m) 3

4

5
Columnas
(n)
1 2 3 4 5
1 6 11 16 21



2 7 12 17 22



3 8 13 18 23



4 9 14 19 24



5 10 15 20 25
A =
A (17)
A (2,4)
Los elementos de una Matriz
pueden ser nmeros o
caracteres
86 /36
Matrices

Definicin de matrices:
No hace falta establecer de antemano su tamao (se puede definir
un tamao y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma fila
estn separados por blancos o comas. Las filas estn separadas
por punto y coma (;).
M=[3 4 5; 6 7 8; 1 -1 0]

Matriz vaca: M=[ ];

Informacin de un elemento: M(1,3), de una fila M(2,:), de una
columna M(:,3).

Cambiar el valor de algn elemento: M(2,3)=1;

Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];


87 /36
a=[1 2;3 4]
a =
1 2
3 4
b=[-2.8, sqrt(-7), (3+5+6)*3/4]
b =
-2.8000 0 + 2.6458i 10.5000
b(2,5) = 23
b =
-2.8000 0 + 2.6458i 10.5000 0 0
0 0 0 0 23.0000
Creacin de matrices numricos
NOTA:
1) Separador de fila
punto y coma (;)

2) Separador de columna
espacio o coma (,)
corchetes
rectangulares
88 /36
Funciones orientadas a definir con gran facilidad
matrices de tipos particulares
zeros: Crea un matriz de ceros
ones: Crea un matriz de unos
eye: Matriz identidad
rand: Nmeros aleatorios uniformemente distribuidos
diag: Matriz diagonal y diagonal de una matriz
size: Dimensiones de la matriz
fliplr: Invierte la matriz de derecha a izquierda
flipud: Invierte la matriz de arriba hacia abajo
repmat: Replica la matriz

89 /36
transpose('): Transpuesta de la matriz
rot90: Girar la matriz 90
tril: La parte triangular baja de una matriz
triu: La parte triangular superior de una matriz
cross: Producto cruz de vectores
dot: Producto punto de vectores
det: Determinante de la matriz
inv: Inversa de la matriz
eig: Calcula los eigenvalues y eigenvectors.
rank: Rango de la matriz

Si a = (1,2,3) y b = (4,5,6), el producto cruz a b es:
a b = (1,2,3) (4,5,6) = ((2 6 - 3 5),-(1 6 - 3 4),+(1 5 - 2 4)) = (-3,6,-3).
Funciones orientadas a definir con gran facilidad
matrices de tipos particulares
90 /36
More on Matrices
zeros(n) Regresa una matriz de a n n de ceros
zeros(m,n) Regresa una matriz de m n de ceros
rand(m,n)
Regresa una matriz de m n matrix ode nmeros
aleatorios
eye(m,n) Regresa una matriz identidad de m n
ones(n) Forma una matriz de unos de tamao a n n
ones(m,n) Forma una matriz de unos de tamao a m n
size(A)
Para una matriz de m n , regresa el vector renglon [m,n]
conteniendo el nmero de renglones y columnas en la
matriz
length(A) Returns the larger of the number of rows or columns in A
91 /36
Operaciones de vectores y matrices con escalares:

v: vector, k: escalar:

v+k adicin o suma
v-k sustraccin o resta
v*k multiplicacin
v/k divide cada elemento de v por k
k./v divide k por cada elemento de v
v.^k potenciacin de cada componente de v
a k
k.^v potenciacin k elevado a cada
componente de v







92 /36
Operaciones con vectores y matrices

+ adicin o suma
sustraccin o resta
* multiplicacin matricial
.* producto elemento a elemento
^ potenciacin
.^ elevar a una potencia elemento a elemento
\ divisin-izquierda
/ divisin-derecha
./ y .\ divisin elemento a elemento
matriz traspuesta: B=A (en complejos calcula la traspuesta
conjugada, slo la traspuesta es B=A.)

93 /36
Multiplicin de matrices
El nmero de columnas de la matriz A
debe ser igual al nmero de renglones
de la matriz B.

>> E = A*B
94 /36
Multiplicacin de matrices
a = [1 2 3 4; 5 6 7 8];
b = ones(4,3);
c = a*b
c =
10 10 10
26 26 26
[2x4]
[4x3]
[2x4]*[4x3] [2x3]
a(2da fila).b(3ra columna)
a = [1 2 3 4; 5 6 7 8];
b = [1:4; 1:4];
c = a.*b
c =
1 4 9 16
5 12 21 32
c(2,4) = a(2,4)*b(2,4)
Multiplicacin punto
95 /36
Las matrices deben tener la misma dimension.
La operacion es conmutativa

>> F=A.*B
>> F=B.*A
>> F=A.*B.*C
>> F=(A.*B).*C
>>B = A.^3

Multiplicacin punto
95
96 /36
Determinante de
una matriz
Inversa de una
matriz
>> a = det(A)
a es un escalar (1 x 1 "matrix").

>> B = inv(A)

97 /36
Solucin de ecuaciones simultaneas
Ax =b

>> x = inv(A)*b

Otra forma:
>> x = A\b
-1
x = A b
97
98 /36
Resuelva el siguiente sistema de
ecuaciones.
1 2 3
2 8 x x x + =
1 2 3
3 7 x x x + + =
1 2 3
3 2 4 x x x + + =
99 /36
Funciones para vectores y matrices
sum(v) suma los elementos de un vector

prod(v) producto de los elementos de un vector

mean(v) (hace la media)

diff(v) (vector cuyos elementos son la resta de los
elemento de v)

[y,k]=max(v) valor mximo de las componentes de un
vector (k indica la posicin), min(v) (valor mnimo). El
valor mximo de una matriz M se obtendra como
max(max(M)) y el mnimo min(min(v))

100 /36
Funciones para vectores y matrices


[n,m]=size(M) te da el nmero de filas y columnas

diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))

norm(M) norma de una matriz (mximo de los valores absolutos
de los elementos de A)
101 /36
String
Delimitador (')






(16 bits de memoria por caracter)


str = 'Hi there,'
str =
Hi there,
str2 = 'Isn't MATLAB great?'
str2 =
Isn't MATLAB great?
1x9 vector
str = H i t h e r e ,
102 /36
103 /36
104 /36
Resuelva el siguiente sistema de
ecuaciones.
105 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
106 /36
Grafica
TITLE
TEXT

XLABEL
YLABEL
LEGEND
107 /36
Dos dimensiones

El comando plot crea un grfica con los valores de x (eje horizontal) y
los valores de y, (eje vertical).
Donde x, y son vectores de una dimension. Ambos deben tener el
mismo nmero de elementos
Si los valores de y son determinados por una funcion a partir de los
valores de x, entonces el vector x es creado primero y los valores
de y son calculados para cada valor de x.


Comando:
plot(x,y)
108 /36
Ejemplo
Datos:

>> x=[1 2 3 5 7 7.5 8 10];
>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y)

x
y
1 2 3 5 7 7.5 8
6.5 7 7 5.5 4 6 8
10
2
109 /36
GRAFICA
110 /36
ESPECIFICADORES DE LINEA EN EL COMANDO plot()
Especifica:
El estilo de la lnea.
El color de la lnea.
El tipo de marca.
plot(x,y,especificador de linea)
111 /36
ESPECIFICADORES DE LINEA
Especificador de Especificador de Tipo de
estilo Color marca

Solid - red r plus sign +
dotted : green g circle o
dashed -- blue b asterisk *
dash-dot -. Cyan c point .
magenta m square s
yellow y diamond d
black k
plot(x,y,line specifiers)
112 /36
ESPECIFICADORES DE LINEA
Los especificadores son colocados dentro del comando plot() com un
string.

Los especificapores pueden ser colocados en cualquier orden.

Los especificadores son opcionales.
Ejemplos:
plot(x,y) Una lnea solida de color azul conecta los puntos.

plot(x,y,r) Una lnea solida de color rojo conecta los puntos.

plot(x,y,--y)

plot(x,y,*)
plot(x,y,g:d.
113 /36
Year
Sales (M)
1988 1989 1990 1991 1992 1993 1994
127 130 136 145 158 178 211
Ejemplo

>> year = [1988:1:1994];
>> sales = [127, 130, 136, 145, 158, 178, 211];
>> plot(year,sales,'--r*')

Especificadores:.
114 /36
GRAFICA CON ESPECIFICADORES DE
LINEA
Dashed, lnea roja y
marcas con asteriscos
115 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Grficas 2D

Los grficos 2-D de MATLAB estn fundamentalmente orientados a la
representacin grfica de vectores (y matrices). En el caso ms sencillo los
argumentos bsicos de la funcin plot van a ser vectores.

Ejemplo: definimos los siguientes vectores en el Comand Windows
plot(x,y)
116 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
117 /36
2-D Ejemplo
(color azul por
default )
Onda Senoidal
x = 0:1:2*pi;
y = sin(x);
plot(x,y);
118 /36
COMANDOS PARA FORMATEAR
title(string)
Aade un string como title en la parte superior de la grafica

xlabel(string)
Aade un string como etiqueta para el eje-x.

ylabel(string)
Aade un string como etiqueta para el eje-y.

axis([xmin xmax ymin ymax])
Coloca the minimo and maximo limite para el eje-x-, eje-y.
119 /36
COMANDOS PARA FORMATEAR
legend(string1,string2,string3)
Crea una leyenda para etiquetar varias graficas. The localizacin de la
leyenda es especificada por el mouse.

text(x,y,string)
Coloca el string (texto) en la grfica en las coordenadas x,y .

gtext(string)
Coloca el string (text) en la grfica. El string es colocado en la grfica
haciendo click con el ,mouse
120 /36
Ejercicio grafica formateada
Teora
x=10:0.1:22;
y=95000/x^2;
Experimento
xd=10:2:22;
yd=950 640 460 340 250 180 140;
121 /36
GRAFICA FORMATEADA CON WINDOW
Una vez que la ventana del grafico es abierta, la grafica puede ser
formateada interactivamente.
Use Figure,
Axes, y actual
Object-Properties
en el menu de
edit
Click para entrar al mode
de edicin.
Use el menu de insert
122 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b

grid activa la inclusin de una cuadrcula en el dibujo. Con grid off
desaparece la cuadrcula
x = 0:1:2*pi;
y = sin(x);
plot(x,y);grid on;
123 /36
MULTIPLES GRAFICAS EN LA MISMA GRAFICA
1. Usando el comando plot .

2. Usando los comandos hold on, hold off.
124 /36
MULTIPLE GRAFICAS EN LA MISMA GRAFICA
Tres graficas en la msima grafica:
y versus x, v versus u, and h versus t.

Por default, MATLAB hace las graficas con diferentes colores.

Se pueden aadir nuevas graficas.

Cada grafica puede tener un estilo especifico:
plot(x,y,u,v,t,h)
plot(x,y,-b,u,v,r,t,h,g:)
125 /36
MULTIPLES GRAFICAS
4 2 s s x
Graficar la funcin, y su primera y segunda
derivada, para , todas en la misma grafica.
10 26 3
3
+ = x x y
4 2 s s x
x = [-2:0.01:4];
y = 3*x.^3-26*x+6;
yd = 9*x.^2-26;
ydd = 18*x;
plot(x,y,'-b',x,yd,'--r',x,ydd,':k')
vector x .
Vector y para cada valor de x.
4 2 s s x
Vector yd con los valores de la primera derivada
derivada derivada.
Vector ydd con los valores de la segunda derivatda.
Tres graficas, y vs. x (solid blue line), yd vs. x
(dashed red line), y ydd vs. x (dotted black line)
en la misma figura.
126 /36
-2 -1 0 1 2 3 4
-40
-20
0
20
40
60
80
100
120

MULTIPLES GRAFICAS
127 /36
hold on Holds retiene la grafica actual y todas las propiedades de
sus ejes, las graficas subsecuentes son aadidas a la
grafica existente.

hold off Regresa al modo por default..
COMANDO hold on, hold off,
PARA GFRAFICAR MULTIPLES GRAFICAS
Este metodo es usado cuando la informacion de los (vectors) usados
para las graficas no estan disponibles al mismo tiempo.
128 /36
Graficar la funcin, su primera y segunda
derivada, para todas en la mism grafica.
10 26 3
3
+ = x x y
4 2 s s x
x = [-2:0.01:4];
y = 3*x.^3-26*x+6;
yd = 9*x.^2-26;
ydd = 18*x;
plot(x,y,'-b')
hold on
plot(x,yd,'--r')
plot(x,ydd,':k')
hold off
Segunda y tercera grfica.
Primera grfica.
COMANDO hold on, hold of
129 /36
130 /36














sobre el intervalo de [0, 4].
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
www.upibi.net
Graficar la funcin seno y coseno en una misma grfica:



131 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
www.upibi.net
Tambin lo podemos hacer de la siguiente manera:


y=sin(x);
132 /36
Dos grficas en una
x = 0:.1:2*pi;
y = sin(x);
plot(x,y,'b')
grid on;
hold on;
plot(x,exp(-x),'r:*');
133 /36
plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))
text(pi,0,' \leftarrow sin(\pi)','FontSize',18)
134 /36
Subplots
SUBPLOT- despliega multiple ejes en la misma figura
subplot(2,2,1);
plot(1:10);

subplot(2,2,2);
x = 0:.1:2*pi;
plot(x,sin(x));

subplot(2,2,3);
x = 0:.1:2*pi;
plot(x,exp(-x),r);

subplot(2,2,4);
plot(peaks);
subplot(#rows, #cols, index);
135 /36
Escalas alternativas para los ejes
SEMILOGY
log Y
linear X
PLOTYY
2 sets of
linear axes
LOGLOG
Ambos ejes
logarithmic
SEMILOGX
log X
linear Y
136 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b


137 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b


138 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Ejemplos


139 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Grficas Polares

Podemos graficar una funcin en coordenadas polares con polar.


t=0:0.05:pi+0.01;

y= sin(3*t).*exp(-0.3*t);

polar(t,y)

title(Grfica Polar)

grid



140 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Grficas Logartmica

Las funciones pueden graficarse en una escala log-log con loglog.


t=0.1:0.1:3;

x= exp(t);

y= exp(t.*sinh(t));

loglog(x,y)

grid

xlabel (x); ylabel(y)




141 /36
Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: subplot(n,m,k) subdivide una ventana grfica se puede en m
particiones horizontales y n verticales y k es la subdivisin que se
activa.

2D: polar(ngulo,r) para pintar en polares

2D: fill(x,y,opcin) dibuja una curva cerrada y la rellena del color
que se indique en opcin

3D: plot3 es anloga a su homloga bidimensional plot.
plot3(X,Y,Z, opcin)

142 /36
EL COMANDO fplot
fplot(funcion,limites)
El comando fplot puede ser usado para graficar una funcionn : y = f(x)
La funcin es escrita como un string.

Liimites es un vector:

[xmin,xmax] or [xmin,xmax,ymin,ymax]

Especificadores de lnea pueden ser usados..
143 /36
GRAFICAR LA SUGUIENTE FUNCION
>> fplot('x^2 + 4 * sin(2*x) - 1', [-3 3])
3 3 para 1 ) 2 sin( 4
2
s s + = x x x y
144 /36
GRFICOS: 3D______________________________
Funciones grficas 3D elementales:

La funcin plot3 es anloga a su homloga bidimensional plot. Su forma ms
sencilla es la
siguiente:
plot3(x,y,z)

Ejemplo9:
teta=0:pi/80:8*pi;
x=1+2*cos(teta);
y=1+2*sin(teta);
z=4*teta;
plot3(x,y,z)
axis([-1 3 -1 3 0 120]);
xlabel('eje x')
ylabel('eje y')
zlabel('eje z')
C
u
r
s
o

M
a
t
l
a
b

2
0
0
2
-
0
3

e
n
x
a
m
b
.

N
i
e
v
e
s

L
o
r
e
n
z
o

145 /36
GRFICOS: 3D______________________________
Representacin grfica de superficies. mesh(x,y,Z),
Creacin de una malla [X, Y]=meshgrid(x,y)
Grfica de la malla construida sobre la superficie z mesh(X,Y,Z),
meshz(X,Y,Z)
Adems hace una proyeccin sobre el plano z=0, meshc(X,Y,Z), lneas de
contorno en el plano z=0
Ejemplo10:
x=[0:2:200];y=[0:50];
%Obtenemos la malla del dominio
[X Y]=meshgrid(x,y);
length(x),length(y)
size(X), size(Y)
Z=X.^2-Y.^2;
figure(1);mesh(X,Y,Z)
figure(2);meshz(X,Y,Z)
figure(3);meshc(X,Y,Z)
C
u
r
s
o

M
a
t
l
a
b

2
0
0
2
-
0
3

e
n
x
a
m
b
.

N
i
e
v
e
s

L
o
r
e
n
z
o

146 /36

[X,Y,Z]=sphere(n) dibuja una representacin de la esfera
unidad con n puntos de discretizacin

[X,Y,Z]=cylinder(rad,n) dibuja una representacin de un cilindro
unidad con n puntos igualmente espaciados cuya seccin
viene dada por la curva cuyos radios se guardan en el vector
rad.

fill3(x,y,z,c) %polgonos tridimensionales

GRFICOS: 2D Y 3D______________________________
C
u
r
s
o

M
a
t
l
a
b

2
0
0
2
-
0
3

e
n
x
a
m
b
.

N
i
e
v
e
s

L
o
r
e
n
z
o

147 /36
GRFICOS: 2D Y 3D______________________________
Transformacin de coordenadas
[ang,rad]=cart2pol(x,y) %De cartesianas a polares
[ang,rad,z]=cart2pol(x,y,z) %De cartesianas a cilindricas

[x,y]=pol2cart(ang,rad) %De polares a cartesianas
[x,y,z]=pol2cart(ang,rad,z) %De cilindricas a cartesianas

[angx,angz,rad]=cart2sph(x,y,z) %De cartesianas a esfericas

[x,y,z]=aph2cart(angx,angz,rad) %De esfericas a cartesianas
Ejemplo
%cilindricas
[ang,rad,z]=cart2pol(sqrt(3),1,2)
%esfericas
[ang1,ang2,rad1]=cart2sph(sqrt(3),1,2)
C
u
r
s
o

M
a
t
l
a
b

2
0
0
2
-
0
3

e
n
x
a
m
b
.

N
i
e
v
e
s

L
o
r
e
n
z
o

148 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Ejercicio

.



149 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Grficas 3D

Mallas
Por ejemplo, si queremos dibujar la grfica de la funcin:

Generamos el mallado:

Sustituimos en la funcin para calcular los valores de z


150 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
Grficas 3D

Mallas
Y ahora podemos dibujar el grfico con alguno de los siguientes comandos
que producen los dibujos mostrados en la figura.

151 /36
Seguridad en Internet
Oriol Roca
G r f i c a s
M a t L a b
www.upibi.net
Grficas 3D


152 /36
3-D
B = -0.2;
x = 0:0.1:2*pi;
y = -pi/2:0.1:pi/2;
[x,y] = meshgrid(x,y);
z = exp(B*x).*sin(x).*cos(y);
surf(x,y,z)
153 /36
154 /36
Calcular la recta de regresin correspondiente a estos datos y representar
en un mismo grafico la recta y los datos. Calcular el error cuadrtico.
1.
155 /36
2.Calcular el polinomio de interpolacin de la
funcin f(x) = x
4
+2x-1 mediante 10 puntos
equiespaciados en el intervalo [-3,3], y
posteriormente representar los puntos y el
interpolante
156 /36
4 2 para ) 6 cos( 5 . 3
5 . 0
s s =

x x y
x
4 2 para ) 6 sin 5 . 3
5 . 0
s s =

x x w
x
5 5 para s s x
Representar la superficie de
revolucin obtenida al girar la
curva y=x
2
+1 alrededor del
eje x. x=[0:0.1:1];
1
5
2
1
3
4
157 /36
158 /36
Creacin de una Simulacin en
SIMULINK
Antes de crear una simulacin es necesario:
Tener una descripcin matemtica del
modelo
Tener conocimiento de cuales variables son
independientes y cuales son dependientes
Representar las ecuaciones en variables de
estado

159 /36
Modelacin de Sistemas Dinmicos utilizando
Ecuaciones Diferenciales Ordinarias (EDO)
Sistema
Fsico
Sistema (Fsico)
a modelar
Funcin forzante
y(t)
u(t)
Respuesta del sistema
-Sistema Mecnico (sistema de suspensin en los autos)
- Sistema Hidrulico (llenado de un tanque)
- Sistema trmico (temperatura en un horno)
-Sistema Elctrico (velocidad de motores)
- Sistema Fisiolgico (efecto de una dosis en el cuerpo h. )
- Sistema Econmico ( inflacin)
- Sistema de produccin (produccin entre mquinas)
Relacin causal
160 /36
Para obtener una ecuacin diferencial,
podemos utilizar:
Leyes fsicas: que de acuerdo a la naturaleza del sistema,
rigen la relacin causal entre las variables de inters.
Pruebas experimentales (anlisis de la respuesta transitoria
del sistema ante una funcin forzante conocida).
Por analogas de comportamientos entre sistemas que guardan
un comportamiento similar, a pesar de ser de naturaleza diferente.
Aplicacin de algoritmos y recursos computacionales para
procesar los datos obtenidos de pruebas experimentales.
161 /36
Sistemas fsico: Temperatura en un horno

Horno

Flujo de
Combustible:
q
i
(t)
Temperatura:

T(t)
horno
Temperatura
Flujo de gas
Relacin causal
162 /36
Sistema Fsico:Llenado de un tanque
q
o
(t): Caudal de salida
q
i
(t): Caudal de entrada
A:
rea del tanque
p(t): seal que regula
el caudal hacia el tanque.
h(t): altura del tanque
R
h
: resistencia Hidrulica

Tanque

Caudal de
entrada
q
i
(t)
Nivel: h(t);
Caudal de
Salida, q
o
(t)
Relacin causal
163 /36
Anlisis de una ecuacin diferencial
lineal c. c. c.
2
-3t
2
d y(t) dy(t)
+ 0.4 +0.03 y(t) = 1.5 + Sen10t
dt dt
e
Sistema (Fsico)
a modelar
u(t): Comportamiento deseado
La respuesta y(t) de un sistema
mecnico ante una funcin forzante
u(t) est definida por la ecuacin
diferencial; y(0)= 2; y(0) = 0



Funcin forzante
y(t)
u(t)
Respuesta del sistema
) ( ) ( 13 . 0
) (
4 . 0
) (
2
2
t u t y
dt
t dy
d
t y
t
d
= + +
163
164 /36
Funcin forzante: u(t)
de Fun ma cin e gnitud s caln 1.5;
multiplicada por Funcin una expo Senoid nen al cial
-3t
=1.5 + Sen u(t) 10t
e
164
165 /36
Analoga de Sistemas de Primer Orden
R
C
v
i
(t): fuente
de voltaje
i(t):
v
o
(t)
v
i
(t): fuente de voltaje
v
o
(t): voltaje de salida
C: Capacitor
R: Resistencia
q
o
(t): Caudal de salida
q
i
(t): Caudal de entrada
A:
rea del tanque
p(t): seal que regula
el caudal hacia el tanque.
h(t): altura del tanque
R
h
: resistencia Hidrulica
i
i
o
o
o
o
v (t)
v (t)
v (t)
v (
d
dt
d
dt
v (t
)
t) )
t
v (
R.C
t
+ =
+ =
dc(t)
+c(t) = .
dt
K u(t)
K: Ganancia en estado estable
t: Constante de tiempo
q
i
(t)
0
(t)
dq
0
(t)
q
dt
d
dt
q
i
(t)
+ q
0
(t) =
R.A
t
+ q
0
(t) =
165
166 /36
Libreras del Simulink
167 /36
Abrir Simulink
En la ventana de comandos de MATLAB escribir >>simulink y
apretar ENTER.
Tambin se puede entrar a simulink haciendo click
en el cono.


167
168 /36
Crear un modelo nuevo
Hacer click en el cono new-
model

Seleccionar el cono Simulink
para obtener los elementos del
modelo.
168
169 /36
Espacio de Trabajo
Librera de elementos El modelo se crea en esta ventana
170 /36
Guardar el modelo
Hacer click en File Save
Seleccionar la carpeta donde guardar el archivo y nombrarlo.
A medida que se va progresando en el modelo, recordar
guardarlo a menudo.
170
171 /36
Ejemplo
Construir un modelo en Simulink que resuelva la
siguiente ecuacin diferencial:




Condicin inicial:
( )
5sin 4
dx
t
dt
=
(0) 2. x =
172 /36
Diagrama del modelo
El Input es la funcin 5sin(4t)
El Output corresponde a la solucin de la ecuacin
diferencial: x(t)





x
dx
dt
s
1
5sin(4t)
(input)
x(t)
(output)
(0) 2 x =
integrator
173 /36
Seleccionar un bloque para el input
Arrastrar el bloque Sine
Wave desde la librera
Sources hasta la ventana de
trabajo
174 /36
Seleccionar un bloque operador
Arrastrar un bloque Integrator
desde la librera Continous
hasta la ventana de trabajo.
175 /36
Seleccionar un bloque para el output
Arrastrar el bloque Scope desde
la librera Sinks hasta la
ventana de trabajo
176 /36
Conectar los bloques con seales
Ubicar el cursor en el puerto
de salida (>) del bloque Sine
Wave
Arrastrar desde el puerto de
salida del bloque Sine
Wave hasta el puerto de
entrada del bloque
Integrator
Arrastrar desde la salida del
bloque Integrator hasta la
entrada del bloque Scope
Las flechas indican la direccin de la
seal.
176
177 /36
Seleccionar los parmetros de simulacin
Doble click en el
bloque Sine
Wave e ingresar:
Amplitud = 5
Frecuencia = 4

Se forma as el
input deseado:
5sin(4t)
178 /36
Seleccionar los parmetros de simulacin
Doble click en el
bloque Integrator e
ingresar la condicin
inicial = -2

Se satisface as:
x(0) = -2
179 /36
Correr la simulacin.
En la ventana de
trabajo, click en
Simulation y
seleccionar
Start

Otra forma es
hacer click en el
signo
179
180 /36
Resultados de la simulacin
Hacer doble click
en el bloque
Scope

Se visualiza el
output x(t) en la
ventana Scope
181 /36
Ejemplo
Construir un modelo en Simulink que resuelva la
siguiente ecuacin diferencial:





Condiciones iniciales = 0
El input f(t) es una funcin escaln con magnitud 2
parmetros: m = 0.4, c = 0.6, k = 1
2
2
( )
d x dx
m c kx f t
dt dt
+ + =
182 /36
Resolucin
Primero, expresar la ecuacin en trminos de
la derivada de mayor orden:


Crear un bloque de suma al lado izquierdo de
la ventana de trabajo.
2
2
( )
d x dx
m f t c kx
dt dt
=
2
2
d x
m
dt
Bloque
sum
183 /36
Arrastrar el bloque Sum
desde la librera Math

Doble click en Sum para
cambiar los parmetros a
rectangular y + - -
183
184 /36
Agregar un bloque gain (multiplicador) para
eliminar el coeficiente m y as despejar la
derivada de mayor orden:








La constante m=0.4 , luego 1/m = 2.5

2
2
d x
m
dt
m
1
2
2
d x
dt
Bloque
Sum
185 /36
Arrastrar el bloque Gain
desde la librera Math
Doble click para cambiar
los parmetros del bloque
gain 185
186 /36
No olvidar ir conectando los bloques como se describi en
ejemplo 1.
Agregar los bloques integrator para obtener la variable
deseada.








Las condiciones iniciales son cero, el bloque integrator
viene por defecto con este valor por lo que no es
necesario modificarlo en este caso.
2
2
d x
m
dt
m
1
Bloque
Sum
s
1
s
1
2
2
d x
dt
x
dx
dt
187 /36
Arrastrar los bloques
Integrator desde la
librera Continuous

Agregar el bloque scope desde la librera Sinks


188 /36
Conectar las seales integradas con bloques
multiplicadores (Gain) para crear los trminos del lado
derecho de la ecuacin diferencial:
2
2
d x
m
dt
m
1
Bloque
Sum
s
1
s
1
x
c
k
kx
2
2
d x
dt
dx
dt
dx
c
dt
188
189 /36
Crear 2 nuevos bloques
Gain
Doble click en los bloques
Gain para modificar los
parmetros.
C =0.6
K = 1
Para girar el bloque gain, seleccionarlo,
click derecho y elegir FLIP BLOCK en el
men FORMAT
190 /36
Completar el modelo
Unir todas las seales al bloque sum fijndose
en los signos
Agregar f(t)
2
2
d x
m
dt
m
1
s
1
s
1
2
2
d x
dt
dx
dt
c
k
dx
c
dt
kx
f(t)
input
+
-
-
dx
dt
x
x
x(t)
output
191 /36
Doble click en el bloque Step para
cambiar los parmetros. Para un
paso de magnitud 2, cambiar el
Final Value a 2.
191
192 /36
Modelo final en Simulink
193 /36
Correr la simulacin.
194 /36
Resultados
195 /36
Modelacin de una ecuacin diferencial
mediante Diagrama a bloques.
1
As
o 0 i
H(s)
(s) H(s) ( s , 0) s s) ( ; )
Q Q Q
A (c. i.
Rh

= = =
1
Rh
Caudal de
salida
Caudal
Acumulado
=
Q
i
(s) +
Q
o
(s)
H(s)
Q
o
(s)
Q
i
(s) Q
o
(s)
q
o
(t): Caudal de salida
q
i
(t): Caudal de entrada
A:
rea del tanque
p(t): seal que regula
el caudal hacia el tanque.
h(t): altura del tanque
R
h
: resistencia Hidrulica
Caudal de
entrada
) 1 ( ......
dt
dh(t)
A (t) (t) (t)
q q q
acum 0 i
= =
(2) .....
Rh
h(t)
(t)
q
0
=
195
196 /36
Simulacin del sistema hidrulico utilizando
la herramienta computacional Matlab-Simulink
197 /36
Sistema: Masa-Resorte-Amortiguador
en la suspensin de un auto

Masa: m

Amortiguador
Resorte
z(t): desplazamiento
o respuesta del sistema
f(t)
entrada
: fuerza de entrada
t
d
d
t z
m ma fuerzas
i
2
2
1
) (
= =

=
198 /36
Aplicacin del sistema bsico:
masa-resorte-amortiguador
199 /36
Simulacin mediante SIMULINK

= =
t
d
d
t z
m ma Fuerzas
2
2
) (
dt
dz(t)
B
) (
) (
) (
) (
) ( ) (
=
=
=

t f
t f
t f t f f
or amortiguad
resorte
or amortiguad resorte i
t z k
t fuerzas
Z(s)
k
B s
s
m
2
1
F
i
(s)
F(s)
resorte
F(s)
amortiguador
F
i
(s) - F(s)
resorte
F(s)
amortiguador
= m s
2
Z(s)
-
+
-
) (
) (
) (
) (
s sZ B
s Z k
s F
s F
or amortiguad
resorte
=
=
f
i
(t)
z(t)
199
200 /36
Masa-Resorte-Amortiguador con SIMULINK
201 /36
202 /36
Representacin en espacio
de estado
203 /36
Representacin en espacio de estado
Con la representacin en espacio de estado tenemos la
capacidad de conocer y controlar en cierta medida la
dinmica interna de un sistema y su respuesta. Este
mtodo principia con la seleccin de las variables de
estado, las cuales deben de ser capaces en conjunto de
determinar las condiciones de la dinmica del sistema
para todo tiempo. En forma general, un sistema visto en
espacio de estado tiene la siguiente forma
(1)
204 /36
Representacin en espacio de estado
Sistemas Lineales invariantes en el tiempo
Cuando se trata de sistemas lineales invariantes en el tiempo, la ecuacin (1), se
transforma en:
) ( ) ( ) ( t Bu t Ax t x + =
) ( ) ( ) ( t Du t Cx t y + =
(
(
(
(

(
(
(
(

+
(
(
(
(

(
(
(
(

=
(
(
(
(

(
(
(
(

(
(
(
(

+
(
(
(
(

(
(
(
(

=
(
(
(
(

) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
2
1
2 1
2 22 21
1 12 11
2
1
2 1
2 22 21
1 12 11
2
1
2
1
2 1
2 22 21
1 12 11
2
1
2 1
2 22 21
1 12 11
2
1
t u
t u
t u
d d d
d d d
d d d
t x
t x
t x
c c c
c c c
c c c
t y
t y
t y
t u
t u
t u
b b b
b b b
b b b
t x
t x
t x
a a a
a a a
a a a
t x
t x
t x
m
pm p p
m
m
n
pn p p
n
n
p
m nm n n
m
m
n nn n n
n
n
n

205 /36
Representacin en espacio de estado
Obtencin de las ecuaciones de estado
La representacin en espacio de estado puede ser derivada desde las ecuaciones
diferenciales que representan a un sistema, o desde cualquier arreglo de ecuaciones
diferenciales aunque estas no representen ningn sistema. Si no se tiene el modelo
matemtico (ecuaciones diferenciales) ser necesario obtenerlo por medio de leyes o
teoras (fsicas, qumicas, monetarias, etc.)
Una secuencia muy comn para obtener el espacio de estado es la siguiente:
1. Identificar completamente el sistema. Conocer el sistema, que es lo que hace,
cuales son sus variables de inters, su comportamiento, su interrelacin al
exterior, etc.
2. Identificar las leyes o teoras que gobiernan el comportamiento del sistema. Leyes
de termodinmica, Leyes dinmicas, segunda ley de Newton, Ley de voltajes y
corrientes de Kirchoff, Ley de Ampere, Ley de Ohm, Ley de Boyle, etc.
206 /36
Representacin en espacio de estado
3. Definir las ecuaciones diferenciales que representen el
comportamiento del sistema. El grado de complejidad depender de
la fidelidad del modelo al comportamiento del sistema y de las
necesidades de simulacin, medicin o control. Los pasos 1,2,3 son
bsicos de cualquier modelado.
4. Seleccionar las variables de estado. Son las variables mnimas que
determinan el comportamiento dinmico del sistema. Si se escogen
menos de las necesarias, el espacio de estado no representa todo el
comportamiento del sistema, si se definen ms, el espacio de estado
es redundante.
5. Encontrar la dinmica de cada estado. Es decir, encontrar la razn de
cambio respecto al tiempo de cada variable de estado (su derivada).
6. Desplegar el arreglo de las dinmicas del estado como en la ecuacin
(1) o como el arreglo de las ecuaciones (2)-(3) si las ecuaciones son
lineales o linealizadas.
207 /36
Representacin en espacio de estado
Ejemplo:
1) Represente por medio de espacio de estado el siguiente sistema mecnico.
masa
Resorte
amortiguador
K
b
Donde: es la fuerza aplicada, K es la
constante del resorte, b es el coeficiente de
friccin viscosa. La fuerza del resorte se
considera proporcional a la posicin y la fuerza
del amortiguador es proporcional a la velocidad.
y(t) es la posicin de la masa.
) (t u
Solucin:
Utilizando la segunda ley de newton, se obtiene la ecuacin de sumatoria de fuerzas:
) (t u
) (t y
resorte fuerza or amortiguad fuerza aplicada fuerza n aceleraci masa =
) ( ) ( ) ( ) ( t ky t y b t u t y m =
208 /36
Representacin en espacio de estado
Se desea conocer la posicin y la velocidad de la masa para todo tiempo. Por esta
razn se asignan como variables de estado.
) ( ) (
1
t y t x = ) ( ) (
2
t y t x =
El siguiente paso es determinar las dinmicas del estado. Para la variable de estado
, su derivada es la variable de estado
) (
1
t x ) (
2
t x
) ( ) ( ) (
2 1
t x t y t x = =
Mientras que la derivada del estado se obtiene de la ecuacin de sumatorias
de fuerzas:
) (
2
t x
) ( ) ( ) ( ) ( t ky t y b t u t y m =
) ( ) ( ) ( ) (
1 2 2
t kx t bx t u t x m =
) (
1
) ( ) ( ) (
2 1 2
t u
m
t x
m
b
t x
m
k
t x + =

209 /36
Representacin en espacio de estado
Finalmente se agrupan las dos ecuaciones de estado:
) ( ) (
2 1
t x t x =
) (
1
) ( ) ( ) (
2 1 2
t u
m
t x
m
b
t x
m
k
t x + =
como la representacin es lineal, se puede indicar en matrices
) (
1
0
) (
) (
1 0
) (
) (
2
1
2
1
t u
m
t x
t x
m
b
m
k
t x
t x
(
(

+
(

(
(


=
(

210 /36
Representacin en espacio de estado
Ejemplo
) (s U
) (s Y
2 5 7
) (
) (
2 3
+ + +
=
s s s
K
s U
s Y
2 5 7
2 3
+ + + s s s
K
) ( ) ( ) 2 5 7 (
2 3
s KU s Y s s s = + + +
Ku y y y y = + + + 2 5 7
se define:
y y y y y y = = =
3 2 1
, ,
Ku y y y y
y y
y y
+ =
=
=
3 2 3
3 2
2 1
7 5 2

y las ecuaciones de estado quedan:


211 /36
Representacin en espacio de estado
Si la funcin de transferencia es muy complicada, se puede utilizar Matlab.
Ejemplo :
s s s s
s s
s U
s Y
20 5 17
5 4
) (
) (
2 3 4
2 3
+ + +
+ +
=
>> num=[1 4 0 5];
>> den=[1 17 5 20 0];
>> [A,B,C,D]=tf2ss(num,den)

Utilizando:
212 /36
Representacin en espacio de estado
Se obtiene:
A =
-17 -5 -20 0
1 0 0 0
0 1 0 0
0 0 1 0
B =
1
0
0
0
C =
1 4 0 5
D =
0

3 2 1
3 4
2 3
1 2
3 2 1 1
5 4
20 5 17
x x x y
x x
x x
x x
u x x x x
+ + =
=
=
=
+ =

213 /36
Sistema masa-resorte-amortiguador
con tiempo muerto

However, suppose that the force f(t) is created by applying a sinusoidal input voltage to a
hydraulic piston that has a dead-zone nonlinearity. This means that the piston does not
generate a force until the input voltage exceeds a certain magnitude.
A graph of a particular dead-zone nonlinearity is shown below.

) (t f y k y c y m = + +
- - -
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Input
O
u
t
p
u
t
m=1, c=2 and k=4
f(t) = sin(1.4t)
The system has the dead-zone nonlinearity
shown in Figure 9.5-1
213
214 /36
214
Transfer-Function Models
Response with a Dead Zone
Create and run a Simulink simulation of a mass-spring-damper model


m=1, c=2 and k=4
f(t) = sin(1.4t)
The system has the dead-zone nonlinearity shown in Figure 9.5-1

Solution
Start Simulink and construct
fallowing Simulink model


) (t f y k y c y m = + +
- - -
215 /36
Transfer-Function Models
Solution (contd)

Details of Blocks



drag
double-click
& change
parameters
Simulink library
browser
215
216 /36
216
Transfer-Function Models
solution (contd)

Modification of the dead-zone model to include a
Mux block
To plot both the input and the output of the
Transfer Fcn block versus time on the same graph.
(More informative)

drag
double-click
& change
parameters
217 /36
Modelo de un sistema no lineal
Pendulum



I : tmoment o de inercia
I = 4, mgL = 10, c = 0.8
M(t) : una onda cuadrada de amplitud 3 y una frecuencia de 0.5Hz
Condiciones iniciales : = /4, = 0


g
m
L

Figure 9.6-1
A pendulum
) ( sin t M mgL c I = + +
- - -
u u u
) 0 (
-
u ) 0 ( u
217
218 /36
Modelo de un sistema no lineal
Solucin


-
=u e hacer
| | | | ) ( sin 10 8 . 0 25 . 0 ) ( sin
1
t M t M mgL c
I
+ = + =
=
-
u e u e e
e u
Integrar ambos lados de la ecuacin para obtener
| |
}
}
+ =
=
dt t M
dt
) ( sin 10 8 . 0 25 . 0 u e e
e u
218
219 /36
Modelo de un sistema no lineal














initial = 0
initial = pi/4
219
220 /36
Modelo de us sistema no lineal


drag
double-click
& change
parameters
220
221 /36
Modelo de un sistema no lineal
Solucin









.

222 /36
223 /36
Modelado de un pndulo
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de
un pndulo, determinando a partir de las ecuaciones fsicas un
modelo no lineal que lo describe con precisin en todos sus puntos.

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6 obtenga la respuesta en el tiempo
para una entrada escaln de magnitud 1
7. Conclusiones

Los valores de las constantes que definen al sistema son:
l = 1; % longitud e metros
B = 2; % coef. de friccin viscosa en N.m / (rads/s)
g = 9.8; % aceleracin de la gravedad m.s^2
m = 3; % masa en kg
J = m*l^2; % momento de inercia en kg.m^2
224 /36
Modelado de un RLC
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de un
sistema elctrico RLC, determinando a partir de las ecuaciones fsicas un
modelo lineal que lo describe con precisin en todos sus puntos.

R=137
L=10 mH
C=0.1 uF
Entrada Ei
Salida Eo

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6 obtenga la respuesta en el tiempo
para una entrada escaln de magnitud 1
7 Conclusiones

225 /36
Modelado de un motor de c.d
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de un motor
de c.d, determinando a partir de las ecuaciones fsicas un modelo lineal que lo
describe con precisin en todos sus puntos.

moment of inertia of the rotor (J) = 0.01 kg.m^2/s^2
* damping ratio of the mechanical system (b) = 0.1 Nms
* electromotive force constant (K=Ke=Kt) = 0.01 Nm/Amp
* electric resistance (R) = 1 ohm
* electric inductance (L) = 0.5 H
* input (V): Source Voltage
* output (theta): position of shaft
* The rotor and shaft are assumed to be rigid

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6 obtenga la respuesta en el tiempo
para una entrada escaln de magnitud 1
7. Conclusiones

226 /36
Modelado de un RLC
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de
un sistema elctrico RLC, determinando a partir de las ecuaciones
fsicas un modelo lineal que lo describe con precisin en todos sus
puntos.

v(t) entrada
i(t) salida

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6 obtenga la respuesta en el tiempo
para una entrada escaln de magnitud 1
7 Conclusiones


R=137
L=10 mH
C=0.1 uF

227 /36
Modelado de un sistema hidrulico
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de
un sistema hidrulico del llenado de dos tanques, determinando a
partir de las ecuaciones fsicas un modelo lineal que lo describe con
precisin en todos sus puntos.

q(t) entrada
h(t) salida

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6. Conclusiones


228 /36
Objetivo
El objetivo de la prctica es modelar el comportamiento dinmico de un
sistema elctrico RLC, determinando a partir de las ecuaciones fsicas un
modelo lineal que lo describe con precisin en todos sus puntos.

v(t) entrada
i(t) salida

1 Descripcin fsica del sistema (fig)
2 Ecuacin fsica del sistema
3 Ecuaciones del espacio de estados
4 Diagrama de bloques del sistema
5 Simulacin del modelo
6. Conclusiones
Modelado de un RLC
229 /36
230 /36
231 /36
Cesar Perez Lopez, Matlab y
sus aplicaciones en las
ciencias y la ingeniera,
Prentice Hall
Dolores M. Etter, Introduction
to Matlab 7, Pearson
Prentice hall.
232 /36
Now you know EVERYTHING!
233 /36
Introduccion a la Programacin
con Matlab
INSTITUTO TECNOLOGICO
DE TLALNEPANTLA
Departamento de Ingeniera
Elctrica y electrnica
M.C Jaime Alejandro Castellanos

You might also like