Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf ·...

48
Departamento de Electrónica Universidad de Alcalá Introducción a MATLAB, Toolbox de Control y SimulinkIngeniería Técnica de Telecomunicación Especialidad Sistemas Electrónicos

Transcript of Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf ·...

Page 1: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

Departamento de Electrónica Universidad de Alcalá

“Introducción a MATLAB, Toolbox de Control y Simulink”

Ingeniería Técnica de Telecomunicación Especialidad Sistemas Electrónicos

Page 2: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 2 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

1. ¿QUÉ ES MATLAB?. • Paquete software orientado al cálculo numérico, matrices,

procesamiento y análisis de la señal y gráficas • Distintos campos de acción (aplicaciones):

Teoría de control Tratamiento de señales Inteligencia artificial Diseño de sistemas de potencia Control de procesos mecánicos, de aviación, automoción, etc. Financiero Mapeo y tratamiento de imágenes Instrumentación y adquisición de datos Identificación de sistemas ...

• Varios programas incluidos

MATLAB: Núcleo operativo de la herramienta matemática Toolboxes: Librerías de funciones MATLAB asociadas a las

diferentes aplicaciones (Stateflow y Sisotool, interfaz gráfico, control neuronal y borroso)

Simulink: Interfaz gráfico para el modelado y simulación de sistemas

Blocksets: Bloques Simulink para aplicaciones específicas Real Time Workshop, xPC Tarjet y desarrollo sobre DSPs y

FPGAs

Page 3: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 3 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Diferentes tipos de archivos:

*.M Ficheros por lotes (*.bat) sobre S.O. MATLAB *.MAT Fichero de datos de MATLAB *.DLL Ficheros ejecutables sobre Windows diseñados 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 visualización de variables internas

Editor de ficheros *.mdl: Editor gráfico para diseñar modelos de Simulink

Elección del directorio de trabajo: Explorador de Windows

Figuras: Potente editor de figuras con posibilidad de incluir textos, cambiar el formato, etc.

Page 4: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 4 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Page 5: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 5 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

2. EL USO DE MATLAB MANIPULACIÓN Y FORMATO DE DATOS • Se trabaja con matrices de números reales o/y complejos. • Los números 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 tamaño 1x1

• Un escalar es una matriz de tamaño 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 dígitos, punto fijo Short e: 5 dígitos, punto flotante Long: 15 dígitos, punto fijo Long e: 15 dígitos, punto flotante Hex: Hexadecimal

• Para indicar que se va a trabajar con uno u otro formato de datos

se utiliza la función de MATLAB “format” GENERACIÓN DE MATRICES • ¿Cómo generar una fila?

A=[a b c d e] ó A=[a, b, c, d, e]

Page 6: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 6 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• ¿Cómo generar una columna?

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

=

edcba

B

• ¿Cómo generar una matriz?

A= [a, b, c; d, e, f; g, h, i] ó

• ¿Cómo 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 notación A(i,j)

dónde i es la i-ésima fila y j es la j-ésima columna.

=

ih gf e d c b a

A

Page 7: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 7 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Sea A la siguiente matriz:

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 notación:

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:

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)

=

9 8 76 5 4 3 2 1

A

=

8 75 4 2 1

B

Page 8: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 8 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

VARIABLES • A la hora de definir una variable (matriz, submatriz, array o escalar)

se distingue entre mayúsculas y minúsculas. • Cuando se llama a una función de MATLAB sin especificar variable

de salida, se vuelca el resultado en la variable por defecto ans. La notación ; omite la presentación del resultado en pantalla al final de un comando

COMANDOS Y FUNCIONES DE MATLAB • MATLAB posee gran número de funciones provenientes de:

MATLAB: Juego de funciones y operadores básico Toolbox: Dependiendo del tipo añadirá funciones especiales Generadas por el usuario: funciones o scripts

• Operadores de uso general (help general)

help Comando de ayuda who (s) Lista de variables (con s indica info sobre variable)

what (o dir) Lista de ficheros .M y .MAT clear Borrar variables load Carga de variables desde un fichero save Guardar variables a un fichero *.mat cd Cambiar de directorio de trabajo ! Ejecutar funciones DOS

... Continúa en la línea siguiente % Comentario en una función

demo Llamada a los ejemplos de uso de MATLAB mex Compilar ficheros de MATLAB

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

