We're designing a modular power system and figured we should have a relay module, and my PCB layout guy is fast so I decided to whip out a simple module.
Featuritus kicks in. We normally measure voltages and currents, so the next logical step is to make it a programmable circuit breaker too. That also protects my relays and PCB traces, to some extent.
So how might a user program a circuit breaker? Just RMS current with some time constant? Allow fast and slow trips?
Fuses are usually specified to trip at some I^2*T, but that can't be the whole story, because 1 mA is a lot of I^2*T in ten years.
And my current sensor saturates. If the module is specified for 7.5 amps, and the 10-amp Hall sensor saturates a bit past 12 amps, so a zillion amps looks like 12 so the I^2*T math doesn't work at, say, 30 amps.
Sine waves sort of work if they don't clip too hard. Luckily, sine waves are kinda flat on top.
So I need a trip algorithm. That will be executed in an FPGA that sees a fast ADC that is digitizing the Hall sensor output.