Vous êtes sur la page 1sur 48

Departamento de Electrnica

Universidad de Alcal

Introduccin a MATLAB, Toolbox de Control y Simulink

Ingeniera Tcnica de Telecomunicacin Especialidad Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

1. QU ES MATLAB?. Paquete software orientado al clculo numrico, matrices, procesamiento y anlisis de la seal y grficas Distintos campos de accin (aplicaciones): Teora de control Tratamiento de seales Inteligencia artificial Diseo de sistemas de potencia Control de procesos mecnicos, de aviacin, automocin, etc. Financiero Mapeo y tratamiento de imgenes Instrumentacin y adquisicin de datos Identificacin de sistemas ... Varios programas incluidos MATLAB: Ncleo operativo de la herramienta matemtica Toolboxes: Libreras de funciones MATLAB asociadas a las diferentes aplicaciones (Stateflow y Sisotool, interfaz grfico, control neuronal y borroso) Simulink: Interfaz grfico para el modelado y simulacin de sistemas Blocksets: Bloques Simulink para aplicaciones especficas Real Time Workshop, xPC Tarjet y desarrollo sobre DSPs y FPGAs

Pg 2

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Diferentes tipos de archivos: *.M Ficheros por lotes (*.bat) sobre S.O. MATLAB *.MAT Fichero de datos de MATLAB *.DLL Ficheros ejecutables sobre Windows diseados con MATLAB *.MDL Modelos de Simulink Otros *.fis, *.tbl, etc. para toolboxes de control borroso, stateflow y otros paquetes

ENTORNO DE TRABAJO Varias ventanas de trabajo dentro de MATLAB Ventana de comandos: Directamente sobre S.O. MATLAB Entorno de trabajo (Workspace): Visualiza las variables definidas en cada instante Editor de ficheros *.m: Editor inteligente (colores e indentado) con depurador paso a paso y visualizacin de variables internas Editor de ficheros *.mdl: Editor grfico para disear modelos de Simulink Eleccin del directorio de trabajo: Explorador de Windows Figuras: Potente editor de figuras con posibilidad de incluir textos, cambiar el formato, etc.

Pg 3

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Pg 4

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

2. EL USO DE MATLAB MANIPULACIN Y FORMATO DE DATOS Se trabaja con matrices de nmeros reales o/y complejos. Los nmeros complejos se definen gracias a los operadores i y j de MATLAB. As se puede escribir en MATLAB x=3+2j, que se definir como una matriz de tamao 1x1 Un escalar es una matriz de tamao 1x1 Una variable fila o columna es un vector, o un array Existen distintos formatos de datos con los que puede trabajar MATLAB: Short: 5 dgitos, punto fijo Short e: 5 dgitos, punto flotante Long: 15 dgitos, punto fijo Long e: 15 dgitos, punto flotante Hex: Hexadecimal Para indicar que se va a trabajar con uno u otro formato de datos se utiliza la funcin de MATLAB format

GENERACIN DE MATRICES Cmo generar una fila? A=[a b c d e] A=[a, b, c, d, e]

Pg 5

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Cmo generar una columna?


a b B = c d e

B=[a; b; c; d; e]

Cmo generar una matriz? A= [a, b, c; d, e, f; g, h, i]


a b c A = d e f g h i

Cmo generar un serie de datos? A(punto inicial: incremento: punto final)

Ejemplo: B=[1:1:8] Con lo que se define un array B con el siguiente contenido: B=[1 2 3 4 5 6 7 8 ]

SUBMATRICES Y ELEMENTOS DE UNA MATRIZ Para identificar un elemento de una matriz se usa la notacin A(i,j) dnde i es la i-sima fila y j es la j-sima columna.

Pg 6

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Sea A la siguiente matriz:


1 2 3 A = 4 5 6 7 8 9

Para identificar al n 4 dentro de la matriz A se puede indicar como A(2,1) Se puede identificar una parte de una matriz (submatriz) con la siguiente notacin: A(fila_inicial:fila_final, col_inicial:col_final)

Ejemplo: A partir de la matriz A definida en el ejemplo anterior, se define la matriz B de la siguiente forma: B=A(1:3,1:2) Entonces B ser una nueva matriz de valor:
1 2 B = 4 5 7 8

Truco: El operador : puede utilizarse para identificar a todos los elementos en una serie de datos. As en el ejemplo anterior B=A(1:3,1:2) es lo mismo que B=A(:,1:2)

Pg 7

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

VARIABLES A la hora de definir una variable (matriz, submatriz, array o escalar) se distingue entre maysculas y minsculas. Cuando se llama a una funcin de MATLAB sin especificar variable de salida, se vuelca el resultado en la variable por defecto ans. La notacin ; omite la presentacin del resultado en pantalla al final de un comando

COMANDOS Y FUNCIONES DE MATLAB MATLAB posee gran nmero de funciones provenientes de: MATLAB: Juego de funciones y operadores bsico Toolbox: Dependiendo del tipo aadir funciones especiales Generadas por el usuario: funciones o scripts Operadores de uso general (help general) help who (s) what (o dir) clear load save cd ! ... % demo mex Comando de ayuda Lista de variables (con s indica info sobre variable) Lista de ficheros .M y .MAT Borrar variables Carga de variables desde un fichero Guardar variables a un fichero *.mat Cambiar de directorio de trabajo Ejecutar funciones DOS Contina en la lnea siguiente Comentario en una funcin Llamada a los ejemplos de uso de MATLAB Compilar ficheros de MATLAB

Truco: Es muy recomendable el uso de la help de MATLAB


Pg 8 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Operadores para matrices y arrays y variables especiales (help ops) ans eps realmax realmin pi i, j inf NaN isnan isinf isfinite why Most recent answer. Floating point relative accuracy. Largest positive floating point number. Smallest positive floating point number. 3.1415926535897.... Imaginary unit. Infinity. Not a number True for Not a number True for infinite elements. True for finite elements. Succinct answer.

Nota: Es importantsimo tener en cuenta la propiedad conmutativa en algunas operaciones aritmticas de matrices. A/B B/A y B/A= B*A-1 A/B= A*B-1

ya que
Pg 9

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Otras funciones especiales, que se organizan en diferentes categoras. Las que no pertenecen a ninguna toolbox ni blockset especfico se muestran en la siguiente tabla: MATLAB\lang MATLAB\elmat MATLAB\elfun MATLAB\specfun MATLAB\matfun MATLAB\datafun MATLAB\audio MATLAB\polyfun MATLAB\funfun MATLAB\sparfun MATLAB\graph2d MATLAB\graph3d MATLAB\specgraph MATLAB\graphics MATLAB\uitools MATLAB\strfun MATLAB\iofun MATLAB\timefun MATLAB\datatypes MATLAB\verctrl MATLAB\demos Programming language constructs. Elementary matrices & matrix manipulation. Elementary math functions. Specialized math functions. Matrix functions Data analysis and Fourier transforms. Audio support. Interpolation and polynomials. Function functions and ODE solvers. Sparse matrices. Two dimensional graphs. Three dimensional graphs. Specialized graphs. Handle Graphics. Graphical user interface tools. Character strings. File input/output. Time and dates. Data types and structures. Version control. Examples and demonstrations.

De entre ellas se pueden remarcar algunas ms interesantes:

Polinomios (help polyfun) roots poly polyval polyvalm


Pg 10

Find polynomial roots. Convert roots to polynomial. Evaluate polynomial. Evaluate polynomial with matrix argument.

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

residue polyfit polyder polyint conv deconv

Partial fraction expansion (residues). Fit polynomial to data. Differentiate polynomial. Integrate polynomial analytically. Multiply polynomials. Divide polynomials.

Adems de stas, en esta categora, hay funciones especficas para anlisis geomtrico y de interpolacin.

Estructuras del lenguaje MATLAB (help lang) (solo las ms representativas) if else elseif end for while break continue switch case otherwise try catch return error warning lasterr lastwarn disp display fprintf
Pg 11

Conditionally execute statements. IF statement condition. IF statement condition. Terminate scope of FOR, WHILE, SWITCH, TRY and IF Repeat statements a specific number of times. Repeat statements an indefinite number of times. Terminate execution of WHILE or FOR loop. Pass control to the next iteration of FOR or WHILE loop. Switch among several cases based on expression. SWITCH statement case. Default SWITCH statement case. Begin TRY block. Begin CATCH block. Return to invoking function. Display error message and abort function. Display warning message. Last error message. Last warning message. Display an array. Overloaded function to display an array. Display formatted message.

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

sprintf input keyboard pause uimenu uicontrol

Write formatted data to a string. Prompt for user input. Invoke keyboard from M file Wait for user response. Create user interface menu. Create user interface control.

Generacin de matrices (help elmat) zeros ones eye repmat rand randn linspace logspace freqspace meshgrid Zeros array. Ones array. Identity matrix. Replicate and tile array. Uniformly distributed random numbers. Normally distributed random numbers. Linearly spaced vector. Logarithmically spaced vector. Frequency spacing for frequency response. X and Y arrays for 3 D plots.

Pg 12

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Funciones Elementales. sin sinh asin asinh cos cosh acos acosh tan tanh atan atan2 atanh sec sech asec asech csc csch acsc acsch cot coth acot acoth exp log log10 log2 pow2 sqrt nextpow2 abs
Pg 13

Sine. Hyperbolic sine. Inverse sine. Inverse hyperbolic sine. Cosine. Hyperbolic cosine. Inverse cosine. Inverse hyperbolic cosine. Tangent. Hyperbolic tangent. Inverse tangent. Four quadrant inverse tangent. Inverse hyperbolic tangent. Secant. Hyperbolic secant. Inverse secant. Inverse hyperbolic secant. Cosecant. Hyperbolic cosecant. Inverse cosecant. Inverse hyperbolic cosecant. Cotangent. Hyperbolic cotangent. Inverse cotangent. Inverse hyperbolic cotangent. Exponential. Natural logarithm. Common (base 10) logarithm. Base 2 logarithm and dissect floating point number. Base 2 power and scale floating point number. Square root. Next higher power of 2. Absolute value.

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign

Phase angle. Construct complex data from real & imaginary parts. Complex conjugate. Complex imaginary part. Complex real part. Unwrap phase angle. True for real array. Sort numbers into complex conjugate pairs. Round towards zero. Round towards minus infinity. Round towards plus infinity. Round towards nearest integer. Modulus (signed remainder after division). Remainder after division. Signum.

Anlisis de datos max min mean median std var sort sum prod hist histc trapz diff gradient cov filter
Pg 14

Largest component. Smallest component. Average or mean value. Median value. Standard deviation. Variance. Sort in ascending order. Sum of elements. Product of elements. Histogram. Histogram count. Trapezoidal numerical integration. Difference and approximate derivative. Approximate gradient. Covariance matrix. One dimensional digital filter.

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

filter2 conv convn deconv fft fftn ifft ifftn

Two dimensional digital filter Convolution and polynomial multiplication. N dimensional convolution Deconvolution and polynomial division. Discrete Fourier transform. N dimensional discrete Fourier Transform. Inverse discrete Fourier transform. N dimensional inverse discrete Fourier Transform.

Manipulacin de matrices norm normest rank det trace null orth inv pinv lscov eig svd gsvd eigs svds polyeig expm logm sqrtm Matrix or vector norm. Estimate the matrix 2 norm Matrix rank. Determinant. Sum of diagonal elements. Null space. Orthogonalization. Matrix inverse. Pseudoinverse. Least squares with known covariance. Eigenvalues and eigenvectors. Singular value decomposition. Generalized singular value decomposition. A few eigenvalues. A few singular values. Polynomial eigenvalue problem. Matrix exponential. Matrix logarithm. Matrix square root.

Pg 15

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

FUNCIONES DE REPRESENTACIN GRFICA La funcin ms importante es plot, que abre una ventana de figura y representa en ella (en general) los datos que le son pasados como parmetros. Para representar x=f(t) se har la llamada plot (t,x) Se puede incluir informacin sobre el formato del grfico (color, tipo de lnea, etc). Las opciones posibles son las que se muestran a continuacin (help plot): Tipo de lnea Color y m c r g b w k yellow magenta cyan red green blue white black * + -x -. o : . ^ < > v d s p h star plus dashed x-mark dashdot circle dotted point solid triangle (up) triangle (left) triangle (right) triangle (down) diamond square pentagram hexagram

Permite realizar representaciones de varias seales en una misma figura. Para ello simplemente se incluyen todas las variables en una misma llamada a plot.

Pg 16

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Funciones asociadas a plot: loglog semilogx semilogy polar zoom grid subplot plotedit legend title xlabel ylabel text gtext Log log scale plot. Semi log scale plot. Semi log scale plot. Polar coordinate plot. Zoom in and out on a 2 D plot. Grid lines. Create axes in tiled positions. Tools for editing and annotating plots. Graph legend. Graph title. X axis label. Y axis label. Text annotation. Place text with mouse.

Merece la pena especial atencin a la funcin subplot que divide la pantalla grfica (ventana de figura) en N filas y M columnas. El formato funcin es subplot (N, M, J), donde J es la sub-figura sobre la que se quiere dibujar.

Funciones asociadas a las figuras en general figure clf close subplot cla axis hold ishold line text
Pg 17

Create figure window. Clear current figure. Close figure. Create axes in tiled positions. Clear current axes. Control axis scaling and appearance. Hold current graph. Return hold state. Create line. Create text.

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

surface image set get drawnow

Create surface. Create image. Set object properties. Get object properties. Flush pending graphics events.

Ejemplo: Representar una seal senoidal y otra cosenoidal en la misma figura entre 0 y 6 (3 periodos de la seal senoidal). Se hara de la siguiente forma: t=(0:0.1:6*pi) % el incremento de punto a punto de la grfica ser de 0.1 x=sin(t) % se crea el vector x, ser la salida senoidal y=cos(t) % se crea el vector y, ser salida cosenoidal plot(t,x,b,t,y,c+) % se dibujan en la misma grfica y con distintos formatos de ploteado (color y punteado) Adems, con las siguientes lneas de MATLAB se han incorporado los textos a la figura: grid title(Ejemplo funcion seno y coseno) xlabel(tiempo) ylabel(seno/coseno) gtext(valor nulo) % y se coloca el texto en el punto deseado gtext(valor mximo) % y se coloca el texto en el punto deseado gtext(valor mnimo) % y se coloca el texto en el punto deseado El resultado es una ventana figura como la que se muestra a continuacin:

