I think I have three options:
(a) 3.7 V li-ion + boost converter to drive solenoids
(b) 12 V lead-acid + buck converter to drive MCU
(c) 3.7 V + 12 V dual-battery system
How to decide between these options?
I've named your options (a)..(c). I've also deduced that these are in order of preference: (a) would be best because the battery's smallest, then (b) then (c) least.
The below explanations don't account for falling battery voltages as they drain down. You'll have to factor that in yourself from the battery manufacturer's data. But the calculation results will each be distinct enough to select your option before that anyway.
For (a), the 3.7 V battery 'batt3V7' has to be large enough for 6 months of the MCU anyway. So you're looking at the additional battery capacity needed for the solenoid.
This extra capacity is: (Isol x 12/3.7 x (100/boosteff) x ton x 3600) Ah
Where: Isol
is solenoid average current drawn, across pull-in current to hold-in current (best measured with scope, while loaded with your actual mechanics); 12/3.7
is the step-up voltage ratio; boosteff
is the boost converter efficiency as a percentage; ton
is the on-time in seconds; 3600
is number of seconds in an hour.
You can then decide if the new capacity of batt3V7 is suitable and practical.
For (b), it's a similar method in reverse, with the MCU loading 'batt12V' and the capacity being the sum of the solenoid and MCU capacity requirements.
The solenoid capacity needed is: (Isol x ton x 3600) Ah
The MCU capacity needed is: (Imcu x 3.3/12 x (100/buckeff) x 3600) Ah
Where: ton
is the solenoid on-time in seconds; 3600
is number of seconds in an hour; Imcu
is MCU average current drawn including any use sleep modes; 3.3/12
is the step-down voltage ratio; buckeff
is the buck converter efficiency as a percentage.
For (c), the size of each battery can be determined by applying the methods shown above.