Reporte pendulo_2005-2 - Facultad de Ciencias Químicas e

Anuncio
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FAC. DE CS. QUÍMICAS E INGENIERÍA
INGENIERÍA EN ELECTRÓNICA
PROCESAMIENTO DIGITAL DE SEÑALES
“IDENTIFICACIÓN Y CONTROL DE UN
PÉNDULO INVERTIDO EN TIEMPO REAL”
GONZÁLEZ COTA JUAN CARLOS
HIPÓLITO SOLÍS JOSUÉ
JUÁREZ LEY ISRAEL
MEDINA SOTO OHANA
PARDINI ARVIZU OSCAR ISAAC
VÁSQUEZ CERVANTES LUZ ANGELINA
ASESORES:
M.C LAURA JIMÉNEZ BERISTAIN
M.C. JOSÉ JAIME ESQUEDA ELIZONDO
TIJUANA B.C. A 9 DE DICIEMBRE DE 2005
Péndulo Invertido
Control Digital
CONTENIDO
I. Etapas de Potencia
 Diagramas a bloques
 Circuitos
II. Encoders
 De mástil
 De posición
III. Simulink
 PWM
 Controlador
 Inversión de dirección
IV. Identificación del sistema
 Paramétrica
 No paramétrica
V. Resultados de la identificación del sistema con limit switch
 Paramétrica
 No paramétrica
 Función ident de matlab
VI. Resultados de la identificación del sistema sin limit switch
 No paramétrica
 Paramétrica
 Función ident de matlab
Péndulo Invertido
Control Digital
ETAPAS DE POTENCIA

Diagrama A Bloques
1ra Etapa
Interruptores de límite
con compuerta AND
Simulink
Inversor
Optoacoplador
Flip-Flop
Puente H
Motor
La primera etapa para la realización del péndulo teníamos nuestro componente
principal que era el puente H el cual se encargaría de mover el motor que sostenía el
encoder con el mástil, a este le llegaban 2 señales:
1. PWM con la cual se manipulaba la velocidad del motor, esta señal provenía de la
computadora y pasaba por un opto acoplador para evitar algún daño al DAQ.
2. El sentido del giro, este se determinaba con 2 interruptores de límite situado uno
en cada extremo del área de desplazamiento, cada interruptor se conecto a una
compuerta AND, posteriormente un lado se enviaba como dato al flip flop y el
otro servia como reset para el flip flop, el dato que salía del flip flor tipo D se
enviaba al inversor y luego al se enviaban al puente H para determinar el giro. En
los diagramas se explicara claramente la lógica del circuito.
Péndulo Invertido
Control Digital
2da Etapa
Simulink
Optoacoplador
Inversor
Puente H
Motor
En esta etapa se eliminaron los interruptores de limite ya que por medio de simulink y
el error del sistema se decidía el giro del motor. Al eliminar los interruptores se elimino
el flip flop y la compuerta AND. Los demás componentes quedaron igual solamente que
de la computadora se enviaba la señal del sentido directamente al inversor.

Etapa Básica De Potencia
Péndulo Invertido
Control Digital
En esta etapa la cual es la base del desarrollo del péndulo invertido se tienen 3
componentes:
1. Puente H (L298N) el cual se manipula con voltajes lógicos se necesita polarizar
con sus 5v y tierra, tiene su entrada de enable en la cual se le conecta la señal del
pwm con el cual determinamos la velocidad de los motores, tambien cuenta con 2
entradas con las cuales se le indica el sentido del giro las cuales están conectadas
al inversor. Cuenta con 2 pines en los cuales se conecta el voltaje al cual se
manipulara el motor soportando una corriente de 2A. Más datos y
especificaciones de conexiones se pueden ver en los anexos y hojas de
especificaciones.
2. Optoacoplador tiene su polarización para un funcionamiento correcto y este recibe
la señal del pwm proveniente de simulink, se utiliza para la protección de los
sistemas, para así separar las tierras análogas de las digitales. Posteriormente se
conecta a una compuerta inversora solo para asegurar una salida de 1 ó 0 en la
señal.

Etapa De Reconocimiento Con Interruptores De Límite
Péndulo Invertido
Control Digital
En esta etapa se tiene la etapa básica de potencia pero se le agregan 3 componentes:
1. Interruptores de limite con compuerta AND, los interruptores están conectados
como circuito cerrado un extremo a tierra y el otro a una entrada de la compuerta
and la cual esta conectada con una resistencia a vcc esto para lograr un 1 lógico al
momento de que el motor llegue a un limite.
2. Posteriormente la señal de la compuerta and de un interruptor se envia al flip flop
D y el otro interruptor se envía al inversor esto para hacer que cuando el motor
llegue a un interruptor se quede un 1 en el flip flop y al cambiar de giro y el motor
llegar a tocar el otro interruptor se produzca un reset en el flip flop y de esta
manera estar realizando una secuencia de 1 y 0 y así estar cambiando el giro.
3. La señal de salida del flip flop se envía a la compuerta inversora esto es para que
con una señal de entrada se produzcan dos de salidas una negada a lo que esta
entrando y esta misma negada se envía de nuevo a un inversor para que salga la
original y así con una sola señal de giro enviar 2 hacia el puente H ya que este
necesita que le lleguen 2 señales para saber hacia donde girar. De esta manera
tendremos una secuencia de 1,0 y 0,1.

Etapa Controlado Por Medio De Simulink
Este diagrama pertenece a la 2da etapa vista en el diagrama a bloques. Como se
dijo anteriormente se elimina el flip flop con su compuerta inversora. Y basándonos en el
diagrama anterior del reconocimiento del sistema solo se cambia el pin 13 de la
compuerta inversora al cual previamente le llegaba la señal del flip flop D por la señal
que proviene de simulink. Todo lo demás sigue funcionando de la misma forma.
Péndulo Invertido

Control Digital
ENCODERS
Encoder De Mastil
El principio de funcionamiento de un encoder
absoluto es muy sencillo, un disco rotatorio, con zonas
transparentes y opacas, interrumpe un haz luminoso
adquirido por unos fotorreceptores; por lo tanto, ellos
transforman los impulsos luminosos en impulsos eléctricos
que se tratan y transmiten por la parte electrónica en salida
la cual nos entrega resultados en valores digitales que por
lo general se encuentran codificados en Gray o binario, el
utilizado para este proyecto se encuentra en Gray.
Si tomamos en cuenta que el principio de
trabajo y funcionamiento de un encoder de 8 bits es
el mismo para casi todo tipo de ellos, podemos
empezara a trabajar con este en base solo a las
terminales de salida de la menos significativa a la
mas basándonos en la tabla de las terminales y los
colores de estas que se presenta a continuación.
Cabe resaltar que estos colores que se representan en la tabla son los dados por el
fabricante, pero con motivo de la aplicación del mismo para el péndulo invertido se
adaptaron nuevos cables de mayor distancia para que el péndulo funcionara de una
manera más libre, a continuación se menciona el circuito usado para convertir el código
gray a voltaje análogo.
Primeramente se tuvo que implementar un circuito para convertir de código gray a
binario, este circuito es un simple arreglo de compuertas X-OR, después de realizar esta
conversión se implemento el DAC para que nos convierta a voltaje.
Péndulo Invertido
Control Digital
Este circuito nos arroja una conversión de un máximo de 9.17V, de los 10V con
que es alimentado, esto debido a la saturación en el operacional, este es un ligero
problema para la aplicación de el péndulo invertido puesto que solo nos da un rango de
acción de 0-340 grados, dejándonos 20 grados en saturación, este problema se intento
solucionar dejando la parte en saturación hacia abajo y mediante software.
El nivel de conversión por cada grado nos arroja una medición de 0.02697 V
aproximadamente.

Diagrama A Bloques Del Sistema
Tabla de Conexión
Colores
Café
Café/blanco
Naranja
Naranja/blanco
Verde
Azul
Verde/blanco
Azul/blanco
Blanco
Negro
Salida Naranja
Dígitos
1
2
3
4
5
6
7
8
vcc
gnd
(conexion a la PC)
Péndulo Invertido

Diagrama Del Circuito
Control Digital
Péndulo Invertido

Control Digital
Encoder De Posición
 El posicionamiento se logra haciendo uso de un
“encoder”.
 Esto es un pequeño disco acoplado en el eje del
motor, donde contamos con 100 ranuras.
 Cada una de ellas nos da un pulso, haciendo el
conteo de estos pulsos podemos identificar la
posición de la base.
Este encoder fue puesto con la finalidad de ubicar a nuestro carrito del péndulo
dentro del rango de operación en la base.
Para lograr poner el encoder en la parte posterior del motor se
tuvo que adaptar puesto que el ancho de la varilla del motor
no concordaba con la entrada en el encoder.
HEDS-9000
El encoder usado es el HEDS-9000 de HP, básicamente lo
que hace es medir la velocidad de el motor y su sentido de giro, para
esto el encoder cuenta con dos canales de salida con los cuales se
puede realizar la medición de estos parámetros.
Diagrama Interno Del Encoder
Péndulo Invertido

Control Digital
Formas De Onda De Salida
Como salida cuenta con dos canales con los cuales se obtiene el sentido de giro,
cuando el canal A se encuentra desfasado respecto al B entonces el motor se encuentra
girando hacia la derecha, y cuando ocurre lo contrario el sentido es opuesto. En cuanto a
la velocidad esta se determina de acuerdo al numero de pulsos en el motor, a mas
velocidad mas pulsos.
Conexiónes del Encoder
Péndulo Invertido
Control Digital
Circuito De Potencia

Conexiones Del Cable Gris De Datos
Función
PWM
Tierra digital
Tierra análoga
Lectura encoder de mástil
Dirección del motor
Color de cable
Verde
Azul
Café
Naranja
Verde/Blanco
Número de tarjeta
22
53
64
65
21
Péndulo Invertido
Control Digital
SIMULINK
Para poder diseñar el controlador necesario en el proyecto del péndulo invertido,
fue necesario trabajar con diversas etapas inclusive a nivel programación, y es la etapa en
la que se ha trabajado con más detalle, ya que no ha sido sencillo diseñarla debido a
diversas variantes que han surgido conforme el desarrollo del proyecto.
Simulink te ofrece una muy buena herramienta para trabajar y pulir los detalles
que han surgido. Para poder controlar el sistema de traslado del péndulo invertido fue
necesario trabajar sobre el motor de base, el cual carga el peso tanto del mástil como del
indicador de posición (encoder). Se usó un PWM para generar diferentes velocidades de
respuesta en el motor y de esta forma tener la posibilidad de acelerar repentinamente o en
su defecto desacelerar el péndulo, buscando así conseguir la vertical.
Sin embargo los problemas no terminan ahí, puesto que una vez obtenido el PWM
capaz de regular la velocidad de traslado del motor era necesario conocer la posición del
mástil y la posición del motor. Además de ciertos detalles referentes a los límites de
carrera que fueran deseados, esto para evitar que el motor de traslado se golpeara con la
base, provocando de esta manera desajustes o en algunos casos daño, también se debe
tomar en consideración que aún no se aborda lo que sería en si el controlador.
Nosotros decidimos controlar todo en su mayoría desde Simulink ya que
implicaba menos alambrado y por ende una posible reducción de errores.

