Sie sind auf Seite 1von 15

UNIVERSIDAD NACIONAL DE SAN JUAN FACULTAD DE INGENIERA DEPARTAMENTO DE ELECTRNICA Y AUTOMTICA

COMANDOS DE MATLAB TILES PARA LA ASIGNATURA DE CONTROL I

CTEDRA: CONTROL I AUTOR: Ing. Anala Prez Hidalgo CARRERAS: INGENIERA ELETRNICA Y BIOINGENIERA

Introduccin:
MATLAB ( MATRIX LABORATORY; laboratorio de Matrices) es un Sistema o Lenguaje de programacin basado en matrices para realizar clculos matemticos, y de ingeniera. Se puede considerar un tipo de lenguaje diseado solo para efectuar manipulacin de matrices. Todas las variables que maneja MATLAB son matrices, es decir , solo tiene un tipo de datos, una matriz, o un arreglo rectangular de nmeros . MATLAB posee un extenso conjunto de rutinas para obtener resultados grficos, y tambin posee una gran cantidad de Toolbox de Control, para resolver distintos problemas de Control. Algunas de sus caractersticas son: -La programacin es relativamente sencilla. Es un ambiente de simulacin y clculo matemtico que se utiliza para modelar y analizar sistemas dinmicos. Permite manejar sistemas contnuos, discretos, lineales y no lineales. - Cuenta con una biblioteca matemtica amplia, y abundantes herramientas grficas. - Se usa en un Modo controlado por comandos. Matlab procesa comandos en una sola lnea, como tambin es capaz de ejecutar secuencias de comandos almacenados en un archivo. - Es un ambiente abierto, en el cual numerosas libreras de funciones han sido desarrolladas. Por ejemplo: Cuenta con un biblioteca amplia para el anlisis y diseo de los sistemas de control (Toolbox de Control, como por ej el CSAD entre otros). -Permite la simulacin de procesos mediante el trabajo en conjunto con el programa SIMULINK, el cual se llama desde el Matlab. SIMULINK, es un programa que permite la simulacin dinmica de distintos Sistemas de Contol ( lineales, no lineales, contnuos, digitales, etc) a travs de una forma grfica e interactiva de diagrama de bloques. Asigna los valores de los parmetros de cada bloque como atributos de mdulo objeto, permitiendo modificar los parmetros y observar el efecto en el comportamiento del sistema inmediatamente. Simulink permite resolver ecuaciones diferenciales utilizando diferentes mtodos de integracin. Existen muchas funciones y comandos en Matlab, a continuacin solo se darn los ms bsicos y especficamente los ms utilizados en la ctedra de Control I. - Variables en Matlab: no es necesario establecer dimensiones antes de usarlas, se generan automticamente una vez que se usan, y despus es posible modificarlas. Para nombrar las variables, hay que recordar que Matlab es sensible al cambio de maysculas y minsculas. Para obtener una lista de variables, se escribe el comando who. Con el comando clear se borra todas las variables del rea de trabajo. Las variables permanecen almacenadas en memoria hasta que se sale del programa. Para guardar las variables se utiliza el comando save, si no se coloca un archivo todas las variables se guardan en el archivo por omisin matlab.mat. Se puede especificar tambin el nombre de un archivo con extensin .mat por Ej: Save datos.mat o save datos x y z que guarda en el archivo datos solamente las variables x, y , z. Comandos de Matlab 1

