Está en la página 1de 15

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA

"ANTONIO JOS DE SUCRE"


VICERRECTORADO DE BARQUISIMETO
DEPARTAMENTO DE INGENIERA ELECTRNICA

LAB. II DE SISTEMAS DE CONTROL


PROF. FRANCISCO DE LA CRUZ
2009
INTRODUCCIN A MATLAB
Para un tutorial mucho ms completo visite:
http://isa.uniovi.es/~cuadrado/archivos/IntroduccionMatlab.pdf
http://www.esi2.us.es/~fsalas/asignaturas/LCA3T04_05/Intro_matlab.pdf
http://www.imse.cnm.es/tec_exp/downloads/enunciados/0506_INTRO_MATLAB.pdf
A continuacin se muestran algunos ejemplos de manejo de datos y empleo de funciones
bsicas. Las letras en negrilla corresponden a instrucciones de Matlab. Escrbalas en la
ventana de comandos. Al pulsar Enter deber aparecer el resultado de dicha instruccin,
siempre y cuando no escriba punto y coma (;) al final de la instruccin.
Para una explicacin rpida de cualquier comando use >>help comando

1. Caracteres especiales
[]

Son usados para formar vectores y matrices: [ 1 2 3 ; 4 5 6 ]

()

Usados para expresiones matemticas: sqrt(2)

Usado para hacer asignaciones: x = 5

'

- Transpuesta de una matriz: A'


- Usado para separar cadena de caracteres: 'radianes'

Punto decimal: 3.1415

...

Al final de una lnea indican que continua 2,3,4,5,6 ....


en el siguiente rengln. 7,8,9,10 ]

Para separar elementos [1,2,3,4]

- Para separar filas en las matrices: [ 1 2; 3 4]


- Para evitar que se despliegue resultado de un comando: y=a+2;

Para hacer comentarios: % este programa permite...

2. Operaciones bsicas
Operaciones Aritmticas:
Suma

C=a+b

Resta

d=a-b

Multiplicacin

e=a*b

Divisin

F=a/b
F=a\b

Potenciacin

a^2

Funciones trigonomtricas
Trigonomtricas estndar

sin, cos, tan (radianes)


sind, cosd, tand (grados)
asin, acos, atan (radianes)
asind, acosd, atand (grados)

Trigonomtricas hiperblicas

sinh, cosh, tanh


asinh, acosh, atanh

Otras funciones
Logaritmo natural

log(x)

Logaritmo decimal.

log10(m)

Exponencial : e ( x )

exp(-3.5)

Valor absoluto o magnitud de un nmero complejo abs (sel)


Redondea hacia ms infinito

ceil (123.123123)

Redondea hacia menos infinito

floor(X)

Redondea hacia cero

fix (X)

Redondea hacia el entero ms prximo

round(X)

Parte imaginaria de un nmero complejo

imag(30+4*i)

Parte real de un nmero complejo

real(comp)

Angulo de un nmero complejo

angle(comp)

Complejo conjugado

conj(comp)

Devuelve el signo del argumento (1 o -1)

sign(-5)

Resto despus de la divisin ( x / y)

rem(a,b)

Raz cuadrada

sqrt(2)

3. Comandos y variables de entorno


ans

Respuesta ultimo comando no asignada a variable

clear a

Borra la variable " a "

clear a b c

Borra las variables " a ", " b " y " c "

clear

Borra todas las variables y no se pueden recuperar.

clc

Borra ventana de comando

who

Muestra variables en uso

whos

Muestra las variables con informacin adicional

pi

i, j

1 Constante imaginaria.

inf

. Se trata de un valor excesivamente grande para ser almacenado.

NaN

Not a number

4. Manejo de Vectores

Vector fila

a = [1 2 3 4 5 6 9 8 7]
a=

b=a+2
b=
3 4 5 6 7 8 11 10 9

123456987

Secuencia de nmeros pares entre


0 y 20

t = 0:2:20

Suma de escalar a todos los


elementos de un vector

Suma de vectores

c=a+b
c=

t=

4 6 8 10 12 14 20 18 16
0 2 4 6 8 10 12 14 16 18 20

Vector transpuesto (columna)

a = a

a=

-0.6180

1
2
3
4
5
6
9
8
7

Evaluacin de un polinomio para


un valor especfico

polyval(p,2)
ans=
7

Multiplicacin de vectores

Generacin de un polinomio a
partir de sus races

b*a

p2=poly([-1 -2])

ans=

p2=
132

375

Mayor elemento de a

6. Manejo de matrices

max(a)
ans=
9

Cada fila de elementos debe


separarse por un punto y coma (;).
Ejemplos:

Ordenamiento ascendente de los


elementos del vector b

B = [1 2 3 4;5 6 7 8;9 10 11 12]

sort(b)
B=

ans =
3 4 5 6 7 8 9 10 11
5. Polinomios

Los polinomios se representan usando sus


coeficientes en orden ascendente como
elementos de un vector.

P(s)= s + 3s 10 s + s + 5
4