Page 9: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 9 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Operadores para matrices y arrays y variables especiales (help ops)

ans Most recent answer. eps Floating point relative accuracy.

realmax Largest positive floating point number. realmin Smallest positive floating point number.

pi 3.1415926535897.... i, j Imaginary unit. inf Infinity.

NaN Not a number isnan True for Not a number isinf True for infinite elements.

isfinite True for finite elements. why Succinct answer.

Nota: Es importantísimo tener en cuenta la propiedad conmutativa en algunas operaciones aritméticas de matrices.

A/B ≠ B/A ya que A/B= A*B-1 y B/A= B*A-1

Page 10: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 10 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Otras funciones especiales, que se organizan en diferentes categorías. Las que no pertenecen a ninguna toolbox ni blockset específico se muestran en la siguiente tabla:

MATLAB\lang Programming language constructs. MATLAB\elmat Elementary matrices & matrix manipulation.MATLAB\elfun Elementary math functions. MATLAB\specfun Specialized math functions. MATLAB\matfun Matrix functions MATLAB\datafun Data analysis and Fourier transforms. MATLAB\audio Audio support. MATLAB\polyfun Interpolation and polynomials. MATLAB\funfun Function functions and ODE solvers. MATLAB\sparfun Sparse matrices. MATLAB\graph2d Two dimensional graphs. MATLAB\graph3d Three dimensional graphs. MATLAB\specgraph Specialized graphs. MATLAB\graphics Handle Graphics. MATLAB\uitools Graphical user interface tools. MATLAB\strfun Character strings. MATLAB\iofun File input/output. MATLAB\timefun Time and dates. MATLAB\datatypes Data types and structures. MATLAB\verctrl Version control. MATLAB\demos Examples and demonstrations. De entre ellas se pueden remarcar algunas más interesantes: • Polinomios (help polyfun)

roots Find polynomial roots. poly Convert roots to polynomial.

polyval Evaluate polynomial. polyvalm Evaluate polynomial with matrix argument.

Page 11: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 11 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

residue Partial fraction expansion (residues). polyfit Fit polynomial to data.

polyder Differentiate polynomial. polyint Integrate polynomial analytically. conv Multiply polynomials.

deconv Divide polynomials. Además de éstas, en esta categoría, hay funciones específicas para análisis geométrico y de interpolación. • Estructuras del lenguaje MATLAB (help lang) (solo las más

representativas)

if Conditionally execute statements. else IF statement condition. elseif IF statement condition. end Terminate scope of FOR, WHILE, SWITCH, TRY and IFfor Repeat statements a specific number of times.

while Repeat statements an indefinite number of times. break Terminate execution of WHILE or FOR loop.

continue Pass control to the next iteration of FOR or WHILE loop.switch Switch among several cases based on expression. case SWITCH statement case.

otherwise Default SWITCH statement case. try Begin TRY block.

catch Begin CATCH block. return Return to invoking function. error Display error message and abort function.

warning Display warning message. lasterr Last error message.

lastwarn Last warning message. disp Display an array.

display Overloaded function to display an array. fprintf Display formatted message.

Page 12: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 12 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

sprintf Write formatted data to a string. input Prompt for user input.

keyboard Invoke keyboard from M file pause Wait for user response. uimenu Create user interface menu. uicontrol Create user interface control.

• Generación de matrices (help elmat)

zeros Zeros array. ones Ones array. eye Identity matrix.

repmat Replicate and tile array. rand Uniformly distributed random numbers. randn Normally distributed random numbers.

linspace Linearly spaced vector. logspace Logarithmically spaced vector. freqspace Frequency spacing for frequency response. meshgrid X and Y arrays for 3 D plots.

Page 13: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 13 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Funciones Elementales.

sin Sine. sinh Hyperbolic sine. asin Inverse sine. asinh Inverse hyperbolic sine. cos Cosine.

cosh Hyperbolic cosine. acos Inverse cosine. acosh Inverse hyperbolic cosine.

tan Tangent. tanh Hyperbolic tangent. atan Inverse tangent. atan2 Four quadrant inverse tangent. atanh Inverse hyperbolic tangent. sec Secant.

sech Hyperbolic secant. asec Inverse secant. asech Inverse hyperbolic secant.

csc Cosecant. csch Hyperbolic cosecant. acsc Inverse cosecant. acsch Inverse hyperbolic cosecant.

