Inverted Pendulum
%
% Este script ejecuta la simulación de un péndulo que puede ser controlado manualmente (accionando
% una barra deslizante o "slider") o de formaautomática, mediante lazos de control PID. El control
% automático incorpora un doble lazo incluyendo un lazo con control del ángulo del péndulo (para que se sitúe en
% posición vertical) y otrolazo más lento para hacer que la posición de la base se sitúe en un punto dado
% en el estado de equilibrio.
%
% El script puede ser utilizado tanto como un "equipo de prácticas", en el que pueden% estudiarse diversos conceptos de control, así como servir de base para que el profesor (o el
% alumno) elaboren otros ejemplos interactivos totalmente distintos mediante el procedimiento
% de"cortar y pegar".
%
%
% Fecha: 2006-11-02
% Autor: Ignacio Díaz
% Area de Ingeniería de Sistemas y Automática
% Universidad de Oviedo
clear;
close all;
clc;
disp('Instrucciones:');disp('- Pulsar ''0'' para desactivar el sistema de control');
disp('- Pulsar otra tecla para restaurar el sistema de control');
disp(' ');
disp('Control manual: actuar sobre la barra deslizante paramodificar la base del péndulo.');
pause(2);
% PARÁMETROS DEL PÉNDULO
l = 2; % Longitud del péndulo
m = 1; % Masa del péndulo
J = m*l^2; % Momento de inercia referidoal eje
B = 1; % Coeficiente de fricción
g = 10; % Aceleración de la gravedad
% ESTADO INICIAL DEL PÉNDULO
x = [pi-0.1;0]; % Para que se vea el efecto del control, empezamos% con el péndulo casi vertical (theta = pi +/- "algo")
% DEFINICIÓN DE UN "SLIDER" PARA CONTROLAR MANUALMENTE EL PÉNDULO
f = figure(1);
set(f,'pos',[200,200,700 700]);
h= uicontrol('style','slider','pos',[20 20 680 20],'min',-4,'max',4);
Tm = 0.01; % Período de muestreo
e0 = zeros(2,1); % Condiciones iniciales del control de ángulo...
Regístrate para leer el documento completo.