A lot has happened with the Monolith since the installation of the "sanity-savers" in the PIP (the quiet fans blowing upward). Coulomb has been giving me lots of help. But I can't afford to take much time to write about it, as the poor customer is still waiting.
Here's a photo of the two switchboards to the right of the PIP, which are finally complete. They are both DC switchboards. The upper one is at PV array voltage (MPPT-range 60 to 115 V, 6P3S x 72-cell modules x 195 W) and the lower one is at battery voltage (nominally 48 V, 16 x LiFePO4 cells x 180 Ah).
The lower switchboard also contains the BMS master in the upper left. It's a modified version of the current and insulation monitoring unit (IMU) used in the MX-5, which is itself a modified cell monitoring unit (CMU). Its two reed relays, that were used for insulation testing, have been replaced by two large MOSFETs that are used to control two sets of contactors having 12 volt coils.
The two sets are "source" and "load". In fact there is a third set "battery" which doesn't need its own MOSFET since it is diode-ORed from the other two. So it is on whenever either of them are on. Or putting it another way, you have to drop out both sources and loads before the single battery contactor (a Kilovac EV200, middle left of Battery switchboard) will drop out.
Of course the point of all these contactors is to be able to protect the battery under conditions of over-charge and over-discharge.
The source contactor set consists of the genset contactor (Pulset 40 A 2-pole) in the AC switchboard to the left of the PIP (not shown) and the PV array contactor (a Gigavac MiniTactor) on the right of the PV array switchboard (shown).
The load contactor set is entirely in the AC switchboard and consists of a changeover relay feeding 12 V to the coil of one or the other of two Pulset 40 A 2-pole contactors, making a virtual 40 A 2-pole changeover that powers the household AC load from either the inverter or the (manual start) genset (if it's going).
The battery fuses (22x58 mm, 100 A) are on the right, and you can see, alongside the negative battery cable below them (35 mm^2), an optic fibre goes from the right side of the IMU to CMU #1. Alongside the positive battery cable a fibre comes back from CMU #16 to the left side of the IMU. You can't see it in the photo but there are two
fibre outputs on the right of the IMU. The other one goes to the PIP in between the two PV array cables (13.3 mm^2, 6 AWG).
The IMU senses the voltage across the current shunt (fine twisted pair) and it senses the open-circuit array voltage, between battery positive (from the left side of the shunt) and PV array negative (from the lower right of the MiniTactor). This is so it can protect the PIP from array open circuit voltages above 145 V which are possible in winter at dawn, before the panels have had a chance to warm up.
The IMU, and through it, the coils of all the contactors, are powered from the DC-DC converter in the middle of the battery switchboard (48 V to 12 V, 30 W). This uses 13 watts continuously to power all the contactors. It only needs its full power briefly while pulling in the EV200 battery contactor.
The circuit board at the bottom left of the battery switchboard was built by Coulomb on Sunday. It contains the 48 V bootstrap circuitry that allows even the DC-DC to be disconnected from the battery in an emergency shutdown, whether triggered by a human via the emergency stop switch, or by the IMU. In order to start up again (which requires a human to release, or push and release, the e-stop switch) the DC-DC needs to be briefly powered directly from the battery, for long enough for it to power the IMU, and through it the battery contactor, thereby latching itself on.
It uses essentially the capacitor/diode bootstrap circuit shown a few messages back
, with some rearrangement and the addition of two 1.25 A 100 Vdc fuses to protect the 3-wire cable going (upward) to the e-stop switch.
So from now on, it's all about implementing, in the IMU software, all the required battery protections.
For a week now we've had PI control of the PIP by the IMU, in response to individual cell stresses, while charging from either AC-in or the PV array. That was by far the hardest part of the IMU software. Thanks for all your help with that, Coulomb, both writing and debugging.
Second in difficulty was a bug that cost me a whole day recently. It had apparently been lurking for years in the code written for the MX-5, just waiting for someone to decide they needed to lower the BMS "heartbeat" to 2 Hz. It is currently 15 Hz in the MX-5 and has never been lower than 4 Hz. There is a single timer which is used for both serial comms timing and the cell-status heartbeat, so there is some interaction between the two. I have no time to get to the bottom of why it didn't work with the original start-bit setup-time formula, but adding one to it fixed the problem.
Ah well. That's (software-engineering) life.
[Edit: Improved grammar and punctuation. Added link to battery-contactor bootstrap schematic.]