Pg 18

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Se desea representar ahora las seales senoidal y cosenoidal en la misma ventana de figuras pero por separado, por lo que se usa subplot, de este modo: subplot(2,1,1) % se elige la subfigura primera o superior: fila 1, columna 1

plot(t,x,'b') grid title(Ejemplo funcion seno) xlabel(tiempo) ylabel(seno) subplot(2,1,2) % se elige la subfigura segunda o inferior: fila 2, columna 1 plot(t,y,'c+') grid title(Ejemplo funcion coseno) xlabel(tiempo) ylabel(coseno)
Pg 19 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Tal y como se observa todas las funciones de dibujo se refieren a la sub-figura elegida con la funcin subplot. El resultado es el que se muestra a continuacin:
Ejemplo funcion seno 1 0.5 seno 0 -0.5 -1

10 12 14 tiempo Ejemplo funcion coseno

16

18

20

1 0.5 coseno 0 -0.5 -1

10 tiempo

12

14

16

18

20

FICHEROS *.M: SCRIPTS Y FUNCIONES. Son archivos tipo ASCII (se realizan en cualquier editor ASCII, aunque conviene usar el que tiene MATLAB para ello, pues incluye un depurador) que contienen una serie de rdenes incluso llamadas a otros ficheros *. M Ambas se pueden llamar desde la lnea de comandos de MATLAB o desde otra estructura similar

Pg 20

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Los ficheros tipo scripts: Estn compuestos por llamadas a otras funciones de MATLAB (parecido a las llamadas realizadas por DOS en los ficheros *.BAT) Puede utilizar las variables del entorno de trabajo (Workspace) y devuelve los resultados a este mismo entorno. Se trata por tanto de trabajo con variables globales Se suelen utilizar para tareas de inicializacin o de definicin de un gran nmero de variables en el entorno de trabajo Por su parte, las funciones: Comienzan con la palabra clave function en la primera lnea del fichero Es una aplicacin (funcin) definida por el usuario a la que se le pasan parmetros y que permite devolver parmetros, de forma similar a funciones en C. La sintaxis para el paso de parmetros es la siguiente: function [salida1, salida2,...] = nom_funcin(param1, param2,...) Las variables que utiliza son, por tanto, locales a la funcin (principal diferencia con los scripts) La funcin definida por el usuario se podr invocar desde la lnea de comandos o desde cualquier script Deben de coincidir el nombre del fichero y el nombre de la funcin a implementar Tras la primera lnea (function... ) se inctroducen lneas de comentario (comienzan por %), que sern la ayuda de la funcin que se presente en la ventana de comandos de MATLAB cuando se invoque a la ayuda de dicha funcin. Por ejemplo si se define la funcin prueba de este modo: function prueba() %esta funcin no tiene parmetros de entrada ni de salida
Pg 21 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Cuando se invoque a la ayuda de la funcin en la ventana de rdenes de MATLAB aparecer lo siguiente: >> help prueba >> esta funcin no tiene parmetros de entrada ni de salida Suele ser habitual utilizar sentencias de control (ver help lang) en la escritura de las funciones y los scrips Algunas de las funciones ms habituales en las funciones y los scrips Input: Asigna un valor introducido por teclado a una variable. Muestra una cadena de caracteres. Keyboard: Introduce un punto de ruptura en la secuencia de ejecucin de la funcin. En ese momento se le permite acceder al usuario a las variables locales y globales del sistema. Se sale de este modo tecleando RETURN Pause: Introduce una pausa en la ejecucin de la funcin. Se continua con la ejecucin pulsando cualquier tecla

Ejemplo: Crear una funcin llamada MEDIA que calcule el valor medio de un array. function y=media(x) [m,n]=size(x); if m==1 %es por tanto un vector y=sum(x)/n; else error ('Debes de introducir un vector'); end

Pg 22

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Realizar una funcin en MATLAB que permita resolver un sistema lineal de n ecuaciones con n incgnitas (siendo n un valor cualquiera). El formato de llamada a la funcin debe ser el siguiente: [sol,n_sol]=sistema(S) donde: sol= vector que contiene las soluciones al sistema N_sol= nmero de soluciones del sistema S=matriz que contiene los coeficientes y trminos independientes de las n ecuaciones en el siguiente formato:
3a b + c 2 = 0 5a + 2b + 3c 1 = 0 a + 5b 2c 5 = 0
3 1 1 - 2 2 3 - 1 S = 5 - 1 5 - 2 - 5

function [sol,n_sol]=prac2_1(S) %FUNCION QUE RESUELVE UN SISTEMA DE ECUACIONES [filas,columnas]=size(S); if (filas>columnas) error('Sistema de ecuaciones no correcto') else %vector formado por la ultima col Aux_1=S(:,columnas); %Se convierten los trminos independientes a valor % positivo ya que el usuario los introduce como valor negativo Aux_1=Aux_1*(-1); columnas=columnas-1; %matriz cuadrada formada por los coeficientes de las variables Aux=S(:,1:columnas); Aux_inv=inv(Aux); %Aux_inv=Aux-1 sol=Aux_inv*Aux_1; %matriz solucion
Pg 23 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

