Académique Documents
Professionnel Documents
Culture Documents
Enrique Pinto
Febrero 2003
Creacin de un modelo....................................................................................... 47
INTRODUCCIN A MATLAB.
los ficheros-M. Este tipo de ficheros da paso a las toolbox de MATLAB que son
una importante coleccin de funciones ya programadas y disponibles para el
usuario en diferentes campos como son el anlisis de datos, procesado de
imgenes y de seales, diseo de sistemas de control, procesado digital de
seal (DSP), comunicaciones, aplicaciones embebidas y tambin herramientas
para finanzas y economa
Una importante ventaja que presenta MATLAB es el entorno grfico de
trabajo, la claridad en la presentacin de los resultados y la versatilidad que
presenta en la creacin y modificacin de los mismos.
Dentro
del
campo
del
control
automtico,
MATLAB
ya
tiene
EPB
ans= 16
ans= 8
EPB
El formato de los datos numricos puede ser de varios tipos entre los
que destacan:
short
long
nmero en hexadecimal
EPB
0.3333
(short)
0.3333333333333333
(long)
3.3333e-001
(short e)
4040000000000000
(hex)
DEFINICIN DE VARIABLES
Para facilitar la manipulacin de datos en MATLAB, se pueden definir
variables con nombres para su rpida identificacin. Las reglas a seguir son:
longitud mxima 63 caracteres SIN ESPACIOS.
sensible a maysculas y minsculas.
el primer carcter ha de ser siempre una letra.
>>division=x1/x2
>>division= 3
x1
x2
>>whos
Name
Size
Bytes Class
division
1x1
8 double array
x1
1x1
8 double array
x2
1x1
8 double array
>>clear
EPB
EPB
FUNCIONES MATEMTICAS
Matlab incluye una amplia librera de funciones matemticas. Todas las
operaciones de Matlab se realizan en radianes.
Funciones Trigonomtricas:
sin(x)
sinh(x)
cos(x)
cosh(x)
tan(x)
tanh(x)
asin(x)
asinh(x)
acos(x)
acosh(x)
atan(x)
atanh(x)
>>angulo=cos(45*pi/180)
%calcular el coseno de 45
angulo= 7.0711e-001
%raz cuadrada
exp(x)
%exponencial ex
>>exp(1)
ans= 2.7183e+000
%base neperiana
imag(x)
abs(x)
angle(x)
>>comple1=1+i; comple2=1-i;
>>real(comple1)
ans= 1
>>imag(comple2)
ans= -1
>>modulo1=abs(comple1)
modulo1= 1.4142e+000
EPB
>>angulo1=angle(comple1)
angulo1= 7.8540e-001
>>angulo1=angulo1*180/pi
angulo1= 45
VECTORES
(as
como
las
matrices)
SE
ESCRIBEN
ENTRE
ans= 2
>>vector1(2)=1
vector1= 1 1 3 4
>>vector1(2:4)
ans= 2 3 4
>>vector1(1:2:4)
ans= 1 3
Construccin de vectores:
Indicando incremento entre elementos del vector:
>>vector3=(1:2:15)
EPB
vector3= 1 3 5 7 9 11 13 15
Indicando n de elementos del vector:
>>vector4=linspace(1,10,5)
>>vector5= 6
5
4
3
2
1
Tambin se puede construir un vector columna trasponiendo un vector fila:
>>vector6=vector4
>>vector6= 2
4
6
8
10
Construccin de una matriz:
>>matriz1=[1 2 3;4 5 6;7 8 9]
matriz1= 1 2 3
4 5 6
7 8 9
EPB
>>vector1+vector2
RESTA
>>vector1-vector2
>>vector1./vector2
POTENCIA
>>vector1.^vector2
Las operaciones con matrices deben seguir las reglas del lgebra
matricial en cuanto a la dimensin de las matrices con las que se va a operar:
SUMA
>>matriz1+matriz2
RESTA
>>matriz1-matriz2
PRODUCTO
>>matriz1*matriz2
TRASPUESTA
>>matriz3=matriz2
* DETERMINANTE
>>det(matriz1)
INVERSA
>>inv(matriz1)
EPB
10
>> whos
Name
Size
Bytes Class
angulo
1x1
8 double array
angulo1
1x1
8 double array
ans
1x1
8 double array
comple1
1x1
comple2
1x1
division
1x1
8 double array
matriz1
3x3
72 double array
matriz2
3x3
72 double array
modulo1
1x1
8 double array
productomatriz
3x3
72 double array
restamatriz
3x3
72 double array
sumatriz
3x3
72 double array
vector1
1x4
32 double array
vector2
1x4
32 double array
vector3
1x8
64 double array
vector4
1x5
40 double array
vector5
6x1
48 double array
vector6
5x1
40 double array
x1
1x1
8 double array
x2
1x1
8 double array
EPB
11
CREACIN DE GRFICOS
Una de las caractersticas ms notables de Matlab es la interfase grfica
que permite la generacin de grficos de gran calidad y de fcil manipulacin.
El comando principal para la generacin de grficas es plot que permite
representar parejas de puntos; a continuacin se describen algunas de sus
posibilidades:
>>plot(vector1,vector2)
>>hold on
>>plot(vector1,2*vector2)
>>hold off
12
>> plot(vector1,vector2,'ro-')
>>text(x,y,texto a insertar)
EPB
13
Una
grfica
se
puede
subdividir
en
zonas
para
sucesivas
>>plot(vector1,vector2)
>>subplot(1,2,2)
>>plot3(vector1,vector2,vector7)
Para hacer un zoom sobre una grfica basta con activar dicho comando y
pinchar sobre la grfica con el ratn:
>>zoom on
(En las ltimas versiones de matlab aparecen en cada grfica generada los iconos de zoom in
y zoom out, sin que sea necesario activarlo desde el editor de comandos con la funcin zoom).
EPB
14
FICHEROS SCRIPT
Son ficheros de texto con la extensin .m que ejecutan lnea a lnea las
rdenes y comandos que aparecen en el. Se pueden construir con cualquier
editor de texto. Para crear un fichero script desde Matlab, pinchar en File
New
EPB
15
FUNCIONES DE USUARIO
De forma parecida a los ficheros script, el usuario puede definir sus
propias funciones, con paso de parmetros, devolviendo resultados, pintando
grficas, etctera. A diferencia de los ficheros script anteriormente comentados,
las variables empleadas en las funciones creadas por el usuario no son visibles
desde la sesin de Matlab desde donde se ha ejecutado dicha funcin. Es regla
primordial que el nombre de la funcin coincida con el nombre del fichero y
que, al igual que los ficheros de tipo script, tambin ha de tener la extensin
.m. Slo sern variables del entorno de trabajo aquellas que se comunican
con la funcin:
Fichero cuadrado.m:
1. function y=cuadrado
2. % Calcula y representa los cuadrados de los elementos del vector
introducido por el usuario.
3. % Devuelve en una variable el vector "cuadrado".
4.
5.
6.
7.
Lnea 4:
Lnea 5:
Lnea 6:
Lnea 7:
EPB
16
Lnea 8:
creacin del vector, obtencin de los cuadrados de los elementos, dibujar los
puntos, aadir rejilla a la grfica y sacar por pantalla los valores de la variable y.
16
25
36
49
64
81 100
EPB
17
>>p3=poly(r3)
p3=1.0000 0 0.2500 1.2500
% p3 = x3 + 0.25x + 1.25
EPB
18
SUMA:
>>psuma=p1+p2
??? Error using
Matrix dimensions must agree.
>>p1=[0 p1] %aade un cero en la potencia x4 para tener la misma dimensin de p2
>>psuma=p1+p2
psuma= 2 1 7 4 2
% 2x4 + x3 + 7x2 + 4x -2
MULTIPLICACIN:
>>pmult=conv(p1,p2)
pmult= 0 2 12 11 ................ 3
COCIENTE:
>>[cociente,resto]=deconv(pmult,p2)
cociente= 0 1 6 5 -3
resto= 0 0 0 0 0 0 0 0 0
DERIVAR:
>>p1deriv=polyder(p1)
p1deriv= 3 12 5
Resolucin de polinomios
Especificando un valor para la variable independiente:
>>polyval(p1,1)
ans= 9
Especificando varios valores para la variable independiente:
>>x=polyval(p1,[1 2 3])
>>x= 9 39 93
EPB
19
g (s) =
n
s2 s
r
r2
= 2
= 1 +
+k
d s + 3s + 2 s p1 s p2
g (s) =
6
2
+
+1
s + 2 s +1
g ( z) =
EPB
n
r1
r2
=
+
+ K + k (1) + k (2) z 1 + K
1
d 1 p1 z
1 p2 z 1
20
2
s+2
G 2( s ) =
9
s + 1.5s + 9
2
>> n1=2
n1 =
2
>> d1=[1 2]
d1 =
1 2
>> n2=9 ; d2=[1 1.5 9] ;
separando stas por punto y coma. Un punto y coma al final de la lnea de comandos hace que
MATLAB acepte esa variable sin mostrarla por pantalla; si se omite el punto y coma, MATLAB
muestra la variable que se acaba de definir.
EPB
21
Transfer function:
2
----s+2
22
(s z )
G( s) = K
(s p )
i
m n
se hace mediante los comandos tf2zp y zp2tf . Tambin los comandos tf y zpk
permiten
la
conversin
de
funciones
expresadas
previamente
de
forma
compacta.
>> [z2,p2,k2] = tf2zp (n2, d2)
z2 =
Empty matrix: 0-by-1
p2 =
-0.7500 + 2.9047i
-0.7500 - 2.9047i
k2 =
9
G ( s) = 9
1
( s + 0 . 75 2. 9 i ) ( s + 0 . 75 + 2 . 9 i)
18
36
23
d3 =
1
EPB
24
g6=zpk(g5)
Zero/pole/gain:
s (s-1)
----------(s+2) (s+1)
su
funcin
de
transferencia
9
s + 1 .5 s + 9
2
discreta
equivalente
BG(z),
empleando
un
Opciones conversin:
EPB
25
g2=d2c(g2z,'zoh')
Transfer function:
9
--------------s^2 + 1.5 s + 9
EPB
26
Transfer function:
18
------------------------s^3 + 3.5 s^2 + 12 s + 18
Nota: tambien se puede emplear la forma no compacta de las funciones de transferencia, esto
es, mediante el uso de variables vectoriales num y den para definir las funciones de
transferencia.
g8=feedback(g1,1)
Transfer function:
EPB
27
2
----s+4
g9=feedback(g2,g1)
Transfer function:
9 s + 18
-----------------------------s^3 + 3.5 s^2 + 12 s + 36
EPB
28
Definidas
previamente
las
funciones
de
transferencia
de
distintos
una
grfica
donde
representa
la
respuesta
temporal;
con
G 2 (s ) =
9
s + 1. 5 s + 9
2
EPB
29
[y2,t2]= step(g2)
y2 =
0
0.0194
0.0745
0.1597
0.2688
0.3955, etc.
t2 =
0
0.0669
0.1339
0.2008
0.2677
0.3346, etc.
EPB
30
EPB
31
OTRAS RESPUESTAS
1
1
1 2 z + z 2
%genera 5 muestras
EPB
32
10
t=0:0.1:10;
u=sin(t);
lsim(g2,u,t)
EPB
33
t=0:0.1:10;
u= t .^2;
lsim(g1,u,t)
EPB
34
HOLD ON: congela la grfica que est activa de forma que las sucesivas
respuestas se visualizan en la misma.
FIGURE (4): activa una nueva grfica (la nmero 4) y permanece activa
para representaciones futuras.
SGRID: activa sobre el lugar de las races de un sistema continuo una rejilla
de lneas donde los parmetros y n son constantes.
ZGRID: activa una rejilla sobre el lugar de las races de un sistema discreto
una rejilla de lneas donde los parmetros y n son constantes.
STEM (Y): visualiza la secuencia discreta Y; al igual que con plot, se puede
representar la secuencia Y en los puntos indicados por un vector X, as
como el tipo de representacin (stem(X,Y,tipolnea)).
EPB
35
1. Extraccin de caractersticas
g2
Transfer function:
9
--------------s^2 + 1.5 s + 9
pole(g2)
k=dcgain(g2)
k = 1.0000
Obtencin de y n,
damp(g2)
Eigenvalue
Damping
Freq. (rad/s)
-7.50e-001 + 2.90e+000i
2.50e-001
3.00e+000
-7.50e-001 - 2.90e+000i
2.50e-001
3.00e+000
EPB
36
3.0000
3.0000
z=
0.2500
0.2500
[ceros k]=tzero(g4)
ceros = 1
1
k=
10
Obtencin de la FDT de un sistema de 2 orden especificando y n.
Devuelve los polinomios numerador y denominador de la FDT.
[num den]=ord2(1,0.7)
num =
EPB
1
37
2. Representaciones polares
g2
Transfer function:
9
--------------s^2 + 1.5 s + 9
pzmap(g2)
sgrid
EPB
38
discretos puesto que localiza los polos y ceros con respecto al crculo unidad.
Los polos y ceros se han de introducir en vectores columna. Si se especifica
con vectores fila Matlab interpreta que son las expresiones num y den de la
funcin de transferencia discreta .
1
0.8
0.6
Imaginary Part
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real Part
0.5
39
num z 2 1.3 z + 0 .4
=
den
z 2 z + 0. 5
zplane([1 1.3 0.4],[1 1 0.5])
rlocus(g7)
polos = -6.4267
1.4633 + 5.3542i
1.4633 - 5.3542i
EPB
40
3. Representaciones frecuenciales
sistema:
freqs(1, [1 1.4 1])
EPB
41
puntos =
0.9903 - 0.1400i
bode(g2)
bode(g2,{0.1,100})
[ampl fase]=bode(g2)
ampl(:,:,1) = 1.1057
ampl(:,:,2) = 1.1183
fase(:,:,1) =
-10.6197
fase(:,:,2)=
-11.3184
EPB
42
Mf = 41.4096
% son grados
Wg = Inf
% son rad/s
Wf = 3.9686
% son rad/s
nyquist(g2)
EPB
43
EPB
44
EPB
45
SIMULINK.
Simulink es la interfase grfica de simulacin de MATLAB. Permite el
anlisis y estudio de sistemas (de distintas disciplinas de la tcnica) mediante
la simulacin de los modelos construidos en simulink. La creacin de estos
modelos es sencilla e intuitiva, ya que se forman mediante la interconexin
grfica de distintos bloques. Dentro del editor de modelos de simulink se
insertan bloques, se conectan y se parametrizan para su posterior simulacin.
Dentro de simulink es posible crear y simular modelos mecnicos,
elctricos, electrnicos, aeronuticos, etc. gracias a la gran variedad de
bloques (blocksets) de los que dispone. Estos conjuntos de bloques se
encuentran agrupados en la simulink library browser, que se despliega al
ejecutar simulink, y que presenta el aspecto de la figura
EPB
46
continuos,
no
lineales
(Discontinuities),
discretos,
tablas,
Creacin de un modelo
Para ejecutar simulink pulsar sobre el botn
en el men principal, o
Ejemplo
seales se
47
Actuador
Gt ( s ) =
1
s +1
Planta
G2 ( s ) =
1
s+ 2
PID
R( s ) = 0.2 1 + 10 s + 0.5 s
Seal de referencia
escaln unitario
Datos de la simulacin:
Librera
Nombre bloque
Escaln
Sources
Step
+-, +++
Math Operations
Sum
Kp, Ki, Kd
Math Operations
Gain
Integrador
Continuous
Integrator
Derivada
Continuous
Derivative
Actuador
Continuous
Transfer Fcn
Planta
Continuous
Transfer Fcn
Vector de salida
Sinks
To Workspace
Vector de error
Sinks
To Workspace
Osciloscopio
Sinks
Scope
EPB
48
Comparador
sumador
(sum).
Para
el
primero
se
potencias
de
en
sentido
decreciente)
del
EPB
49
Resultado de la simulacin:
EPB
50