Llevo un rato jugando con MATLAB y no me acaban de convencer los resultados que he obtenido, porque seguramente la habré cagado en alguna parte.
Os cuento lo que he hecho.
En primer lugar he preparado un programa en el PIC que captura cada 10ms. la velocidad del motor almacenando un total de 470 muestras (4.7s) que es lo máximo que me permitía la RAM.
He excitado el motor en secuencias que duraban 500ms de tres maneras distintas:
- Secuencia1: 500ms con duty=127, 500ms con duty=0, 500ms con duty=127, 500ms con duty=0, ...
- Secuencia2: 500ms con duty=127, 500ms con duty=50, 500ms con duty=127, 500ms con duty=50, ...
- Secuencia3: 500ms con duty=115, 500ms con duty=90, 500ms con duty=115, 500ms con duty=90, ...
Estas son las respuestas que he obtenido del motor:
CAPTURA 1
CAPTURA 2
CAPTURA 3
Tras ejecutar
IDENT he decidido utilizar orden 2 en la primera y tercera captura, y de orden 1 en la segunda, porque a mi juicio es el que mejor relación presenta entre complejidad y aproximación a la función real. Estos son los modelos obtenidos:
MODELO 1
MODELO 2
MODELO 3
Estas son las funciones de transferencia obtenidas:
FUNCION 1Transfer function from input "u1" to output "y1":
0.5152 z - 0.3286
-----------------------
z^2 - 0.7035 z - 0.2006
Transfer function from input "v@y1" to output "y1":
18.23 z^2
-----------------------
z^2 - 0.7035 z - 0.2006
Input groups:
Name Channels
Measured 1
Noise 2
Sampling time: 0.01
FUNCIÓN 2Transfer function from input "u1" to output "y1":
1.361 z - 1.208
----------------------
z^2 - 0.702 z - 0.2102
Transfer function from input "v@y1" to output "y1":
15.24 z^2
----------------------
z^2 - 0.702 z - 0.2102
Input groups:
Name Channels
Measured 1
Noise 2
FUNCIÓN 3Transfer function from input "u1" to output "y1":
-2.32 z + 2.313
-----------------------
z^2 - 0.6377 z - 0.3697
Transfer function from input "v@y1" to output "y1":
9.735 z^2
-----------------------
z^2 - 0.6377 z - 0.3697
Input groups:
Name Channels
Measured 1
Noise 2
Sampling time: 0.01
Pues bien, como podéis comprobar cualquier parecido entre una función y otra es pura coincidencia, lo que me ha dejado desconcertado.
¿No se supone que deberían parecerse?
¿Me recomendáis que siga adelante calculando el PID o debo hacerlo de otra manera?
Gracias y perdonad por el tostón.