Por Etapas:
PWM
La idea del PWM es relativamente interesante, se requiere una señal base que se
repita de forma infinita (dientes de sierra en este caso), al haber cruces por cero, el ancho
de pulso de la señal varía, dependiendo totalmente de la señal de error (lejanía del mástil
y la vertical).
En este caso, Simulink no posee un bloque que genere un ciclo FOR o cualquier
otro tipo de ciclo, lo cual nos pone en un predicamento, sin embargo se cuenta con
generadores de funciones, que a su vez pueden emular este tipo de función (ciclos), eso
aunado a un escalón genera una señal montada en CD, lo cual asegura una señal 100%
positiva, a la cual se le puede agregar la información necesaria proveniente de un sensor
externo para variar el ancho de pulso, hasta aquí, se cubren los primeros 5 bloques de la
figura 1. Paso siguiente, se compara el valor de referencia el cual será una analogía al
cruce por cero y ya con este valor se obtiene un cero lógico o en su defecto un uno lógico,
paso después del cual se amplifica para tener un valor de 5 volts a la salida del sistema,
como siempre no todo es tan sencillo cuando se habla de generar interfaces entre modelos
reales y simulados, y esta vez no fue diferente debido a la diferencia entre los tipos de
datos manejados, fue más sencillo manejar un mismo tipo de dato durante todo el
proceso, sin embargo, al final del proceso fue necesario emplear dos convertidores de
Péndulo Invertido
Control Digital
tipo de dato asegurando de ésta manera que a la salida siempre tuviéramos el tipo de dato
obligatorio por el sistema para funcionar.
>= 4.5
Signal
Generator
5
uint8
double
Add1
Add2
1
Step
ENTRADA PID
Compare
To Constant
Gain
1
SALIDA PWM
Data Type ConversionData Type Conversion1
|u|
Abs
Fig. 1
Controlador
Para poder tomar datos en tiempo real, fue necesario emplear un retenedor de
orden cero para adecuar la señal, es decir almacenarla en un buffer y que no se perdiera
totalmente, ya que las velocidades de captura de la tarjeta nos limitaban en lo que a
frecuencias se refiere.
Una vez tratado éste problema, el enfoque fue generar un porcentaje de error en
base a un punto de referencia y el dato capturado del sensor, en este caso el
comportamiento de sensor lo tomó el encoder sobre el cual fue montado el mástil, ya que
éste da un valor en voltaje específico para cada cantidad de grados, una vez hecho esto y
obtenido el valor del error, se alimenta a tres bloques, primero al bloque del controlador
por medio del cual se espera controlar y anticipar el movimiento del péndulo, el sentido
de movimiento del motor como segundo bloque y el PWM como tercer bloque, éste
último ya fue explicado en el párrafo anterior, el sentido de movimiento se explicará en el
siguiente bloque.
El controlador, es la parte más importante del sistema de Simulilnk, aunque visto
desde la perspectiva del código no es mucho, cómo llegar a ese controlador es lo
interesante, existen dos formas de diseñar el controlador, la primera es ajustando las
ganancias por medio de prueba y error de forma tal que quede lo más cercano posible al
resultado deseado, y la segunda es en base a mediciones tomadas de las pruebas de peso y
carrera y comportamiento del péndulo, obtener la planta del sistema, este último método
es el que se estuvo trabajando al final pero por cuestiones de tiempo no fue posible
completar al 100 %, es por eso que para fines prácticos se empleó el método experimental
mediante el ajuste de ganancias. Por medio del cual se llegó al modelo y ganancias
empleadas en la figura 2, la cual tiene marcadas las entradas y salidas del bloque.
Péndulo Invertido
Control Digital
1
2
COMPARACION/ENCODER
99
Proportional
1
s+1
SALIDA DEL PID
s
Sum
Integral
Sum1
pid
encoder
55
du/dt
To Workspace1
Zero-Order
Hold
To Workspace
Derivative
D
3
GRAF PID
4
SEÑAL DE ERROR
2
5
ENTRADA DEL ENCODER
SALIDA DEL ENCODER
error
To Workspace2
Fig. 2
Inversión De Dirección
En este bloque se comparan niveles de voltaje provenientes del encoder, para
tener un punto de referencia con respecto al cual mover el motor e indicar un sentido de
movimiento, obedece los mismo seguimientos de los bloques de comparación anteriores,
si la comparación se cumple la salida es uno, caso en el cual lo amplificamos para que
genere 5 volts a la salida y por ende un uno lógico o un cero lógico, mismo que a su vez
mueve al motor a la derecha o a la izquierda respectivamente.
giro
To Workspace2
1
<= 0
ENTRADA DEL ERROR
2
ENTRADA DEL ENCODER
Compare
To Constant2
<= 3
Compare
To Constant3
OR
>= 7.3
Logical
Operator1
Compare
To Constant4
Fig. 3
XOR
Convert
Logical
Operator
Data Type Conversion5
5
Gain2
uint8
double
1
CAMBIO DE DIRECC.
Data Type Conversion1 Data Type Conversion4
Péndulo Invertido
Control Digital
Por último, en lo que respecta al código preliminar empleado en el proyecto, ésta
es la presentación del programa de manera general.
PWM_Modif icado
PID
SALIDA DEL PID
4.93
ENTRADA PID
SALIDA PWM
Analog Output
COMPARACION/ENCODER
National Instruments
PCI-6024E [auto]
Setpoint
GRAF PID
Analog
Output
Scope
INVERSION DE DIRECCION
Analog
Input
Analog Input
National Instruments
PCI-6024E [auto]
SEÑAL DE ERROR
ENTRADA DEL ENCODER
SALIDA DEL ENCODER
ENTRADA DEL ERROR
CAMBIO DE DIRECC.
ENTRADA DEL ENCODER
Analog
Output
Analog Output1
National Instruments
PCI-6024E [auto]
Péndulo Invertido
Control Digital
IDENTIFICACIÓN DEL SISTEMA
Un sistema es todo proceso que transforma entradas (causas) en salidas (efectos) y
un ejemplo de esto es un programa de computo, donde la entrada son los datos a procesar
y la salida son los resultados producto del procesamiento. Estos sistemas tienen asociada
una función de transferencia y para obtener esta función de transferencia utilizamos dos
métodos que a continuación se mencionan.

