56
Gu´ ıa de pr´ acticas de Laboratorio de Sistemas de Control 2020

Gu´ıa de practicas de Laboratorio de Sistemas de Control´blog.espol.edu.ec/.../files/2020/06/GUIA2020-parte1.pdfLABORATORIO DE SISTEMAS DE CONTROL Figura 1.1: Workspace y escritorio

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Guı́a de prácticas de Laboratorio de Sistemas de Control

    2020

  • ÍNDICE GENERAL

    1. Introducción a MATLAB R© 11.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Escritorio de MATLAB R© . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Operaciones Matemáticas Básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4. Manipulación de Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    1.4.1. Álgebra Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.2. Gráficos en 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.4.3. Instrucciones de Control de Flujo de programa . . . . . . . . . . . . . . . . 161.4.4. Funciones Complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . 171.4.5. Toolbox de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.6. Toolbox Simbólico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2. Simulink 262.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.1.1. Ejemplo Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.1.2. Biblioteca de Bloques de Simulink . . . . . . . . . . . . . . . . . . . . . . . 40

    3. Identificación de sistemas usando MATLAB R© 543.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    3.2.1. Teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2.2. Procedimiento para la identificación . . . . . . . . . . . . . . . . . . . . . . 553.2.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4. Diseño de Controladores PID usando Sisotool 774.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    4.2.1. Estructura de Ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.2.2. Arquitectura de los controladores . . . . . . . . . . . . . . . . . . . . . . . 784.2.3. Graphical Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.2.4. Analysis Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    I

  • LABORATORIO DE SISTEMAS DE CONTROL

    4.2.5. Diseño del Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814.2.6. Otras Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    II

  • Introducción a MATLAB R©

    1.1. AntecedentesMATLAB R©(Matrix Laboratory) es un programa altamente usado tanto a nivel académico, como

    a nivel cientı́fico y profesional por la facilidad que ofrece para resolver diferentes tipos de problemasmatemáticos aplicados a las diferentes ramas de las ciencias e ingenierı́as; es decir, permite realizarsimulaciones del funcionamiento de sistemas de diferentes tipo. De ahı́ la importancia de que losestudiantes se familiaricen con esta poderosa herramienta que les facilitará la realización de cálculosy simulaciones a lo largo de su vida estudiantil.

    La versatilidad de MATLAB R© se debe a la gran cantidad de toolboxes que posee siendo los másutilizados para el desarrollo de este curso el Control Toolbox(Toolbox de Control) y Symbolic Tool-box(Toolbox Simbólico). El Toolbox de Control proporciona herramientas para analizar y diseñarsistemas de control automático representados a través de funciones de transferencia o de espacio deestados. En cambio, el Toolbox Simbólico permite obtener la respuesta algebraica(literal) de proble-mas matemáticos.

    1.2. Escritorio de MATLAB R©

    Cuando se ejecuta MATLAB R© se abre una ventana como la que se muestra en la Figura 1.1 quecorresponde al escritorio de MATLAB R© y es el punto de partida para usar las distintas caracterı́sticasde la aplicación como la creación y edición de funciones, scripts y modelos.

    En la Figura 1.1 se pueden distinguir principalmente los siguientes elementos:

    1

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 1.1: Workspace y escritorio de MATLAB R©

    Barra de Menú: Es la barra en la parte superior de la ventana donde están los menús de comandosasociados por categorı́a.

    Barra de Herramientas: Es la barra inmediatamente debajo de la Barra de Menú que contienebotones de atajos a herramientas y aplicaciones de MATLAB R©.

    Ventana de Comandos: Es el panel con el tı́tulo “Command Window”; en esta área se pueden es-cribir las funciones o comandos que se desean ejecutar y se muestran sus resultados de ser elcaso.

    Directorio Actual: Es el panel con el tı́tulo “Current Directory”; muestra los archivos y carpetas deldirectorio en el que se está trabajando.

    2

  • LABORATORIO DE SISTEMAS DE CONTROL

    Espacio de Trabajo: Es el panel con el tı́tulo “Workspace” y es donde se muestran las variablesexistentes en memoria e información sobre éstas.

    Historial de Comandos: Es el panel con el tı́tulo “Command History”; contiene un listado agrupa-do por sesión de trabajo de los comandos y funciones ejecutados, pero no incluye las accionesejecutadas con los botones y menús del escritorio.

    Desde la barra de herramientas se puede abrir el editor de programas de MATLAB R© y la biblio-teca de bloques de Simulink. El uso básico del editor de programas es escribir scripts o funciones,mientras que desde la biblioteca de bloques se puede abrir el editor de modelos de Simulink paraconstruir los sistemas que se van a simular en un ambiente gráfico donde los bloques representan lasfunciones a ejecutarse.

    Los tres elementos mencionados anteriormente: scripts, funciones y modelos, permiten al usuariode MATLAB R©-Simulink resolver problemas de análisis y simulación de diferentes sistemas. Aun-que, estos elementos pueden ser usados individualmente o en conjunto, es necesario distinguir suscaracterı́sticas.

    Script: Es un archivo que puede contener un listado de instrucciones de MATLAB R© y cuya exten-sión es “.m”. El archivo puede ser ejecutado por partes o en su totalidad pero se debe tenerpresente que trabajará con el Workspace global del MATLAB R© tal como si se estuvieranejecutando las instrucciones desde la Ventana de Comandos del MATLAB R©. La ventaja deutilizar un script es que se pueden escribir varias lı́neas de código y editarlas antes y despuésde ejecutar el mismo.

    Función: Es un archivo similar al script pero tiene un encabezado que debe cumplir ciertas normaspara que MATLAB R© reconozca la función. Otra diferencia muy importante es que cuando sellama a una función para su ejecución, MATLAB R© crea un Workspace privado para la funcióndonde se crean las variables que la función utilizará, pero este Workspace se elimina cuandose termina la ejecución de la función.

    Modelo: Es un archivo con uno o varios bloques, generalmente interconectados, creado en Simulinky con extensión “.mdl” o “.slx”. Usualmente, estos modelos se los ejecuta desde Simulink,aunque existen funciones para ejecutarlos desde MATLAB R© .

    ADVERTENCIA:Se debe evitar tener en un mismo directorio archivos con el mismo nombre aunque tengan diferenteextensión debido a que al ejecutar uno de ellos por comandos, MATLAB R© no distingue cuál se deseaejecutar.

    3

  • LABORATORIO DE SISTEMAS DE CONTROL

    1.3. Operaciones Matemáticas BásicasEl primer paso para realizar las operaciones básicas en MATLAB R© es definir matrices y escala-

    res. Para definir una matriz se debe abrir un corchete, luego escribir los valores por fila de izquierdaa derecha separados por una coma o espacios e indicar el cambio de fila con el sı́mbolo “;” y despuésdel último valor cerrar corchete.

    Construir en MATLAB R© la matriz:2 5 34 0 16 8 7

    Se puede escribir:[2,5,3; 4,0,1;6,8,7]o reemplazando las comas por espacios [2 5 3; 4 0 1; 6 8 7]pero si se desea asignar1la matriz a una variable se podrı́a que escribir:A = [2,5,3; 4,0,1;6,8,7]

    Figura 1.2: Ejemplo de construcción de matrices

    Cuando una matriz es de dimensión nx1 o 1xn con n > 1 es denominada vector pero al usarla enuna operación básica se le aplican las mismas reglas de operación de matrices.

    ADVERTENCIA:MATLAB R© es sensible al uso de mayúsculas y minúsculas en el nombre de las variables.

    ADVERTENCIA:MATLAB R© asume que los operandos siempre son matrices excepto por las matrices de 1x1 que lasasume como escalares.

    Los nombres de las variables pueden contener letras, números y el subguión pero deben empezarcon una letra y no pueden ser palabras reservadas de MATLAB R© (Ver Tabla 1.1).

    ADVERTENCIA:Las variables pueden tomar los nombres de constantes o funciones del MATLAB R© pero en ese casoestas constantes o funciones ya no pueden ser usadas hasta que las variables creadas sean elimina-das.

    1El sı́mbolo = se usa para asignar algo (valores, objetos, etc.) a una variable.

    4

  • LABORATORIO DE SISTEMAS DE CONTROL

    break case catch classdefcontinue else elseif end

    for function global ifotherwise parfor persistent return

    spmd switch try while

    Tabla 1.1: Palabras reservadas del MATLAB R©

    Función Sintaxis Observacionesones ones(n) Crea una matriz de n filas por n columnas donde todos sus

    elementos son 1.ones ones(m,n) Crea una matriz de m filas por n columnas donde todos sus

    elementos son 1zeros zeros(n) Crea una matriz de n filas por n columnas donde todos sus

    elementos son 0.zeros zeros(m,n) Crea una matriz de m filas por n columnas donde todos sus

    elementos son 0.eye eye(n) Crea una matriz identidad de n filas por n columnas.Los resultados de estas funciones también pueden ser asignados a variables.

    Tabla 1.2: Funciones para crear matrices especiales.

    Además, se pueden construir matrices usando las funciones: ones, zeros, eye usando la sintaxismostrada de estas funciones en la Tabla 1.2.

    En la Tabla 1.3 se muestran los operadores básicos de MATLAB R© y las versiones punto que per-miten operar sobre los elementos de las matrices. En la Figura 1.3 se observan algunos ejemplos deluso de estos operadores mostrando los resultados.

    5

  • LABORATORIO DE SISTEMAS DE CONTROL

    Operador Operación Uso Observaciones+ Suma A+B Si uno de los operandos es un escalar, lo opera

    con todos los elementos del otro operando.- Resta A-B Si uno de los operandos es un escalar, lo opera

    con todos los elementos del otro operando.* Producto A*B Si uno de los operandos es un escalar, reali-

    za producto escalar por matriz caso contrarioproducto de matrices.

    .* Producto A.*B Multiplica los elementos en las posiciones deA y B que son matrices de igual dimensión.

    ˆ Potencia AˆB Eleva A a la potencia B (AB)..ˆ Potencia A.ˆB Eleva cada uno de los elementos de A a la po-

    tencia B ([aBi j])./ “División” A/B A/B = A∗B−1

    . / “División” A./B A./B = A.∗B.−1\ “División” A\B A\B = A−1 ∗B.\ “División” A.\B A.\B = A.−1.∗B

    Tabla 1.3: Operadores básicos en MATLAB R©

    6

  • LABORATORIO DE SISTEMAS DE CONTROL

    Crear en MATLAB R© las matrices:

    A =[

    1 12 3

    ]B =

    [2 13 2

    ]C =

    [2 1

    ]D =

    [34

    ]Luego calcular A+B,B−3,2−A,C/B,A∗D,A.∗B,A\D,B./A>>A = [1 1;2 3];B = [2 1;3 2];C = [2 1];D = [3;4];

    >>A+Bans =

    3 2

    5 5

    >>B-3ans =

    -1 -2

    0 -1

    >>2-Aans =

    1 1

    0 -1

    >>C/Bans =

    1 0

    >>A*Dans =

    7

    18

    >>A.*Bans =

    2 1

    6 6

    >>A\Dans =

    5

    -2

    >>B./Aans =

    2.0000 1.0000

    1.5000 0.6667

    Figura 1.3: Ejemplo de operaciones básicas de matrices

    7

  • LABORATORIO DE SISTEMAS DE CONTROL

    1.4. Manipulación de MatricesDespués de crear una matriz pueden darse diferentes circunstancias en las cuales se necesite ac-

    ceder a una posición, fila, columna o bloque especı́ficos de una matriz para leer, escribir o eliminarvalores; y esto se lo puede realizar con las instrucciones mostradas en las Tablas 1.4, 1.5, 1.6.

    Adicionalmente, se muestran varios ejemplos del uso de las instrucciones de lectura, escritura oeliminación de valores en las matrices en las Figuras 1.4, 1.5, 1.6.

    Instrucción Descripción Observaciones

    b = A(pos) Copia en b el valor en laposición pos de la varia-ble A.

    La variable A debe tener unasola fila o columna. La posi-ción pos debe existir en la va-riable A.

    b = A(fila,col) Copia en b el valor en laposición ( f ila,col) de lavariable A.

    La posición ( f ila,col) debeexistir en la variable A.

    b = A(:,col) Copia en b la columna colde la variable A.

    La columna col debe existir enla variable A.

    b = A(fila,:) Copia en b la fila fila de lavariable A.

    La fila fila debe existir en la va-riable A.

    b = A( f ila1: f ila2,col1:col2) Copia en b el bloquedelimitado por las po-siciones: ( f ila1,col1),( f ila2,col2) de la varia-ble A.

    Las posiciones ( f ila1,col1) y( f ila2,col2) deben existir en lavariable A.

    pos, col, col1,col2, fila, fila1,fila2 pueden ser variables o constantes.

    Tabla 1.4: Instrucciones básicas para leer valores en matrices

    8

  • LABORATORIO DE SISTEMAS DE CONTROL

    >>A = [1 1;2 3];B = [2 1;3 2];C = [2 1]; D= [3;4];

    >>fila = 1; col = 2; pos = 2;>>a = D(pos)a =

    4

    >>a = C(2)a =

    1

    >>a = B(fila,col)a =

    1

    >>a = A(2,1)a =

    2

    >>b = B(fila,:)b =

    2 1

    >>b = A(:,1)b =

    1

    2

    Figura 1.4: Ejemplos de lectura de valores en matrices

    >>A = [1 1;2 3];B = [2 1;3 2];C = [2 1]; D = [3;4];>>fila = 1; col = 2; pos = 2;>>D(pos) = 5D =

    35

    >>B(fila,col) = posB =

    2 23 2

    >>A(2,2) = 10A =

    1 12 10

    >>A(fila,:) = CA =

    2 12 10

    >>B(:,col) = DB =

    2 33 5

    >>D(:,col+2) = A(:,col)D =

    3 0 0 15 0 0 10

    Figura 1.5: Ejemplos de escritura de valores en matrices

    9

  • LABORATORIO DE SISTEMAS DE CONTROL

    Instrucción Descripción Observaciones

    A(pos) = b Copia en la posición posde la variable A el valorde b.

    Si la posición pos no existe en la va-riable A completa las posiciones noexistentes con ceros. Además, b debeser un escalar.

    A(fila,col) = b Copia en la posición( f ila,col) de la variableA el valor de b.

    Si la posición ( f ila,col) no existe enla variable A completa las posicionesno existentes con ceros. Además, bdebe ser un escalar.

    A(:,col) = b Copia en la columna colde la variable A los valo-res de b.

    Si la columna col no existe en la va-riable A completa las posiciones noexistentes con ceros. Además, b debetener la misma longitud de las colum-nas de A.

    A(fila,:) = b Copia en la fila fila de lavariable A los valores deb.

    Si la fila fila no existe en la variableA completa las posiciones no existen-tes con ceros. Además, b debe tener lamisma longitud de las filas de A.

    A(fila1:fila2,col1:col2) = b Copia en el bloquedelimitado por las po-siciones: ( f ila1,col1),( f ila2,col2) de la va-riable A los valores deb.

    Si la posición ( f ila2,col2) no existeen la variable A completa las posicio-nes no existentes con ceros. Además,b debe tener las mismas dimensionesdel bloque de A.

    pos, col, col1,col2, fila, fila1,fila2 pueden ser variables o constantes.

    Tabla 1.5: Instrucciones básicas para escribir valores en matrices

    10

  • LABORATORIO DE SISTEMAS DE CONTROL

    Ejemplo Descripción Observaciones

    A= [] Crea una matriz vacı́a o eliminatodos los valores de una matrizexistente.

    No elimina la variable única-mente su contenido.

    A(pos) = [] Elimina la posición pos de la va-riable A el valor de b.

    La variable A debe tener una so-la fila o columna. La posiciónpos debe existir en la variable A.

    A(:,col) = [] Elimina la columna col de la va-riable A.

    La columna col debe existir en lavariable A.

    A(fila,:) = [] Elimina la fila fila de la variableA.

    La fila fila debe existir en la va-riable A.

    pos, col, fila pueden ser variables o constantes.

    Tabla 1.6: Instrucciones básicas para elminar valores de matrices

    >>A = [1 1;2 3];B = [2 1;3 2];C = [2 1];D = [3;4];

    >>fila = 1; col = 2; pos = 2;>>C = [ ]C =

    [ ]

    >>D(pos) = [ ]D =

    3

    >>A(fila,:) = [ ]>>A(fila,:) = [ ]>>A(fila,:) = [ ]A =

    2 3

    >>B(:,1) = [ ]B =

    1

    2

    Figura 1.6: Ejemplos de eliminación de valores en matrices

    11

  • LABORATORIO DE SISTEMAS DE CONTROL

    1.4.1. Álgebra LinealEntre las principales operaciones de álgebra lineal están:

    Transponer matrices,

    Calcular determinante y rango de matrices,

    Determinar núcleo, recorrido, valores y vectores propios de matrices.

    Para transponer matrices se usa el apóstrofe después de la matriz. Por ejemplo:

    A’B = A’

    En el ejemplo anterior, A puede ser una variable o una constante y el apóstrofe indica que se ob-tendrá la transpuesta de la matriz y B siempre es una variable. Aunque, hay que tener presente que latransposición incluye que se obtengan los conjugados de los elementos originales de la matriz.

    El determinante de una matriz puede ser obtenido usando la función det en cualquiera de las dosformas que se muestran a continuación:

    det(A )b = det(A)

    Donde:A es una matriz cuadrada y puede ser una constante o una variable.b es una variable donde se almacena el determinante de A.

    Si se desea obtener el rango de una matriz, se usa la función rank como se muestra a continuación:

    rank(A )b = rank(A)

    Donde:A es una matriz y puede ser una constante o una variable.b es una variable donde se almacena el rango de A.

    La primera forma del uso de las funciones det, rank simplemente muestra el resultado de cadafunción, mientras que la segunda lo almacena en otra variable.

    Para encontrar una base para el recorrido de una matriz se puede usar la función orth y para unabase del núcleo se usa la función null. Además, es importante recordar que los vectores de las basesobtenidas con estas funciones son ortonormales. El resultado de estas funciones puede ser asignadoa una variable en la cual se creará una matriz donde las columnas serán los vectores de la baseortonormal. A continuación, algunos ejemplos de su uso:

    12

  • LABORATORIO DE SISTEMAS DE CONTROL

    null(A)orth(A)N= null(A)O= orth(A)

    Los vectores y valores propios de una matriz cuadrada se pueden obtener usando la función eig.La sintaxis es:

    eig(A)r = eig(A)[r,V] = eig(A)

    Adicionalmente, para obtener los coeficientes del polinomio caracterı́stico de una matriz cuadradase puede usar la función poly.

    1.4.2. Gráficos en 2DLas funciones más usadas para realizar gráficos en 2D son: plot y stem. La función plot sirve para

    trazar curvas en el plano cartesiano a partir de la unión, con segmentos, de una serie de puntos (x,y)y sus formas más básica pueden verse en la Tabla 1.7 . En cambio, para graficar los puntos (x,y) enel plano cartesiano se usa la función stem.

    plot(A,’opciones’) Si A es un vector entonces grafica los valores de A versussus ı́ndices. Si A es una matriz mxn asume cada columnacomo un vector y grafica los valores de cada vector versussu posición en la columna. Las opciones son caracteres quedeterminan el color, estilo de la lı́nea y la forma de los mar-cadores de punto.

    plot(x,y,’opciones’) x y y son vectores de igual cantidad de elementos y graficalos elementos de y versus x. Es preferible que x y y seanvectores columna.

    plot(x,Y,’opciones’) x es un vector columna y Y es una matriz pero ambos debentener la misma cantidad de filas. Grafica las columnas de Yversus x. Las 6 primeras curvas tienen un color distinto cadauna, si entre las opciones se omite el color.

    Tabla 1.7: Sintaxis de las formas básicas de la función plot

    Los caracteres que se pueden usar como opciones se muestran en la Tabla 1.8 y deben ir entrecomillas simples uno a continuación del otro y sin espacios. El orden en que debe ser usados estos

    13

  • LABORATORIO DE SISTEMAS DE CONTROL

    Caracter Color Caracter Marcadork negro (blacK) d rombo (Diamond)y amarillo (Yellow) . puntom Magenta o cı́rculoc celeste (Cyan) x equisr rojo (Red) + másg verde (Green) * asteriscosb azul (Blue) s cuadrado (Square)w blanco (White) ˆ triángulo hacia arriba

    Caracter Estilo v triángulo hacia abajo- lı́nea continua > triángulo hacia la derecha: lı́nea punteada < triángulo haca la izquierda-. lı́nea barra-punto p estrella de 5 puntas (Pentagram)-- lı́nea discontinua h estrella de 6 puntas (Hexagram)

    Tabla 1.8: Opciones de la función plot

    caracteres es: primero color, segundo marcador y tercero estilo de lı́nea, aunque puede omitirse cual-quiera de ellos.

    En la Figura 1.7 se muestra el uso de la función plot y de otras funciones para dar formato a losgráficos generados.

    Además de la función plot, hay otras funciones básicas que la complementan y pueden ser revisa-das en la Tabla 1.9. Adicionalmente, hay varias opciones que pueden ser manipuladas directamentecon la interfaz gráfica de la ventana de una figura.

    14

  • LABORATORIO DE SISTEMAS DE CONTROL

    x = [-2:0.1:2]’;

    y = x.^2-1;

    Y = [y 2*y y-x];

    figure(1)

    subplot(2,2,1)

    plot(y,’ko-’)%k =>color negro%o =>marcador circular%- =>linea continua

    grid on

    title(’Ejemplo 1’)

    xlabel(’Indice’)

    ylabel(’Valor’)

    subplot(2,2,2)

    plot(Y,’--’)%-- =>linea entrecortadagrid on

    title(’Ejemplo 2’)

    xlabel(’Fila’)

    ylabel(’Valor’)

    legend(’Columna1’,’Columna2’,’Columna3’)

    subplot(2,2,3)

    plot(x,y,’rv-’)%r =>color rojo%v =>marcador triangular

    inferior

    %- =>linea continuagrid on

    title(’Ejemplo 3’)

    xlabel(’x’)

    ylabel(’y’)

    subplot(2,2,4)

    plot(x,Y)%opciones asumidas por

    omisión

    grid on

    title(’Ejemplo 4’)

    xlabel(’x’)

    ylabel(’Y’)

    legend(’Columna1’,’Columna2’,’Columna3’)

    Figura 1.7: Ejemplos de uso de la función plot

    15

  • LABORATORIO DE SISTEMAS DE CONTROL

    figure() Crea una figura nuevafigure(b) Direcciona las funciones de gráficos a la figura b. b puede ser una

    constante o una variable de tipo entero. Si la figura no existe secrea una nueva.

    subplot(i,j,k) Subdivide el área de la figura en i filas por j columnas y seleccionala posición k contando por filas de izquierda a derecha y de arribahacia abajo. i, j, k son constantes o variables de tipo entero.

    grid on Muestra la cuadrı́cula en el gráfico.grid off Oculta la cuadrı́cula en el gráfico.

    title(’Titulo del Gráfico’) Muestra ’Titulo del Gráfico’ como tı́tulo del gráfico.xlabel(’Tı́tulo de las X’) Muestra ’Tı́tulo de las X’ como tı́tulo del eje de las “X”ylabel(’Tı́tulo de las Y’) Muestra ’Tı́tulo de las Y’ como tı́tulo del eje de las “Y”

    legend(’curva1’,’curva2’,...) Muestra un cuadro de legenda con los nombres de las curvas:’curva1’, ’curva2’, etc. Se debe incluir un nombre por cada curvagraficada.

    Tabla 1.9: Funciones básicas complementarias para realizar gráficas

    1.4.3. Instrucciones de Control de Flujo de programaLas instrucciones de control de flujo de programa son aquellas que permiten decidir que parte del

    programa se va a ejecutar dependiendo del cumplimiento de ciertas condiciones. Estas instruccionespermiten crear condicionales y lazos.

    La primera instrucción de control de flujo que se analizará es if/elseif/else/end que permite tomarla decisión de que parte del código del programa se ejecutará y tiene la siguiente sintaxis:

    if expresióninstrucciones

    elseif expresióninstrucciones

    elseinstrucciones

    endEn la sintaxis de la cláusula if/elseif/else/end usar elseif/else es opcional pero if/end es obligato-

    rio. La idea tras esta cláusula es: si la expresión es verdadera entonces se ejecutan las instruccionessiguientes caso contrario se salta hasta la siguiente cláusula y se repite el proceso hasta llegar a lacláusula end. Sin embargo, si llega a la cláusula else se ejecutan sus instrucciones directamente yaque en esta cláusula no hay expresión que evaluar. Frecuentemente, expresión está formada de com-paraciones y/u operaciones lógicas, de las cuales las principales se muestran las Tablas 1.10 y 1.11.

    16

  • LABORATORIO DE SISTEMAS DE CONTROL

    Sı́mbolo Significado> Mayor que,< Menor que,>= Mayor o igual que,

  • LABORATORIO DE SISTEMAS DE CONTROL

    >>p1 = [1 2 -8]p1 =

    1 2 -8

    >>p2 = [2 4 5 1]p2 =

    2 4 5 1

    >>conv(p1,p2)ans =

    2 8 -3 -21 -38 -8

    >>p3=conv(p1,p2)p3 =

    2 8 -3 -21 -38 -8

    >>x = roots(p1)x =

    -4

    2

    >>y =polyval(p3,2)y =

    0

    >>y =polyval(p3,4)y =

    3408

    Figura 1.8: Ejemplos de funciones para polinomios

    ADVERTENCIA:Cuando se desee realizar la suma o resta de polinomios usando vectores con sus coeficientes hay quedeterminar el polinomio de mayor orden y en los vectores que representan los polinomios de menororden completar con cero los términos no presentes, luego se puede usar la operación de suma oresta de matrices.

    Otra función para trabajar con fracciones de polinomios es residue que calcula los coeficientes ypolos obtenidos al separar una fracción polinomial en fracciones parciales o los coeficientes de lospolinomios del numerador y del denominador a partir de los coeficientes y polos de una fracciónparcial.

    Muchas veces es importante saber las dimensiones de una matriz y para este fin se pueden usar lasfunciones size o length. La función size obtiene las dimensiones de una matriz, es decir el númerode filas y el número de comunas, mientras que la función length obtiene la dimensión más grande deuna matriz. La función length se acostumbra a usarla con vectores.

    También es muy común, cuando se crean scripts, tener que interactuar con el usuario para queingrese datos o mostrarle resultados. La función input se utiliza para pedir al usuario que ingrese undato (matriz numérica o cadena de caracteres) y la función display muestra resultados.

    Cuando se desea eliminar variables de la memoria se usa el comando clear con la siguiente sinta-xis:

    clear var1 var2 . . .clear all

    La primera forma mostrada del comando clear es usada para eliminar de la memoria las variables

    18

  • LABORATORIO DE SISTEMAS DE CONTROL

    var1, var2 y ası́ todas las listadas. En cambio la segunda forma del comando clear elimina todas lasvariables de la memoria.

    En la Figura 1.9 se muestran dos ejemplos de script usando instrucciones de MATLAB R© .

    Script Resultado%script para verificar si un número es perfecto

    %===============================================

    %Limpia variables del Workspace

    clear all

    %Limpia la Ventana de Comandos

    clc

    %Pide que se ingrese el número

    a = input(’Ingrese un número entero mayor que 1: ’);

    %Inicializa el acumulador

    s = 0;

    if a>1%Si a es mayor que 1, suma sus divisores

    for i = 1:a-1

    if mod(a,i) == 0

    s = s+i;

    end

    end

    end

    %Si la suma de los divisores es igual al número ingresado

    if s==a

    display(’El número es perfecto’);

    else

    display(’El número NO es perfecto’);

    end

    Primera corrida:Ingrese un número entero mayor que 1: 20

    El número NO es perfecto

    Segunda corrida:Ingrese un número entero mayor que 1: 6

    El número es perfecto

    Figura 1.9: Ejemplos de uso de instrucciones en MATLAB R©

    1.4.5. Toolbox de ControlEl Toolbox de Control nos permite trabajar básicamente con sistemas representados en espacio de

    estados 2 o función de transferencia. Además, el toolbox provee herramientas para diseñar sistemasde control aplicando las diferentes técnicas que se estudian en el curso de Control Automático y seanalizarán en otros capı́tulos.

    En este capı́tulo se revisarán funciones para realizar los siguientes grupos de acciones:

    Representación de sistemas LTI 3 SISO 4 usando funciones de transferencia o espacio de esta-dos.

    2A la representación en espacio de estados también se la conoce como variables de estado3Sistemas LTI son sistemas Lineales e Invariantes en el Tiempo (Linear Time Invariant)4Sistemas SISO son aquellos que tienen una entrada y una salida (Single Input Single Output)

    19

  • LABORATORIO DE SISTEMAS DE CONTROL

    Reducción de modelos interconectados usando álgebra de bloques.

    Determinación de caracterı́sticas del sistema.

    Simulación de respuesta en el tiempo de los sistemas usando diferentes tipos de entradas.

    Las funciones de transferencia de sistemas SISO pueden ser creadas usando: tf o zpk. La primeracrea la función construye la función de transferencia a partir de los coeficientes del numerador y deldenominador; mientras que la segunda requiere un listado de ceros, otro de polos y la ganancia delsistema. En ambos casos los argumentos son vectores fila excepto la ganancia que es un escalar.

    Las representaciones en espacio de estados se realizan usando la función ss y requiere como ar-gumentos para un sistema SISO:

    Matriz de Estados: Primer argumento de la función y tiene que ser una matriz cuadrada.

    Matriz de Entradas: Segundo argumento de la función y es un vector columna con la misma can-tidad de filas que la matriz de estados.

    Matriz de Salidas: Tercer argumento de la función y es un vector fila con igual cantidad de colum-nas que la matriz de estados.

    Matriz de Transmisión Directa: Cuarto argumento de la función y es un escalar, generalmente 0.

    La interconexión de dos bloques5 puede ser: serial, paralelo, retroalimentación. Las funciones pa-ra obtener los bloques equivalentes se muestran en la Tabla 1.12 y en la Figura 1.10 se ilustran lasinterconexiones.

    Interconexión Sintaxis Función Sintaxis OperadorSerie series(sys1,sys2) sys1 * sys2

    Paralelo parallel(sys1,sys2) sys1 + sys2Paralelo parallel(sys1,-sys2) sys1 - sys2

    Retroalimentación negativa feedback(sys1,sys2) –Retroalimentación positiva feedback(sys1,sys2,+1) –

    Tabla 1.12: Sintaxis de funciones y operadores para interconexión de bloques

    5Cada bloque es la representación gráfica de un sistema y puede tener asociado una función de transferencia o unarepresentación en espacio de estados.

    20

  • LABORATORIO DE SISTEMAS DE CONTROL

    (a) Serie

    (b) Paralelo (c) Retroalimentación

    Figura 1.10: Interconexiónes de Bloques

    Además, después de realizar una reducción de bloques es conveniente usar la función minrealpara simplificar el resultado obtenido.

    Se puede obtener información de los sistemas usando las funciones mostradas en la Tabla 1.13.Esta información puede ser:

    polos,

    ceros,

    coeficientes del numerador y del denominador de la función de transferencia,

    matrices del espacio de estados

    21

  • LABORATORIO DE SISTEMAS DE CONTROL

    Sintaxis Comentario

    pole(sys)p = pole(sys)

    Calcula los polos de un sistema. El argumento sys puede seruna función de transferencia o un espacio de estados.Además, sys puede ser una variable o una función constructorade sistemas lineales (tf, zpk, ss).

    zero(sys)z = zero(sys)

    Calcula los ceros de un sistema. El argumento sys puede seruna función de transferencia o un espacio de estados.Además, sys puede ser una variable o una función constructorade sistemas lineales (tf, zpk, ss).

    pzmap(sys) Grafica los polos y ceros de un sistema en el plano complejo.El argumento sys puede ser una variable o una función cons-tructora de sistemas lineales (tf, zpk, ss).

    [num,den] = tfdata(sys,’v’) Obtiene los coeficientes de los polinomios del numerador y deldenominador y los escribe en las variables num y den.

    [A,B, C, D] = ssdata(sys) Obtiene las matrices que definen el espacio de estado sys y losescribe en las variables A, B, C, D.

    Tabla 1.13: Funciones para obtener información de sistemas

    Por último, las funciones más usadas para graficar la respuesta en el tiempo de los sistemas son:step e impulse. Ambas funciones toman como argumento un sistema lineal, y generan los gráficosde respuesta a una entrada escalón o impulso, respectivamente.

    22

  • LABORATORIO DE SISTEMAS DE CONTROL

    Reduzca el sistema mostrado usando álgebra de bloques sabiendo que:

    G1 =3s+ 6

    s2 + 5s+ 4G2 =

    s+ 4s+ 3

    G3 =4

    s2 + 3s+ 2G4 =

    2(s+ 5)(s+ 3)(s+ 6)

    Luego, obtenga sus polos y ceros y grafique la respuesta a una entrada escalón y a una entradaimpulso.

    (a) Sistema original

    (b) Solución

    (c) Resultados numéricos

    (d) Resultados numéricos

    (e) Respuesta a una entrada escalón unitario (f) Respuesta a una entrada impulso

    Figura 1.11: Ejemplo de funciones del Toolbox de Control

    23

  • LABORATORIO DE SISTEMAS DE CONTROL

    1.4.6. Toolbox SimbólicoEste toolbox permite obtener respuestas algebraicas de problemas. Para alcanzar este objetivo es

    necesario primero crear una variable simbólica, luego se construyen expresiones y funciones simbóli-cas, y finalmente se utilizan las funciones para resolver los problemas. La sintaxis de las funcionesse muestran en la Tabla 1.14 y algunos ejemplos de uso en la Figura 1.12.

    Sintaxis Descripción Comentariosyms var1 var2 . . . Construye las variables

    simbólicas var1 var2 y ası́sucesivamente todas lasvariables listadas.

    solve(expresion) Si expresion es una funcióncalcula los ceros, pero si esuna ecuación calcula sus so-luciones.

    expresion debe tener varia-bles simbólicas.

    solve(expresion,var1) Despeja la variable var1 en laecuación ingresada en expre-sion.

    La variable var1 debe estar enexpresion.

    diff(expresion,var1) Calcula la derivada de expre-sion respecto de la variablevar1.

    expresion debe ser una fun-ción simbólica. Si expresiontiene más de una variable diffcalcula la derivada parcial.

    int(expresion,var1) Calcula la integral de expre-sion respecto de la variablevar1.

    subs(expresion,viejo,nuevo) Reemplaza viejo con nuevoen expresion

    fplot(expresion) Grafica expresion en el planocartesiano.

    Entre otros casos expresionpuede ser una ecuación de dosvariables, una función de unavariable o una función pa-ramétrica.

    Tabla 1.14: Principales funciones del Toolbox Simbólico

    24

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 1.12: Ejemplo de algunas funciones del Toolbox Simbólico

    25

  • Simulink

    2.1. AntecedentesSimulink es una interfaz gráfica que está incluida dentro del programa MATLAB R© para realizar

    simulaciones de manera muy sencilla porque se pueden expresar las ecuaciones que modelan un sis-tema mediante la interconexión de bloques configurables.

    Otra caracterı́stica importante del Simulink, es que puede realizar simulaciones aplicando dis-tintos métodos numéricos para sistemas continuos o discretos, e incluso se puede interactuar conhardware en tiempo real.

    Como resultado de las caracterı́sticas mencionadas de Simulink, los estudiantes pueden realizar,con relativa facilidad, simulaciones de los controladores diseñados y de los sistemas estudiados, paraconfirmar los resultados predichos en sus análisis.

    Dentro de MATLAB R©, para trabajar con Simulink, lo más común es que primero se abra labiblioteca de Simulink, lo que se puede realizar de varias formas:

    En el Command Window, ejecutar el comando simulink.

    Hacer click en el botón .

    Luego de la acción anterior, se abre una ventana de la biblioteca de toolboxes y bloques disponi-bles en Simulink como la que se muestra en la Figura 2.1, donde se pueden apreciar algunas de lascategorı́as y subcategorı́as que agrupan los bloques de Sinulink. De estas categorı́as, para el curso desistemas de control, nos vamos a enfocar en:

    Simulink:

    • Continuous.• Math Operation.

    26

  • LABORATORIO DE SISTEMAS DE CONTROL

    • Signal Routing.• Sinks.• Sources.

    Control System Toolbox.

    A continuación, para abrir un modelo en blanco hay que hacer click en el botón , con lo cualse abrirá una nueva ventana con un área de trabajo que parece un lienzo en blanco como se nuestraen la Figura 2.2. En esta área de trabajo se construirá el modelo del sistema que se desea simular

    Figura 2.1: Biblioteca de Simulink

    27

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.2: Modelo Nuevo en Simulink

    agregando elementos desde la biblioteca de Simulink u otros modelos, e interconectándolos.

    −+ 5Vv

    20Ω

    100µF+

    −vC 800mH

    iL

    Figura 2.3: Circuito RLC

    2.1.1. Ejemplo BásicoA continuación se modelará y simulará el sistema mostrado en la Figura 2.3. Para este fin, se

    plantean las ecuaciones 2.1 y 2.2 que rigen del sistema.

    28

  • LABORATORIO DE SISTEMAS DE CONTROL

    v− vC20

    = 0,0001dvCdt

    + iL (2.1)

    vC = 0,8diLdt

    (2.2)

    A continuación, para facilitar la construcción del modelo en Simulink, se despejarán las derivadasen las ecuaciones 2.1 y 2.2.

    10000(

    v− vC20− iL

    )=

    dvCdt

    (2.3)

    1,25vC =diLdt

    (2.4)

    El siguiente paso es construir las ecuaciones 2.3 y 2.4 usando los siguientes bloques de Simulink:

    Step: Se encuentra en “Simulink/Sources”. Se lo usará para representar la fuente de voltaje.

    Gain: Localizado en “Simulink/Math Operation”. Servirá para implementar las constantes que mul-tiplican a las variables, por lo tanto se requerirá de tres de estos bloques.

    Sum: Ubicado en “Simulink/Math Operation”. Se lo utilizará para representar sumas o restas. Senecesitarán dos de éstos.

    Integrator: Está en “Simulink/Continuous”. Con este bloque se podrá obtener la variable a partirde su derivada, por lo cual se usarán dos.

    Scope: Ubicado en “Simulink/Sinks”. Se lo usará para visualizar el comportamiento de iL.

    Con la definición los bloques requeridos para construir el modelo en Simulink, es más fácil pro-ceder a agregarlos en el modelo nuevo desde la biblioteca y se los puede organizar como se muestraen la Figura 2.4.

    A continuación se configurarán e interconectarán los bloques. Para configurar un bloque se debehacer doble click en este y ası́ abrir su cuadro de diálogo de configuración. En el desarrollo de esteejemplo se incluirán solamente los cuadros de diálogo y una referencia de cuál bloque representan deacuerdo al nombre que lo identifica en la figura 2.4. Una vez realizado el cambio en la configuración

    del bloque se debe hacer click en en botón del cuadro de diálogo del bloque que se estéconfigurando para que los cambios sean realizados y se cierre el cuadro de diálogo.

    29

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.4: Bloques para la simulación del circuito RLC

    Step: En este bloque se configurará el tamaño del paso cambiando el valor final del “Step”, lo querepresenta el encendido de la fuente.

    30

  • LABORATORIO DE SISTEMAS DE CONTROL

    Gain: Este bloque se lo configurará con una ganancia de 1/20.

    Gain1: Este bloque se lo configurará con una ganancia de 10000.

    31

  • LABORATORIO DE SISTEMAS DE CONTROL

    Gain2: Este bloque se lo configurará con una ganancia de 1,25.

    Sumadores: Ambos bloques “sum ” deben trabajar como diferencia, y para lograr ésto se edita lalista de signos.

    32

  • LABORATORIO DE SISTEMAS DE CONTROL

    En este bloque, cuando se desee dejar un espacio adicional entre los signos se usa el caracter |.

    Además, se debe tener en cuenta que los bloques no mencionados son los que no requieren confi-guración adicional para el desarrollo del ejemplo.

    A continuación se conectarán los bloques, para lo cual el procedimiento más sencillo es presionarel botón izquierdo del ratón en la entrada de un bloque y arrastrar hasta la salida de otro o hasta algúnhilo que transporte la señal deseada. Luego de realizar todas las conexiones, el modelo debe lucircomo se muestra en la figura 2.5.

    33

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.5: Modelo construido para la simulación del circuito RLC

    Luego hay que hacer click sobre el botón para iniciar la simulación y cuando esta terminese puede hacer doble click sobre el bloque “Scope” para ver el comportamiento de iL. Se abre unaventana similar a la mostrada en la figura 2.6a, donde es difı́cil apreciar el comportamiento de lacorriente en el inductor debido a la escala usada. Para mejorar la escala del gráfico hay que hacer

    click en el botón para que ajuste automáticamente la escala de los ejes y se obtiene el gráficomostrado en la figura 2.6b.

    Adicionalmente, en la figura 2.6b se puede observar que el cambio de la corriente se estabiliza enmenos de 1 segundo, por lo cual cambiaremos el tiempo de duración de la simulación a 1,5 segundosy se ejecuta nuevamente la simulación, obteniéndose el resultado mostrado en la figura 2.6c.

    La simulación del sistema también puede realizarse usando variables de estado para lo cual senecesita determinar las matrices: A,B,C,D del sistema. Para obtener estas matrices primero se debenexpresar las ecuaciones diferenciales del sistema en forma matricial, que no es única. En las ecua-ciones 2.5 y 2.6 se muestra una de las representaciones posibles.

    34

  • LABORATORIO DE SISTEMAS DE CONTROL

    (a) Simulación del circuito RLC (b) Simulación del circuito RLC con la escalaajustada

    (c) Simulación del circuito RLC con la escalaajustada

    Figura 2.6: Resultado de las simulaciones al cambiar escalas y duración.

    35

  • LABORATORIO DE SISTEMAS DE CONTROL

    (a) Modelo en variables de estado para simular el circuito RLC

    (b) Configuración del bloque “State-Space” para el circuito RLC

    Figura 2.7: Modelo y configuración de parámetros del circuito RLC usando variables de estado

    36

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.8: Simulación del circuito RLC usando variables de estado

    [v̇C˙iL

    ]=

    [−500 −100001,25 0

    ][vCiL

    ]+

    [5000

    ]v (2.5)

    iL =[0 1

    ][vCiL

    ]+ 0v (2.6)

    A partir de las ecuaciones 2.5 y 2.6 se concluye que los valores de las matrices A,B,C,D son:

    A =[−500 −100001,25 0

    ](2.7)

    B =[

    5000

    ](2.8)

    C =[0 1

    ](2.9)

    D = [0] (2.10)

    Con los valores obtenidos de las matrices A,B,C,D se puede usar el bloque “State-Space” en lacategorı́a “Simulink/Continuous” y el modelo en Simulink lucirá como en la figura 2.7a. Además, laconfiguración de los parámetros del bloque se pueden observar en la figura 2.7b y el resultado de la

    37

  • LABORATORIO DE SISTEMAS DE CONTROL

    simulación se lo puede ver en la figura 2.8.

    Otra forma de realizar la simulación del circuito RLC mostrado es obteniendo la función de trans-ferencia aplicando la transformada de Laplace a las ecuaciones diferenciales y despejando la salidadeseada respecto de la entrada; en este caso la salida es iL y la entrada es v.

    10000(

    V −VC20

    − IL)

    = sVC (2.11)

    1,25VC = sIL (2.12)

    ⇒ 1,25(

    500V −10000ILs+ 500

    )= sIL (2.13)

    ⇒ 625V = IL(s2 + 500s+ 12500) (2.14)

    ⇒ IL(s) =(

    625s2 + 500s+ 12500

    )V (s) (2.15)

    ⇒ G(s) = 625s2 + 500s+ 12500

    (2.16)

    La ecuación 2.16 sirve para simular el circuito RLC usando el bloque “Transfer Fcn”. En la figura2.9a se puede observar el modelo construido en Simulink, mientras, que en la figura 2.9b los paráme-tros de configuración del bloque “Transfer Fcn” y en la figura 2.10 el resultado de la simulación.

    Se debe añadir, que al configurar los bloques es recomendable usar variables presentes en elWorkspace o funciones de MATLAB R© en los cuadros de texto lo cual permite la interacción entrescripts de MATLAB R© y modelos de Simulink.

    Adicionalmente, en caso de que no se haya notado, cuando se abre el cuadro de diálogo para con-figurar un bloque se puede ver que el texto en la barra de tı́tulo incluye el nombre del bloque que seestá configurando.

    38

  • LABORATORIO DE SISTEMAS DE CONTROL

    (a) Modelo en función de transferencia para simular el circuito RLC

    (b) Configuración del bloque “Transfer-fcn” para el circuito RLC

    Figura 2.9: Modelo y configuración de parámetros del circuito RLC usando función de transferencia

    39

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.10: Simulación del circuito RLC usando función de transferencia

    2.1.2. Biblioteca de Bloques de SimulinkAhora que ya se tiene una idea de como trabajar en Simulink, se revisarán los bloques más usados

    en este curso agrupados por categorı́a.

    Categorı́a Simulink/Continuous

    En esta categorı́a están los bloques que representan cambios continuos en el tiempo y que gene-ralmente pueden ser expresados matemáticamente como ecuaciones diferenciales. En esta categorı́alos bloques más usados son:

    Transfer Fcn:Sirve para implementar funciones de transferencia donde se conocen los coeficientes de lospolinomios del numerador y del denominador. Los parámetros que generalmente se configuranen este bloque son:

    40

  • LABORATORIO DE SISTEMAS DE CONTROL

    Numerator coefficients→ Coeficientes del numerador:Puede ser un vector o una matriz con los coeficientes de los polinomios del numerador.La cantidad de elementos en la salida es igual al número de filas en este parámetro.

    Denominator coefficients→ Coeficientes del denominador:Es un vector con los coeficientes del polinomio del denominador.

    Los polinomios del numerador y del denominador son polinomios de potencias de “s” ordena-das de manera descendente. El cuadro de diálogo pude verse en la figura 2.9b.

    Zero-Pole:Se utiliza para implementar una función de transferencia cuando se conocen los polos y cerosde ésta. Los parámetros que usualmente se configuran son:

    Zeros→ Ceros:Puede ser un vector o una matriz con los ceros de la función de transferencia. La canti-dad de elementos en la salida es igual al número de columnas en este parámetro pero sisolamente tiene una fila entonces tiene una salida.

    Poles→ Polos:Es un vector con los polos de la función de transferencia.

    Gain→ Ganancia:Es un vector con el factor común de los polinomios de la función de transferencia.

    En la figura 2.11 se puede observar el cuadro de configuración de este bloque.

    41

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.11: Cuadro de configuración del bloque Zero-Pole

    State-Space:Este bloque sirve para implementar un sistema en variables de estado y se debe conocer las ma-trices A, B, C, D que definen el sistema. Además, este bloque tiene la gran ventaja de permitirla representación de sistemas de múltiples entradas y múltiples salidas con un sólo bloque. Elcuadro de configuración se lo puede observar en la figura 2.7b y los parámetros que general-mente se configuran son:

    42

  • LABORATORIO DE SISTEMAS DE CONTROL

    A:Matriz de estados.

    B:Matriz de entradas.

    C:Matriz de salidas.

    D:Matriz de transmisión directa.

    Integrator:Con este bloque se puede calcular la integral de una señal escalar o de un vector de señales. Enla figura 2.12 se puede observar el cuadro de configuración del bloque, pero los campos quemás comúnmente editados son:

    Initial condition→Condición inicial:Es una constante o un vector con los valores de las condiciones iniciales de integraciónde las señales que entran al bloque. Sólo es editable cuando en el campo “Initial condi-tion source” está seleccionado el elemento “internal” que es la opción seleccionada poromisión.

    Limit output→Limitar salida:Es un cuadro de selección para habilitar la saturación de la salida del integrador.

    Upper saturation limit→Lı́mite superior de la saturación:Es un escalar o un vector que indican las salidas máximas del integrador.

    Lower saturation limit→Lı́mite inferior de la saturación:Es un escalar o un vector que indican las salidas mı́nimas del integrador.

    43

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.12: Cuadro de configuración del bloque Integrator

    Transport Delay:Este bloque permite implementar retraso en el tiempo para una señal. El cuadro de configura-

    44

  • LABORATORIO DE SISTEMAS DE CONTROL

    ción se lo muestra en la figura 2.13 y los campos que generalmente se editan son:

    Time delay→Tiempo de retraso:Es el tiempo que tiene que transcurrir para que en la salida del bloque se vean los valoresque fue tomando la entrada.

    Initial output→Salida inicial:Es el valor que tomará la salida del bloque mientras el tiempo de simulación sea menoral tiempo de retraso.

    Figura 2.13: Cuadro de configuración del bloque Transport Delay

    45

  • LABORATORIO DE SISTEMAS DE CONTROL

    Categorı́a Simulink/Discontinuities

    En esta categorı́a están algunos bloques que pueden generar saltos y otros que simplemente tienenno linealidades, pero en este documento sólo se analiza el bloque “Saturation”.

    Saturation:Este bloque sirve para limitar los valores que puede tomar una señal entre un máximo y unmı́nimo. El cuadro de configuración de este bloque puede verse en la figura 2.14. Los paráme-tros que generalmente se configuran en este bloque son:

    Figura 2.14: Cuadro de configuración del bloque Saturation

    Upper limit→Lı́mite superior:Es un escalar o un vector con los valores máximos que pueden tomar las señales queentran al bloque.

    46

  • LABORATORIO DE SISTEMAS DE CONTROL

    Lower limit→Lı́mite inferior:Es un escalar o un vector con los valores mı́nimos que pueden tomar las señales que en-tran al bloque.

    Categorı́a Simulink/Math Operations

    Aquı́ se encuentran bloques que permiten aplicar funciones matemáticas sobre las señales queentran a un bloque o realizar operaciones matemáticas con las señales.

    Gain:Este bloque sirve para implementar la multiplicación de un escalar o una matriz por la señalde entrada. Los parámetros más comúnmente configurados son:

    Figura 2.15: Cuadro de configuración del bloque Gain

    Gain→Ganancia: Es el escalar, vector o matriz que se multiplicará por la entrada.

    47

  • LABORATORIO DE SISTEMAS DE CONTROL

    Multiplication→Multiplicación: Es una lista desplegable donde se escoge el tipo de multi-plicación que se usará:

    Element-wise: Sirve para multiplicar la los elementos de la matriz ingresada en“Gain” por los elementos de la entrada.

    Matrix(K*u): Se lo utiliza para realizar la multiplicación matricial de la matriz in-gresada en el parámetro “Gain” y la entrada del bloque, en ese orden.

    Matrix(u*K): Se lo utiliza para realizar la multiplicación matricial de la entrada delbloque y la matriz ingresada en el parámetro “Gain”, en ese orden.

    Cuando el parámetro “Gain” tiene un escalar no importa cual de los tres casos seescoja siempre realizará la operación escalar por matriz.

    Sum:Sirve para sumar las entradas del bloque, teniendo en cuenta que la cantidad de elementos decada señal de entrada debe ser la misma. El cuadro de configuración de este bloque puede ob-servarse en la figura 2.16.

    El parámetro que generalmente se configura en este bloque es “List of signs” cuyo valor es unacadena de caracteres que pueden ser: +,−,|, que sirven para indicar que la entrada se suma, seresta o que no existe, respectivamente.

    48

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.16: Cuadro de configuración del bloque Sum

    Product:Con este bloque se pueden implementar la multiplicación o división de dos o más señales enlas entradas. El cuadro de configuración se muestra en la figura 2.17 y las propiedades quegeneralmente se editan son:

    49

  • LABORATORIO DE SISTEMAS DE CONTROL

    Figura 2.17: Cuadro de configuración del bloque Product

    Number of imputs→Número de entradas:Cuando se ingresa un número mayor que uno genera esa cantidad de entradas paraser multiplicadas. Aunque, también se puede ingresar una cadena de caracteres con lossı́mbolos: ∗,/, que definen si la entrada es un multiplicando o un divisor.

    Multiplication→Multiplicación:Es un campo con una lista desplegable donde se puede seleccionar entre:

    Element-wise(.*): Sirve para realizar la operación de MATLAB R© “.∗” o “./” con lasentradas del bloque dependiendo de los signos en el campo “Number of inputs”.

    50

  • LABORATORIO DE SISTEMAS DE CONTROL

    Matrix(*): Sirve para realizar la multiplicación de matrices o multiplicación por lainversa de una matriz dependiendo de los signos en el campo “Number of inputs”.

    Math Function:Con este bloque se pueden implementar varias operaciones matemáticas como exponenciales,logaritmos y potencias. En la figura 2.18 y el parámetro que se suele configurar es “Function”que consiste de una lista desplegable donde se selecciona la función que se desea ejecutar.

    Figura 2.18: Cuadro de configuración del bloque Math Function

    Sqrt:Este bloque es útil para implementar la raı́z cuadrada de un número.

    51

  • LABORATORIO DE SISTEMAS DE CONTROL

    Trigonometric Function:Este bloque permite implementar funciones trigonométricas, hiperbólicas o sus inversas. Es-tas funciones se las pueden seleccionar de la lista desplegable en el parámetro “Function”.Además, hay que tener en cuenta que para las funciones trigonométricas la entrada tiene queestar en radianes.

    Figura 2.19: Cuadro de configuración del bloque Trigonometric Function

    Categorı́a Simulink/Signal Routing

    En esta categorı́a se encuentran bloques que permiten simplificar la conexión de los bloques. Aquı́se analizarán: mux y demux que sirven para concatenar o seleccionar señales.

    52

  • LABORATORIO DE SISTEMAS DE CONTROL

    Demux:Este bloque extrae las componentes de una señal y las devuelve como variables separadas.

    Mux:La función de este bloque es combinar las entradas en un solo vector de salida.

    53