[n_sol, a]=size(sol); end

%retorno del resultado

Ejemplo: Crear una funcin llamada MAXIMO que devuelva el mayor de los elementos de un vector. N=maximo(A)

N= nmero mayor de A; A= vector enviado; function x=maximo(A) % Se introduce un vector y se obtiene el valor maximo de l [m,n]=size(A); %Se saca el numero de columnas y filas if m==1 %Se trata de un vector long=length(A); i=2; sol=A(1); while (i<=long) if A(i)>=sol %Se compara si el valor actual es %mayor que el anterior. Si lo es sol=A(i); %se acumula end %fin del if i=i+1; end %fin del while x=sol; else error ('Introduce un vector y no una matriz'); end %fin del if principal

Pg 24

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

3. EL USO DE SIMULINK Herramienta grfica incorporada a Matlab, que permite de forma ms fcil definir el modelo de sistemas de muy diferentes tipos (no solo LTI) y aplicaciones Los elementos de trabajo de un modelo de Simulink son objetos o iconos, agrupados en libreras que proporciona el paquete integrado de Matlab para las distintas aplicaciones El fichero asociado a cada modelo es un *.MDL, que puede ser abierto como un fichero *.M cualquiera (tiene una estructura especial pero el funcionamiento es el mismo) Se puede llamar a la librera de bloques de Simulink (ventana Simulink) desde la ventana de comandos tecleando Simulink, o abrir directamente un fichero *.MDL Pasos a seguir para trabajar con Simulink: 1. Definicin grfica del modelo a simular con las libreras de Matlab para Simulink 2. Simulacin del modelo y anlisis de resultados, que se pueden mostrar directamente en Simulink o a travs de Matlab enviando los resultados al entorno de trabajo Libreras de Simulink Posee libreras distribuidas en funcin de la aplicacin. Tiene una librera bsica, llamada Simulink, con el siguiente contenido: Sources (fuentes de seal) Sinks (sumideros o almacn de resultados) Continuous Discrete No linear

Pg 25

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Signals&Systems (buses, multiplexores y demultiplexores, puertos para enviar seales de un modelo a otro, etc.) Math (trigonomtricas, aritmticas, etc.) Funciones y tablas (llamadas a funciones de Matlab o de usuario y tablas de look-up) ... Hay libreras especficas para cada aplicacin (Blocksets y Toolboxes): Control (controladores ya diseados) Control Borroso Control Neuronal Identificacin Power DSP Fixed Point Comunicaciones RTW y xPC Tarjet Stateflow User Interface ... El usuario puede definir nuevas libreras a partir de algn modelo realizado, mediante los bloques S-function

Pg 26

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

OBJETOS BSICOS DE SIMULINK Fuentes: Emisores de informacin (Generadores de seales, seal rampa, impulso, ...)

Procesos: Bloques de E/S de todos los tipos antes mencionados

Destinos: Receptores de informacin

Pg 27

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Conexiones: Son unidireccionales. Hipotticos cables.

CREACIN DE UN MODELO SIMULINK Para generar un diagrama de bloques, una vez abierto un fichero *.MDL nuevo y con ventana de Simulink, se sigue el siguiente proceso: 1. Se abre la librera donde se encuentra el elemento necesario. 2. Para copiar un objeto de la sesin de trabajo, basta con seleccionar el objeto y arrastrarlo 3. Para hacer una conexin entre una salida y una entrada, se posiciona el cursor sobre la salida de la fuente o la entrada, se pulsa el botn izquierdo del ratn y sin soltarlo se desplaza el cursor hasta el otro punto que se desea unir 4. Haciendo doble click sobre los elementos copiados se modifican los parmetros de ste. (Admiten parmetros que sean variables de Workspace)

Ejemplo Realizar el diagrama de bloques de la figura:

1. Se entra en Simulink y se abre una ventana nueva.

Pg 28

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

2. Se abre la librera continuous y se copian los bloques sumador y F.T. 3. Se abre la librera sources y se copia el bloque escaln (step input) 4. Se abre la librera sinks y se copia el bloque scope 5. Se unen mediante el ratn los bloques. 6. Se editan los bloques para que aparezcan como en la figura (en el bloque Trasnfer Fcn Numerator y Denominator han de contener los coeficientes del polinomio correspondiente en potencias decrecientes de s). En el ejemplo: Numerator Denominator 7. Se salva el fichero (*.MDL). [1 2] [1 2 5]

Truco: Probar a definir los parmetros de configuracin de los bloques mediante variables definidas previamente en el entorno de trabajo de MATLAB. De este modo se facilita el diseo de sistemas en base a un modo de funcionamiento prueba-error

CONFIGURACIN DE LA SIMULACIN Es importante configurar la simulacin antes de realizarla. Para ello, en el men principal de la ventana del modelo (*.MDL) creado con Simulink ir a Simulation Parameters Permite configurar diferentes caractersticas sobre la simulacin, a saber: La forma de resolver el sistema de ecuaciones diferenciales que componen el modelo diseado en Simulink y al tiempo de simulacin