Identificación De Sistemas Paramétrica
El procedimiento de identificación es el siguiente:
1. Capturar muestras de entrada y salida, mediante simulink (analog input, to
workspace).
2. Alinear los datos. Graficamos los datos obtenidos y observamos el
desplazamiento o defasamiento de los datos y si era necesario los corregimos
mediante ciclos for en MatLab.
Codigo de alineación de datos
load e2.dat;
load s2.dat;
load e3.dat;
load s3.dat;
for (c=1:1:1000-169)
s2al(c)=s2(c+168);
end
for (c=1:1:1000-169)
e2al(c)=e2(c);
end
for (c=1:1:1000-835)
s3al(c)=s3(c+834);
end
for (c=1:1:1000-835)
e3al(c)=e3(c);
end
save s2al.dat -ascii s2al.dat
save e2al.dat -ascii e2al.dat
save s3al.dat -ascii s3al.dat
save e3al.dat -ascii e3al.dat
Péndulo Invertido
Control Digital
3. Utilizamos un programa llamada isisarma.Que fue creado mediante el modelo
ARMAX para obtener la función de transferencia a partir de entradas y salidas
alineadas.
Código ISISARMA
load in1.dat
load out1.dat
entrada=in1';
salida=out1';
fm=1000;
T=1/fm;
N1=length(entrada);
Tope=T*(N1-1);
t=(0:T:Tope);
n=length(t); Np=size(salida);
N=Np(1,2); MT=1000;
%inicio
for r=1:6,
for p=r:6,
for L=1:N-p
%Columna
f=2;
fu=1;
for k=1:p,
%Fila parte de entrada
GAMT(k,L)=-salida(p+L-f+1); %El +1 es por corrección para MATLab
f=f+1;
end
for k=p+1:p+r+1,
GAMT(k,L)=entrada(p+L-fu+1); %El +1 es por corrección para MATLab
fu=fu+1;
end
end
GAMT;
GAM=GAMT';
for te=p+1:N,
xnt(te-p)= salida(te);
end
xn=xnt';
clear teta
teta = GAMT*GAM;
teta = inv(teta);
teta = teta*GAMT;
teta = teta*xn;
Péndulo Invertido
Control Digital
e=xn-GAM*teta;
% Calcula el error, 'e' es un vector columna
clear GAM GAMT xn xnt
Ep=e'*e;
% CAlcula la suma de los errores cuadrático medio
FPE=((p+N+r+1)/(N-p-r-1))*Ep; % donde r es el orden del modelo MA y p del
AR
if FPE<MT
clear TETA
MT=FPE;
R=r;
P=p;
TETA=teta;
end
end
end
Den(1)=1;
for m=2:P+1,
Den(m)=TETA(m-1);
end
nu=length(TETA);
for m=P+1:nu,
Num(m-P)=TETA(nu-(m-P)+1);
end
xf=0:1:1023;
xf=(fm/2)*xf/1024;
[H,W]=freqz(Num,Den,512,fm);
mayor=max(H);
radio=abs(mayor);
N2=Num/radio;
D2=Den/radio;
printsys(N2,D2,'z');
[H2,W2]=freqz(N2,D2,512,fm);
mayor=max(H2);
HLin2=freqz(N2,Den,xf,fm);
maximo=max(HLin2);
mag2=abs(HLin2);
ParteReal=real(HLin2);
ParteImag=imag(HLin2);
Hfase=atan2(ParteImag,ParteReal)*180/pi;
Hfase=Hfase-180;
Péndulo Invertido
Control Digital
figure
subplot(211);plot(xf,mag2);
xlabel('(Hz)');ylabel('Amp');title('Respuesta de Amplitud del sistema identificado(escala
lineal)');
axis([0 4000 0 1]); grid on, subplot(212); plot (xf,Hfase);
xlabel('(Hz)'); ylabel('Grados');title('Respuesta de la fase del sistema identificado(escala
lineal)');
grid on
Este código fue la mejor opción, ya que nos mostraba la función de transferencia
directamente.

