Estoy trabajando con un circuito que regula la corriente a través de una válvula solenoide proporcional genérica (L1 en el esquema a continuación). Las características de la bobina de la válvula son desconocidas/variarán y la tarea de la aplicación es compensar las variaciones de resistencia/inductancia en la bobina causadas por cambios de temperatura, etc., por medio de un regulador PID. Las corrientes son aproximadamente entre 200 mA y 1 A.
Estamos utilizando un sentido de corriente de lado alto y un controlador de lado alto para lograr esto. La corriente se obtiene de una señal PWM de 5 V 500 Hz, que controla un MOSFET de controlador de lado alto de canal n "inteligente" . La resistencia activada no debería importar mucho ya que la tarea del circuito es compensar la resistencia.
El conductor usa 24 VCC sin procesar y no regulados de un vehículo para controlar la válvula. El diodo de rueda libre utilizado es este .
La corriente del lado alto se mide sobre R1 con un amplificador de detección de corriente del lado alto que da su salida como una corriente entre 0 y 1 mA. Esta corriente es a su vez medida sobre la resistencia R4 por el microcontrolador, de manera que 1mA es igual al valor máximo de ADC. (Por varias razones, la referencia de ADC debe ser inferior a 5 V; en este caso, se obtiene a partir de una referencia de voltaje precisa).
simular este circuito : esquema creado con CircuitLab
El regulador PID está implementado en el software y funciona como debería, compensando los cambios en la resistencia. Sin embargo, asume que las entradas y salidas son lineales, por lo que la corriente solo se mide una vez por período, en un punto fijo. Hemos probado que esto funciona conectando resistencias en serie con la válvula. Todo funciona bien mientras el suministro de la válvula se mantenga constante.
Sin embargo, cuando cambiamos el voltaje de suministro, el regulador intentará compensar, pero aún notamos un patrón no lineal en la corriente de salida, mucho más alto que el <1% que se puede esperar del LT6106. Puede variar tanto como 10-20% entre el suministro de 20V y 30V.
Después de mucha investigación, llegamos a la conclusión de que esto se debe a algún fenómeno no lineal en la bobina. En el lado alto, el PWM siempre se parece mucho a una onda cuadrada digital, por lo que no hay mucho que decir de eso.
Pero en el lado bajo, la curva se ve muy diferente según el voltaje de suministro. Logramos medir esto agregando una resistencia de derivación en el lado bajo, se parece a esto:
suministro de 22 VCC
suministro de 30 VCC
Las imágenes de arriba son para la misma salida, pero con el regulador tratando de compensar el cambio de corriente causado por el cambio de voltaje de suministro, por lo tanto, los diferentes ciclos de trabajo.
Soy un tipo de software, por lo que de ninguna manera soy un experto en electrónica, y mucho menos en campos magnéticos en bobinas, por favor tengan paciencia conmigo.
P1: ¿Es este un fenómeno conocido y existe una fórmula que pueda usar en el software para compensar la no linealidad? Es posible que la MCU mida el voltaje de suministro si es necesario.
Dado que la corriente se mide en el lado alto, todo se ve bien allí. Puedo calcular la corriente máxima o promedio, pero eso es de poca utilidad, ya que aparentemente la onda cuadrada no se parece en nada a la corriente real que fluye a través de la bobina.
P2: ¿Cuánto impacto, si lo hay, tiene el diodo de rueda libre en la salida? ¿Puedo cambiar la curva eligiendo otro diodo con un voltaje directo diferente, agregando resistencias en serie, etc.?
Los comentarios generales sobre el diseño también son bienvenidos: sé que el controlador IC está obsoleto.
D1 debe ser un diodo Schottky. Estos tienen aproximadamente la mitad de la caída de voltaje de un diodo de silicio normal. La no linealidad seguirá ahí, pero menos prominente.
Una vez hice esto con una válvula proporcional que tenía que funcionar con un suministro de 8 a 20 V y funcionó muy bien.
La única forma en que lo que tiene sería aceptable es si está muestreando la corriente a una velocidad mucho más allá de 1 kHz y luego haciendo un filtrado significativo en el firmware. 1 kHz es el mínimo absoluto solo para evitar que la frecuencia fundamental PWM se distorsione. Sin embargo, la señal PWM tendrá armónicos significativos, por lo que necesitará muestrear significativamente más de 1 kHz para obtener una imagen razonable de la corriente.
Una vez más, use PWM mucho más rápido y una atenuación de filtro mucho menor. Cambiar a un diodo Schottky como ya se indicó reduce la magnitud de la frecuencia PWM en la señal actual. Incluso con todo eso, es posible que aún necesite muestrear a alta velocidad, luego filtrar digitalmente y diezmar.
No espere que una bobina de relé actúe como un inductor lineal. La bobina del relé tendrá un núcleo de hierro y, cuando se diseñe correctamente, debería saturarse. Los detalles de la curva de saturación dependerán de la temperatura. Este efecto de saturación se denomina curva BH del hierro. Un desafío adicional es que el hierro se magnetiza y esto provoca histéresis. Para controlar la corriente no lineal con histéresis en el software, un filtro de Kalman debería funcionar mejor que un PID.
Una forma de pensar en esto es que el relé es un motor lineal y el circuito necesita detectar la posición del motor sin medir directamente la posición. El documento " Histéresis de hierro y filtrado de Kalman mejorado para la detección de posición sin sensores de motores síncronos " es un ejemplo de otra persona que utiliza el enfoque del filtro de Kalman.
Los filtros de Kalman solían ser más difíciles de entender, pero ahora hay excelentes tutoriales como " Cómo funciona un filtro de Kalman, en imágenes " .
Estoy de acuerdo con Olin en que sería mejor un interruptor de canal N de lado bajo. Solucionaría esto antes de preocuparme por los otros detalles.
Lundin