9 10 11 12
E = [1 2;3 4]
E=
1 2

p= [1 3 -10 1 5];

1 2

3 4

Races de un polinomio

roots(p)

D = [2 3; 4 5]

ans=

D=

-5.0000
1.6180
1.0000

2 3
4 5

Matriz identidad de orden n = 3

1 27

I = eye(3)

8 64

I=
1

X = inv(E)

Inversa de una matriz no singular

X=
-2.0000 1.0000

Matriz de ceros de orden n por m

1.5000 -0.5000

C = zeros(3);
C = zeros(3,3)

C=

F= D*E

Multiplicacin de matrices

F=

11 16

19 28

Matriz transpuesta

E = E

Multiplicacin
elemento
elemento de dos matrices

G=D.*E

E=
1 3

G=
2

2 4

12 20

Potencia de una matriz

E^3

ans=
37 54
81 118

Potencia de los elementos de una


matriz

E.^3
ans=

Multiplicacin del elemento (2,1)


de la matriz G por 5 (sin
cambiarlo)

G(2,1)*5
ans=
60

Sustitucin del elemento (2,1) de


la matriz G

G(2,1)=10

ans=

G=
2

9 10 11 12

12 10

Multiplicacin de la segunda fila


de G por 4 y asignacin del
resultado a un vector

[valor lugar]=max(B)
valor =

g = G(2,:)*4

9 10 11 12

g=

lugar =

40 80

Determinacin
del
mayor
elemento de cada columna de B e
indicacin de ubicacin

Determinacin
del
mayor
elemento de cada columna de B

3333

max(B)
7. GRFICAS
Generacin de vector de fracciones de
x=[0:pi/10:2*pi];
Generacin de vector de valores de funcin seno para fracciones de
y=sin(x);

Graficar dos vectores relacionados

plot(x,y)
1
0.8

0.6
0.4
0.2

-0.2
-0.4
-0.6

-0.8
-1

Activacin de cuadricula

grid on

Etiqueta del eje x

xlabel('angulo')

Etiqueta del eje y

ylabel('amplitud')

Ttulo de la grfica

title(seno(\alpha))
seno( )

1
0.8

0.6
0.4

amplitud

0.2

-0.2
-0.4
-0.6

-0.8
-1

angulo

Obtencin de vector de valores de dos funcin seno desfasadas


y2 = sin(x-0.25);
y3 = sin(x-0.5);

Opciones de Plot
color
b blue
g green
r red
c cyan
m magenta
y yellow
k black

marcador
. point
o circle
x x-mark
+ plus
* star
s square
d diamond
v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram

lnea
- solid
: dotted
-. dashdot
-- dashed
(none) no line

Trazado simultneo de tres funciones. Matlab asigna colores diferentes


automticamente. En este caso, se pierde la grfica anterior.
plot(x,y,x,y2,x,y3)
1
0.8

0.6
0.4
0.2

-0.2
-0.4
-0.6

-0.8
-1

Trazado simultneo de tres funciones usando tipos de lnea o caracteres diferentes.

plot(t,y,'-',t,y2,'--',t,y3,':')
Colocacin de rtulos.
legend('Y','Y2','Y3')
1
Y
Y2
Y3

0.8

0.6
0.4
0.2

-0.2
-0.4
-0.6

-0.8
-1

Grficas simultaneas con ejes diferentes

subplot(2,1,1)
plot(t,y,'-')
subplot(2,1,2)
plot(t,y2,'--r')

0.5

-0.5

-1

0.5

-0.5

-1

Trazado consecutivo sin perder las anteriores

plot(t,y,'-')
hold on
plot(t,y2,'--r')
1
0.8

0.6
0.4
0.2

-0.2
-0.4
-0.6

-0.8
-1

8. Programando en MatLab
8.1.

Operadores de relacin
<
Menor que
<=
Menor o igual
>
Mayor que
>=
Mayor o igual
==
Igual a
~=
No igual a

8.2.

Operadores lgicos
&
AND lgico

8.3.

OR lgico

NOT lgico

(Alt Gr 4)

Lazos y estructuras condicionales


Estructuras if
if expresin1
% Se ejecutan las instrucciones
% dentro de este lazo si expresin1 es verdadera
end

if expresin2
% Se ejecutan las instrucciones
% dentro de este lazo si expresin2 es verdadera
else
% Se ejecutan las instrucciones
% dentro de este lazo si expresin2 es falsa
end
if expresin3
% Se ejecutan las instrucciones
% dentro de este lazo si expresin3 es verdadera
elseif expresin4
% Se ejecutan las instrucciones
% dentro de este lazo si expresin3 es falsa
% pero expresin4 es verdadera
else
% Se ejecutan las instrucciones

% dentro de este lazo si expresin3 y


% expresin4 son falsas
end

Lazo for
for x = inicial : incremento : final
% Instrucciones que se ejecutan hasta que
% la variable x alcance su valor final
% El valor de x se incrementa automticamente
% en cada ejecucin del lazo
end

Lazo while
While condicion1
% Instrucciones que se ejecutan mientras que
% la condicin1 sea verdadera
End

