lab n_1 i.control

17
Universidad nacional del callao Informe de Ingeniería de control I laboratorio n° 1 COMANDOS UTILIZADOS DEL MATLAB APLICADOS A LA INGENIERIA DE CONTROL I) Introducción MATLAB MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta de software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Mac OS X. Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas(toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL. Fig.1 grafico 3D matlab 17

Upload: daniel-nahuis-tisnado

Post on 27-Sep-2015

51 views

Category:

Documents


0 download

DESCRIPTION

jk

TRANSCRIPT

Universidad nacional del callao Informe de Ingeniera de control I laboratorio n 1

Universidad nacional del callao Informe de Ingeniera de control I laboratorio n 1

COMANDOS UTILIZADOS DEL MATLAB APLICADOS A LA INGENIERIA DE CONTROL

I) IntroduccinMATLABMATLAB(abreviatura deMATrix LABoratory, "laboratorio de matrices") es una herramienta de software matemtico que ofrece unentorno de desarrollo integrado(IDE) con un lenguaje de programacin propio (lenguaje M). Est disponible para las plataformasUnix,WindowsyMac OS X.Entre sus prestaciones bsicas se hallan: la manipulacin dematrices, la representacin de datos y funciones, la implementacin dealgoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otroslenguajesy con otros dispositivoshardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con lascajas de herramientas(toolboxes); y las de Simulink con lospaquetes de bloques(blocksets).Es unsoftwaremuy usado en universidades y centros de investigacin y desarrollo. En los ltimos aos ha aumentado el nmero de prestaciones, como la de programar directamenteprocesadores digitales de sealo crear cdigoVHDL.

Fig.1 grafico 3D matlab II) QUEOPERACIONESREALIZA EL MATLAB.En el siguiente apartado se expondrn los elementos bsicos para tener en cuenta al momento de trabajar con Matlab. Vectores y Matrices Clculos Creacin de vectores y matrices Operaciones GrficosPrimero es importante resaltar algunas particularidades del programa: Matlab es dependiente del contexto, es decir, las letras maysculas y minsculas son diferentes, por ejemploXes diferente dex,Vares diferente devar,plotes diferente dePLOT. La comilla sencilla'se emplea para ingresartextoen una funcin, como por ejemplo ejemplo:title('Esta grfica corresponde a una seal digital'). En untecladoespaolestndar este carcter se encuentra en la tecla de la interrogacin. El signo=se emplea para asignar un valor a una variable. Ejemplo:y=5(En la variableyse almacena el valor 5). El punto y coma (;) al final de una instruccin se emplea para indicar a MATLAB que realice el clculo sin presentar en pantalla elprocedimientoo el resultado. Cualquier tipo de comentario o mensaje se escribe precedido por el caracter %. Ejemplo:%As se escriben los comentarios o mensajes. Con la ayuda podemos obtener una informacin ms detallada en cuanto a la sintaxis y comandos, basta con escribirhelpseguido del comando en el prompt. Ejemplo:help plotCreacin de vectores y matricesLos componentes de un vector o matriz siempre deben ir entre corchetes>> vectorfila= [ 1 2 3 4 5 6 7] vectorfila = 1 2 3 4 5 6 7 >> vectorcolumna = [1; 2; 3; 4] vector columna= 1 2 3 4Las filas deben ir separadas por punto y coma>> Matriz= [1 2 3; 4 5 6; 7 8 9] Matriz= 1 2 3 4 5 6 7 8 9Acceso a posicionesPara posicionarse en el valor 6 de la variableMatrizdeterminada en el ejemplo anterior y que corresponde a la segunda fila con tercera columna tres, se indica entre parntesis la posicin. En el siguiente ejemplo se asigna el valor de la posicin indicada a la variableposicin.>>posicin=Matriz (2,3) ans = 6Si se deseara asignar toda la tercera fila como un solo vector entonces se cambiara el parmetro correspondiente a la columna por el carcter;con lo cual se indica que corresponde a todas las columnas.>> fila=Matriz(3,:) ans = 7 8 9Similar al caso anterior, si se desea la tercera columna en su totalidad entonces se reemplaza el parmetro de la fila por el carcter;con lo cual se indica que corresponde a todas las filas.>> Columna=Matriz (:,3) ans = 3 6 9Creacin de RangosLa definicin de rangos en Matlab se especifica segn la sintaxisVariable = Comienzo: Intervalo: FinalPara ms informacin digitar en el prompthelp colonSi se desea declarar un vector con un rango de 1 a 5 con intervalo de a uno se emplea la siguiente declaracin>> n=1:5 ans = 1 2 3 4 5Si se quiere declarar un vector con un rango de 0 a 20 con intervalo de a dos>>n=0:2:20 ans = 0 2 4 6 8 10 12 14 16 18 20OperacionesLas operaciones de suma, resta, divisin y multiplicacin utilizan los operadores +, -, /,*respectivamente.Suma de vectores>>vector1= [1 2 3 ]; >> vector2= [3 4 5;]; >> Suma= vector1 + vector2 ans = [4 6 8]Multiplicacin de matrices y vectores>> vector1= [1 2 3 ]; >> vector2= [3 4 5]; >> vector1.*vector2 ans = 3 8 15 >> Matriz = [1 2 3;1 2 3; 1 1 1 ]; >> Vector= [3 ;4 ;5]; >> Matriz * vector ans = 26 26 12Transposicin de vectores>> Vector = [3;4;5] ans = 3 4 5 >> vector' ans = 3 4 5GrficosConsideremos el ejemplo de graficar la funcinx^2:>> x=0:0.1:1; % x es un vector, que empieza en 0, con incrementos de 0.1 y finaliza en 1 >> y=x.^2; >> plot (y),title(' Grafica de la funcin x^2') >> grid on %permite visualizar las cuadriculas