cot Cotangent. coth Hyperbolic cotangent. acot Inverse cotangent. acoth Inverse hyperbolic cotangent. exp Exponential. log Natural logarithm.

log10 Common (base 10) logarithm. log2 Base 2 logarithm and dissect floating point number. pow2 Base 2 power and scale floating point number. sqrt Square root.

nextpow2 Next higher power of 2. abs Absolute value.

Page 14: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 14 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

angle Phase angle. complex Construct complex data from real & imaginary parts.

conj Complex conjugate. imag Complex imaginary part. real Complex real part.

unwrap Unwrap phase angle. isreal True for real array.

cplxpair Sort numbers into complex conjugate pairs. fix Round towards zero.

floor Round towards minus infinity. ceil Round towards plus infinity.

round Round towards nearest integer. mod Modulus (signed remainder after division). rem Remainder after division. sign Signum.

• Análisis de datos

max Largest component. min Smallest component.

mean Average or mean value. median Median value.

std Standard deviation. var Variance. sort Sort in ascending order. sum Sum of elements. prod Product of elements. hist Histogram. histc Histogram count. trapz Trapezoidal numerical integration. diff Difference and approximate derivative.

gradient Approximate gradient. cov Covariance matrix. filter One dimensional digital filter.

Page 15: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 15 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

filter2 Two dimensional digital filter conv Convolution and polynomial multiplication. convn N dimensional convolution

deconv Deconvolution and polynomial division. fft Discrete Fourier transform.

fftn N dimensional discrete Fourier Transform. ifft Inverse discrete Fourier transform. ifftn N dimensional inverse discrete Fourier Transform.

• Manipulación de matrices

norm Matrix or vector norm. normest Estimate the matrix 2 norm

rank Matrix rank. det Determinant.

trace Sum of diagonal elements. null Null space. orth Orthogonalization. inv Matrix inverse.

pinv Pseudoinverse. lscov Least squares with known covariance. eig Eigenvalues and eigenvectors. svd Singular value decomposition.

gsvd Generalized singular value decomposition. eigs A few eigenvalues. svds A few singular values.

polyeig Polynomial eigenvalue problem. expm Matrix exponential. logm Matrix logarithm. sqrtm Matrix square root.

Page 16: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 16 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

FUNCIONES DE REPRESENTACIÓN GRÁFICA • La función más importante es “plot”, que abre una ventana de figura

y representa en ella (en general) los datos que le son pasados como parámetros. Para representar x=f(t) se hará la llamada plot (t,x)

• Se puede incluir información sobre el formato del gráfico (color, tipo

de línea, etc). Las opciones posibles son las que se muestran a continuación (help plot):

• Permite realizar representaciones de varias señales en una misma

figura. Para ello simplemente se incluyen todas las variables en una misma llamada a plot.

* star + plus -- dashed x x-mark -. dashdot o circle : dotted . point - solid ^ triangle (up) < triangle (left) > triangle (right) v triangle (down) d diamond s square p pentagram h hexagram

y yellow m magenta c cyan r red g green b blue w white k black

Color

Tipo de línea

Page 17: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 17 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Funciones asociadas a plot:

loglog Log log scale plot. semilogx Semi log scale plot. semilogy Semi log scale plot.

polar Polar coordinate plot. zoom Zoom in and out on a 2 D plot. grid Grid lines.

subplot Create axes in tiled positions. plotedit Tools for editing and annotating plots. legend Graph legend.

title Graph title. xlabel X axis label. ylabel Y axis label. text Text annotation.

gtext Place text with mouse. Merece la pena especial atención a la función “subplot” que divide la pantalla gráfica (ventana de figura) en N filas y M columnas. El formato función 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 Create figure window.

clf Clear current figure. close Close figure.

subplot Create axes in tiled positions. cla Clear current axes. axis Control axis scaling and appearance. hold Hold current graph.

ishold Return hold state. line Create line. text Create text.

Page 18: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 18 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

surface Create surface. image Create image.

set Set object properties. get Get object properties.

drawnow Flush pending graphics events. Ejemplo: Representar una señal senoidal y otra cosenoidal en la misma figura entre 0 y 6π (3 periodos de la señal senoidal). Se haría de la siguiente forma:

t=(0:0.1:6*pi) % el incremento de punto a punto de la gráfica 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 gráfica y con distintos formatos de ploteado (color y punteado)