Pg 29

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Las variables de salida que ha de generar la simulacin en el entorno de trabajo de MATLAB

Otros parmetros avanzados de simulacin, como la configuracin de los avisos y errores que ha de generar la simulacin por conexiones incorrectas, o la configuracin de la compilacin del modelo con la herramienta RTW
Pg 30 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Con respecto al paso de SIMULACIN, es necesario tener en cuenta ciertos aspectos bsicos El paso de simulacin es el intervalo de integracin de los algoritmos de resolucin del modelo Se puede definir variable (lo fija Simulink en funcin del modelo concreto a simular) en todos los casos excepto en la generacin de cdigo RTW Si el paso de simulacin es muy bajo el tiempo de ejecucin elevado (puntos excesivos), y si es muy bajo la resolucin es peor (se pierde definicin del sistema), pudiendo incluso llegar a no representar correctamente le comportamiento del sistema al no cumplir la teora de sistemas muestreados (al fin y al cabo la simulacin de sistemas continuos con Simulink pretende representar su comportamiento real en el tiempo) Una regla prctica es hacer que el paso de simulacin sea al menos de la dcima parte del tiempo de subida de la respuesta del sistema Con respecto a las variables de salida de Simulink, es necesario comentar tambin un punto: Se pueden pasar las respuestas de las simulacin al Workspace de MATLAB a travs de los bloques to Workspace de Simulink Convendr tambin tener en el entorno de trabajo el array de tiempo con el que se ha generado la simulacin ste se puede generar con un bloque Clock de Simulink y pasarlo a MATLAB del mismo modo, pero tambin se puede usar la variable tout que se genera automticamente si as se indica en la configuracin de la simulacin La variable yout que se genera del mismo modo contiene el resultado de las seales conectadas a puertos de salida del modelo de Simulink

Pg 31

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Visualizar el resultado de la simulacin del modelo del ejemplo anterior

Nota: Prestar atencin a que la respuesta coincida exactamente con la aqu mostrada y modificar la configuracin de los bloques de Simulink correspondientes para que as sea

Ejemplo: Variar el modelo anterior para implementar el siguiente sistema. Visualizar desde MATLAB y desde Simulink los resultados (variable Salida frente al tiempo) Desde Simulink: con el bloque Scope:

Pg 32

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Desde MATLAB:

>>plot(tout, Salida); o >>plot(tiempo, Salida);

Pg 33

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Truco: Se puede arrancar la simulacin de un modelo preexistente (fichero *.MDL) con la funcin sim de MATLAB, con la siguiente sintaxis: [T,X,Y] = sim('modelo', [TInicio TFin] ,OPTIONS,UT) Donde los parmetros 2 al 4 de la llamada a sim son opcionales

Ejemplo: Realizar el siguiente diagrama de bloques y representar desde MATLAB la seal de salida

Para qu sirve el multiplexor?

Pg 34

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

4. LA TOOLBOX DE CONTROL DE MATLAB Funciones de aplicacin especfica para ingeniera de control de sistemas. Son ficheros *.M Sirve tanto para control continuo como para control discreto, clsico (en espacios transformados sobre sistemas LTI) y de otros tipos (variables de estado, borroso, neuronal, robusto, no lineal, etc.) En los dos campos permite realizar tareas de: modelado, conversin de modelos y anlisis de respuesta temporal, frecuencial y en espacios transformados Las herramientas para obtencin de los modelos de los sistemas se encuentran en otra Toolbox: la de identificacin Todas las funciones de control se encuentran en la demo de control que se ejecuta con el comando MATLAB: ctrldemo

MODELADO DE SISTEMAS DE CONTROL CONTINUO Las funciones de la toolbox en MATLAB permiten trabajar solo sobre sistemas lineales e invariantes continuos y discretos en el tiempo, y en espacio transformado Permiten representar los sistemas LTI mediante 4 modelos diferentes en los espacios transformados (s para sistemas continuos y z para sistemas discretos): Funcin de transferencia Funcin Polo-Cero Descomposicin en fracciones simples Variables de Estado
Pg 35 Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

FUNCIN DE TRANSFERENCIA El formato Funcin de Transferencia (FT) corresponde con representaciones del siguiente tipo:
H(s) = num(s) a1 * sm -1 + a 2 * s m - 2 + ... + a ns m -n = den(s) b1 * s j1 + b 2 * s j- 2 + ... + b t * s j- t

Cmo se introduce en MATLAB una FT?: creando dos vectores que contengan el valor de los coeficientes del numerador y denominador del sistema en el espacio transformado correspondiente

Ejemplo: Obtenga el modelo MATLAB del siguiente sistema en formato FT:


3s 2 + 2s + 1 H(s) = 2 (s + 4s + 1)(s + 5)

