Está en la página 1de 37

MATLAB

1. INTRODUCCIN.
Inicialmente fue desarrollado para facilitar el estudio en
cursos de teora de matrices, lgebra lineal y anlisis numrico
(MATrix LABoratory), pero actualmente va ms all, ya que es
un sistema interactivo y un lenguaje de programacin con
capacidad de ejecucin tcnica y cientfica en general.
Su elemento bsico es una matriz, que no requiere
dimensionamiento previo y se escribe tal como se hace
matemticamente, lo cual aporta facilidad y rapidez de uso.
Es, adems, una herramienta potente para la representacin
grfica.
Se utiliza en muchos campos, nos centraremos en su utilidad
como herramienta en control.

2. FUNDAMENTOS DE MATLAB.
Nada ms ejecutar el programa, aparece la
ventana principal de MATLAB:

indicador de espera para la


introduccin de los comandos
propios de Matlab

2.1. Expresiones.
Se introducen como se escriben matemticamente:
>> a = 4/3

respuesta:

a = 1.3333

Se ha creado una variable "a" en el espacio de trabajo


(workspace) con su valor y tipo de dato: numrico doble.

Tambin se puede consultar su valor escribiendo el


nombre que se le ha dado a la expresin, en este caso:
>> a

respuesta:

a = 1.3333

Matlab reconoce hasta 19 caracteres como nombre


de variable y es sensible a las maysculas (a A).
Al introducir una expresin sin crear una variable, se
genera la variable ans que equivale a answer
(respuesta):
>> 4/3

respuesta:

ans = 1.3333

Para que no aparezca la respuesta en pantalla, se


aade un punto y coma (;) al final de la expresin:
>> b = 4+7;
>>

Las expresiones pueden formarse con secuencias de nmeros,


operadores, funciones y variables definidas previamente:
>> c = a * ( b - 1)

respuesta:

c=

13.3333

Operadores: Los usuales (+, -, /)


y adems: ^ (potencia), * (multiplicacin),
\ (divisin por la izquierda)
Variables predefinidas: i, j ( 1), pi, Inf (Infinito),
NaN (Not a Number- Indefinido).
Matlab contiene funciones que se pueden incorporar a expresiones:
>> y = sqrt(1+4*i)

respuesta:

y = 1.6005 + 1.2486 i

2.2. Creacin de ficheros de trabajo.


Un fichero de trabajo (script) contiene secuencias
de comandos ejecutables en el entorno de
trabajo Matlab.
De forma que, cuando se escribe el nombre del
fichero en el indicador de comandos de Matlab
(>>), se ejecutan los comandos que contiene
dicho fichero.
Se crean con un editor de texto y se nombran con
extensin ".m".

2.3. Matrices, vectores y polinomios.


Una matriz se introduce listando sus elementos entre
corchetes [ ]:
- Los elementos de distintas columnas se separan por
comas o por espacio en blanco.
-Las filas se separan por punto y coma CR.
>> A = [1 2; 3 4]

respuesta:

A=

1 2
3 4

Se reconocen slo matrices rectangulares, con igual


nmero de columnas en cada fila.

Los elementos individuales de una matriz se referencian


mediante ndices entre parntesis:
>> A(2,2) = 5

respuesta:

1 2
3 5
Un vector es una matriz de dimensin 1xn nx1 :
>> v = [sin(pi/3) -7^3 a+1]

A=

v = 0.8660 -343.00 2.333

Se pueden crear vectores especiales utilizando ":"


>> n = 1:10;

genera un vector fila con elementos


de 1 a 10, con incremento 1.
>> nuevo = 1:0.25:2
nuevo = 1.0000 1.2500 1.5000 1.7500 2.0000

Se pueden manipular matrices de forma muy flexible:


- Aadir una fila a la matriz A :
>> A = [A; [7 8]]
respuesta: A = 1 2
3 5
7 8
- Extraer una submatriz de A:
>> B = A(2:3,1:2)
respuesta: B = 3 5
7 8
- Se utiliza ": para designar "todos los elementos
>> A(1,:)
Devuelve la 1 fila entera.
>> L = A(:,2) > 5;
>> A = A(L,:); Reemplaza las filas de A cuyos
elementos de la 2 columna sean > 5.

Los polinomios se describen en Matlab mediante vectores


