Está en la página 1de 36

1

INTRODUCCIN A MATLAB
UNIVERSIDAD NACIONAL DE INGENIERA
Facultad de Ingeniera Qumica y Textil

Curso: Simulacin y Control de Procesos
PI426
Profesor: Ing. Celso Montalvo
CELSO MONTALVO
2
MATLAB
Matlab es un programa de uso acadmico para el
clculo matemtico y la simulacin de procesos.
Con Matlab se pueden realizar
Clculos simples complejos,
Programas que realicen dichos clculos de manera
secuencial y automtica.
Presentacin de resultados en forma tabular grfica.
Simulacin de Procesos.
Matlab trae una serie de mdulos especializados
en cierto tipo de operaciones en todas las reas
de la tecnologa y el conocimiento, los Toolboxes
CELSO MONTALVO
3
MATLAB
CELSO MONTALVO
4
MATLAB
En Matlab, todas las operaciones se realizan con
matrices
>> 5
ans =
5
En el Workspace aparece la variable ans, a la que
se asigna el resultado si no se asign otra.
Cualquier letra conjunto de letras puede ser una
variable.
>> A=3*4
A =
12
El Workspace muestra el valor de A y clase double
(matriz de 1x1). (click-der sobre name class).
CELSO MONTALVO
5
MATLAB
En Matlab las maysculas y minsculas son
diferentes:
>> a = 4 ; A = A + a
A =
16
El ; suspende la visualizacin del resultado en la
pantalla, pero el comando se ejecuta (ver
Workspace). Tambin permite que en la misma
lnea se escriban ms comandos.
CELSO MONTALVO
6
MATLAB
Todas las operaciones en Matlab se realizan con las
prioridades usadas en matemticas:
>> B = (3 + 8/4 -1)^2
B =
16
Matlab incluye una gran variedad de funciones:
trigonomtricas, logartmicas, estadsticas, etc.
>> A = sin(2), B = log(15) + sqrt(36) - exp(-10) + A
A =
0.9093
B =
9.6173
Constantes:
>> pi, i
CELSO MONTALVO
7
MATLAB
Matlab tiene una precisin de 16 dgitos, pero
puede presentar slo 4 dgitos como en:
>> 1/3
ans =
0.3333
Puede pasarse a 14 dgitos con
>> format long
>> 1/3
ans =
0.33333333333333
Otras opciones de presentacin:
>> format short, 123456.789
>> format rat, 4.25
>> format compact
CELSO MONTALVO
8
Vectores y Matrices
Un vector es una matriz especial de 1 fila y
varias columnas o viceversa:
>> V = [2 4 5 8 -2], C = [1; 2; 8; 0]
Un vector con elementos espaciados:
>> V2 = 0:0.2:12
Un vector con 11 elementos entre 0 y 20:
>> V2 = linspace(0,20,11)
Al ingresar una matriz se separan filas con :
>> H = [1 2 3 0;4 5 6 -1;7 8 9 -2]
La Matriz transpuesta se genera con :
>> K = H
H =
1 2 3 0
4 5 6 -1
7 8 9 -2
K =
1 4 7
2 5 8
3 6 9
0 -1 -2
CELSO MONTALVO
9
Matrices
Acceso a los elementos de una matriz por su orden
por su ubicacin fila,columna:
>> H(8)
>> H(2,3)
Fila columna completa:
>> H(:,3)
>> H(2,:)
Sub-matriz dentro de otra matriz:
>> H(2:3,4)
>> H(2,2:4)
>> H(2:3,1:3)
Relacin entre orden y ubicacin en la matriz:
>> orden = (col 1)*NFilas + fila