A travs de un fichero script, o de comandos de MATLAB: num=[3 2 1]; %numerador den1=[1 4 1]; %primer polinomio del denominador den2=[1 5]; %segundo polinomio del denominador den=conv(den1,den2); %multiplicacin de dos polinomios

FORMATO POLOCERO El formato polocero corresponde con representaciones del siguiente tipo:
H(s) = k (s - z1 )(s - z 2 )(s - z 3 )...(s - z n ) (s - p1 )(s - p 2 )(s - p 3 )...(s - p n )

Pg 36

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Cmo se introduce en MATLAB un sistema en este formato?: en este caso se crean dos vectores que contengan el valor de los polos y los ceros (races del denominador y del numerador respectivamente) de la funcin de transferencia del sistema a representar

Ejemplo: Obtenga el modelo MATLAB del siguiente sistema en formato ceropolo:


H(s) = 4 (s + 1)(s + 2) (s + 3)(s + 4)(s + 5)

Mediante un fichero script: K=4; Z=[-1 2]; P=[-3 4 5]; %constante del sistema %ceros del sistema %polos del sistema

CONVERSIN ENTRE FORMATOS Las siguientes funciones permiten realizar conversiones entre los distintos formatos de representacin de sistemas residue roots poly conv tf2zp zp2tf c2dm, d2c printsys Expansin en fracciones parciales Obtiene las races de un polinomio Obtiene un polinomio desde sus races Permite multiplicar polinomios De FT a formato polocero De formato polocero a FT Conversin entre el mundo discreto y el continuo Imprime la funcin de transferencia de un sistema

Pg 37

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Transformar de formato funcin de transferencia a formato polo cero la siguiente funcin:
N (s) 20( s + 10)( s 3 + 1) G( s) = = D( s ) s ( s + 2) 2 ( s 2 + 10 s + 100)( s 4 + 2 s 3 10)

En MATLAB: num1=10; num2=[1 10]; %(s+10) num3=[1 0 0 1]; % (s^3+1) NUM=conv(num1,(conv(num2,num3))); den1=[1 0]; % (s) den2=[1 2]; % (s+2) den2=conv(den2,den2); %Generando (s+2)^2 den3=[1 10 100]; %(s^2+10s+100) den4=[1 2 0 0 -10]; %(s^4+2s^3-10) DEN=conv(den1,conv(den2,conv(den3,den4))); [Z,P,K]=tf2zp(NUM,DEN); %CONVERSIN A CERO POLO

Ejemplo: Transformar de formato polo-cero a formato funcin de transferencia la siguiente funcin:


( s + 1)3 H ( s) = ( s + 4)( s + 3) 2 ( s 4 + s 3 + s 2 + 2)

Pg 38

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

En MATLAB: Z=[-1; -1; -1 ]; D1=roots([1 5 2]); B=[1 3]; D2=roots(conv(B,B)); P=[4; D2; D1]; k=1; [NUM,DEN]=zp2tf(Z,P,k); %(s+1)^3 %Obtencin de las races de (s^2+5s+2) %(s+3)^2

Si una vez hecho esto, se hace desde la ventana de comandos una llamada a printsys(NUM,DEN), el resultado es el siguiente: s^3 + 3 s^2 + 3 s + 1 ---------------------------------------------------s^5 + 7 s^4 - 3 s^3 - 107 s^2 - 210 s - 72

GENERACIN DE DIAGRAMA DE BLOQUES, CONEXIN DE SISTEMAS La toolbox de MATLAB para control incluye tambin funciones para resolver las funciones de transferencia expresadas mediante diagrama de bloques Las siguientes funciones permiten realizar conexiones entre los distintos bloques que conforman un sistema de control cloop feedback series parallel Cierra el lazo realimentacin unitaria Conexin mediante realimentacin Conexin en serie de modelos Conexin en paralelo de sistemas

Pg 39

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Obtener la funcin de transferencia total del sistema que se muestra a continuacin, suponiendo que se parte del conocimiento del numerador y el denominador de cada bloque del diagrama

Step Input

+ Sum

+ Sum1

(s-1)(s-2)(s-3) (s+1)(s+3)(s-4) Zero-Pole Auto-Scale Graph

25 s+10 Transfer Fcn

en MATLAB, de la siguiente forma: [NUM,DEN]=feedback(NUMZP, DENZP, NUMTF,DENTF,-1); [NUM,DEN]=cloop(NUM, DEN,-1);

Pg 40

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

5. FUNCIONES DE ANLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (I) Conjunto de instrucciones que facilitan el anlisis de la respuesta temporal, frecuencial y lugar de las races de un sistema de control. En este punto solo se van a presentar las funciones relacionadas con el anlisis temporal

RESPUESTA TEMPORAL Se usa para obtener caractersticas temporales del rgimen transitorio y del permanente o estacionario, de la respuesta de un sistema a entradas diversas Las funciones de la toolbox de MATLAB utilizadas para generar respuestas temporales ante entradas variadas, son las siguientes step impulse lsim ginput damp dcgain Respuesta a un escaln Respuesta a un impulso Entrada aleatoria Averiguar valores de un determinado punto de la grfica Permite obtener n y Permite obtener la ganancia esttica de una FT

