Important variables:
L:Gtimer – 18hz timer. counts 0 – 17 or 1 – 18 not in this file.
<Gauge Name=”24v40Ah Battery” Version=”1.0″>
<Comment>By Robert Graham, Copyright 2014-15</Comment>
<Macro Name=”a”>C:SIMVARS</Macro>
<Macro Name=”t”>C:XMLTABLES</Macro>
<Element>
<Select>
<Value>
<!– battery initalization routine –>
(L:BatteryInitalization, bool) 0 ==
if{
<!– we need to work out the amps and volts per cell at 20 cells and 24V/40Ah that is 1.2 volts per cell and 2Ah see but we over charge to 26 so that’s 1.3 volts per cell and 2.175 amps–>
<!– update the aircraft’s voltage to match the current battery charge –>
1 (>L:BatteryInitalization, bool)
(L:ELEC_BAT_CHARGE, Volts) (@a:Electrical Battery Voltage, Volts)
}
<!– reset our active cell count and our active recharge counts and temp additions–>
(L:ELEC_BAT_ACTIVECELLS, number) 0 !=
if{
0 (>L:ELEC_BAT_ACTIVECELLS, number)
}
(L:ELEC_BAT_CHARGECELLS, number) 0 !=
if{
0 (>L:ELEC_BAT_CHARGECELLS, number)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 !=
if{
0 (>L:ELEC_BAT_TEMP_ADD, number)
}
<!– is the battery charging? or is it discharging we need to know –>
(L:PAUSED, bool) 0 ==
if{
(L:EPU_ON, enum) 1 ==
if{
<!– if the battery switch is on then we have the system connected it can charge or discharge –>
(A:ELECTRICAL MASTER BATTERY, bool) 1 ==
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
if{
250 (L:ELEC_TotA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number) <!– 250 amps, – the total electrical load = excess amps for charging –>
}
els{
<!– other wise it’s still powering the Battery essential bus on it’s own –>
0 (L:ELEC_HBUSA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
<!– so long as we aren’t drawing power were charging if all this is met –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
(A:ELECTRICAL MASTER BATTERY, bool) 1 == and
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
if{
1 (>L:ELEC_BAT_CHARGING, bool)
}
}
els{
(A:GENERAL ENG MASTER ALTERNATOR:1, bool) 1 ==
if{
<!– we only charge if the Generator Bus tie is closed and the master battery switch is ON–>
(L:FS_CB_BUS_TIE, bool) 0 ==
(A:ELECTRICAL MASTER BATTERY, bool) 1 == and
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
if{
(L:ELEC_GEN_CURRENTAMPS, number) (L:ELEC_TotA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number) <!– 200 amps from the generator –>
}
els{
<!– what are we powering? are we only powering the essential bus? Or are we powering the entire Battery Bus? –>
(L:FS_CB_BUS_TIE, bool) 0 ==
if{
<!– we are only powering the essential bus tie –>
0 (L:ELEC_HBUSA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
els{
<!– we are powering the entire Battery Bus –>
0 (L:ELEC_HBUSA, Amperes) (L:ELEC_BBusA, Amperes) + – (>L:ELEC_CHARGE_EXCESSAMPS, number)
<!– are we powering the invertor? –>
(L:FS_SW_INVERTOR, number) 2 ==
if{
(L:ELEC_CHARGE_EXCESSAMPS, number) (L:ELEC_MBusA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
}
}
<!– we only charge if we have a positive value –>
(L:FS_CB_BUS_TIE, bool) 0 ==
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(A:ELECTRICAL MASTER BATTERY, bool) 1 == and
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
1 (>L:ELEC_BAT_CHARGING, bool)
}
}
els{
<!– if the bus is tied the battery is on we are drawing from everything –>
(L:FS_CB_BUS_TIE, bool) 0 ==
(A:ELECTRICAL MASTER BATTERY, bool) 1 == and
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
if{
0 (L:ELEC_TotA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number) <!– we aren’t charging no more 😉 –>
}
els{
<!– we are only powering the Battery Bus –>
(L:FS_CB_BUS_TIE, bool) 1 ==
(A:ELECTRICAL MASTER BATTERY, bool) 1 == and
(L:FS_SW_BATTERY,enum) 1 ==
(L:RS_SW_BATTERY,enum) 1 == or and
if{
0 (L:ELEC_HBUSA, Amperes) (L:ELEC_BBusA, Amperes) + – (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
els{
<!– we are only powering the Hot bus –>
0 (L:ELEC_HBUSA, Amperes) – (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
}
0 (>L:ELEC_BAT_CHARGING, bool)
}
}
}
els{
0 (>L:ELEC_CHARGE_EXCESSAMPS, number)
}
<!– first thing we are doing every tick is working out the current voltage levels and if the cell needs to be charged –>
(L:ELEC_BAT_CELL_1, number) 0 >
if{
<!– we have an active cell let the system know –>
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
<!– Store the current amps in the avalible amps list –>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) (>L:ELEC_BAT_AMPS, Amperes)
<!– if the cell is less then 2.0 we need to charge it –>
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_1_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_1_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_2, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_2_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_2_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_2_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_3, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_3_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_3_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_3_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_4, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_4_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_4_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_4_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_5, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_5_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_5_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_5_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_6, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_6_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_6_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_6_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_7, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_7_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_7_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_7_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_8, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_8_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_8_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_8_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_9, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_9_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_9_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_9_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_10, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_10_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_10_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_10_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_11, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_11_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_11_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_11_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_12, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_12_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_12_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_12_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_13, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_13_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_13_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_13_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_14, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_14_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_14_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_14_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_15, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_15_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_15_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_15_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_16, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_16_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_16_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_16_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_17, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_17_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_17_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_17_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_18, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_18_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_18_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_18_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_19, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_19_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_19_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_19_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
(L:ELEC_BAT_CELL_20, number) 0 >
if{
(L:ELEC_BAT_ACTIVECELLS, number) 1 + (>L:ELEC_BAT_ACTIVECELLS, number)
(L:ELEC_BAT_AMPS, Amperes) (L:ELEC_BAT_CELL_20_AMPS, Amperes) + (>L:ELEC_BAT_AMPS, Amperes)
<!– if we are charing we want to check and see if we want to charge –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_20_AMPS, number) 2.175 <
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
els{
<!– we are discharging and we only add to the number if we are over 0 –>
(L:ELEC_BAT_CELL_20_AMPS, number) 0 >
if{
(L:ELEC_BAT_CHARGECELLS, number) 1 + (>L:ELEC_BAT_CHARGECELLS, number)
}
}
}
<!– ok now we get into the actual functions of the battery –>
<!– this is the amps we have every tick 1/18th of a second –>
(L:ELEC_CHARGE_EXCESSAMPS, number) 64800 / (>L:ELEC_BAT_CHARGERATE, number)
<!– we only get 80% efficency rate if recharging –>
(L:ELEC_BAT_CHARGERATE, number) 0 >
if{
(L:ELEC_BAT_CHARGERATE, number) 0.8 * (>L:ELEC_BAT_CHARGERATE, number)
}
<!– divide it by the cells that need charging and we have our charge rate, by rights we should be rolling over excess power but given we can’t write functions and just easily do this stuff this will do –>
(L:ELEC_BAT_CHARGERATE, number) (L:ELEC_BAT_CHARGECELLS, number) / (>L:ELEC_BAT_CHARGERATE, number)
<!– now we are going to start charging/decharging cells –>
<!— now lets add up the total voltage at the moment –>
(L:ELEC_BAT_AMPS, Amperes) 14.99 >
if{
(L:ELEC_BAT_AMPS, number) 15 – (>L:Work_BatVar1, number)
(L:Work_BatVar1, number) 28.5 / (>L:Work_BatVar2, number)
(L:Work_BatVar2, number) 2 * (>L:Work_BatVar3, number)
(L:Work_BatVar3, number) 24 + (>L:Work_BatFinal, number)
}
els{
(L:ELEC_BAT_AMPS, number) 1.6 * (>L:WORK_BatFinal, number)
}
(L:Work_BatFinal, number) (>L:ELEC_BAT_CHARGE, Volts)
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_1, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_1, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_1, number)
(L:ELEC_BAT_CELL_1, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_1, number)
}
}
<!– we charge/discharge the cell –>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_1_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
<!– we generate a small amount of heat degree’s of heat while we are below 2.0–>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
<!– between 2.0 and 2.18 we generate a little more –>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
<!– if it’s over 2.18 amps we get rid of the excess as heat and well its a bit hotter again –>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_1_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
<!– if we are below 0 then we reset to 0 –>
(L:ELEC_BAT_CELL_1_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_1_AMPS)
}
<!– if the battery temp is – then we want to actually flip it (happens when we discharge the battery ) –>
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_2, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_2, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_2, number)
(L:ELEC_BAT_CELL_2, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_2, number)
}
}
(L:ELEC_BAT_CELL_2_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_2_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_1_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_2_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_2_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_3, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_3, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_3, number)
(L:ELEC_BAT_CELL_3, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_3, number)
}
}
(L:ELEC_BAT_CELL_3_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_3_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_3_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_3_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_3_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_4, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_4, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_4, number)
(L:ELEC_BAT_CELL_4, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_4, number)
}
}
(L:ELEC_BAT_CELL_4_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_4_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_4_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_4_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_4_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_5, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_5, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_5, number)
(L:ELEC_BAT_CELL_5, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_5, number)
}
}
(L:ELEC_BAT_CELL_5_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_5_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_5_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_5_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_5_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_6, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_6, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_6, number)
(L:ELEC_BAT_CELL_6, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_6, number)
}
}
(L:ELEC_BAT_CELL_6_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_6_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_6_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_6_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_6_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_7, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_7, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_7, number)
(L:ELEC_BAT_CELL_7, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_7, number)
}
}
(L:ELEC_BAT_CELL_7_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_7_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_7_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_7_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_7_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_8, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_8, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_8, number)
(L:ELEC_BAT_CELL_8, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_8, number)
}
}
(L:ELEC_BAT_CELL_8_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_8_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_8_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_8_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_8_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_9, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_9, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_9, number)
(L:ELEC_BAT_CELL_9, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_9, number)
}
}
(L:ELEC_BAT_CELL_9_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_9_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_9_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_9_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_9_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_10, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_10, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_10, number)
(L:ELEC_BAT_CELL_10, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_10, number)
}
}
(L:ELEC_BAT_CELL_10_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_10_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_10_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_10_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_10_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_11, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_11, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_11, number)
(L:ELEC_BAT_CELL_11, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_11, number)
}
}
(L:ELEC_BAT_CELL_11_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_11_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_11_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_11_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_11_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_12, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_12, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_12, number)
(L:ELEC_BAT_CELL_12, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_12, number)
}
}
(L:ELEC_BAT_CELL_12_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_12_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_12_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_12_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_12_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_13, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_13, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_13, number)
(L:ELEC_BAT_CELL_13, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_13, number)
}
}
(L:ELEC_BAT_CELL_13_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_13_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_13_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_13_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_13_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_14, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_14, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_14, number)
(L:ELEC_BAT_CELL_14, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_14, number)
}
}
(L:ELEC_BAT_CELL_14_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_14_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_14_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_14_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_14_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_15, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_15, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_15, number)
(L:ELEC_BAT_CELL_15, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_15, number)
}
}
(L:ELEC_BAT_CELL_15_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_15_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_15_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_15_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_15_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_16, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_16, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_16, number)
(L:ELEC_BAT_CELL_16, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_16, number)
}
}
(L:ELEC_BAT_CELL_16_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_16_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_16_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_16_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_16_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_17, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_17, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_17, number)
(L:ELEC_BAT_CELL_17, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_17, number)
}
}
(L:ELEC_BAT_CELL_17_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_17_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_17_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_17_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_17_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_18, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_18, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_18, number)
(L:ELEC_BAT_CELL_18, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_18, number)
}
}
(L:ELEC_BAT_CELL_18_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_18_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_18_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_18_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_18_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_19, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_19, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_19, number)
(L:ELEC_BAT_CELL_19, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_19, number)
}
}
(L:ELEC_BAT_CELL_19_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_19_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_19_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_19_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_19_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 2.175 !=
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 > and
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 0 >
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 < and or
(L:ELEC_BAT_CELL_20, number) 0 != and
if{
(L:Gtimer, number) 3 ==
if{
(L:ELEC_BAT_CELL_20, number) 0.0000000000001 – (>L:ELEC_BAT_CELL_20, number)
(L:ELEC_BAT_CELL_20, number) 0 <
if{
0 (>L:ELEC_BAT_CELL_20, number)
}
}
(L:ELEC_BAT_CELL_20_AMPS, Amperes) (L:ELEC_BAT_CHARGERATE, number) + (>L:ELEC_BAT_CELL_20_AMPS, Amperes)
(L:ELEC_CHARGE_EXCESSAMPS, number) 0 >
if{
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 2.0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 1.99 >
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 2.18 < and
if{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 15000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 2.18 >
if{
2.18 (>L:ELEC_BAT_CELL_20_AMPS)
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 20000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
}
els{
(L:ELEC_BAT_TEMP_ADD, number) (L:ELEC_BAT_CHARGERATE, number) 10000 * + (>L:ELEC_BAT_TEMP_ADD, number)
}
(L:ELEC_BAT_CELL_20_AMPS, Amperes) 0 <
if{
0 (>L:ELEC_BAT_CELL_20_AMPS)
}
(L:ELEC_BAT_TEMP_ADD, number) 0 <
if{
(L:ELEC_BAT_TEMP_ADD, number) -1 * (>L:ELEC_BAT_TEMP_ADD, number)
}
}
(L:ELEC_BAT_CELL_1, number) (L:ELEC_BAT_CELL_2, number) (L:ELEC_BAT_CELL_3, number) (L:ELEC_BAT_CELL_4, number) (L:ELEC_BAT_CELL_5, number) (L:ELEC_BAT_CELL_6, number) (L:ELEC_BAT_CELL_7, number) (L:ELEC_BAT_CELL_8, number) (L:ELEC_BAT_CELL_9, number) (L:ELEC_BAT_CELL_10, number) (L:ELEC_BAT_CELL_11, number) (L:ELEC_BAT_CELL_12, number) (L:ELEC_BAT_CELL_13, number) (L:ELEC_BAT_CELL_14, number) (L:ELEC_BAT_CELL_15, number) (L:ELEC_BAT_CELL_16, number) (L:ELEC_BAT_CELL_17, number) (L:ELEC_BAT_CELL_18, number) (L:ELEC_BAT_CELL_19, number) (L:ELEC_BAT_CELL_20, number) + + + + + + + + + + + + + + + + + + + (>L:ELEC_BAT_CELL_HEALTH, number)
(L:ELEC_BAT_CELL_HEALTH, number) 20 / (>L:LIV_BATHEALTH, number)
<!– apply the Current Voltage to the Battery bus for flight sim–>
(L:EPU_ON, enum) 1 ==
if{
26 (>@a:Electrical Battery Voltage, Volts)
}
els{
(L:ELEC_BAT_CHARGE, Volts) (>@a:Electrical Battery Voltage, Volts)
}
<!– lets work out the battery temp –>
(A:AMBIENT TEMPERATURE, Celsius) (L:ELEC_BAT_TEMP_ADD, number) + (>L:ELEC_BAT_TEMP, Celsius)
(L:ELEC_BAT_TEMP, Celsius) 69.99 >
if{
(L:BATHOTFAIL, bool) 0 ==
if{
1 (>L:BATHOTFAIL, bool)
}
}
els{
(L:BATHOTFAIL, bool) 1 ==
if{
0 (>L:BATHOTFAIL, bool)
}
}
<!–Save and load junk –>
(L:AC_SAVETimer, number) 180 ==
(L:AC_PersistLoaded, bool) 1 == and
if{
‘IRIS Flight Simulation Software\PC9-A\PC9battery.ini’ (>C:LOGGER:openCsvWrite)
‘BatteryCellsHealth’ (>C:LOGGER:string) (L:ELEC_BAT_CELL_1, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_2, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_3, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_4, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_5, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_6, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_7, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_8, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_9, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_10, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_11, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_12, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_13, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_14, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_15, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_16, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_17, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_18, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_19, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_20, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_1_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_2_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_3_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_4_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_5_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_6_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_7_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_8_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_9_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_10_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_11_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_12_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_13_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_14_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_15_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_16_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_17_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_18_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_19_AMPS, number) (>C:LOGGER:number) (L:ELEC_BAT_CELL_20_AMPS, number) (>C:LOGGER:number)
1 (>C:LOGGER:closeWrite)
}
(L:AC_PersistLoaded, bool) 0 ==
(L:AC_INIT, number) 1 == and
(L:AC_INITTimer, number) 180 == and
if{
‘IRIS Flight Simulation Software\PC9-A\PC9battery.ini’ (>C:LOGGER:openCsvRead)
(C:LOGGER:string) p (C:LOGGER:number) (>L:ELEC_BAT_CELL_1, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_2, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_3, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_4, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_5, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_6, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_7, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_8, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_9, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_10, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_11, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_12, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_13, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_14, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_15, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_16, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_17, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_18, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_19, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_20, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_1_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_2_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_3_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_4_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_5_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_6_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_7_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_8_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_9_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_10_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_11_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_12_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_13_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_14_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_15_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_16_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_17_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_18_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_19_AMPS, number) (C:LOGGER:number) (>L:ELEC_BAT_CELL_20_AMPS, number) (C:LOGGER:number)
1 (>C:LOGGER:closeRead)
}
</Value>
</Select>
</Element>
</Gauge>