Identificación No Parametrica de Sistemas
El procedimiento de identificación es el siguiente:
1. Capturar muestras de entrada y salida, mediante simulink (analog input, to
workspace).
2. Alinear los datos. Graficamos los datos obtenidos y observamos el
desplazamiento o defasamiento de los datos y si era necesario los corregimos
mediante ciclos for en MatLab.
3. Realizamos la correlación cruzada y auto correlación para M=32, y agregamos
2000 ceros a las correlaciones.
4. Calcular el espectro y auto espectro con la TRF.
5. Obtener las magnitudes de los espectros y dividir el espectro entre el auto
espectro.
6. Obtener las graficas de Bode.
A continuación se muestra el código con todos los pasos mencionados.
load e1al.dat;
load e2al.dat;
load e3al.dat;
load s1al.dat;
load s2al.dat;
load s3al.dat;
N1=length(e1al);
N2=length(e2al);
N3=length(e3al);
Péndulo Invertido
Control Digital
%%%%%%%%%%%%%%%%%CORRELACION PARA 32 MUESTRAS%%%%
%_________________autocorrelacion__________________________%
n=1;
m=0;
for m=0:1:31;
C=0;
for n=1:1:N1-m
R=e1al(n)*e1al(n+m);
C=C+R;
Rx1=(C/(N1-m));
Rxx1(m+1)=Rx1;
end
for n=1:1:N2-m
R=e2al(n)*e2al(n+m);
C=C+R;
Rx2=(C/(N2-m));
Rxx2(m+1)=Rx2;
end
for n=1:1:N3-m
R=e3al(n)*e3al(n+m);
C=C+R;
Rx3=(C/(N3-m));
Rxx3(m+1)=Rx3;
end
end
%_________________correlacion cruzada______________________%
n=1;
m=0;
for m=0:1:31;
C=0;
for n=1:1:N1-m
R=e1al(n)*s1al(n+m);
C=C+R;
Ry1=(C/(N1-m));
Rxy1(m+1)=Ry1;
end
for n=1:1:N2-m
R=e2al(n)*s2al(n+m);
C=C+R;
Ry2=(C/(N2-m));
Rxy2(m+1)=Ry2;
end
for n=1:1:N3-m
R=e3al(n)*s3al(n+m);
C=C+R;
Ry3=(C/(N3-m));
Péndulo Invertido
Control Digital
Rxy3(m+1)=Ry3;
end
end
%%%%%%%%%%%%%%LLENAR CON CEROS%%%%%%%%%%%%%%%
for (cont=1:1:1968)
Rxx1(cont+32)=0;
Rxx2(cont+32)=0;
Rxx3(cont+32)=0;
Rxy1(cont+32)=0;
Rxy2(cont+32)=0;
Rxy3(cont+32)=0;
end
%%%%%%%%%%%%%%%%ESPECTROS%%%%%%%%%%%%%%%%%%%%
Sxx1=fft(Rxx1);
Sxy1=fft(Rxy1);
Sxx2=fft(Rxx2);
Sxy2=fft(Rxy2);
Sxx3=fft(Rxx3);
Sxy3=fft(Rxy3);
for (c=1:1:2000)
Hf2(c)=abs(Sxy2(c))/abs(Sxx2(c));
end
Fase2=atan(Hf2);
Grados2=(180*Fase2)/pi;
for (c=1:1:2000)
Hf1(c)=abs(Sxy1(c))/abs(Sxx1(c));
end
Fase1=atan(Hf1);
Grados1=(180*Fase1)/pi;
for (c=1:1:2000)
Hf3(c)=abs(Sxy3(c))/abs(Sxx3(c));
end
Fase3=atan(Hf3);
Grados3=(180*Fase3))/pi;
%%%%%%%%%%%%%%%
Péndulo Invertido
Control Digital
RESULTADOS DE LA IDENTIFICACIÓN DEL SISTEMA
Utilizando datos de entrada y salida muestreados cuando el sistema tenía
interruptores de límite.(limit switches)