Nota: Las funciones step e impulse generan automticamente una grfica de la respuesta temporal, en caso de no pedir ningn valor de salida

Pg 41

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Dado el siguiente sistema determinar su respuesta al impulso y al escaln:


H ( s) = 1 s +1

La respuesta al impulso se obtendr mediante el siguiente comando: >>impulse([1],[1 1]);


Impulse Response

1 0.9 0.8 0.7 Amplitude 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2

3 Time (sec)

Pg 42

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Posteriormente se llama a la funcin step, obtenindose el resultado grfico que se muestra a continuacin: >>step([1],[1 1]);
1 0.9 0.8 0.7 Amplitude 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 Time (sec) 4 5 6 Step Response

Pg 43

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

6. FUNCIONES DE ANLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (II) La toolbox de control de MATLAB posee un conjunto de funciones que permiten realizar fcilmente trazados del Lugar de las Races de un sistema realimentado, as como sacar informacin a partir de ste Las funciones relacionadas con el trazado del Lugar de las Races se muestran en la siguiente tabla rlocus rlocfind pzmap sgrid Trazado del Lugar de las Races (para ss. continuos y discretos) Identificacin concreta de un punto del lugar Representacin del diagrama de polos y ceros Red de obtener n y en el plano s

Nota: la funcin rlocus abre directamente una ventana de figura nueva y dibuja en ella el Lugar de las Races del sistema cuya F(s) (o F(z))se pasa como parmetro. Sin embargo, la funcin rlocfind necesita de la ejecucin previa de la anterior para operar

Ejemplo: Se desea conocer el trazado del Lugar de las Races del sistema siguiente:
K Gain s+13 s+10 Transfer Fcn

1 s2 +1.5s+8 Transfer Fcn1

Pg 44

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Para resolverlo se ejecuta desde MATLAB el siguiente conjunto de comandos: NUMG=[1 13] DENG=[1 10] NUMH=[1] DENH=[1 1.5 8] N=conv(NUMG,NUMH) D=conv(DENG,DENH) rlocus(N,D) sgrid
40 0.28 0.4 0.19

%Numerador de G(s) %Denominador de G(s) %Numerador de H(s) %Denominador de H(s) %Numerador de G(s)H(s) %Denominador de G(s)H(s)

Root Locus 0.135 0.095 0.06 0.03 40 35 30 25 20 0.7 10 Imag Axis 20 15 10 5 0 5 -10 0.7 -20 10 15 20 25 -30 0.4 0.28 -12 -10 0.19 -8 0.135 -6 Real Axis 0.095 -4 0.06 -2 0.03 30 35 40 0

30

-40

Pg 45

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Obtenga para el sistema del ejemplo anterior cul es el valor de K que hace al sistema inestable Dicho valor ser aqul que haga que las races del lugar representado anteriormente tengan parte real positiva. Para poder obtener dicho valor se utiliza la funcin rlocfind, de esta forma: >> rlocfind(N,D) Obtenindose el siguiente resultado en la ventana de comandos de MATLAB: >>Select a point in the graphics window >>selected_point = 0.0482 +12.6479i >>ans = 136.2106 Truco: Si se desea conocer adems el valor que tienen todas las races del sistema en lazo cerrado para esa K se deber recoger como parmetro de salida de rlocfind un vector que contendr el dichos valores de este modo: >>[K,raices]= rlocfind(N,D)

Pg 46

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Ejemplo: Si se desea que el sistema tenga una respuesta con coeficiente de amortiguacin de valor 0.1, indique cul sera el valor de K necesario y compruebe el resultado con la funcin step Para conocer el valor de K con =0.1 se redibuja el Lugar de las Races son rejilla y se invoca a la funcin sgrid de este modo >> sgrid(0.1,2) Donde el valor de n se ha fijado sin ningn criterio concreto Despus se llama vuelve a llamar a la funcin rlocfind, y se obtiene el valor de K que ser el fijado en el diagrama de bloques de Simulink que permite obtener la espuesta al escaln del sistema en lazo cerrado. El resultado se muestra en la figura siguiente:
20

15

10

-5

10

12

14

16

18

20

Pg 47

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Introduccin a MATLAB, Toolbox de Control y Simulink

Para comprobar si la respuesta coincide con la de un sistema de segundo orden tpico, se obtiene el valor de Mp correspondiente al coeficiente de amortiguacin comentado. Calculando dicho valor el resultado es de 72.9% Como se observa, el Mp es mayor. Esto se debe a que el sistema en lazo cerrado tiene adems un cero y otro polo que no es del todo dominante

Pg 48

Laboratorio de Sistemas Electrnicos de Control Continuo I.T.T Sistemas Electrnicos

Vous aimerez peut-être aussi