con los coeficientes del polinomio en orden de potencias
decrecientes.
Por ejemplo, p = s2 + 5s + 6
>> p = [1 5 6]
Si no existe algn coeficiente del polinomio habr que
introducir un cero:
Por ejemplo, q = s4 + 5
>> q = [1 0 0 0 5]

Se evalan con la funcin polyval :


>> polyval(p,1)
respuesta:
(evala p = s2 + 5s + 6 en s = 1)

ans = 12

Las races se obtienen con la funcin roots :


>> r = roots(p)

respuesta:

r = -3
-2
La funcin poly permite construir polinomios a partir de
sus races:
>> t = poly([-4 -5])
respuesta:
t = 1 9 20

2.4. Operaciones con matrices.


La aritmtica es la misma que la utilizada con escalares:
>> B = [5,0; 0,6]; D = [1,0; 0 2];
>> B + D
respuesta:
ans = 6 0
0 8
>> B * D
respuesta:
ans = 5 0
0 12
La divisin puede ser izquierda (\) derecha (/):
P.x = Q
y.P = Q

x = P-1.Q
y = Q.P-1

Los ndices tienen que coincidir.

x=P\Q
y=Q/P

Para obtener la traspuesta de una matriz o vector se


utiliza el apstrofe ( est en la misma tecla que ?):
>> A = [1,2;3,4];
>> A

respuesta:

ans = 1 3
2 4
Para operar sobre una matriz un vector, elemento a
elemento, se utiliza un punto delante del operador:
>> Datos = [1 2 3];
>> Datos.^2
>> Datos .* [4 5 6]

respuesta:
respuesta:

ans = 1 4 9
ans = 4 10 18

2.5. Creacin de funciones.


Las funciones son secuencias de sentencias que ejecutan
una tarea independiente. Una funcin se diferencia de un
fichero de comandos script bsicamente en su primera
lnea:
function [argumentos salida] = nombre(argumentos entrada);

Las variables generadas por una funcin son locales.


Pueden ser usadas como parte de una expresin.
Para programar se utilizan las funciones tpicas de control
de flujo: for, while, if, break, error.

Ejemplo:
function [modulo,argumento]= polares(complejo)
modulo= abs(complejo);
argumento=angle(complejo);
figure; compass(modulo,argumento)
>> [m,a]=polares(3+2i)
m = 3.6056
a = 0.5880

2.6. GRFICOS.
Matlab suministra una importante coleccin de funciones
grficas debido a la facilidad de comprensin que aporta
la percepcin visual de datos.
La funcin plot genera grficos bidimensionales:
Por ejemplo:
>> x = -pi:pi/10:pi;
>> y = tan(sin(x)) - sin(tan(x));
>> plot(x,y)

Se pueden dibujar varias grficas sobre los mismo ejes


con hold on:
>> hold on
>> plot(x,cos(x),'r')
O bien subdividir la
ventana en grficas con
distintos ejes con subplot:
>> figure; subplot(121),
plot(x,y)
>> subplot(122),
plot(x,cos(x),'r')

3. HERRAMIENTAS DE CONTROL

3.1. CREACIN DE MODELOS


Las herramientas de control de sistemas, en MATLAB,
incluyen comandos para la creacin de cuatro tipos bsicos
de modelos para sistemas lineales invariantes en el tiempo
(LTI), de los que veremos dos:
Modelos de Funcin de Transferencia (TF)
Modelos de Ceros, Polos y Ganancia (ZPK)

Creando modelos LTI (Lineales e Invariantes en el Tiempo)

TF

Funcin de Transferencia
SS

Espacio de estados

ZPK

Ceros-Polos-Ganancia
FRD

Respuesta en frecuencia

Estas funciones toman los datos del modelo como


entradas y devuelven objetos que engloban estos datos
en una variable nica de MATLAB.

FUNCIN DE TRANSFERENCIA:
Un modelo de la funcin de transferencia (TF) se
define mediante sus polinomios del numerador y del
denominador.
Modelos de Funcin de Transferencia

donde:
son los coeficientes del numerador
son los coeficientes del denominador

>> num = [1 0]; % Polinomio del Numerador


>> den = [1 2 10]; % Polinomio del Denominador
>> H = tf (num,den);

Y tambin se puede especificar este modelo como expresin de s:


>> s =tf(s);
>> H = s/(s^2 + 2*s + 10);

% Crea la variable de Laplace