Identificación No Paramétrica
Se capturaron tres pares de datos de entrada y salida el 02 de nov 05. Después de
alinearlos y aplicar la correlación y FFT, se obtuvieron las siguientes gráficas. Aquí
únicamente utilizaremos el primer par de datos capturados.
A estas muestras se les agregó 2000
ceros y se utilizó el algoritmo de la
correlación empleando la fórmula vista
en clase para m=32:
A estos datos no se les agregó ceros y se
utilizó la función xcorr de matlab:
Péndulo Invertido
Control Digital
Utilizamos la función spa de matlab para hacer el análisis espectral y obtuvimos
la gráfica de Bode empleando los mismos datos anteriores:

Identificación Paramétrica
Introduciendo los datos de entrada y salida al programa en matlab isisarma se obtuvo
la función de transferencia.
Función de transferencia con los primeros datos obtenidos y que se alinearon e1al y
s1al (estos datos son distintos a los anteriores y fueron los primeros capturados cuando
tenía limit switches el sistema)
num/den =
-0.29624 z^3 + 0.30172 z^2 + 0.28183 z - 0.22793
---------------------------------------------------------------0.17201 z^4 - 0.10398 z^3 - 0.030587 z^2 - 0.011965 z - 0.015266
Péndulo Invertido

Control Digital
Utilizando La Función ident De Matlab
En matlab existe una función llamada ident que permite hacer la identificación de un
sistema. Es una interfaz gráfica que identifica un sistema en forma automática y rápida.
Primero es necesario crear un objeto del tipo iddata que contendrá los datos de entrada y
salida.
>> obj_iddata = iddata(salida21105, entrada21105);
Para abrir la interfaz gráfica debemos escribir ident en matlab.
>> ident
Al abrirse debemos dar clic en import… para importar los datos de entrada y salida
Péndulo Invertido
Control Digital
Enseguida escogemos IDDATA object…:
Y luego tecleamos el nombre de la variable con el que nombramos al objeto iddata que
contiene las entradas y salidas.
Péndulo Invertido
Control Digital
Enseguida se da clic en Quick Start para que comience a trazar las gráficas más comunes:
Entrada y salida:
Péndulo Invertido
Respuesta al escalón con el modelo arx:
Respuesta a la frecuencia:
Diagrama de polos y ceros:
Control Digital
Péndulo Invertido
Polos y ceros con el modelo armax:
Comparacion de spa, armax, resp a impulso y resp a frecuencia
azul= resp a impulso
verde=spa
rojo=arx
cian=modelo en espacio de estados
Control Digital
Péndulo Invertido
Control Digital
UTILIZANDO DATOS DE ENTRADA Y SALIDA MUESTREADOS
CUANDO AL SISTEMA SE LE DESACTIVARON LOS LIMIT SWITCHES
Datos de entrada:
Datos de salida:

in1.dat , in2.dat, in3.dat
out1.dat, out2.dat, out3.dat
Identificación No Paramétrica
Primero fue importante verificar si los datos estaban alineados para ello se graficaron
los datos y se observó la desviación que había entre los datos de entrada y los de salida.
Verficiacion de datos. Saber si estan alineados
in1 out1
Péndulo Invertido
Control Digital
in2 out2
in3 out3
En este caso no se observa que los datos estén desalineados, es decir, se observa
que existen datos de salida en el instante en que existen datos de entrada, lo da lugar a
que no existe un retraso en la respuesta.
Enseguida de obtuvieron las correlaciones y FFT de los datos agregando 2000
ceros y para m = 32.

Identificación Paramétrica
Para hacer la identificación paramétrica, introdujimos los datos de entrada y salida
alineados a un programa hecho en matlab llamado isisarma y se obtuvieron las siguientes
funciones de transferencia:
Péndulo Invertido

Control Digital
Funciones de transferencia con in and out
In3 out 3
num/den =
0.0032241 z^3 – 0.0042571 z^2 + 0.0043673 z – 0.0025686
------------------------------------------------------0.1394 z^3 – 0.08923 z^2 – 0.032821 z – 0.017242
in2 out2
num/den =
-0.003204 z^3 + 0.0025038 z^2 – 0.001417 z – 0.0012915
-----------------------------------------------------0.070092 z^3 – 0.046455 z^2 – 0.016197 z – 0.0072018
in1 out1
num/den =
-0.0016347 z^3 + 0.00071593 z^2 – 0.0011358 z – 0.00097027
---------------------------------------------------------0.052657 z^3 – 0.042072 z^2 – 0.0074445 z – 0.002981
in and out
in3 out3:
Péndulo Invertido
Control Digital
in2 out2
in1 out1
Péndulo Invertido

Utilizando La Función ident De Matlab:
Control Digital
Péndulo Invertido
Control Digital
REFERENCIAS
[1] Juan García López ¨Procesamiento Digital de Señales¨. Libro en revisión por el CICIPN, 1999.
[2] José Jaime Esqueda Elizondo, Juan García López, Identificación no paramétrica de
sistemas lineales e invariantes con el tiempo¨, CONATEC-1999
[3] http://www.iitk.ac.in/eclub/Circuit/l298.htm
[4] Tesis: "Identificación de sistemas lineales e invariantes usando un procesador digital
de señales" Autor: José Jaime Esqueda Elizondo. Páginas: 25-40, 62-79, 86-87, 113-114.
[5] Data sheets
Descargar