Además, con las siguientes líneas 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 máximo’) % y se coloca el texto en el punto deseado gtext(‘valor mínimo’) % y se coloca el texto en el punto deseado

El resultado es una ventana figura como la que se muestra a continuación:

Page 19: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 19 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Se desea representar ahora las señales 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’)

Page 20: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 20 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Tal y como se observa todas las funciones de dibujo se refieren a la sub-figura elegida con la función subplot. El resultado es el que se muestra a continuación:

0 2 4 6 8 10 12 14 16 18 20-1

-0.5

0

0.5

1Ejemplo funcion seno

tiempo

seno

0 2 4 6 8 10 12 14 16 18 20-1

-0.5

0

0.5

1

cose

no

tiempo

Ejemplo funcion coseno

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 línea de comandos de MATLAB

o desde otra estructura similar

Page 21: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 21 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Los ficheros tipo scripts:

Están 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 inicialización o de definición de un gran número de variables en el entorno de trabajo

• Por su parte, las funciones:

Comienzan con la palabra clave function en la primera línea del fichero

Es una aplicación (función) definida por el usuario a la que se le pasan parámetros y que permite devolver parámetros, de forma similar a funciones en ‘C’. La sintaxis para el paso de parámetros es la siguiente:

function [salida1, salida2,...] = nom_función(param1, param2,...)

Las variables que utiliza son, por tanto, locales a la función

(principal diferencia con los scripts) La función definida por el usuario se podrá invocar desde la

línea de comandos o desde cualquier script Deben de coincidir el nombre del fichero y el nombre de la

función a implementar Tras la primera línea (function... ) se inctroducen líneas de

comentario (comienzan por %), que serán la ayuda de la función que se presente en la ventana de comandos de MATLAB cuando se invoque a la ayuda de dicha función. Por ejemplo si se define la función prueba de este modo:

function prueba() %esta función no tiene parámetros de entrada ni de salida

Page 22: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 22 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Cuando se invoque a la ayuda de la función en la ventana de órdenes de MATLAB aparecerá lo siguiente:

>> help prueba >> esta función no tiene parámetros 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 más 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 ejecución de la función. 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 ejecución de la función. Se continua con la ejecución pulsando cualquier tecla

Ejemplo: Crear una función 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

Page 23: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 23 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Realizar una función en MATLAB que permita resolver un sistema lineal de ‘n’ ecuaciones con ‘n’ incógnitas (siendo ‘n’ un valor cualquiera). El formato de llamada a la función debe ser el siguiente:

[sol,n_sol]=sistema(S) donde: • sol= vector que contiene las soluciones al sistema • N_sol= número de soluciones del sistema • S=matriz que contiene los coeficientes y términos independientes de

las n ecuaciones en el siguiente formato:

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 términos 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

052501325

023

=−−+−=−++

=−+−

cbacba

cba

−=

5- 2- 5 1-1- 3 2 52- 1 1 3

S

Page 24: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 24 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

[n_sol, a]=size(sol); %retorno del resultado end

Ejemplo: Crear una función llamada MAXIMO que devuelva el mayor de los elementos de un vector.

N=maximo(A) • N= número 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

Page 25: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 25 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

3. EL USO DE SIMULINK • Herramienta gráfica incorporada a Matlab, que permite de forma

más fácil 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 librerías 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 librería 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. Definición gráfica del modelo a simular con las librerías de Matlab para Simulink

2. Simulación del modelo y análisis de resultados, que se pueden mostrar directamente en Simulink o a través de Matlab enviando los resultados al entorno de trabajo

• Librerías de Simulink Posee librerías distribuidas en función de la

aplicación. Tiene una librería básica, llamada Simulink, con el siguiente contenido: Sources (fuentes de señal) Sinks (sumideros o almacén de resultados) Continuous Discrete No linear

Page 26: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 26 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Signals&Systems (buses, multiplexores y demultiplexores, puertos para enviar señales de un modelo a otro, etc.)

Math (trigonométricas, aritméticas, etc.) Funciones y tablas (llamadas a funciones de Matlab o de usuario

y tablas de look-up) ...

• Hay librerías específicas para cada aplicación (Blocksets y

Toolboxes):

Control (controladores ya diseñados) Control Borroso Control Neuronal Identificación Power DSP Fixed Point Comunicaciones RTW y xPC Tarjet Stateflow User Interface ...