CELSO MONTALVO
10
Matrices
Diagonal:
>> diag(H)
Submatriz triangular:
>> tril(H)
>> triu(H)
Matrices singulares:
>> eye(3,4)
>> zeros(4,6)
>> ones(5)
ans =
1
5
9
ans =
1 0 0 0
4 5 0 0
7 8 9 0
ans =
1 2 3 0
0 5 6 -1
0 0 9 -2
ans =
1 0 0 0
0 1 0 0
0 0 1 0
CELSO MONTALVO
11
Operaciones con Matrices
Operaciones estndar entre matrices:
>> H*[2 3; 3 0; -1 -2; 0 5], H(1:3,1:3)^2
>> sin(H), sqrt(H)
Operacin Punto: realiza la operacin de
elemento a elemento entre dos matrices:
>>Z=H.*H, R=sin(H).*cos(H)
Z =
1 4 9 0
16 25 36 1
49 64 81 4
R =
0.3096 0.1231 0.0070 0
-0.0139 -0.0065 -0.0007 -2.2874
0.0006 0.0003 0.0001 -6.7188
CELSO MONTALVO
12
Solucin de Ecuaciones
Diferenciales
Solucin sin valores de frontera:
>> dsolve('D2y=6*y-Dy',t')
Con valores de frontera:
>> dsolve('D2m+m=0','m(0)=2','Dm(0)=3',t')
2
2
6
d y dy
y
dt dt
=
2
2
0
d m
m
dt
=
CELSO MONTALVO
13
Polinomios
Se expresan como matrices usando sus
coeficientes:
s
4
+ 2s
3
+ 3s +1
>> P=[1 2 0 3 1]
Operaciones con polinomios:
>> polyval(P,2)
>> roots(P)
>> poly([1 -1 2]) % Polinomio de races 1, -1 y 2.
Solucin de Ecuaciones simultneas con \:
Ej: 2x + 3y z = 0
x 2y +z = 2
-2x + y +z = 1
>> A=[2 3 -1;1 -2 1;-2 1 1], B=[0; 2; 1], X=A\B
CELSO MONTALVO
14
Ploteo de Funciones
Cuando las funciones son vectores:
>> t=0:0.1:7, f=sin(t), plot(t, f)
CELSO MONTALVO
15
Ploteo de Funciones
Para plotear otras curvas en la misma grfica anterior:
>>hold on, g=sin(t).*exp(-2*t), plot(t, g)
CELSO MONTALVO
16
Ploteo de Funciones
Cuando las funciones son simblicas:
>> figure %Crea una nueva figura sin borrar la anterior.
>> fplot('sin(x)*exp(-0.5*x)',[0 4*pi])
CELSO MONTALVO
17
Archivos m
Los programas en Matlab se guardan en
archivos con extensin .m
Dos tipos: scripts y funciones.
Se puede usar cualquier editor de textos pero
el editor de Matlab es mejor.
Si se guarda el archivo m en la ruta por
defecto, se puede ejecutar usando su nombre
como comando.
Las funciones permiten pasar datos y usar el
programa en cualquier otra aplicacin,
inclusive dentro de otro programa.
CELSO MONTALVO
18
Funciones m
Las funciones permiten pasar datos y usar el
programa en cualquier otra aplicacin,
inclusive dentro de otro programa.
Deben definirse con la palabra
function y guardarse con el
nombre de la funcin:
function f = factorial(n) %Definicin de Funcin
% FACT(N) calcula el factorial de N
% Simplemente, factorial(N) es PROD(1:N).
f = prod(1:n); %Cuerpo de la funcin.
Se ejecuta en la ventana de comandos:
>> z= 5*3^2+factorial(5)
ans = 165
CELSO MONTALVO
19
Control de Flujo
Matlab tiene varias formas de controlar el flujo
de un programa:
Condicionales: if
Ejecuta los comandos que cumplen la condicin.
if expression1
statements1
elseif expression2
statements2
else
statements3
end
if ((asist >= 0.90) & (prom >= 10))
pasa = 1;
else
'No Pasa'
end;
CELSO MONTALVO
20
Control de Flujo
Condicionales: switch
Ejecuta los comandos dependiento de la
condicin en diferentes casos.
switch switch_expr
case case_expr
statement,...,statement
case {case_expr1,case_expr2,case_expr3,...}
statement,...,statement
...
otherwise
statement,...,statement
end
CELSO MONTALVO
21
Control de Flujo
Lazos repetitivos: for
Repite la ejecucin las veces indicadas por la
expresin.
for variable = expression
statements
end
CELSO MONTALVO
22
Control System Toolbox
Matlab es una herramienta poderosa para el Anlisis
Dinmico de Sistemas de Control.
Control System Toolbox es un conjunto de algoritmos
y funciones escritas especialmente para el
tratamiento de los problemas de control.
Para aprender el uso de Matlab en la solucin de
problemas de control de procesos, el primer paso
consiste en estudiar el archivo de ayuda (help) de
Matlab y ejecutar su demostraciones.
CELSO MONTALVO
23
Expresin de Modelos
La primera tarea al usar Matlab para resolver problemas de control
de procesos consiste en describir el modelo del proceso sistema
Los modelos se pueden expresar en Matlab de tres maneras:
Como una Funcin de Transferencia: |
|
.
|

\
|
+ + +
|
.
|

\
|
+ =
) 1 )( 1 5 )( 1 5 . 0 (
1
3
1
1 9 ) (
s s s s
s G
En el formato del Espacio de Estados:
| | Q
A
h
h
A R A R
A R
dt
dh
dt
dh
*
0
1
*
1 1
0
1
1
2
1
2 2 2 1
1 1
2
1
(
(

+
(

(
(
(
(

=
(
(
(

| | Q
h
h
h
h
*
0
0
*
1 0
0 1
2
1
2
1
(

+
(

=
(

En la forma de polos y ceros:


) 2 . 0 )( 1 . 0 (
) 1 )( 1 (
3
+ +
+ + +
s s
j s j s
Tambin es posible expresar el modelo en la forma de datos
experimentales que representen la Respuesta a la Frecuencia
del sistema.
zeros
polos
ganancia k
CELSO MONTALVO
24
Conversin de Formatos
Se puede convertir un formato en otro con las
funciones:
sys = tf(sys) % Conversin a TF
sys = zpk(sys) % Conversin a ZPK
sys = ss(sys) % Conversin a SS
De ser posible, es mejor no convertir repetidamente
los modelos para no perder precisin por redondeos.
CELSO MONTALVO
25
Funciones de Transferencia
Una Funcin de Transferencia en Matlab se expresa como una
divisin de polinomios:
0 1
1
1
0 1
1
1
...
...
) (
a s a s a s a
b s b s b s b
s G
n
n
n
n
m
m
m
m
+ + + +
+ + + +
=

Los coeficientes forman matrices que sirven para expresar los


polinomios:
| |
| |
0 1
0 1
...
...
a a a den
b b b num
n n
m m

=
=
El siguiente comando crea la Funcin de Transferencia G(s):
G = tf(num,den)
Si la FT incluye Tiempo Muerto, ste se puede agregar as:
G .iodelay = 0.5
O se puede incluir al crear la FT con:
G = tf(num,den,'ioDelay',0.5)
La forma ms fcil de crear las FTs es usando la variable s:
G = (9*s+1)/s/(0.5*s+1)/(5*s+1)/(s+1)
Para crear una FTs usando Espacio de Estados:
>> A=[-2 -5 -2; 1 0 0; 0 -1 -2]; B=[1; 0 ;1]; C=eye(3), D=zeros(3,1)
>> X = ss(A, B, C, D)
CELSO MONTALVO
26
Inversin de Transformadas
La Expansin en Fracciones Parciales usa la funcin residue:
Problema 1. Invertir la funcin:
6 11 6
6 3 5 2
) (
2 3
2 3
+ + +
+ + +
=
s s s
s s s
s G
[r,p,k]=residue([2 5 3 6], [1 6 11 6 ])
r =
-6.0000
-4.0000
3.0000

p =
-3.0000
-2.0000
-1.0000

k =
2
2
1
3
2
4
3
6
) ( +
+
+
+

+
+

=
s s s
s G
) ( 2 3 4 6 ) (
2 3
t e e e t G
t t t
o + + =

CELSO MONTALVO
0 5 10 15 20 25 30 35 40 45
0
0.5
1
1.5
2
2.5
Step Response
Time (sec)
A
m
p
l
i
t
u
d
e
27
Respuesta Transitoria
La funcin step grafica la Respuesta Transitoria de una funcin
ante el efecto de una perturbacin escaln unitario.
Problema 2. Mostrar la Respuesta Transitoria del sistema
siguiente:
2
1.5
( )
(0.5 1)(2 0.5 1)
G s
s s s
=
+ + +
% Programa en Matlab:
s=tf('s');
G=1.5/(0.5*s+1)/(2*s^2+0.5*s+1);
step(G)
CELSO MONTALVO
0 5 10 15 20 25 30 35 40 45
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Impulse Response
Time (sec)
A
m
p
l
i
t
u
d
e
28
Respuesta Transitoria
La funcin impulse grafica la Respuesta Transitoria de una funcin
ante el efecto de una perturbacin impulso unitario
(momentneo).
Problema 2a. Mostrar la respuesta del mismo proceso ante una
perturbacin impulso unitaria:
2
1.5
( )
(0.5 1)(2 0.5 1)
G s
s s s
=
+ + +
% Programa en Matlab:
s=tf('s'); %Slo una vez.
G=1.5/(0.5*s+1)/(2*s^2+0.5*s+1);
impulse(G)
Problema 2b. Si la Funcin
forzante es F(t) = sin(2t), Cul
ser su respuesta transitoria?
CELSO MONTALVO
29
Respuesta Transitoria
2 2 2
1.5 2
( ) ( ) ( )
(0.5 1)(2 0.5 1) 2
s s s
s s s s
= =
+ + + +
Y G X
0 5 10 15 20 25
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Impulse Response
Time (sec)
A
m
p
l
i
t
u
d
e
Y=1.5/(0.5*s+1)/(2*s^2+0.5*s+1)*2/(s^2+4); impulse(Y)
CELSO MONTALVO
30
Respuesta Transitoria
Problema 3. Hallar la funcin del tiempo Y(t) y su valor para t=2
sec. si la funcin de transferencia es:
4 3 2
4
( )
3 6 12 8
s
s
s s s s
+
=
+ + + +
Y
Solucin
Aplicando el mtodo de solucin por fracciones parciales:
4 3 2 2
2
2
4
( )
3 6 12 8 1 2 4
3 1 7 1
5 4 20 10
3 7 1 1
5 20 10 4
( )
1 2 4
3 1 7 1
( ) cos(2 ) sin(2 )
5 4 20 20
(5) 0.2705
t t
s A B Cs D
s
s s s s s s s
Operando: A B C D
s
s
s s s
t e e t t

+ +
= = + +
+ + + + + + +
= = = =
+
= + +
+ + +
= +
=
Y
Y
Y
Y
CELSO MONTALVO
31
Respuesta Transitoria
Solucin usando Matlab

>> Y=(s+4)/(s^4 + 3*s^3 + 6*s^2 + 12*s + 8);
>> impulse(Y)
Impulse Response
Time (sec)
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
System: Y
Time (sec): 5
Amplitude: 0.27
CELSO MONTALVO
32
Respuesta Transitoria
Comparacin entre la solucin manual y la solucin con Matlab:
% Programa en Matlab:
>> Y1=(s+4)/(s^4 + 3*s^3 + 6*s^2 + 12*s + 8);
>> subplot(2,1,1),impulse(Y1)
>> t=0:0.01:25; Y2=3/5*exp(-5)-1/4*exp(-2*5)-
7/20*cos(2*5)+1/20*sin(2*5);
>> subplot(2,1,2),plot(t,Y2)
0 5 10 15 20 25
-0.5
0
0.5
Impulse Response
Time (sec)
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25
-0.4
-0.2
0
0.2
0.4
0.6
Solucin Manual
Tiempop
A
m
p
l
i
t
u
d
CELSO MONTALVO
33
Simulink
Simulink permite representar y
simular la operacin de un
proceso sistema.
En simulink cada representacin
es un modelo: hay bloques para
entradas, salidas y funciones de
transferencia, bloques para
operaciones matemticas.
CELSO MONTALVO
34
Simulink
CELSO MONTALVO
35
Simulink
36
FIN!
Ing. CELSO MONTALVO HURTADO

También podría gustarte