Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTRUCTURA DE DATOS EN MATLAB El elemento bsico de Matlab es una matriz compleja de doble precisin. Esta representacin es bastante general e incluye vectores, reales y complejos, y escalares. Incluye tambin indirectamente polinomios y funciones de transferencia. Los vectores fila se introducen usando corchetes y los elementos se separan usando espacios en blanco o comas. Para crear un vector columna se puede usar la transposicin (aadiendo al vector una comilla). >> x =[1,2, 3] , y=[1+j 2+pi*i -sqrt(-1) ] x = 1 2 3 y = 1.0000+1.0000i 2.0000+3.1416i 0-1.0000i
Las matrices se introducen lnea a lnea, separadas por punto y coma (o tambin con el retorno de carro). >> A = [1 A = [ 1 4 7 2 2 5 8 3; 3 6 9] 4 5 6; 7 8 9]
OPERACIONES Y FUNCIONES Operaciones algebraicas bsicas: +, -, *, /, \, ^, sqrt Operaciones trigonomtricas bsicas: sin, cos, tan, .... Operaciones logartmicas bsicas: exp, log, log10, log2, .... Operaciones sobre matrices: A\B B/A % inv(A)*B...devuelve x como resultado de Ax=B % B*inv(A)...devuelve x como resultado de xA=B
Operaciones sobre arrays (matrices elemento a elemento) +, -, .*, ./, .\, . ^ ej: C = A.*B multiplica elemento a elemento 2 matrices c 11 =a 11 *b 11 c 12 =a 12 *b 12 COMANDOS GENERALES. AYUDA >> cd >> cd \subdir >> dir >> who >> whos >> clear >> save n >> load n >> help >> help n >> clf >> demo >> quit % Muestra el directorio de trabajo % Cambia el directorio de trabajo % Lista el contenido del directorio de trabajo % Lista todas las variables del espacio de trabajo % Igual que el anterior, pero proporciona ms informacin % Borra el espacio de trabajo % Guarda el espacio de trabajo en un fichero de nombre n.mat % Carga el espacio de trabajo almacenado en el fichero n.mat % Llama a la ayuda de Matlab. % Proporciona ayuda del comando n % Borra la pantalla grfica % Lista de demostraciones % Salir de Matlab (se puede hacer con las opciones del men)
REVISIN DE COMANDOS FRECUENTEMENTE USADOS Ejercicio 1: Repetir los comandos que se listan a continuacin y observar los resultados. Se proporcionan de forma escueta para que se haga uso del comando help cuando sea necesario. *Trabajo con matrices: >> A = [1 >> A = [1 0 7 2 2 5 8 3; 3 6 9] 0 5 6; 7 8 9] % Otra forma:
>> D = A(:,2) >> D = A(1:3,1:3) >> B = A >> C = A*B >> det(A) >> rank(A) >> inv(A) >> p = poly(A)
% Resultado: vector con todas las filas de la 2 columna % Resultado: submatriz con filas 1 a 3 y columnas 1 a 3 % Traspuesta % Producto matricial (ojo con los rangos) % Determinante % Rango % Inversa % Polinomio caracterstico
Si a una matriz le aadimos un nmero de una direccin no existente, la matriz crecer hasta encajar el nuevo elemento y llenar con ceros los espacios no especificados. >> a =[1 2;3 3]
>> a(3,3) = 1 >> a Matrices especiales: >> eye(3) >> eye(3,2) >> ones(3) >> zeros(3) >> diag([1 2 3 4]) % Identidad 3x3 % Identidad 3x2 % Matriz de 1. tamao 3x3 % Matriz de 0, tamao 3x3 % Matriz diagonal de tamao 4x4 % Comprobar el nuevo valor de a
*Trabajo con vectores % Polinomio P = 1X2 + 8X % races del polinomio 4] % Polinomio Q = X2 + 4 % races del polinomio % producto de polinomios % races del polinomio S % Polinomio = residue(R,S) X + 2
>> P = [1
15]
+ 15
% a: numeradores % b: denominadores (races de S) % c: cociente de los polinomios R y S (si existe) >> c = [1 >> d = [4 >> d = d >> c*d >> d*c >> x = 1:5 % Vector de 5 elementos: de 1 a 5 con incrementos de 1 %Vector de 11 elementos: de 0 a 5 con incrementos de 0.5 %Vector de 6 elementos: de 5 a 0 con decrementos de 1 2 5 3] 6]
* Trabajo elemento a elemento >> x = 1:3 >> y = x >> z = x.*y * Control de flujo del programa (for, while, if): >> x=[1 1 1 >> for i = 2:3, >> x 1 1 1 x(i)=0, end 1]
>> x =[1 2 3 4 >> i = 1 >> while x(i) < 4, % De otra forma >> i = 1 >> x =[1 2 3 4 >> while x(i)<4 x(i)=0; i=i+1; end; x >> x = [-1 >> for i = 1:4, 2 -3
7] i=i+1; end; x
x(i)=0;
7]
otra forma de hacer lo mismo: >> for i=1:4, if x(i) < 0 x(i)=0 else x(i)=1 end end; >>x Trabajo con grficas:
x =[0. .48 .84 1 .91 .6 .14] plot(x) % Grfica en 2D title(Mi grafico) xlabel(Eje x) ylabel(Eje y) grid 4 3 5 6 7 7.8 12.3 8] 10.4
>> x = [1 2 3 >> y = [5.3 6.2 >> plot(x,y) >> >> >> >> >> >> >>
7.8
10]
FUNCIONES Y ALMACENAMIENTO EN DISCO MATLAB permite la generacin y el almacenamiento en disco de dos tipos de ficheros (mediante las opciones correspondientes del men): Funcin: Fichero con un conjunto de instrucciones que se ejecutarn tras su llamada y a la que se le pueden pasar parmetros y puede devolver valores. La ventaja que representan se basa en el ahorro de tiempo al poder tenerla preprogramadas, evitando escribir todas las instrucciones cada vez. El formato debe ser el siguiente: Nombre del fichero: nombre.m Instruccin: function [sal1,sal2,...] = nombre(ent1,ent2,...) Script: (Programa) Fichero con el conjunto de instrucciones que queremos que se realicen tras la llamada. Tras sta, las instrucciones del programa se ejecutarn secuencialmente de la misma forma que si se hubiesen introducido una a una en la ventana de comandos. Las principales diferencias entre los scripts y las funciones son: Las funciones permiten pasar parmetros por valor, usan variables locales y no operan globalmente sobre el espacio de trabajo-. En una funcin, la primera lnea del programa debe contener la palabra especial function. Ejercicio 2. Mediante las opciones del men de Matlab File New/M-file crear dos ficheros, uno correspondiente a una funcin (fact.m) y el otro a un programa (progr.m) que la utiliza. Tras crearlos se ejecutar la instruccin progr en la ventana de comandos de MATLAB.
fact.m function result = fact(numero) % Devuelve en result el factorial de numero result=1; siguiente=numero; for i=1:numero result=result*siguiente; siguiente=siguiente-1; end; progr.m % Calcula las combinaciones de N elementos tomados de m en m N = input(Nmero de elementos:); m = input(Tamao de los grupos:); combinaciones = fact(N)/(fact(N-m)*fact(m))
MATLAB dispone de una coleccin de algoritmos, la mayora en ficheros .m, que permiten desarrollar tcnicas comunes de diseo, anlisis y modelado de sistemas de control. En nuestro curso utilizaremos modelos de sistemas lineales invariantes en el tiempo (LTI). La representacin se puede realizar tanto en variables de estado como en representacin entrada/salida (las instrucciones ss2tf y tf2ss permiten conmutar entre un formato y el otro). Las funciones de transferencia pueden definirse a partir de los polinomios del numerador y denominador o por medio de la variable s de Laplace: >> >> >> >> num1=[2 5]; den1=[1 4 8]; G1=tf(num1,den1) num2=[10];
% Define la f. de transf.
% Define la f. de transf.
10/(s + 4)
Las funciones de transferencia tambin se pueden definir utilizando la variable s, tal como se muestra a continuacin: >>s = tf('s') % Define la funcin de transferencia s (Laplace variable).
Ahora se pueden especificar funciones de transferencia directamente con la variable s: >>G1 = (2*s + 5)/(s^2 + 4*s + 8) >>G2 = 10 / ((s^2 + 3*s + 1) * (s + 5)) >>Gs = G1 * G2 >>Gp = G1 + G2 % Gs = f. de transferencia de G1 y G2 en serie. % Gp = f. de transferencia de G1 y G2 en paralelo. G2.
>>Gr = feedback(G1,G2) % F. de Transf. de G1 realimentado negativamente por >>Gc = feedback(G1,1) % F. de Transf. de G1 con realimentacin unitaria.
G s ( s ) G1 ( s ) G 2 ( s )
Gr ( s) G1 ( s) 1 G1 ( s) G2 ( s)
G p ( s ) G1 ( s ) G 2 ( s )
Gc ( s ) G1 ( s ) 1 G1 ( s )
Otras instrucciones tiles para trabajar con funciones de transferencia son: %Representa grficamente la respuesta del sistema con entrada escaln >>step(G1); >>pole(Gr) % Calcula los polos de la funcin de transferencia Gr >>zero(Gr) % Calcula los ceros de la funcin de transferencia Gr >>zpk(Gr) % Representacin de Gr con polos, ceros y ganancia >>[num,den]= tfdata(Gr,'v') % num = polinomio del numerador de Gr % den = polinomio del denominador de Gr Se puede comparar la respuesta de varios sistemas, para entrada en escaln unitario, con la funcin step, de la forma siguiente: >>step(G1,r,G2,b,Gs,g); %Grficos en rojo(red),azul(blue), verde (green).
Ejercicio 3: Calcular, con Matlab, la funcin de transferencia global para el sistema de la figura.