En ambos casos, se habr creado el objeto H:


>> H
Transfer function:
s
-------------s^2 + 2 s + 10

CEROS, POLOS Y GANANCIA:


Los modelos en forma de ceros, polos y ganancia (ZPK)
son la forma factorizada de los modelos en funcin de
transferencia.

Ejemplo de Modelo Ceros Polos - Ganancia

Se especifica un modelo en forma de ceros, polos y ganancia,


utilizando el comando ZPK:
>> z = 0;
>> p = [2 1+i 1-i];
>> k = -2;
>> H = zpk(z,p,k);

% Ceros
% Polos
% Ganancia

Y tambin se puede introducir como una expresin de s:


>> s = zpk(s);
>> H = -2 * s/(s-2)/(s^2 2*s + 2);

Podemos dibujar el mapa de polos y ceros de una funcin con pzmap:


>> H
Zero/pole/gain:
-2 s
-------------------(s-2) (s^2 - 2s + 2)

Pole-Zero Map
2

>> pzmap(H)

Im ag in ary A xis (sec o n d s -1 )

1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2

-1.5

-1

-0.5

0.5
-1

Real Axis (seconds )

1.5

3.2. RECUPERACIN DE DATOS: ACCESO RPIDO


Se recuperan datos de forma rpida con los siguientes comandos:
[num,den] = tfdata (sistema)
[z,p,k] = zpkdata(sistema)
Por ejemplo, sea h:
>> h = tf([1 1],[1 2 5])
Transfer function:
s+1
------------s^2 + 2 s + 5
Extraemos los coeficientes del numerador y denominador mediante:
>> [num,den] = tfdata(h,'v')
num =
0 1 1
den =
1 2 5

Esta sintaxis devuelve dos vectores fila debido al


parmetro v especificado. En caso de no quedar
especificado, se devuelven matrices de celdas.

3.3. CONVERSIN ENTRE MODELOS.


Es posible convertir modelos LTI de un tipo a otro:
>> sistema = tf(sistema);
>> sistema = zpk(sistema);

% convierte el modelo a TF
% convierte el modelo a ZPK

Por ejemplo, si tenemos h como TF:

La podemos convertir a ZPK:

>> h

>> g=zpk(h)
Transfer function:
s+1
------------s^2 + 2 s + 5

Zero/pole/gain:
(s+1)
-------------(s^2 + 2s + 5)

3.4. CONEXIN ENTRE MODELOS.


Existen una serie de funciones para ayudar a construir modelos
complejos. Entre ellas se incluyen funciones que efectan:
Conexiones en serie y paralelo (SERIES, PARALLEL)
Conexiones de realimentacin (FEEDBACK)

Se pueden conectar en serie los modelos H1 y H2 utilizando:


>> H = series(H1, H2);
Una conexin en serie es equivalente al producto de los modelos:
>> H = H2 * H1;

De igual forma, se pueden conectar dos modelos en paralelo:


>> H = parallel(H1, H2);
Y sera equivalente a la suma de los modelos:
>> H = H2 + H1;

Se pueden conectar dos modelos para realizar una configuracin


en lazo cerrado con realimentacin negativa mediante:
>> H = feedback (H1, H2);
Para aplicar realimentacin positiva habr que especificarlo:
>> H = feedback (H1, H2,+1);

Se ejecutan los siguientes lazos de realimentacin negativa mediante:

(a)

>> LazoCerrado_a = feedback(G,1)


>> LazoCerrado_b = feedback(1,G)

(b)

3.5. REDUCCIN DE DIAGRAMAS DE BLOQUES: connect


La sintaxis de la funcin connect es la siguiente:
sysbc = connect( sysba, q , input, output)
sysba es el modelo del sistema MIMO resultante de la agrupacin de los modelos de
todos los bloques que intervienen en el diagrama considerado.
Para su obtencin podr hacerse uso de la funcin append. El orden que debe darse
a estos modelos debe coincidir con el de la numeracin creciente asignada a sus
correspondientes bloques.
input es un vector cuyas componentes son los ndices asignados a los bloques que
tienen como entrada a una de las variables de entrada del sistema global.
output es un vector cuyas componentes son los ndices asignados a los bloques que
tienen como salida a una de las variables de salida del sistema global.
q es una matriz que establece las conexiones existentes entre los diferentes bloques

También podría gustarte