¿Cómo se usa la histéresis para DSP?
¿Cómo se usa la histéresis para DSP?
Para mantener el ejemplo del calentador de Ecnerwal, el siguiente código enciende y apaga un calentador. Mantiene la temperatura ambiente a 25ºC, con una histéresis de 2 grados. El objetivo de dicho código es reducir el número de llamadas a startupHeater () y shutdownHeater (), lo que dañaría el calentador si se ejecuta con demasiada frecuencia:
#define TEMPERATURE_LIMIT 25
#define TEMPERATURE_HYSTERESIS 2
void turnHeaterOnIfNeeded(int temperature) {
static boolean currentlyOn = false;
if (currentlyOn) {
if (temperature > TEMPERATURE_LIMIT + TEMPERATURE_HYSTERESIS) {
shutdownHeater();
currentlyOn = false;
}
} else {
if (temperature < TEMPERATURE_LIMIT - TEMPERATURE_HYSTERESIS) {
startupHeater();
currentlyOn = true;
}
}
}
void main() {
int temperature;
// ...
// ...
// Monitors the temperature:
temperature = measureTemperature();
turnHeaterOnIfNeeded(temperature);
// ...
// ...
}
La histéresis es útil cuando necesita controlar un proceso de encendido / apagado con una señal analógica, si los procedimientos de encendido y apagado tienen un costo. En particular, si la señal analógica tiene algún tipo de interferencia sobre ella.
Consideremos su termostato en su casa.
A falta de histéresis, enciende el horno durante unos segundos, lo quita durante unos segundos, lo enciende durante unos segundos, quema el motor para que no arranque con demasiada frecuencia y lo deja congelado a la mitad. la noche (siempre es la mitad de la noche, o cuando está de vacaciones muy lejos y no hay nadie que esté revisando la casa y hace tanto frío como para congelar la tubería ...)
Con histéresis, enciende el horno por un tiempo y luego lo apaga cuando la temperatura ha subido un poco. Espera a volver a encender el horno hasta que la temperatura haya bajado un poco. Todavía morirá en un momento inoportuno, pero lo hará muchos años más tarde que en el escenario sin histéresis, ya que hay muchos menos arranques de motor en el escenario con histéresis.
Código? No es ciencia espacial. Una tira bimetálica y un interruptor de bulbo de mercurio lo manejaron durante décadas, aunque hay más de lo que se encuentra en el "eww, el mal de murcury, debe tener un termostato de wifi" en los ojos para hacer que ocurra la histéresis mecánica.
Si la temperatura es inferior al punto de ajuste Y el horno está apagado, encienda el horno. Si la temperatura es superior al punto de ajuste + la cantidad de histéresis Y el horno está encendido, apague el horno.
(no necesitas el caso si la temperatura está en el medio, deja el estado solo, pero puedes escribirlo si te hace feliz).
Lea otras preguntas en las etiquetas dsp