Con load se recuperan todas las variables guardadas (Ej: load datos) - Las lneas de los programas que empiezan con % son expresiones que no se ejecutan, se usan para los comentarios del programador. - Es posible recuperar comandos anteriores y moverse por dichos comandos con las flechas - Uso del punto y Coma: se usa para suprimir la impresin, si el ltimo carcter de un enunciado es un punto y coma, el comando se ejecuta, pero el resultado no se despliega. - El operador dos puntos : se usa para crear vectores, para suscribir matrices, y para especificar iteraciones for. Por Ejemplo, j:k es el vector [j j+1 ..........k]; A(:,j) es la j-sima columna de A. -Variables de arreglo unidimensional: Tienen la forma de fila o columna y estn ntimamente relacionadas con los vectores en Matlab, arreglo de fila es lo mismo que vector fila, y arreglo columna es lo mismo que vector columna. El tamao del vector, se ajusta automticamente. Para ingresar los vectores, se tienen en cuenta dos cosas: Las filas se generan con ; Las columnas se generan dejando espacios en blanco Los elementos de un vector deben quedar entre corchetes [

Ejemplo:
V1 = [1 2 3] V1 = 1 2 3 V2 = [1; 3; 5] v2 = 1 3 5

- Variables de arreglo bidimensional: Es lo mismo que una Matriz, se puede definir especificando sus elementos, recordando que espacios generan columnas, y que punto y coma ( ; ) generan

filas.
Ejemplo: M= 1 2 3 4 5 6 3 8 5

Los elementos se introducen as: M = [1 2 3 ; 4 5 6 ; 3 8 5] El signo dos puntos: se utiliza para extraer una fila o columna completa de una matriz, recordando que (i , j ) se refiere al elemento i-sima fila y la j-sima columna. Comandos de Matlab 2

Ejemplo: M(2,:) se utiliza para extraer la segunda fila de todas las columnas. El nmero 2 se refiere al n de fila y : significa todas las columnas. En Matlab se coloca M(2 ; : ) y la respuesta que entrega es : ans = 4 5 6 M(: , 3) Se utiliza para extraer una columna determinada, ahora la columna se indicar con el nmero 3, y todas las filas se indican con el smbolo : En Matlab se coloca M(:,3) y la respuesta entregada es: ans = 3 6 5 SINTAXIS DE COMANDOS EN MATLAB: [salida1, salida2,salida3] = nombre del comando o funcin(entrada1, entrada2,entrada3) donde salida 1, salida2, salida3 son las variables entregadas por matlab como argumentos de salida y entrada1 entrada2, entrada3 son los datos entregados a matlab como argumentos de entrada. [salida]=nombre del comando(entrada1, entrada2) nombre del comando(entrada1,entrada2) Con esta sintaxis matlab ejecuta la funcin pero no entrega argumentos de salida, siendo entrada1y entrada2 los argumentos de entrada. COMANDOS ESPECFICOS PARA CONTROL I

Comando roots
Se utiliza para calcular las races de una ecuacin (polinomio). Ejemplo: Dado el polinomio s3+2s2+3s+4 ; el polinomio se ingresa en forma de vector entre corchetes p=[1 2 3 4] raices=roots (p) raices = -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i o tambin se puede escribir el comando en una sola lnea : roots ([1 2 3 4 ]) NOTA: Los parntesis indican funcin y los corchetes vectores

Comando plot
Se utiliza para graficar en dos dimensiones: plot (t,y): crea grficas lineales, y grafica los vectores de y contra los vectores de t, ambos vectores deben tener la misma longitud. Para grficas logartmicas y polares, se crean incluyendo en lugar de plot, las palabras loglog, semilogx, semilogy, o polar.

Comandos de Matlab

Para graficar mltiples curvas respecto a un mismo eje, se usa el comando plot con argumentos mltiples. Los argumentos mltiples tienen la ventaja que permiten desplegar en la misma grfica vectores de distintas longitudes plot(t1, y1, t2, y2) en este caso el vector tiempo tiene diferentes nmeros de puntos para cada seal. Si se desea graficar mltiples curvas respecto a un mismo eje, donde todas las curvas tienen un mismo nmero de puntos, se puede usar: plot(t,[x1; x2; x3]) con x1,x2,x3 vectores columnas y plot(t,[x1 x2 x3]) con x1 x2 x3 vectores filas. Ejemplo: Construir en una misma grfica una recta y=3t + 3 de color negro (k), y una parbola y= t2 de color rojo. t= 0:0.1:10; % se define un vector tiempo que va de 0 a 10 con un paso de 0.1 y1=3*t+3; % se define la funcin recta, aclarando que, el signo de multiplicacin en Matlab es * y2=t^2 ; % se define la funcin de una parbola, recordando que elevado al cuadrado es ^2 plot(t,y1,'r',t,y2,'k') % grafica para la misma longitud del vector t, la recta de color negro y la parbola de color rojo

Comando subplot
Divide la pantalla en ventanas ordenadas como un arreglo matricial y dibuja la grfica pedida en la ventana solicitada: subplot (rcp): la pantalla es dividida en r filas por c columnas y p es el n de ventana para la grfica pedida. Ejemplo: subplot (2,1, 1), plot (t,y1) Divide la pantalla en dos filas y una columna y posiciona la grfica de la recta en la primer ventana. subplot (2,1,2), plot (t,y2) Divide la pantalla en dos filas, una columna, y posiciona la grfica de la parbola en la segunda ventana.

Comando Ginput

[x,y] = ginput

Previamente a la obtencin de una grfica a travs de la funcin Plot (y,t) o Step(Num,Den), este comando entrega un cursor, el cul permite marcar varios puntos de inters en la grfica y al presionar luego la tecla ENTER sobre la figura retorna en la pantalla de Matlab los valores (x,y) de cada punto seleccionado previamente a tra vez del cursor. Esto ayuda a encontrar en la respuesta temporal de un sistema de control, especificaciones como: Mximo Sobreimpulso, tiempo de Mp, tiempo de crecimiento, tiempo de levantamiento, tiempo de establecimiento, etc

Comando hold
Este comando posibilita la obtencin de ms de una curva en una sola grafica. Este comando congela la figura actual y no permite borrar ni modificar la escala , por lo tanto las curvas siguientes se trazan sobre la curva original. La grfica actual se libera colocando otra vez el comando hold

Otros Comandos
Una vez realizada la grfica se pueden agregar ttulos, etiquetas y grilla. title (`Respuesta Temporal) permite agregar un ttulo a la grfica xlabel (`tiempo), ylabel (`Salida del Sistema), permiten agregar leyendas al eje X y al eje Y legend(`x1,`x2, `x3) coloca leyendas indicativas a 3 curvas. Comandos de Matlab 4

grid: coloca la grilla en la grfica. text(x,y,`texto) Permite la escritura de un texto en la pantalla grfica que empiece en el punto (x,y). gtext( `respuesta del sistema) Permite agregar textos posicionados con el mouse. axis Sirve para invalidar la escala automtica elegida por Matlab y selecciona manualmente los lmites de la grfica estableciendo una escala propia.

v = [xmin, xmax, ymin,ymax]


primero se define el vector v y luego llamo a la funcin axis (V) O en un solo comando:

axis ([xmin, xmax, ymin,ymax])


Nota: Si hay una coordenada negativa, siempre se coloca primero como Xmin o Ymin, Ejemplo: axis ([ -2,10,-1,2 ]) shg y figure (gcf) muestran la ventana de grficos clf: Limpia la ventana de grficos. clc: Limpia la ventana de comandos de Matlab. Nota: Se aclara que a partir de las ltimas versiones de Matlab el agregado de ttulos, nombres de ejes, escalas, pueden ejecutarse con ms facilidad desde las opciones correspondientes que aparecen en la ventana de graficacin, lo cual simplifica la edicin de grficas. tf2zp: Comando para encontrar la F.T en funcin de sus polos y ceros dada una F.T ingresada en funcin de sus coeficientes de potencias decrecientes de S del numerador y denominador. Ingresado los coeficientes del polinomio numerador y denominador a travs de las variables Num y Den, el comando retorna los ceros (Z), los polos(P) y la ganancia de la funcin (k). Ejemplo: Num = [3 2 5 4 6]; Den = [1 3 4 2 7 2]; [z,p,k]=tf2zp(Num,Den) z= 0.4019 + 1.1965i 0.4019 1.1965i -0.7352 + 0.8455i -0.7352 0.8455i p= -1.7680 + 1.2673i -1.7680 1.2673i 0.4176 + 1.1130i 0.4176 1.1130i -0.2991 k= 3 [p,z]=pzmap(sys) definiendo previamente sys=tf(num,den) Permite obtener los polos y ceros del Sistema. Si se omite el argumento de la izquierda, colocando solo pzmap(sys), los polos y ceros son mostrados grficamente en le plano S. Comandos de Matlab 5

Comando para obtener una F.T en forma de coeficientes de potencias decrecientes de S, ingresando los polos , ceros y ganancia de la funcin.

zp2tf

Ejemplo: z=[0;0;0;-1]; p=[-1+I -1-I -2 -3 .15+2.63*I -3-2.63*I]; k=2 [num,den]=zp2tf(z,p,k) num = 0 2 2 0 0 0

den = 1.0000 10.1500 46.9669 106.3676 122.8014 65.4676

printsys (num,den, s) permite obtener la Funcin de Transferencia expresada como un


cociente del polinomio numerador y denominador. 2 s^4 + 2 s^3 ------------------------------------------------------------------------------------------s^5 + 10.15 s^4 + 46.9669 s^3 + 106.3676 s^2 + 122.8014 s + 65.4676

num/den =

M=tf(n,d) es similar al comando printsys, una vez definidas las variables n (numerador de la

F.T) y d (denominador de la F.T), crea un sistema obteniendo la Funcin de Transferencia llamada M (tambin pude llamarse de otra forma por ejmplo sys=tf(num,den)) como el cociente entre el polinomio numerador y denominador. Ejemplo: n=[1 3 4] d=[2 4 6 8 10] M=tf(n,d) Transfer function: s^2 + 3 s + 4 -------------------------------2 s^4 + 4 s^3 + 6 s^2 + 8 s + 10

y= impule(sys,t) con sys=tf(num,den) Permite obtener la respuesta a una entrada impulso step(num,den) Permite obtener la respuesta de un sistema a una entrada escaln unitario. y=lsim(sys,u,t) con sys=tf(num,den) Permite obtener la respuesta a una entrada arbitraria,
donde la entrada es el vector u, el nmero de filas de u determina el nmero de puntos de salida. Si definimos la entrada u=t, la respuesta a una entrada rampa se obtiene usando el comando y=lsim(sys,u,t) con sys=tf(num,den) definido previamente Colocando solo lsim(sys,u,t) se obtiene solo la graficacin de la respuesta. Ejemplo: t=0:0.1:100; % define un vector de tiempo desde 0 hasta 100 seg Comandos de Matlab 6

u=sin(t); % asigna a u una funcin senoidal n=10; d=[1 0.1 10]; sys=tf(n,d) % define un sistema dados el numerador y denominador de una F.T lsim(sys,'r',u,t); % mostrar la graficacin de la respuesta del sistema en color rojo a una entrada senoidal

Obtencin de la respuesta temporal a partir de los polos y ceros de un Sistema.

[num, den]= zp2tf([],[-1-3*i 1+3*i],3)


num = 0 den = 1 2 10 0 3

printsys(num,den)
3 num/den = -----------------s^2 + 2 s + 10

step(num,den)
Step Response
From: U(1) 0.45 0.4 0.35 0.3

Amplitude

To: Y(1)

0.25 0.2 0.15 0.1 0.05 0

Time (sec.)

pmake : Es una funcin especficamente del CSAD, que a partir del MATLAB 5.2 y 5.3 y posteriores puede usarse desde Matlab, sin necesidad de llamar previamente al CSAD. Permite multiplicar , sumar o restar polinomios, introduciendo los ceros de cada polinomio separados por coma o tambin los coeficientes de potencias decrecientes de S de un mismo polinomio encerrados entre corchetes y dejando espacios en blanco por cada coeficiente ingresado. Se puede ingresar los polinomios en forma combinada, mediante ceros si se los conoce y mediante los coeficientes de potencia decreciente en S. Generalmente se utiliza para introducir el polinomio numerador o denominador de una Funcin de Transferencia formado por el producto de distintos polinomios. Para que un comando del Csad sea reconocido hay que ubicarse en el camino o path del csad. Ejemplo: pmake (-1,-2,-3) ans = 1 6 5 Comandos de Matlab 7

Multiplica tres polinomios de primer orden cada uno, cuyos ceros estn ubicados en S=1, S=-2, S= -3 respetivamente. Pmake = (S+1)(S+2)(S+3) pmake ( [1 2 3],[2 3]) ans = 2.0000 7.0000 12.0000 9.0000 Multiplica dos polinomios expresados por coeficientes de potencies decreciente de S, es decir pmake = (S2+2.S+3).(S+3) = 2.S3 +7.S2+12.S+9 pmake (0,-1,[1 2 2]) ans = 1 3 4 2

Multiplica tres polinomios, dos expresados en forma combinada de ceros en S=0, S= -1 y otro ingresado como coeficientes de potencies decrecientes de S (S2+2S+2) Pmake = S(S+1)(S+2S+2) Pmake (-1,'+',[1 2 2],'-',-1,-2) ans = 0 0 1 Permite sumar , restar y multiplicar polinomios, de los cuales uno esta ingresado en forma de un cero en S = -1, otro en forma de coeficientes (S2+2.S+2), y otro expresado como producto de polinomios de primer orden (S+1)(S+2). Pmake =(S+1)+(S2+2S+2)-(S +1)(S+2) Pmake(-1+j*2) ans = 1 2 5 Permite escribir un polinomio cuyas races conocidas son complejas conjugadas en forma de un polinomio de potencias decrecientes de S, ingresando solamente una raiz compleja. pmake= S2+2S+5 pfe: Es una funcin especficamente del CSAD, que en el MATLAB 5.2 y 5.3 puede usarse desde Matlab, sin necesidad de teclear previamente CSAD. Calcula la expansin en suma de fracciones parciales simples de una funcin expresada en el dominio de Laplace N(S)/D(S). En Control se la utiliza para encontrar la Antitransformada de Laplace de la salida del sistema C(t) expresada en el dominio de Laplace como: C(S ) = F.T.L.C * R(S ) . Para lo cual debe tenerse cuidado de ingresar el numerador y denominador de la salida del sistema C(S) que es el producto de la Funcin de Transferencia por la entrada, y no el numerador y denominador de la Funcin de Transferencia . C(S ) 2 1 2 con R(t) = 1, R(S) = 1/S C(S ) = * ( 2 Ejemplo: F.T.L.C = = 2 ) R(S ) S + 2.S + 2 S S + 2.S + 2 Enter numerator [n] > [2] Enter denominator [d] > [1 2 2 0] Terms in the partial fraction expansion are: Comandos de Matlab 8

K' is Complex Conjugate Simple Complex Pole Pair: 2Re(K)= -1 2Im(K)= -1 a= 1 w= 1 K/(s+a+jw) + K'/(s+a-jw) <==> 2Re(K)(e^-at)cos(wt)u(t)+2Im(K)(e^-at)sin(wt)u(t) (marcar ENTER para terminar el clculo de los residuos) Simple Pole at the Origin: (Da el residuo del polo en el origen debido a la entrada, el cual para una entrada escaln coincide con el valor de estado estacionario del Sistema) K= 1 K/s <==> Ku(t) u(t) = 1 a es la parte real de la raiz, es decir mide la velocidad de decaimiento de la exponencial que amortigua la senoide y w es la parte imaginaria, es decir la frecuencia de oscilacin de la senoide. 2Re(k) es el coeficiente que acompaa al coseno y 2Im(k) el que acompaa al seno. Es decir la C(t) vendr dada por la siguiente expresin:

C(t) = 1- 1.e- . Cos(wt) - 1.e- . Sen(w.t)


La respuesta estacionaria C1(t) est formada por todos los trminos que no tienen exponenciales en funcin del tiempo, mientras que el estado transitorio lo constituye aquellos trminos que s tienen exponenciales.

M = feedback(G,H)
M (S ) =

Calcula la Funcin de Transferencia de Lazo Cerrado como

G (S ) , ingresando previamente el numerador y denominador de la Funcin de 1 + G (S ).H(S ) NI(S ) Transferencia del camino Directo G (S ) = , y el numerador y denominador de la Funcin de D1(S ) N 2(S ) Transferencia del camino de realimentacin H(S ) = . D2(S ) Ejemplo:
N1 = [1 3 4]; D1 = [2 4 6 8 10]; G = tf (N1,D1) % Coloca la F.T del trayecto directo en forma de un cociente entre el polinomio numerador y denominador % Transfer function: s^2 + 3 s + 4 -------------------------------2 s^4 + 4 s^3 + 6 s^2 + 8 s + 10 N2 = [2] D2 =[1 1] H = tf (N2,D2) % Coloca la F.T de la trayectoria de realimentacin en forma de un cociente entre el polinomio numerador y denominador % Comandos de Matlab 9

Transfer function: 2 ----s+1 M = feedback(G,H) % Obtiene la F.T de Lazo Cerrado mediante la expresin F .T = Transfer function: s^3 + 4 s^2 + 7 s + 4 ------------------------------------------2 s^5 + 6 s^4 + 10 s^3 + 16 s^2 + 24 s + 18
G % 1 + G .H

* Comandos usados para reducir algunos diagramas de bloque. [syss ]= series(sys1,sys2) Obtiene el producto de dos funciones de transferencias en serie G(S)=G1(S).G2(S), definiendo previamente sys1 y sys2 [sysp]=parallell(sys1,sys2) Permite obtener la suma de dos bloques en paralelo Gp(S)=G1(S)+G2(S) [sysf]=feedback(sys1,sys2) Permite obtener la reduccin de una retroalimentacin
Gf ( S ) = G1( S ) 1 + G1( S ).G 2( S )

* Otros comandos.
[N,D] =tfcloop (N1,D1,N2,D2) es una funcin especficamente del CSAD, similar a M= feedback(G,H) que encuentra la Funcin de Transferencia de Lazo Cerrado, ingresando previamente el numerador y denominador de G y H. Si la realimentacin es unitaria (H=1), puede colocarse el comando de la siguiente forma: [N,D] =tfcloop (N1,D1,1). Tambin puede llamarse desde Matlab sin llamar previamente al CSAD. bode (num, den) Permite obtener la respuesta frecuencial de un sistema entregando el diagrama de amplitud o magnitud y el diagrama de Fase ingresando previamente el numerador y denominador de la Funcin de Transferencia del Sistema. Ejemlo:
Frequency (rad/sec)
100 -200 -150 )1 ( Y :oT -100 -50 0 -20 101

)Bd( edu tingaM ;)ged( e sahP

-10

10 From: U(1)

N = [10 ]; Comandos de Matlab

Bode Diagrams

10

D = [ 1 1 11 ]; Bode (N,D)
Nyquist (N,D) Permite obtener la respuesta frecuencial de un Sistema entregando el diagrama Polar o de Nyquist ingresando previamente el numerador y denominador de la Funcin de Transferencia del Sistema. Para obtener solamente el tramo I que se estudia en control I, los comandos se deben colocar de la siguiente manera:

[re, im, w] =Nyquist(N,D); plot(re,Im)


0 -0.5 -1

-1.5

-2

-2.5

-3

-3.5 -1.5

-1

-0.5

0.5

1.5

[mag,phase,w]=bode(N,D,w); semilogx(w,20*log10(mag))
Estos comandos permiten obtener el diagrama de Amplitud de Bode en escala semilogartmica, la amplitud expresada en decibeles (db), y la frecuencia como log w.
20 0

-20

-40

-60

-80

-100 -3 10

10

-2

10

-1

10

10

10

10

A continuacin se anexa otra forma alternativa para obtener algunas especificaciones de la respuesta temporal de un Sistema
CONJUNTOS DE COMANDOS PARA ENCONTRAR CON MATLAB LAS ESPECIFICACIONES DEL
DOMINIO TEMPORAL.

Mximo Sobreimpulso (MP), tiempo de mximo sobreimpulso (tMP), tiempo de crecimiento (tr), tiempo de establecimiemto (ts) Se programa desde el editor,( File, New, Mfile ), el archivo se guarda como Especificaciones.m, y luego desde Matlab se lo llama directamente por el nombre y se ejecutan automticamente todos los comandos, habiendo introducido previamente el numerador y denominador de la Funcin de Transferencia. [num,den]= zp2tf([],[-1+3*i -1-3*i],3); % entrega la F.T en forma de polinomio numerador y denominador, dados los ceros y polos de la Funcin. Comandos de Matlab 11

CALCULO DEL VALOR FINAL DE LA SALIDA APLICANDO EL TEOREMA DEL VALOR FINAL: LA FUNCION POLYVAL PERMITE CALCULAR LA DIVISIN DE POLINOMIOS EN UN VALOR DE S.

Segn el Teorema del valor final, considerando una entrada escaln unitaria C(s)= lim S0 S.FT(S).R(S)= lim S0 S.FT(S).1/S =lim S0 num(S)/den(S) valorfinal=polyval(num,0)/polyval(den,0) [y,x,t]=step(num,den);
CLCULO DEL MXIMO SOBREIMPULSO Y TIEMPO DE PICO:

[ypico, k]= max(y); % entrega un valor mximo de la funcin y un ndice al cual ocurre el valor mximo tpico = t(k) % pidiendo el tiempo para ese ndice al cual ocurre el mximo se obtiene el tiempo tp. Mpico = 100*(ypico-valorfinal)/(valorfinal) %Calcula el mximo de pico en forma porcentual respecto al valor final.
CLCULO DEL TIEMPO DE CRECIMIENTO tr

n=1;

while y(n)<0.1*valorfinal, n=n+1; end m=1; while y(m)<0.9*valorfinal, m=m+1; end tr = t(m)-t(n)

% Crea un lazo que incrementa el ndice n hasta que el valor de la salida supera el 10% del valor final y guarda ese ultimo valor como el ndice al cual la respuesta alcanz el 10% del valor final y luego salta a otro lazo que incrementa otro ndice m que deja se variar cuando la salida alcanza el 90% del valor final. El tiempo de crecimiento se define como la diferencia entre el tiempo en que la respuesta alcanza el 10 %y 90% del valor final.

CLCULO DEL TIEMPO DE ESTABLECIMIENTO

El tiempo de establecimiento se define como aquel tiempo en el cual la respuesta alcanza y se mantiene dentro de una franja que vara desde el 2% o el 5% del valor final de estado estacionario
LA FUNCIN LENGHT RETORNA LA MXIMA LONGITUD DEL VECTOR Y PERMITE UN CALCULO DEL INDICE HACIA ATRS, PARTIENDO DEL LTIMO VALOR

i=length(t); % entrega un ndice que representa el nmero de componentes de un vector while(y(i)>0.98*valorfinal)&(y(i)<1.02*valorfinal) %Crea un lazo que permite disminuir el i=i-1; ndice si la respuesta se mantiene dentro de end una banda de tolerancia que vara dentro del 2% del valor final. Cuando la respuesta se sale de ese rango, contabiliza ts = t(i) ese ltimo ndice como el ndice al cual ocurre el tiempo de establecimiento. Desde Matlab se coloca el nombre del archivo: Especificaciones ( se da enter), y el programa entrega los siguientes valores: valorfinal = Comandos de Matlab 12

0.3000
pico =

1.0491
Mpico = 35.0914 tr = 0.4417 ts = 3.5337

Timespec(num,den)
Existe un conjunto de comandos agrupados en un archivo.m denominado timespec.m desarrollado por un especialista en control, Hadi Saadat, que nos facilita la obtencin de las especificaciones en el dominio temporal como por ej: Mximo Sobreimpulso, tiempo de establecimiento, tiempo de pico y tiempo de levantamiento. Antes de llamar al archivo, debe verificarse si el mismo est cargado en el espacio de trabajo de Matlab, y cargar previamente el numerador y denominador de la F.T .

Comandos para graficar los polos del sistema:


poloslc=roots(d) Calcula las raices de la ecuacin caracterstica y los guarda en poloslc figure(1) abre una figura plot (real (poloslc), imag (poloslc),' bs' ),grid Grafica los polos en el plano complejo de S con cuadrados y coloca la grilla. Title ('Polos de lazo cerrado') Coloca un ttulo Xlabel ('Real'), ylabel ('Imaginario') Coloca nombre a cada eje.

Otra forma sera con el comando pzmap :

[p,z] = pzmap(num,den)
Si se omite el argumento de la izquierda, los polos y ceros son mostrados en el plano S

Creacin de un programa en forma de archivo. m :


Muchas veces es conveniente escribir un proceso o una funcin en un archivo.m, que permita ejecutar un conjunto de comandos desde Matlab, invocando solamente el nombre del archivo, el cual queda almacenado en el disco duro, para su posterior uso o correcin. Para crear un archivo.m, se debe desplegar el men FILE de la parte superior de la ventana de comandos y seleccionar NEW (nuevo), en el cual aparecen tres opciones, se debe elegir Mfiles , luego se abrir una ventana del editor seleccionado al instalar Matlab, all se escriben los comandos necesarios , se graba guardando el archivo con extensin.m. Cualquier comentario de un comando se precede de un signo porcentual %. Concluido el archivo, hay que grabarlo e introducirlo dentro del espacio de trabajo de Matlab, agregndolo en el pad. Para ello desde Matlab, hay que abrir la ventanita Path Browser y seleccionar el botn Add to Path , buscar y seleccionar toda la ruta a donde se grav el archivo.m y posteriormente grabar el camino adicionado. Luego desde la ventana de trabajo de matlab, se podr ejecutar el programa con solo teclear el nombre del archivo. Comandos de Matlab 13

Ejemplo: Antes de ejecutar el archivo deber introducirse desde Matlab el numerador y denominador de la F.T deseada. num=[10] den=[1 0. 4 1]

prueba.m
raices=roots(den) % calcula las races de la ecuacin caracterstica del sistema% figure(1) % abre una figura % plot (real (raices), imag (raices),' rs' ),grid %Grafica los polos en el plano complejo de S con cuadrados rojos y coloca la grilla % title ('raices de la ecuacin caracterstica') %Coloca un ttulo en la grfica% xlabel ('Real'), ylabel ('Imaginario') %Coloca una leyenda en cada eje% printsys(num,den) %Coloca la F.T en forma de un cociente entre numerador y denominador ingresados% figure(2) % abre una figura 2 % grid ,step(num,den) %obtiene la respuesta temporal del sistema a partir del numerador y denominador ingresados y coloca una grilla en la grfica% valorfinal=polyval(num,0)/polyval(den,0) %calcula el valor final de la respuesta. [y,x,t]=step(num,den); %calcula sin graficar la respuesta del sistema [ypico, k]= max(y); % entrega un valor mximo de la funcin y un ndice del vector tiempo al cual ocurre el valor mximo tpico = t(k) % obtiene el tiempo tp. Mpico = 100*(ypico-valorfinal)/(valorfinal) %Calcula el mximo de pico en forma porcentual respecto al valor final. i=length(t); % entrega un ndice que representa el nmero de componentes del vector tiempo while(y(i)>0.98*valorfinal)&(y(i)<1.02*valorfinal) %Crea un lazo que permite disminuir el i=i-1; ndice si la respuesta se mantiene dentro de end una banda de tolerancia que vara dentro del 2% del valor final. Cuando la respuesta se sale de ese rango, contabiliza ts = t(i) ese ltimo ndice como el ndice al cual ocurre el tiempo de establecimiento.

Comandos de Matlab

14

Das könnte Ihnen auch gefallen