Ayuda en lneacmo obtener informacin sobre los comandos de Matlab.Este documento es tan slo una introduccin -muy resumida- del lenguaje y del manejo de Matlab. Antes de seguir, es conveniente indicar cmo puede obtenerse ms informacin sobre cualquier detalle referente a Matlab. Por supuesto, siempre se pueden consultar los manuales: hay un ejemplar en las salas del C.T.I. y otro en la biblioteca, que puede obtenerse en prstamo por un da.Adems,desde dentro de Matlabpueden obtenerse explicaciones sobre un tema particular. Hay varios mtodos. El comandohelp. Para obtener informacin sobre una determinada funcin, basta teclear desde la lnea de comandoshelpseguido del nombre de la funcin. Por ejemplo: help roundROUND Round towards nearest integer.ROUND(X) rounds the elements of X to the nearest integers.See also FLOOR, CEIL, FIX.Si se escribe slohelp, se obtiene un ndice de temas. Tambin puede obtenerse informacin sobre uno de los temas de esa lista: as,help elfunproporciona informacin sobre las funciones matemticas elementales. La ventana de ayuda. Puede llamarse tecleandohelpwino bien escogiendo del men Help el tem Help Window. Se obtiene una ventana nueva, y haciendo doble click con el ratn sobre un captulo se pasa a un elenco de los tems contenidos, que a su vez pueden escogerse para una explicacin ms detallada. Con los botones Back y Forward se navega hacia atrs o hacia adelante. Tambin puede escribirse directamente en la zona superior izquierda el nombre del comando deseado: por ejemplo, para buscar informacin sobresqrt...

En la barraSee alsoaparecen comandos relacionados. La informacin es la misma que la obtenida con el comandohelp, pero con la comodidad de presentarse en una ventana aparte en vez de en la lnea de comandos. La ayuda interactiva. Se obtiene escogiendo del men Help el tem Help Desk, o tecleandohelpdesken la barra de comandos. Se lanza el navegador y se obtiene un documento de inicio con un ndice de temas en hipertexto donde estn los manuales y otras utilidades, como un buscador. Para leer el manual, se necesita el programa Acrobat Reader.La informacin que se obtiene es mucho ms completa que en los otros dos casos, lo cual puede resultar inconveniente si uno desea simplemente, por poner un caso, conocer la sintaxis de una funcin.Una introduccin a Matlab ms rigurosa, extensa y comprensiva que este documento puede encontrarse en el epgrafe"Getting Started"del Help Desk.El entorno MatlabPara desenvolverse en la interfaz de usuario, llevar la cuenta de las variables, ... Edicin de la lnea de comandos.Con las flechas del teclado se pueden recuperar las rdenes anteriores, sin tener que volver a teclearlas. As, en el caso de una equivocacin en un comando complicado d2_f=(y2-2*y1+y3)/deltax^2)??? -2*y1+y3)/deltax^2)Missing operator, comma, or semi-colon.en vez de volver a teclear todo, puede recuperarse la instruccin pulsando la tecla "flecha hacia arriba", desplazarse hasta el error (falta un parntesis) con la flecha hacia a la izquierda, y arreglarlo: d2_f=(y2-2*y1+y3)/(deltax^2) En ocasiones, es interesanteno presentar el resultado en la pantalla(por ejemplo, cuando se trata de una lista de datos muy larga). Eso se consigue poniendo un punto y coma al final de la instruccin. y=sqrt(4);El resultado no aparece, pero sin embargo el clculo se ha realizado: yy =2 El comandowhoindica lasvariablescon las que se est trabajando: whoYour variables are:Fy f indice n_punt t_mdelta_f f_max manchas t y Comandos relacionados con elsistema operativo:pwdPresent working directory(directorio de trabajo actual)

