Luis M. Bergasa.Departamento de Electrónica 1 Luis Miguel Bergasa Pascual Departamento de Electrónica. Universidad de Alcalá. Email:
[email protected] LABORATORIO DE CONTROL NEURONAL Y BORROSO PRÁCTICA 1 Diseño y simulación de un controlador borroso de un péndulo invertido en entorno MATLAB/SIMULINK Luis M. Bergasa. Departamento de Electrónica 2 MODELO FÍSICO DE UN PÉNDULO MODELO FÍSICO DE UN PÉNDULO INVERTIDO (I) INVERTIDO (I) F: fuerza aplicada al carrito. M: peso del carrito. θ : ángulo de inclinación del péndulo m: peso de la varilla. x: posición del carrito. L: longitud de la varilla. g: aceleración de la gravedad. Luis M. Bergasa. Departamento de Electrónica 3 MODELO FÍSICO DE UN PÉNDULO MODELO FÍSICO DE UN PÉNDULO INVERTIDO (II) INVERTIDO (II) • Aplicando las ecuaciones de la dinámica de sólidos rígidos en movimiento plano al carrito y a la varilla: x M F x & & ∑ = N H x M F µ + + = & & ∑ = 0 y F V Mg N + = ∑ ⋅ = x x a m F θ θ θ θ sen cos 2 ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ + = & & & & & l m l m x m H ∑ ⋅ = y y a m F θ θ θ θ cos sen 2 ⋅ ⋅ ⋅ − ⋅ ⋅ ⋅ − = & & & l m l m mg V ∑ ⋅ = θ & & I M 3 cos sen 2 θ θ θ & & ⋅ ⋅ = ⋅ ⋅ − ⋅ ⋅ l m H l V l m M l m F x + ⋅ − ⋅ ⋅ ⋅ + = ) cos sen ( 2 θ θ θ θ & & & & & ( ) + ⋅ − ⋅ ⋅ ⋅ ⋅ + ⋅ + − = m M m l l m F m M g θ θ θ θ θ θ 2 2 cos 3 4 sen cos sen & & & Luis M. Bergasa. Departamento de Electrónica 4 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (I) PÉNDULO INVERTIDO (I) • 1entrada F y 4 salidas: ang, dang, x y dx • Utilizar los bloques Fcn de SIMULINK para implementar las ecuaciones anteriores • Los parámetros (g,m,M,l) se definirán mediante variables • Asignar bloques de entrada y salida para las variables Fuerza PENDULO INVERTIDO Ángulo Velocidad angular Posición x Velocidad lineal Luis M. Bergasa. Departamento de Electrónica 5 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (II) PÉNDULO INVERTIDO (II) Luis M. Bergasa. Departamento de Electrónica 6 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (III) PÉNDULO INVERTIDO (III) • Agrupación de todos los bloques: botón derecho “Create Subsystem” • Enmascarar el bloque: botón derecho “Mask subsystem” • Icon: – Drawing commands: plot(-4,-1,4,6,[0 3 2.8 -0.2 0],[1 5 5.15 1.15 1],[-1 -1 1 1 -1], [1 0 0 1 1],[-3.5 3.5],[0 0]). Dibuja el símbolo del péndulo en el bloque – Examples of drawing command: port_label(label specific ports) • Parameters: – Condiciones Iniciales (ángulo, vel_ang, pos, vel_lineal) • Variable: init_cond – Especificaciones Fisicas ( L, m, M, g) • Variable: specs • Initialization commands:L=specs(1)/2; m=specs(2); M=specs(3); g=specs(4); Indica como se asignan los datos iniciales a introducir por el usuario a las variables • Initialization: – l=specs(1)/2;m=specs(2);M=specs(3);g=specs(4); • Documentation: – Mask type: Pendulo – Mask Description:Péndulo invertido (móvil y barra) – Mask Help: Ecuaciones de un péndulo invertido con su carretilla y su barra. Es el mensaje que saldrá cuando se teclee la ayuda • Una vez enmascarado el bloque para poder acceder a su interior de nuevo hay que desenmascararlo Luis M. Bergasa. Departamento de Electrónica 7 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (IV) PÉNDULO INVERTIDO (IV) Luis M. Bergasa. Departamento de Electrónica 8 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (V) PÉNDULO INVERTIDO (V) Luis M. Bergasa. Departamento de Electrónica 9 MODELO EN SIMULINK DEL MODELO EN SIMULINK DEL PÉNDULO INVERTIDO (VI) PÉNDULO INVERTIDO (VI) Luis M. Bergasa. Departamento de Electrónica 10 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (I) BORROSO CON MATLAB (I) E NTRADA SALIDA FIS Editor REGLAS Rule Editor Términos de Términos de Membership Function Entrada Salida Editor (interpretar) (asignar) Luis M. Bergasa. Departamento de Electrónica 11 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (II) BORROSO CON MATLAB (II) • FIS EDITOR Luis M. Bergasa. Departamento de Electrónica 12 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (III) BORROSO CON MATLAB (III) • MEMBERSHIP FUNCTION EDITOR Luis M. Bergasa. Departamento de Electrónica 13 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (IV) BORROSO CON MATLAB (IV) • RULE EDITOR Luis M. Bergasa. Departamento de Electrónica 14 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (V) BORROSO CON MATLAB (V) • RULE VIEWER Luis M. Bergasa. Departamento de Electrónica 15 CONSTRUCCIÓN DE UN SISTEMA CONSTRUCCIÓN DE UN SISTEMA BORROSO CON MATLAB (VI) BORROSO CON MATLAB (VI) • SURFACE VIEWER Luis M. Bergasa. Departamento de Electrónica 16 DISEÑO DEL CONTROLADOR DISEÑO DEL CONTROLADOR BORROSO (I) BORROSO (I) • Pegar en una hoja de simulink el modelo del péndulo • Añadir de la librería de simulink: Fuzzy Logic Toolbox el bloque Fuzzy Logic Controller • Introducir como parámetro del controlador FIS File or Structure una etiqueta: fismatrix • Cargar en el fichero de inicialización “initcp.m” la matriz del controlador a la etiqueta: – fismatrix=readfis(‘controlador.fis’) CONTROL BORROSO PENDULO INVERTIDO Posición x Ángulo Velocidad angular Velocidad lineal Pos. Final + _ Luis M. Bergasa. Departamento de Electrónica 17 DISEÑO DEL CONTROLADOR DISEÑO DEL CONTROLADOR BORROSO (II) BORROSO (II) % INITCP Fichero de inicialización de variables % Copyright 1994-2000 The MathWorks, Inc. % $Revision: 1.8 $ global AnimCpFigH AnimCpAxisH winName = bdroot(gcs); fprintf('Initializing ''fismatrix'' in %s...\n', winName); fismatrix = readfis(‘controlador.fis'); fprintf('Done with initialization.\n'); Luis M. Bergasa. Departamento de Electrónica 18 DISEÑO DEL CONTROLADOR DISEÑO DEL CONTROLADOR BORROSO (III) BORROSO (III) • Complete el esquema de Simulink Luis M. Bergasa. Departamento de Electrónica 19 DATOS A PRESENTAR DATOS A PRESENTAR • Modelo en SIMULINK del péndulo • Tipo de controlador diseñado, método AND, OR, Implicación, Agregación y Defuzzificación utilizado. • Funciones de pertenencia para las variables de entrada-salida • Reglas utilizadas • Superficie de salida del sistema borroso • Gráficas de la evolución de las variables (ángulo del péndulo, velocidad angular del péndulo, error de posición, velocidad del carrito y fuerza aplicada) para los siguientes casos: – a) Posición final de 1m partiendo de condiciones iniciales nulas, es decir, posición inicial del carrito en el centro del carril y el péndulo inicialmente en equilibrio. – b) Posición final de 1 m partiendo de una inclinación inicial del péndulo de 0.4 (23 grados) – c) Respuesta si la posición final viene dada por una señal cuadrada de amplitud 1 y una frecuencia de 0.25 Hz, con condiciones iniciales nulas.