Break
La sentencia break le permite salir de un bucle for o while antes de
tiempo. Cuando se emplean bucles anidados, break sale al nivel
inmediatamente superior.

9. Representacin de funciones de transferencia


G (s) =

2s 2 + 1
s 3 + 3s + 5

num = [2 1];
den = [1 3 5];
sys1=tf(num,den);
G (s) =

z = [-1 -2];
p = [0 -3 -5];
k = 5;
sys2=zpk(z,p,k);

5 ( s + 1)( s + 2 )

s ( s + 3)( s + 5 )

10. Respuesta a un escaln


step(num,den);
o bien
step(sys1)
11. Mostrar arreglos
p=[ 0 -3 -5]
p=
0 -3 -5
>> disp(p)
0 -3 -5

Mostrar cadenas de caracteres


disp('Los polos del sistema son);disp(p)

Los polos del sistema son


0 -3 -5
O bien
disp(['Los polos del sistema son num2str(p)]
Los polos del sistema son: 0 -3 -5

12. Programa MatLab (demo1.m)

%%%%% Programa basico en Matlab %%%%%%%%%%


% En cada ejecucion se incrementa la variable sel
% y se ejecuta una parte diferente del lazo
clear
clc
for sel=1:3
if sel ==1
num=10;
den=[1 2 10];
ts=0:0.01:10;
y=step(num,den,ts);
plot(ts,y)
hold on

%primera iteracion
%funcion de transferencia
%tiempo simulacion
%obtencion de la respuesta al escalon

%pause
elseif sel==2
%segunda iteracion
for j=1:1000
if y(j)>1
t1=ts(j);
plot(t1,y(j),'xk')
disp(['El tiempo de subida es tr = ' num2str(t1) 's'])
break;
end
end
else
%tercera iteracion
[ymax tmax]=max(y);
plot((tmax-1)/100,ymax,'k+')
disp(['El maximo sobreimpulso es Mp = ' num2str(ymax) ])
disp(['y ocurre en tp = ' num2str((tmax-1)/100) 's'])
legend('Salida', 'Punto de tr', 'Mp')
end
end
La grfica obtenida es la siguiente:
1.4
Salida
Punto de tr
Mp
1.2

0.8

0.6

0.4

0.2

El tiempo de subida es tr = 0.63s


El maximo sobreimpulso es Mp = 1.3509
y ocurre en tp = 1.05s

10

13. Simulink

Realizacin de lazos de control dados los parmetros del sistema

Scope

PID
SP=1

ys

tao.s+1

Controlador PI
Gp(s)

Simulacin de ecuaciones diferenciales


x1' = x2
'
10 x2 + 15 x1 + 2 x2 5 x3 = u1
'
x3 = x4
4 x ' 5 x + 10 x + 2 x = u
1
3
4
2
4

x1' = x2
'
x2 = 0.1( 15 x1 2 x2 + 5 x3 + u1 )
'
x3 = x4
x ' = 0.25 5 x 10 x 2 x + u
( 1
3
4
2)
4

Gain6

Gain1

1/3

15

1
s

0.1
Step

x2

Integrator1

Gain

1
s

x1

Integrator

Scope

Gain2
2

Gain7

Gain4

0.25
Step1

Gain3

Gain5
2

1
s

x4

Integrator3

1
s

x3

Integrator2

Scope1

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA


"ANTONIO JOS DE SUCRE"
VICERRECTORADO DE BARQUISIMETO
DEPARTAMENTO DE INGENIERA ELECTRNICA

Toolbox Matemticas Simblica


( x + 3)3 = x3 + 9 x 2 + 27 x + 27
(5 x3 + 9 x 2 + 27 x + 4 x 3 + 9 x 2 + 27 x) = 9 x( x 2 + 2 x + 6)
ax 2 + bx + c = 0
x=

b b 2 4ac
2a

x - ay = 1

-bx + cy = -25
x - 2 y = 1

-10 x + 5 y = -25
x 2 + xy + y = 3
x2 - 4 x + 3 = 0
dy
dx
x ' = y
dt = y ; dt = x y ' = - x

x ' = y

y' = - x

syms a b c x y
expand((x+3)^3)
ans = x^3+9*x^2+27*x+27
factor(5*x^3+9*x^2+27*x+4*x^3+9*x^2+27*x)
ans = 9*x*(x^2+2*x+6)
x = solve('a*x^2 + b*x + c = 0')
x=
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
[x,y]=solve('x-a*y=1','-b*x+c*y=-25')
x = (25*a-c)/(b*a-c)
y = -(b-25)/(b*a-c)
[x,y]=solve('x-2*y=1','-10*x+5*y=-25')
x=3
y=1
[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x = [ 1] [ 3]
y = [ 1] [ -3/2]
[x,y]=dsolve('Dx = y', 'Dy = -x')
x = cos(t)*C1+sin(t)*C2
y = -sin(t)*C1+cos(t)*C2
[x,y]=dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')
x = sin(t)
y = cos(t)

También podría gustarte