cdcambiar de directorio

dirlistado de los ficheros del directorio actual

Estos comandos son muy similares a los anlogos de MS-DOS o UNIX. Guardar y cargar ficheros de datos. Se emplean los comandossaveyload, respectivamente. para guardar datos:save [nombre del fichero] [variable] -ascii para recuperar datos:load [nombre del fichero] [variable] -asciiPor ejemplo: con estas dos rdenes cd a: save toto.dat y -asciise cambia el directorio de trabajo a a:\ y se guarda all el contenido de la variableyen el ficherototo.datcon formato texto (por eso se pone-ascii).Vectores y matricesLa "especialidad" de Matlab es el manejo de matrices: Matlab son las siglas de Matrix Laboratory.Un vector se define introduciendo los componentes, separados por espacios o por comas, entre corchetes: v=[sqrt(3) 0 -2]v =1.7321 0 -2.0000Para definir un vector columna, se separan las filas por puntos y comas: w= [1; 0; 1/3]w =1.000000.3333La operacin transponer (cambiar filas por columnas) se designa por el apstrofe: w'ans =1.0000 0 0.3333Las operaciones matemticas elementales pueden aplicarse a los vectores: v*wans =1.0654 v+w'ans =2.7321 0 -1.6667Para crear un vector de componentes equiespaciados se emplean los dos puntos: x=4:2:10x =4 6 8 10(los componentes dexvan desde 4 de 2 en 2 hasta 10).Para introducir matrices, se separa cada fila con un punto y coma: M = [1 2 3 ;4 5 6 ;7 8 9]M =1 2 34 5 67 8 9Para referirse a un elemento de la matriz se hace as: M(3,1)ans =7Para referirse a toda una fila o a toda una columna se emplean los dos puntos: v1=M(:,2)v1 =258(v1 es la segunda columna de M).Con las matrices tambin funcionan las operaciones matemticas elementales. As M^2ans =30 36 4266 81 96102 126 150Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes del operador. Si se quiere elevar al cuadradocada uno de los elementos de M, entonces M.^2ans =1 4 916 25 3649 64 81Algunasfuncionesdefinidas sobre matrices:detdeterminante

invmatriz inversa

polypolinomio caracterstico

'transpuesta

(Para ms informacin:help elmat)PoliniomiosEn Matlab los polinomios se representan por vectores cuyas componentes son los coeficientes del polinomio.Sea

Este polinomio se representa por un vector p p=[1 -3 +2]p =1 -3 2Para hallar las races del polinomio, se hace roots(p)ans =21y si se quiere hallar el valor de P(x) para un determinado valor de x (por ejemplo, para x=0) polyval(p,0)ans =2GrficosCmo presentar datos con Matlab.Las posibilidades de Matlab son muy grandes. Se indica a continuacin cmo realizar grficos sencillos. Para ms informacin, o para conocer la versatilidad de Matlab: captuloHandle Graphics Objectdel Help Desk, el manualUsing MATLAB Graphicso la ayuda en lneahelp graph2d.Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar creemos una variable x que vaya de cero a 10: x=0:0.1:10;y a continuacin, calculemos sin(x) almacenando el resultado en la variable y: y=sin(x);Para trazar el grfico, se emplea la funcinplot: plot(x,y)y se obtiene en otra ventana el grfico:

Entre los muchos comandos que se pueden utilizar para modificar los grficos, es muy til el empleado para cambiar la escala de los ejes. La orden esaxis([x1 x2 y1 y2])donde x1, x2 son los lmites inferior y superior del eje x, e y1 e y2 los del eje y.Para representar unos datos con smbolos de colores, se aade al comandoplot, entre apstrofes, la especificacin. Vamos a crear una variable con dos filas que contenga los nmeros del 1 al 10 en la primera fila, y el doble de esos nmeros en la segunda, y dibujarlos con puntos rojos: x(1,:)=0:10; x(2,:)=2*x(1,:); xx =0 1 2 3 4 5 6 7 8 9 100 2 4 6 8 10 12 14 16 18 20 plot(x(1,:),x(2,:),'ro')

