Rutina de calibración de LabVIEW

1

Tengo una configuración de hardware en la que estoy tratando de anular el voltaje de compensación de entrada de un amplificador operacional usando un potenciómetro digital I2C. Las entradas del amplificador operacional están cortocircuitadas y estoy midiendo la salida usando una tarjeta de adquisición de datos de NI. Dependiendo de la salida medida, quiero ajustar el nulo de compensación usando el pot digitalizador. Estoy bajo presión para armar una rutina para llevar a cabo este procedimiento de calibración, así que me pregunto si alguien ha hecho algo similar y estaría dispuesto a compartir un fragmento de pseudo código de cómo lo implementaron.     

pregunta Malteaser6900

1 respuesta

5

Ignorando los detalles de trabajar a través de la interfaz 'única' de LabVIEW, sugeriría usar un simple algoritmo de búsqueda binaria .

Establezca el bote en la escala media, determine si el punto nulo se encuentra en la mitad inferior o superior de la escala, luego establezca los nuevos límites superior e inferior y repita.

Suponiendo que sus mediciones sean estables (tendrá que programar un retraso para permitir que el op-amp se estabilice y probablemente querrá promediar algunas mediciones) tomará una iteración por bit del resultado. Si su potenciómetro digital tiene 256 pasos, solo tomará 8 iteraciones para converger en la mejor configuración.

Existen métodos de optimización potencialmente más rápidos que dependen de hacer algunos cálculos o que podrían ser mejores para tratar una señal muy ruidosa (por ejemplo, ajustar una curva polinomial de mínimos cuadrados a un número de puntos y encontrar el cero), pero creo que Esto es más que adecuado para el propósito. De hecho, podrías hacerlo varias veces y comparar los resultados.

Este es realmente un caso especial de optimización en el que busca minimizar una función de costo (el valor absoluto del desplazamiento o el cuadrado del desplazamiento), y con un costo bastante alto de evaluar la función (ya que tiene que esperar mucho tiempo en términos informáticos para obtener resultados). Afortunadamente, debería ser lo suficientemente rápido como para no ser un tiempo significativo en términos humanos.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas