Skip to main content

Servo

Práctica: Identificación de un Servomecanismo – Constante de Tiempo, Ganancia y Límites de Operación

Objetivo

El objetivo de esta práctica es identificar los parámetros dinámicos fundamentales de un servomecanismo, concretamente su constante de tiempo y ganancia, utilizando dos métodos de medición: un sensor externo de posición y el potenciómetro interno del servo, accedido mediante el ADC de un microcontrolador. Además, se analizará la relación entre el rango de entrada y la salida, determinando los límites físicos y eléctricos del sistema.

Introducción

La identificación de sistemas es una herramienta esencial en la ingeniería de control, ya que permite obtener modelos matemáticos a partir de datos experimentales. En el caso de los servomecanismos, conocer la constante de tiempo y la ganancia es fundamental para diseñar controladores precisos y eficientes. Además, es importante conocer los límites de operación del servo, tanto en términos de señal de entrada como de desplazamiento angular, para evitar saturaciones o daños en el sistema.

Materiales

  • Servomecanismo estándar (en nuestro caso, Feetech FS5115M)
  • Sensor externo de posición (ej. encoder óptico o encoder magnético, en nuestro caso, AS5600)
  • Microcontrolador (MCU) con un conversor analógico-digital (ADC) (en nuestro caso usaremos un Arduino)
  • Fuente de alimentación adecuada (rango operativo del servo y regulable)
  • Software de adquisición de datos (Matlab/Simulink con Arduino Support Package)

Procedimiento

1. Montaje del Sistema

Conecta el servo al microcontrolador y asegúrate de que puedes controlar su posición mediante una señal PWM. Instala el sensor externo de posición de modo que mida el mismo eje que el servo. Conecta la salida del potenciómetro interno del servo al ADC del microcontrolador.

Nota: se podría hacer la identificación sólo con el sensor externo o el ADC, medida algo ruidosa.

Nota: Por mi experiencia, no suelen estar disponibles con el ADC de fábrica, aunque los hay, como en este caso, la modificación no suele ser muy complicada, si te manejas con un soldador y estaño, búscate un tutorial que los hay. Por otra parte, la electrónica de dentro actualmente suele funcionar a 3.3V, aunque siempre es recomendable medir con un multímetro en ambas partes del rango del servo antes de conectar al ADC del MCU, por si acaso, no vaya a ser que lo quemes.

2. Identificación de Límites

a) Rango de Entrada

Varía la señal de control (PWM) desde el mínimo al máximo permitido y registra la posición alcanzada por el servo. Identifica los valores de entrada que no producen más movimiento (saturación).

b) Rango de Salida

Registra el ángulo mínimo y máximo alcanzable por el servo, tanto con el sensor externo como con el potenciómetro interno. Determina si existen zonas muertas o no linealidades cerca de los extremos.

c) Asociación Entrada-Salida

Construye una tabla o gráfica que relacione el valor de entrada (PWM o valor digital) con la posición de salida (en grados o radianes). Identifica la región lineal y los límites de operación seguros.

Para ello, haz una cambios relativamente lentos para eliminar la dinámica del movimiento y así tener la respuesta característica entrada-salida.

3. Identificación Experimental

a) Excitación del Sistema

Aplica una señal escalón (step input) al servo, variando la posición objetivo de forma abrupta dentro del rango permitido por el fabricante. Realiza varias pruebas con diferentes amplitudes de escalón. Con diferentes tensiones de alimentación según rango de operaciones que indique el fabricante.

En este caso, hay una característica que nos indica:

  • Velocidad (6V): 0.16 sec/60° (4.8V: 0.18 sec/60°)

De aquí podemos extraer información valiosa, nos da el rango operativo (4.8V a 6V), seguramente pueda superar un poco este rango. Además, nos da a intuir el valor de la contaste de tiempo, por encima, que vemos que si le afecta la tensión de alimentación.

b) Adquisición de Datos 

Registra la respuesta temporal del servo utilizando ambos métodos de medición: 

  • Sensor externo: Proporciona una referencia independiente y suele ser más precisa. El AS5600 nos da una precisión de 4096 pulsos por vuelta, lo que equivale 360 grados / 4096 pulsos = 0.087890625 grados/pulso
  • Potenciómetro interno (ADC): Permite comparar la medición interna del servo con la externa y evaluar posibles errores o no linealidades.
c) Procesamiento de Datos

Para cada respuesta al escalón, identifica los siguientes parámetros:

  • Constante de tiempo ($\tau$): Tiempo que tarda la salida en alcanzar aproximadamente el 63% de su valor final.
  • Ganancia estática ($K$): Relación entre el cambio de salida y el cambio de entrada en estado estacionario.

Puedes ajustar los datos experimentales a un modelo de primer orden de la forma:

$y(t) = K \cdot \left(1 - e^{-t/\tau}\right) \cdot u(t)$

d) Comparación de Métodos

Compara los resultados obtenidos con el sensor externo y el potenciómetro interno. Analiza posibles diferencias y discute las causas (ruido, resolución del ADC, histeresis, etc.).

Resultados Esperados

  • Obtención de la constante de tiempo y ganancia del servo para ambos métodos de medición.
  • Identificación de los límites de entrada y salida del sistema.
  • Discusión sobre la precisión y confiabilidad de cada método de medición.
  • Recomendaciones para el uso del servo dentro de su rango óptimo de operación.

Conclusiones

La identificación experimental de un servomecanismo permite comprender su comportamiento dinámico y sus limitaciones físicas. Comparar diferentes métodos de medición ayuda a seleccionar la estrategia más adecuada para aplicaciones de control en tiempo real. Además, conocer los límites de entrada y salida es esencial para evitar errores de control y prolongar la vida útil del sistema.

Información y enlaces:

https://tienda.bricogeek.com/servomotores/1321-servo-feetech-15kg-fs5115m-fb-con-feedback.html