(para ver las especificaciones posibles, teclearhelp plot. Por ejemplo,'ro'establece un grfico de color rojo: r y de puntos: o.) Si no se indica nada, el grfico se traza con una lnea azul.Otras funciones muy tiles:grid, que traza una cuadrcula,xlabel('ttulox')eylabel('ttuloy'), que sirven para poner un ttulo en los ejes.Para imprimir una figura, basta seleccionar printdel men de la figura."Scripts"Archivos de rdenes: programar en Matlab.Realizar un programa en Matlab es fcil. Basta abrir un editor de texto (como el Bloc de Notas de Windows) y escribir los comandos uno a continuacin de otro. Luego ese fichero de texto debe guardarse con la extensin .m, y a eso se le llama unscript:

Una vez guardado el fichero (en el ejemplo, ndata.m) en el directorio actual, desde la lnea de comandos de Matlab basta escribir ndata para que se ejecute el programa.A partir de aqu, se abren las posibilidades de la programacin con un lenguaje sencillo. Puede verse una pgina Web de introduccin a la programacinaqu.Clculo simblicoMatemticas en el ordenador.Hasta ahora, las operaciones que se han mostrado se han realizado con nmeros. Eltoolboxde clculo simblico permite realizarclculos abstractos: diff('sin(x)')ans =cos(x)Las expresiones simblicas se introducen entre apstrofes.A continuacin se da una tabla con algunas funciones de este toolbox, junto con un ejemplo de cada una:diffderivadadiff('sin(x)')

intintegralint('x^2')

solveresolucin de ecuacionessolve('x^2-3*x+2=0')

ezplotgrficosezplot('exp(x)')

Evidentemente, las expresiones pueden ser todo lo complicadas que se quiera ... solve('x=cos(x)')ans =.73908513321516064165531208767387 int('(x^4+4*x^3+11*x^2+12*x+8)/((x^2+2*x+3)^2*(x+1))')ans =log(x+1)+1/8*(-4*x-8)/(x^2+2*x+3)-1/4*2^(1/2)*atan(1/4*(2*x+2)*2^(1/2))

III) Lista de comandos de matlabA continuacin se muestra una lista con los principales comando de matlab aplicados a la ingeniera de control.Nota:Los comandos Matlab de la toolbox de control de sistema se destacan enrojo.Los comandos Matlab no estndares se destacan enverde.ComandoDescripcin

absValor absoluto

ackerCalcula la matriz K para ubicar los polos de A-BK, vea tambinplace

axisCorrige la escala del grfico actual, vea tambinplot,figure

bodeDibuja el diagrama de Bode, vea tambin logspace,margin,nyquist1

c2dmPasa del sistema continuo al discreto

clfBorra la figura (use clg en Matlab 3.5)

convConvolucin (til para multiplicar polinomios), vea tambin deconv

ctrbMatriz de controlabilidad, vea tambinobsv

deconvDeconvolucin y divisin de polinomios, vea tambin conv

detHalla el determinante de una matriz

dimpulseRespuesta al impulso de sistemas lineales de tiempo discreto, vea tambindstep

dlqrDiseo de reguladores LQR lineales cuadrticos para sistemas de tiempo discreto, vea tambinlqr

dlsimSimulacin de sistemas lineales de tiempo discreto, vea tambinlsim

dstepRespuesta al escaln de sistemas lineales de tiempo discreto, vea tambinstairs

eigCalcula los autovalores de una matriz

epsTolerancia numrica del Matlab

feedbackConexin de dos sistemas por realimentacin.

figuraCrea una nueva figura o redefine la figura actual , vea tambin subplot, axis

forLazo For-Next

formatFormato Numrico (dgitos significativos, exponentes)

functionPara archivos-m del tipo funcin

gridDibuja la grilla en el grfico actual

gtextAgrega texto al grfico actual, vea tambin text

helpAyuda

holdMantiene el grfico actual, vea tambin figure

ifEjecuta cdigo condicionalmente

imagDevuelve la parte imaginaria de un nmero complejo, vea tambin real

impulseRespuesta al impulso de sistemas lineales de tiempo continuo, vea tambinstep,lsim,dlsim

inputPrompt para entrada de usuario

invInversa de una matriz