• El usuario puede definir nuevas librerías a partir de algún modelo

realizado, mediante los bloques S-function

Page 27: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 27 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

OBJETOS BÁSICOS DE SIMULINK • Fuentes: Emisores de información (Generadores de señales, señal

rampa, impulso, ...)

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

• Destinos: Receptores de información

Page 28: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 28 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Conexiones: Son unidireccionales. Hipotéticos cables. CREACIÓN 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 librería donde se encuentra el elemento necesario. 2. Para copiar un objeto de la sesión de trabajo, basta con

seleccionar el objeto y arrastrarlo 3. Para hacer una conexión entre una salida y una entrada, se

posiciona el cursor sobre la salida de la fuente o la entrada, se pulsa el botón izquierdo del ratón 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 parámetros de éste. (Admiten parámetros 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.

Page 29: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 29 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

2. Se abre la librería continuous y se copian los bloques sumador y F.T.

3. Se abre la librería sources y se copia el bloque escalón (step input)

4. Se abre la librería sinks y se copia el bloque scope 5. Se unen mediante el ratón 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 [1 2] Denominator [1 2 5]

7. Se salva el fichero (*.MDL).

Truco: Probar a definir los parámetros de configuración de los bloques mediante variables definidas previamente en el entorno de trabajo de MATLAB. De este modo se facilita el diseño de sistemas en base a un modo de funcionamiento prueba-error CONFIGURACIÓN DE LA SIMULACIÓN • Es importante configurar la simulación 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 características sobre la simulación, a

saber:

La forma de resolver el sistema de ecuaciones diferenciales que componen el modelo diseñado en Simulink y al tiempo de simulación

Page 30: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 30 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Las variables de salida que ha de generar la simulación en el entorno de trabajo de MATLAB

Otros parámetros avanzados de simulación, como la

configuración de los avisos y errores que ha de generar la simulación por conexiones incorrectas, o la configuración de la compilación del modelo con la herramienta RTW

Page 31: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 31 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• Con respecto al paso de SIMULACIÓN, es necesario tener en cuenta ciertos aspectos básicos

El paso de simulación es el intervalo de integración de los

algoritmos de resolución del modelo Se puede definir variable (lo fija Simulink en función del modelo

concreto a simular) en todos los casos excepto en la generación de código RTW

Si el paso de simulación es muy bajo el tiempo de ejecución elevado (puntos excesivos), y si es muy bajo la resolución es peor (se pierde definición del sistema), pudiendo incluso llegar a no representar correctamente le comportamiento del sistema al no cumplir la teoría de sistemas muestreados (al fin y al cabo la simulación de sistemas continuos con Simulink pretende representar su comportamiento real en el tiempo)

Una regla práctica es hacer que el paso de simulación sea al menos de la décima parte del tiempo de subida de la respuesta del sistema

• Con respecto a las variables de salida de Simulink, es necesario

comentar también un punto:

Se pueden pasar las respuestas de las simulación al Workspace de MATLAB a través de los bloques “to Workspace” de Simulink

Convendrá también tener en el entorno de trabajo el array de tiempo con el que se ha generado la simulación

Éste se puede generar con un bloque “Clock” de Simulink y pasarlo a MATLAB del mismo modo, pero también se puede usar la variable tout que se genera automáticamente si así se indica en la configuración de la simulación

La variable yout que se genera del mismo modo contiene el resultado de las señales conectadas a puertos de salida del modelo de Simulink

Page 32: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 32 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Visualizar el resultado de la simulación del modelo del ejemplo anterior

Nota: Prestar atención a que la respuesta coincida exactamente con la aquí mostrada y modificar la configuración 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:

Page 33: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 33 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Desde MATLAB:

>>plot(tout, Salida);

o >>plot(tiempo, Salida);

Page 34: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 34 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Truco: Se puede arrancar la simulación de un modelo preexistente (fichero *.MDL) con la función sim de MATLAB, con la siguiente sintaxis: [T,X,Y] = sim('modelo', [TInicio TFin] ,OPTIONS,UT) Donde los parámetros 2º al 4º de la llamada a sim son opcionales Ejemplo: Realizar el siguiente diagrama de bloques y representar desde MATLAB la señal de salida

¿Para qué sirve el multiplexor?

Page 35: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 35 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

4. LA TOOLBOX DE CONTROL DE MATLAB • Funciones de aplicación específica para ingeniería de control de

sistemas. Son ficheros *.M • Sirve tanto para control continuo como para control discreto,

clásico (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,

conversión de modelos y análisis de respuesta temporal, frecuencial y en espacios transformados

• Las herramientas para obtención de los modelos de los sistemas

se encuentran en otra Toolbox: la de identificación • 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):

Función de transferencia Función Polo-Cero Descomposición en fracciones simples Variables de Estado

Page 36: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 36 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

FUNCIÓN DE TRANSFERENCIA • El formato Función de Transferencia (FT) corresponde con

representaciones del siguiente tipo:

t-jt

2-j2

1j1

n-mn

2-m2

1-m1

s*b ... s*bs*bsa ... s*as*a

den(s)num(s) H(s)

++++++== −

• ¿Cómo 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:

5)1)(s4s(s12s3sH(s) 2

2

+++++=

A través 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); %multiplicación de dos polinomios

FORMATO POLO–CERO • El formato polo–cero corresponde con representaciones del

siguiente tipo:

)p-)...(sp-)(sp-)(sp-(s)z-)...(sz-)(sz-)(sz-(skH(s)

n321

n321=

Page 37: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 37 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

• ¿Cómo 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 (raíces del denominador y del numerador respectivamente) de la función de transferencia del sistema a representar

Ejemplo: Obtenga el modelo MATLAB del siguiente sistema en formato cero-polo:

5)4)(s3)(s(s2)1)(s(s4H(s)

+++++=

Mediante un fichero script:

K=4; %constante del sistema Z=[-1 –2]; %ceros del sistema P=[-3 –4 –5]; %polos del sistema

CONVERSIÓN ENTRE FORMATOS • Las siguientes funciones permiten realizar conversiones entre los

distintos formatos de representación de sistemas

residue Expansión en fracciones parciales roots Obtiene las raíces de un polinomio poly Obtiene un polinomio desde sus raíces conv Permite multiplicar polinomios tf2zp De FT a formato polo–cero zp2tf De formato polo–cero a FT

c2dm, d2c Conversión entre el mundo discreto y el continuo printsys Imprime la función de transferencia de un sistema

Page 38: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 38 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Transformar de formato función de transferencia a formato polo cero la siguiente función:

)102)(10010()2()1)(10(20

)()()( 3422

3

−++++++==

ssssssss

sDsNsG

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); %CONVERSIÓN A CERO POLO

Ejemplo: Transformar de formato polo-cero a formato función de transferencia la siguiente función:

)2()3)(4()1()( 2342

3

++++++=

sssssssH

Page 39: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 39 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

En MATLAB:

Z=[-1; -1; -1 ]; %(s+1)^3 D1=roots([1 5 2]); %Obtención de las raíces de (s^2+5s+2) B=[1 3]; D2=roots(conv(B,B)); %(s+3)^2 P=[4; D2; D1]; k=1; [NUM,DEN]=zp2tf(Z,P,k);

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

GENERACIÓN DE DIAGRAMA DE BLOQUES, CONEXIÓN DE SISTEMAS • La toolbox de MATLAB para control incluye también 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 Cierra el lazo realimentación unitaria feedback Conexión mediante realimentación

series Conexión en serie de modelos parallel Conexión en paralelo de sistemas

Page 40: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 40 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

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

en MATLAB, de la siguiente forma:

[NUM,DEN]=feedback(NUMZP, DENZP, NUMTF,DENTF,-1); [NUM,DEN]=cloop(NUM, DEN,-1);

Step Input

+-

Sum

+-

Sum1

25s+10

Transfer Fcn

(s-1)(s-2)(s-3)(s+1)(s+3)(s-4)

Zero-Pole Auto-ScaleGraph

Page 41: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 41 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

5. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (I) • Conjunto de instrucciones que facilitan el análisis de la respuesta

temporal, frecuencial y lugar de las raíces de un sistema de control. • En este punto solo se van a presentar las funciones relacionadas

con el análisis temporal RESPUESTA TEMPORAL • Se usa para obtener características temporales del régimen

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 Respuesta a un escalón impulse Respuesta a un impulso

lsim Entrada aleatoria ginput Averiguar valores de un determinado punto de la gráficadamp Permite obtener ωωωωn y ξξξξ dcgain Permite obtener la ganancia estática de una FT

Nota: Las funciones step e impulse generan automáticamente una gráfica de la respuesta temporal, en caso de no pedir ningún valor de salida

Page 42: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 42 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Dado el siguiente sistema determinar su respuesta al impulso y al escalón:

11)(+

=s

sH

La respuesta al impulso se obtendrá mediante el siguiente comando:

>>impulse([1],[1 1]);

Impulse Response

Time (sec)

Am

plitu

de

0 1 2 3 4 5 60

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 43: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 43 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Posteriormente se llama a la función step, obteniéndose el resultado gráfico que se muestra a continuación:

>>step([1],[1 1]);

Step Response

Time (sec)

Am

plitu

de

0 1 2 3 4 5 60

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 44: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 44 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

6. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (II) • La toolbox de control de MATLAB posee un conjunto de funciones

que permiten realizar fácilmente trazados del Lugar de las Raíces de un sistema realimentado, así como sacar información a partir de éste

• Las funciones relacionadas con el trazado del Lugar de las Raíces

se muestran en la siguiente tabla

Nota: la función rlocus abre directamente una ventana de figura nueva y dibuja en ella el Lugar de las Raíces del sistema cuya F(s) (o F(z))se pasa como parámetro. Sin embargo, la función rlocfind necesita de la ejecución previa de la anterior para operar Ejemplo: Se desea conocer el trazado del Lugar de las Raíces del sistema siguiente:

1

s +1.5s+82

Transfer Fcn1

s+13

s+10Transfer Fcn

K

Gain

rlocus Trazado del Lugar de las Raíces (para ss. continuos y discretos)

rlocfind Identificación concreta de un punto del lugar pzmap Representación del diagrama de polos y ceros sgrid Red de obtener ωωωωn y ξξξξ en el plano ‘s’

Page 45: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 45 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Para resolverlo se ejecuta desde MATLAB el siguiente conjunto de comandos:

NUMG=[1 13] %Numerador de G(s) DENG=[1 10] %Denominador de G(s) NUMH=[1] %Numerador de H(s) DENH=[1 1.5 8] %Denominador de H(s) N=conv(NUMG,NUMH) %Numerador de G(s)H(s) D=conv(DENG,DENH) %Denominador de G(s)H(s) rlocus(N,D) sgrid

Root Locus

Real Axis

Imag

Axi

s

-12 -10 -8 -6 -4 -2 0

-40

-30

-20

-10

0

10

20

30

40

40

35

30

25

20

15

10

5

40

35

30

25

20

15

10

5

0.7

0.4

0.28 0.19 0.135 0.095 0.06 0.03

0.7

0.4

0.28 0.19 0.135 0.095 0.06 0.03

Page 46: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 46 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Obtenga para el sistema del ejemplo anterior cuál es el valor de K que hace al sistema inestable Dicho valor será aquél que haga que las raíces del lugar representado anteriormente tengan parte real positiva. Para poder obtener dicho valor se utiliza la función rlocfind, de esta forma:

>> rlocfind(N,D) Obteniéndose 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 además el valor que tienen todas las raíces del sistema en lazo cerrado para esa K se deberá recoger como parámetro de salida de rlocfind un vector que contendrá el dichos valores de este modo:

>>[K,raices]= rlocfind(N,D)

Page 47: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 47 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Ejemplo: Si se desea que el sistema tenga una respuesta con coeficiente de amortiguación de valor 0.1, indique cuál sería el valor de K necesario y compruebe el resultado con la función step Para conocer el valor de K con ξξξξ=0.1 se redibuja el Lugar de las Raíces son rejilla y se invoca a la función sgrid de este modo

>> sgrid(0.1,2) Donde el valor de ωn se ha fijado sin ningún criterio concreto Después se llama vuelve a llamar a la función 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 escalón del sistema en lazo cerrado. El resultado se muestra en la figura siguiente:

0 2 4 6 8 10 12 14 16 18 20-5

0

5

10

15

20

Page 48: Introducción a MATLAB, Toolbox de Control y Simulinkcontrol1/biblio/IntroMATLAB.pdf · “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas

“Introducción a MATLAB, Toolbox de Control y Simulink”

Pág 48 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos

Para comprobar si la respuesta coincide con la de un sistema de segundo orden típico, se obtiene el valor de Mp correspondiente al coeficiente de amortiguación 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 además un cero y otro polo que no es del todo dominante