Professional Documents
Culture Documents
C O N T E N I D O
I. Objetivo
II. Antecedentes
III. Material y Equipo
IV.Desarrollo de la Prctica
V. Hoja de Resultados
VI. Anexo
I. Objetivo
Al finalizar la prctica el estudiante utilizar los comandos bsicos de MATLAB para el manejo
de funciones de transferencia, para graficar funciones as como para el anlisis de sistemas de
control.
II. Antecedentes
El estudiante deber contar con conocimientos matemticos relativos a los cursos de lgebra,
Ecuaciones Diferenciales, conocer el manejo matemtico de los sistemas lineales invariantes en el
tiempo as como las bases de la solucin numrica de problemas matemticos. Deber contar con
conocimientos bsicos de programacin en algn lenguaje de alto nivel. Se recomienda que cuente
con una computadora con la versin R2007a de MATLAB.
III. Material y Equipo
Computadora PC y software MatLab.
IV. Desarrollo de la Prctica
IV.1 Introduccin
MATLAB es el nombre abreviado de MATriz LABoratory. MATLAB es un programa para
realizar clculos nmericos con vectores y matrices. Como caso particular puede tambin trabajar
con nmeros escalares tanto reales como complejos-, con cadenas de caracteres y con otras
estructuras de informacin complejas. Una de las capacidades ms atractivas es la de realizar una
variedad de grficos en dos y tres dimensiones, tiene tambin un lenguaje de programacin propio.
La capacidad de clculo de MATLAB se basa en sus mltiples funciones (comandos). En esta
prctica se mostrar la utilidad de algunas de ellas.
MATLAB es un gran programa de clculo tcnico y cientfico. Para ciertas operaciones es muy
rpido, cuando puede ejecutar sus funciones en cdigo nativo con los tamaos ms adecuados para
aprovechar sus capacidades. En otras aplicaciones resulta bastante ms lento que el cdigo
equivalente desarrollado en C/CC++ o Fortran. MATLAB dispone de un cdigo bsico y de varias
libreras especializadas (toolboxes).
En las diferentes reas de la ingeniera, la simulacin de sistemas y procesos se ha convertido en una
herramienta indispensable, tanto para el anlisis como para el diseo de sistemas. En la mayora de
los casos el proceso de simulacin reduce el tiempo de diseo y permite anticipar el comportamiento
de sistemas y procesos antes de su construccin, reduciendo, por ende, el costo de desarrollo y
evitando posibles desperdicios. De la gran variedad de programas, que pueden hacer simulaciones y
clculo numrico intensivo, en el mercado se ha elegido a MATLAB, para las actividades de
anlisis y diseo de sistemas de control, debido al uso tan extendido del mismo y al desempeo
mostrado en muchas reas de ingeniera y ciencias.
Por lo que, adems de los anlisis tericos en la enseanza del control automtico, ser necesario
mostrar al alumno el manejo adecuado de matlab con el fin de complementar su formacin en lo
que respecta a las soluciones numricas y de simulacin.
IV.2 Iniciando
Para iniciar el programa haga un doble clic sobre el icono (MATLAB R2008a) del programa. Al
abrir MATLAB hay una pantalla con tres ventanas (figura 1). Esta es la vista que se obtiene
eligiendo la opcin Desktop / Layout / Default, en la barra de herramientas. Como esta configuracin
puede ser cambiada fcilmente por el usuario, es posible que en muchos casos aparezca muy
diferente.
La parte ms importante de la ventana inicial es la Command Window, que aparece en la parte
derecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, a continuacin del
prompt (aviso) caracterstico (>>), que indica que el programa est listo para recibir instrucciones.
4. + -, De izquierda a derecha 5 3 + 7 = 2 +7 = 9
IV.5 Variables
La sintaxis general de MATLAB es la siguiente:
El programa MATLAB hace diferencia entre maysculas y minsculas.
En matlab se pueden crear y modificar variables con la siguiente estructura: escalar, vector, matriz y
cadenas.
a) Defina las siguientes variables escalares R, L y C, asignndoles los siguientes valores
>> R=220; C=0.33e-6; L=20e-3; con stos comandos se asigna el valores numricos a las
variables R, C y L.
Ejecute la siguiente lnea de comando >> whos; describa el resultado mostrado en la pantalla
b) Defina una variable en forma de cadena
>> y=cadena
sta lnea de comando asigna a la variable y una cadena de caracteres. ste
tipo de variables se utilizan , principalmente, para la transferencia de datos (informacin) entre
funciones y/o rutinas de programacin.
Ejecute la siguiente lnea de comando >> whos; describa el resultado mostrado en la pantalla
En los clculos de matlab se pudo observar que el resultado se presenta en la variable ans, dicha
variable se puede utilizar para realizar otros clculos, por ejemplo introduzca la siguiente operacin
(despus del promt) ans*5 y obtendr ans = 45 (respuesta que se obtiene siguiendo la secuencia antes
propuesta).
Los nombres vlidos para las variables deben iniciar con una letra y pueden ser cualquier
combinacin de letras y caracteres alfanumricos, sin espacios. Se debe decir, en ste punto, que
existen algunos nombres slo utilizados por matlab, como el nmero pi, eps, y la variable imaginaria
(i y j).
IV.6 Funciones elementales
Matlab reconoce las funciones trigonomtricas sin(x), cos(x) y tan(x) (con las funciones inversas
asin(x), acos(x) y atan(x)), donde x = argumento debe ser radianes para las funciones directas.
Introduzca la siguiente lnea, despus del promt: >> sin(0.5236), deber obtener como resultado ans
= 0.5
Introduzca la siguiente lnea, despus del promt: >>cos(1.0472), deber obtener como resultado ans =
0.5
Las funciones sqrt, exp, log, log10 son algunas otras de las funciones que puede ejecutar matlab.
Introduzca la siguiente lnea, despus del promt: >> x = 9, sqrt(x), exp(x), log(sqrt(x)), log10(x^2+6)
, deber obtener los siguientes resultados parciales (presentados en forma vertical): 3, 8.1031e+03,
1.0986, 1.9395.
IV.7 Estructura de los Datos en MatLab
Ingreso de datos
La forma de ingresar los datos, puede ser de alguno de los tipos siguientes: Un escalar, un vector o
una matriz
Un slo dato, por ejemplo A=8.7 es un escalar.
Si una matriz tiene un solo rengln (escribiendo los caracteres separados por comas o espacios) o una
sola columna (escribiendo los caracteres separados por punto y coma), entonces se ingres un vector;
conocidos como un vector rengln o un vector columna. B=[12.56 36.47]
Matriz
El tamao de una matriz se especifica por el nmero de renglones y de columnas; as,
matriz de 3x3. Un dato de una matriz se puede identificar por los subndices; as
dato 90 de la matriz
de m x n valores; as,
es una
representa el
ESTILO
Matlab es sensible a la diferencia entre maysculas y minsculas, as que los nombres Dato, DATO
y dato representan tres variables distintas.
DEFINICIN DE UNA MATRIZ
La forma ms sencilla de definir una matriz es usar una lista de nmeros, como:
A=[8.7]
B=[12.56 36.47]
La matriz W se puede ingresar como:
W=[1 34 90; 59 12 67; 22 -9 37]
W =[1 34 90
59 12 67
22 -9 37]
PUNTOS SUSPENSIVOS
Si hay demasiados nmeros en un rengln de una matriz para que
quepan en una lnea, podemos continuar la instruccin en la siguiente lnea, pero se requiere una
coma y tres puntos al final de la lnea para indicar que la rengln debe continuar.
Ejemplo:
H=[-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2]
Que tambin se puede escribir como:
H = [-2,0,-3,4,-3,-4,...
5,0,0,2,1,1,1,3,4,-0.2]
MATLAB tambin permite definir una matriz que ya se defini:
Ejemplo:
B =[1.5,4.1]
D = [-4,B] este comando equivale a
D = [-4,1.5,4.1]
Tambin podemos modificar los valores de una matriz o agregar valores adicionales usando una
referencia a un lugar especfico. Por ejemplo:
D(3) = 6
Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como:
D = [-4,1.5,6]
As tambin logramos extender una matriz definiendo nuevos elementos.
Si ejecutamos el siguiente comando
D(4)=2.5; La matriz D tendr cuatro valores en lugar de tres, as D se ver como
D = [-4, 1.5, 6, 2.5];
2.- C=[5,3,5;6,2,-3]
3.- E=[3,5,10,0;0,0,...
0,3;3,9,9,8]
4.- T=[4,24,9]
Q=[T,0,T]
5.- V=[C(2,1);B]
y lo agrega al vector B
6.- A(2,1)=-3
Tambin se usa el operador dos puntos para separar tres nmeros, el operador de dos puntos
generar valores entre el primer nmero y el tercero, usando el segundo nmero como incremento:
t=0.0:0.5:6.0
a*b
ans es el nombre dado a un resultado cuando el usuario no le asigna un nombre.
Un escalar puede sumarse a un vector o matriz:
a+c
La suma de un escalar a un vector o matriz slo aade el escalar a cada elemento del vector o matriz
la resta se define de manera similar:
a-b
Los vectores y matrices se suman (o restan) como lo hacemos en matemticas, esto es, los dos
vectores o matrices deben tener la misma forma para sumarse o restarse a menos que uno de ellos sea
un matriz de 1*1, un escalar, como lo vimos antes:
b+c
c-b
Los vectores y las matrices se multiplican de acuerdo a las reglas del lgebra matricial:
b*c
Este resultado ilustra un error comn en Matlab. Las matrices deben ser conformables para ser
multiplicadas utilizando el operador *. La premultiplicacin de un vector rengln de 1x3 como c por
un vector rengln de 1x3 como b no est definida. Sin embargo si c se transpusiera a un vector
columna 3x1, se definira la multiplicacin. La transposicin se efecta con el operador ' (apostrofe).
c'
b*c'
este es el producto bcT.
Operaciones elemento por elemento:
A menudo es muy til multiplicar dos vectores o matrices de la misma forma, elemento por
elemento en vez de utilizar las reglas usuales de la multiplicacin de matrices. Ese tipo de
multiplicacin se denomina multiplicacin del arreglo en Matlab y se lleva a cabo utilizando el
operador .*
Las operaciones elemento por elemento, u operaciones de arreglos, no slo se aplican a operaciones
entre dos matrices del mismo tamao, si no tambin a operaciones entre un escalar y un no escalar.
As pruebe las instrucciones de cada uno de los siguientes juegos:
A=[4,3,2,4,6];
C=3.*A
G=A./5
Las vectores resultantes C y G tendrn el mismo tamao que A.
A fin de ilustrar las operaciones de arreglos para vectores, considere los dos siguientes vectores
rengln:
B=[-6,3,-2,4,6];
Calculemos el producto de arreglos de A y B usando las siguientes instrucciones:
L=A.*B
El comando de divisin de arreglos,
F=A./B
Asimismo la exponenciacin de arreglos tambin es una operacin elemento por elemento ejemplos;
Z=A.^2
M=A.^B
Tambin podemos usar una base escalar con un exponente vector
como;
P=3.^A
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se aplican a matrices con
renglones y columnas, como lo podrs constatar declarando la matriz 'd' ejecutando las operaciones
indicadas:
d=[1:6;-1:-1:-6];
f=d.*6
w=d.^2
IV.8 Polinomios y Funciones de Transferencia
MatLab representa a los polinomios como si fueran vectores, los cuales contienen los
coeficientes del polinomio ordenados de la mayor a la menor potencia. Por ejemplo, para el
polinomio, s 3 + 2 s 2 + 3s + 4 se debe crear el vector
p = [1 2 3 4];
Las races de la ecuacin algebraica que se obtiene al igual el polinomio a cero se pueden obtener
utilizando la instruccin
roots(p)
si se cuenta con las races se puede formar el vector que representa al polinomio en MatLab
mediante la instruccin poly( [ ] ), por ejemplo
p2 = poly([-1 -2])
Para evaluar el polinomio en un punto se utiliza la instruccin
ps=polyval(p,s)
donde p es el vector que representa al polinomio en MatLab y s es el punto en el cual se desea
evaluar. Puede evaluarse al polinomio en un conjunto de valores si s se define como un vector.
Para la multiplicacin de polinomios se maneja la instruccin
c =conv([1 1],[12])
y para la divisin:
d = deconv([1 3 2],[1 1])
Para que MatLab presente el en forma de fraccin se utiliza
printsys(num, den)
Introduzca el comando >> grid Revise las grficas y describa el cambio realizado por el comando
grid. A qu grfica afect el comando grid?, Cmo se puede afectar a las dos grficas con el
comando grid?
V.9.3 Etiquetado, estilos y colores de lneas.
Los siguientes comandos permiten documentar un resultado grfico, poniendo ttulo y etiquetas para
ambos ejes coordenados.
Para etiquetar y poner ttulo a una grfica introduzca los siguientes comandos
>> title(Grafica de prueba)
>> xlabel (Etiqueta para el eje x)
>> ylabel(Etiqueta para el eje y)
A qu grfica afectaron los comandos?, Cmo se puede afectar a las dos grficas con los
comandos?
Estilos y colores de lneas para las grficas
Con el fin de hacer a las grficas ms atractivas y distinguibles se pueden introducir comandos en
matlab que permiten cambiar el color y el tipo de lnea de la grfica.
Introduzca la siguiente lnea.
>> plot (x,y,m-)
title escribe un ttulo en la parte superior para nombrar a la grfica.
xlabel permite escribir un nombre al eje x de la grfica.
ylabel permite escribir un nombre para el eje y de la grfica.
legend
indica lo que representa cada curva de la grfica.
plot ste define el color y el estilo de la grfica. Es una cadena la que determina el color de la lnea,
estilo de la misma y los smbolos (si los hay) utilizado para los puntos de marca, por tanto intente dar
elegancia a su grafica anterior agregando al comando plot:
plot(x,y,'ro');grid
Pruebe algunos cambios en color y tipo de lnea para la grfica que venimos trabajando, de acuerdo
con la Tabla 1.
LISTA DE CARACTERES
COLOR
y
m
c
r
amarillo
magenta
cian
rojo
MARCADOR
.
o
x
+
g
b
w
k
verde
azul
blanco
negro
*
s
d
v
^
punto
circulo
marca x
ms
ESTILO DE LINEA
continua
:
punteada
-.
guin-punto
-Discontinua
(guionada)
asterisco
cuadrado
diamante
triangulo(hacia
abajo)
triangulo (hacia
arriba)
Las grficas generadas con matlab se pueden almacenar e incluir en otros archivos en diferentes
formatos. En la ventana de la grfica seleccione el men despleglable File y elija la opcin
Export, elija algn formato, por ejemplo .bmp, y exporte la grfica.
El siguiente juego de instrucciones genera cuatro graficas que ilustran la funcin del comando
subplot empleando escalas lineales y logartmica.
Cdigo No. 2
t=[0:0.001:1];
f=2;
w=2*pi*f;
x=((1/2).*(1+cos(2*w.*t)));
subplot(2,2,1);plot(t,x,'r','linewidth',2);grid
subplot(2,2,2);semilogx(t,x,'b','linewidth',2);grid
subplot(2,2,3);semilogy(t,x,'r','linewidth',2);grid
subplot(2,2,4);loglog(t,x,'b','linewidth',2);grid
Cdigo No. 3
t=[-6*pi:0.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2);title('Cada
ciclos');grid
senoidal
completa
un
numero
entero
de
En el men desplegable File (del editor de matlab), elija Save as asigne nombre al archivo, por
ejemplo: tutoprogram.m y slvelo en alguna carpeta conocida. Del men desplegable Debug elija
la opcin Run nom-del-archivo.m o F5 o hacer clic en la punta de flecha de color verde localizada
en la barra de herramientas, deber aparecer una figura que corresponde con el cuarto clculo
expresado en el programa.
Ubique el cursor en cada uno de los renglones del programa, con excepcin de la lnea del comando
for,
Para cada una de las lneas defina un punto de ruptura de programa (Breakpoint). Con el men
desplegable Debug seleccione Set/clear breakpoint. En la extrema izquierda de las lneas
aparecer un punto rojo.
Con el men desplegable Debug elija la opcin Run nom-del-archivo.m. La ejecucin del
programa deber detenerse en la primera lnea con punto rojo, esto es, en la definicin de theta.
Con el men desplegable Debug elija la opcin Step la flecha que indica la lnea a ejecutar se
detendr en la siguiente lnea con punto rojo.
Regrese al espacio de trabajo y revise su contenido con el comando
>> whos deber aparecer la variable theta.
Contine paso a paso la ejecucin del programa, revisando para cada uno de ellos el contenido del
espacio de trabajo. Terminando con las grficas generadas.
Describa brevemente lo que entendi con el programa anterior.
V. Hoja de Resultados
Nombre: _______________________________
Incluya los resultados que se obtienen al correr los cdigos 1, 2, 3 y 4
Vl. Anexo
Operador suma.
Operador resta.
Operador multiplicacin.
Operador multiplicacin elemento a elemento.
Operador potencia.
Operador potencia elemento a elemento.
Operador divisin izquierda.
Operador divisin derecha.
Operador divisin izquierda elemento a elemento.
Operador divisin derecha elemento a elemento.
Genera elementos regularmente espaciados en vector rengln.
Indica el argumento de una funcin o el ndice de una matriz. Tiene la ms alta precedencia.
Agrupa los elementos de una matriz.
Punto decimal.
Operacin de continuacin de lnea.
Separa sentencias y elementos declarados en un mismo rengln.
;
%
`
=
Funciones Matemticas
exp (x)
log (x)
log10 (x)
sqrt (x)
acos (x)
acot (x)
asec (x)
asin (x)
atan (x)
atan2 (y,x)
cos (x)
cot (x)
csc (x)
sec (x)
sin (x)
tan (x)
abs (x)
angle (x)
conj (x)
imag (x)
real (x)
erf (x)
mean (x)
median (x)
std (x)
rand (x)
randn (x)
Funcin exponencial
Funcin logaritmo natural
Funcin logaritmo base 10
Raz cuadrada
ngulo cuyo coseno
ngulo cuya cotangente
ngulo cuya secante
ngulo cuyo seno
ngulo cuya tangente
ngulo cuya tangente (cuatro cuadrantes)
Funcin coseno
Funcin cotangente
Funcin cosecante
Funcin secante
Funcin seno
Funcin tangente
Funcin valor absoluto
ngulo del nmero complejo
Conjugado complejo
Parte imaginaria de x
Parte real de x
Clculo de la funcin error
Clculo del promedio
Clculo de la mediana
Clculo de la desviacin estndar
Genera uniformemente distribuidos nmeros aleatorios entre 0 y 1
Genera normalmente distribuidos nmeros aleatorios
La unidad imaginaria 1 .
Inf
Infinito.
NaN Resultado numricamente indefinido (Not a Number).
pi
El nmero .
Concatenacin de matrices
Localiza los ndices de los elementos no cero
Calcula el nmero de elementos
Crea vectores linealmente espaciados
Crea vectores logartmicamente espaciados
Regresa la magnitud del elemento ms grande
Regresa la magnitud del elemento ms pequeo
Producto de cada columna
Cambia el tamao de la matriz
Calcula el tamao de la matriz
Ordena cada columna
Suma de cada columna
Matrices especiales
eye
ones
zeros
Matriz identidad
Crea una matriz de slo unos
Crea una matriz de slo ceros
Aritmtica de matrices
cross
dot
Producto cruz
Producto punto
format rat
format compact
format loose
Aproximacin racional.
Suprime lneas de entrada.
Reajusta al modo compacto.
Comandos grficos 2D
axes
close
close all
figure
gtext
hold
legend
refresh
set
subplot
text
Histograma
Grfico logartmico
Grfico polar
Grfico semilogartmico en x
Grfico semilogartmico en y
Grfico a segmentos
Grfico a espigas
Comandos grficos 3D
contour
griddata
mesh
meshgrid
meshc
meshz
plot3
surf
surfc
waterfall
zlabel
findsym
numden
sym
vpa
expand
factor
poly2sym
pretty
simple
simplify
subs
sym2poly
diff
dirac
heaviside
int
limit
symsum
taylor
solve
dsolve
ilaplace
laplace
ifourier
fourier
det
eig
inv
poly
<
<=
>
>=
&
|
~
xor
Igual a
No igual a
Menor que
Menor o igual que
Mayor que
Mayor o igual que
Operador lgico AND (Y)
Operador lgico OR (O)
Operador lgico NOT (NO)
Operador OR EXCLUSIVO
Programacin
break
case
else
elseif
otherwise
return
switch
warning
while