jgridGenera grilla de coeficiente de amortiguamiento (zeta) y tiempo de establecimiento (sigma) constantes , vea tambinsgrid,sigrid,zgrid

legendLeyenda en un grfico

lengthLargo de un vector, vea tambin size

linspaceDevuelve un vector linealmente espaciado

lnyquist1Produce un diagrama de Nyquist en escala logartmica , vea tambinnyquist1

loglogaritmo natural, tambin log10: logaritmo comn

loglogGrafica usando doble escala logartmica, tambin semilogx/semilogy

logspaceDevuelve un vector logartmicamente espaciado

lqrDiseo de reguladores lineales cuadrticos LQR para sistemas continuos, vea tambindlqr

lsimSimula un sistema lineal, vea tambinstep,impulse,dlsim.

marginDevuelve margen de ganancia, margen de fase, y frecuencias de cruce, vea tambinbode

normNorma de un vector

nyquist1Grafica el diagrama de Nyquist, vea tambinlnyquist1. Note que este comando reemplaza al comando nyquist para obtener diagramas de Nyquist ms precisos.

obsvMatriz de observabilidad, vea tambinctrb

onesDevuelve un vector o matriz de unos, vea tambin ceros

placeCalcula la matriz K para ubicar los polos de A-BK, vea tambinacker

plotDibuja un grfico, vea tambin figure, axis, subplot.

polyDevuelve el polinomio caracterstico

polyaddSuma dos polinomios

polyvalValor numrico de un Polinomio

printImprime el grfico actual (a impresora o a archivo postscript)

pzmapMapa de polos y ceros de sistemas lineales

rankHalla la cantidad de renglones o columnas linealmente independientes de una matriz

realDevuelve la parte real de un nmero complejo, vea tambin imag

rlocfindHalla el valor de k y los polos en el punto seleccionado

rlocusGrafica el lugar de races

rootshalla las races de un polinomio

rscaleEncuentra el factor de escala para un sistema con realimentacin completa de estados

setSet(gca,'Xtick',xticks,'Ytick',yticks) para controlar el nmero y el espaciado de marcas en los ejes

seriesInterconexin en serie de sistemas Lineales que no dependan del tiempo

sgridGenera grilla de razn de amortiguacin (zeta) y frecuencia natural (Wn) constantes , vea tambinjgrid,sigrid,zgrid

sigridGenera grilla de tiempo de establecimiento (sigma) constante, vea tambinjgrid,sgrid,zgrid

sizeDevuelve la dimensin de un vector o matriz, vea tambin length

sqrtRaz cuadrada

ssCrea modelos en espacio de estado o convierte modelos LTI a espacio de estado, vea tambintf

ss2tfrepresentacin Espacio de estado a funcin de transferencia , vea tambintf2ss

ss2zprepresentacin Espacio de estado a polo-cero ,vea tambinzp2ss

stairsGrfico tipo escalera para respuesta discreta, vea tambindstep

stepDibuja la respuesta al escaln , vea tambinimpulse,lsim,dlsim.

subplotDivide la ventana Grfico en secciones, vea tambin plot, figure

textAgrega texto al grfico actual, vea tambin title, xlabel, ylabel, gtext

tfCrea una funcin de transferencia o convierte a funcin de transferencia, vea tambinss

tf2ssFuncin de Transferencia a representacin en espacio de estado, vea tambinss2tf

tf2zprepresentacin Funcin de Transferencia a Polo-cero , vea tambinzp2tf

titleAgrega un ttulo al grfico actual

wbwDevuelve el ancho de banda dado el coeficiente de amortiguamiento y el tiempo de asentamiento o el tiempo de elevacin.

xlabel/ylabelAgrega una identificacin al eje horizontal/vertical del grfico actual, vea tambin title, text, gtext

cerosDevuelve un vector o matriz de ceros

zgridGenera grilla de coeficiente de amortiguamiento (zeta) y frecuencia natural (Wn) constante , vea tambinsgrid,jgrid,sigrid

zp2ssPolo-cero a representacin en espacio de estado, vea tambinss2zp

zp2tfPolo-cero a representacin funcin de transferencia , vea tambintf2zp

IV)Bibliografa y sitios web http://www.ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/commands.html http://www.dametareas.com/matlab-y-su-lista-de-comandos/ http://mate.uprh.edu/~pnm/notas4061/intro_matlab/ http://mate.uprh.edu/~pnm/notas4061/intro_matlab/ http://www.angelfire.com/la/hmolina/matlab2.html17