• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSXA Starter AMPS issue

Messages
1,749
Country
unitedstates
On my Learjet35A the generator is off during the start sequence. So the amp does not show the value set in the aircraft.cfg of 300 amps.

Once started and the generator is on the amp meter should show 300 amps and over the next minute lower to 100 amps. Then you can start the right engine.

But on my setup the amps are only 18 amp and lower to 7 amps over 1 minute.

What can i do in the aircraft.cfg or the gauge code to fix this issue.

Matter of fact with all lights on shows more amps. Around 50 amps since they drain 5 amps per light.
So with a 300 amp starter and the meter not showing current amps i can see why the meter is not showing the high amount. So it must be that when the battery is low like 2 volts the amps only need to be around 18 amps to re charge. So i am not sure what to do! Any suggestion?
 
Hi,

What should the ammeter show? The current load in amperes?

I did a custom electrical system for the T.5, with thanks to Bjoern.
Not sure if I did it correct, but...
What I did:
- Create a battery with a certain voltage (24-25 V when fully charged) and a certain State of Charge, in Coulombs, which is the battery's ampere-hour but calculated back to ampere-second (which is coulombs).
- Every user on the system drains this SoC with it's user load (in amperes) multiplied by the time in seconds.
- Meanwhile, the voltage of the battery also degrades, but not very fast (lower limit is at 11 V I guess).
- Once an engine is started and a generator is running, it charges the battery every second with its amperage.

All done with Lvars. See this thread: http://www.fsdeveloper.com/forum/threads/fokker-t-5-bomber-for-fsx.432043/page-13#post-752380

This is one of my electrical gauges. In fact, this one sets the logic of the generators controller (either off - left gen - both gen - right gen - battery) and users of the electrical system.

Code:
<Gauge Name="T5_electrical.xml" Version="1.0">
 <Update Frequency="10"/>
 <Element>
  <Select>
   <Value>
    <!-- Controller switch logic -->
    <!-- UIT -->
    (L:Ragonot_fiveway,enum) 0 == if{
        (L:FT5_GenL_on,bool) if{ 0 (>L:FT5_GenL_on,bool) }
        (L:FT5_GenR_on,bool) if{ 0 (>L:FT5_GenR_on,bool) }
        (L:FT5_mainbus_on,bool) if{ 0 (>L:FT5_mainbus_on,bool) } }
        
    <!-- L.GEN -->   
    (L:Ragonot_fiveway,enum) 1 == if{
        (L:FT5_GenL_on,bool) ! if{ (A:GENERAL ENG COMBUSTION:1,bool) (>L:FT5_GenL_on,bool) }
        (L:FT5_GenR_on,bool) if{ 0 (>L:FT5_GenR_on,bool) }
        (L:FT5_mainbus_on,bool) ! if{ 1 (>L:FT5_mainbus_on,bool) } }
        
    <!-- PARALLEL -->
    (L:Ragonot_fiveway,enum) 2 == if{
        (L:FT5_GenL_on,bool) ! if{ (A:GENERAL ENG COMBUSTION:1,bool) (>L:FT5_GenL_on,bool) }
        (L:FT5_GenR_on,bool) ! if{ (A:GENERAL ENG COMBUSTION:2,bool) (>L:FT5_GenR_on,bool) }
        (L:FT5_mainbus_on,bool) ! if{ 1 (>L:FT5_mainbus_on,bool) } }
    
    <!-- R.GEN -->
    (L:Ragonot_fiveway,enum) 3 == if{
        (L:FT5_GenL_on,bool) if{ 0 (>L:FT5_GenL_on,bool) }
        (L:FT5_GenR_on,bool) ! if{ (A:GENERAL ENG COMBUSTION:2,bool) (>L:FT5_GenR_on,bool) }
        (L:FT5_mainbus_on,bool) ! if{ 1 (>L:FT5_mainbus_on,bool) } }
        
    <!-- ACCU -->
    (L:Ragonot_fiveway,enum) 4 == if{
        (L:FT5_GenL_on,bool) if{ 0 (>L:FT5_GenL_on,bool) }
        (L:FT5_GenR_on,bool) if{ 0 (>L:FT5_GenR_on,bool) }
        (L:FT5_mainbus_on,bool) ! if{ 1 (>L:FT5_mainbus_on,bool) } }

    <!-- Set electrical condition -->
    (A:ELECTRICAL MASTER BATTERY,bool) (L:FT5_mainbus_on,bool) (L:FT5_battery_SOC,enum) -262800 &gt; &amp; &amp; if{ 1 (>L:FT5_stroom,bool) } els{ 0 (>L:FT5_stroom,bool) }
   </Value>
  </Select>       
 </Element>
 <Element>
  <Select>
   <Value>
    <!-- Askania direction commander and pseudo AP -->
    (L:Askania_RAW_on,bool) (L:FT5_stroom,bool) * s1
    (L:Askania_RAW_L,bool) ! (L:Askania_RAW_R,bool) ! &amp; if{ l1 (>L:Askania_RAW_lights,enum) }
    els{
        (L:Askania_RAW_L,bool) if{ l1 2 * (>L:Askania_RAW_lights,enum) }
        (L:Askania_RAW_R,bool) if{ l1 3 * (>L:Askania_RAW_lights,enum) }
    }
    (A:AUTOPILOT MASTER,bool) ! if{
        (A:PLANE HEADING DEGREES MAGNETIC,radians) rddg (>K:HEADING_BUG_SET)
        (A:PLANE ALTITUDE,feet) (>K:AP_ALT_VAR_SET_ENGLISH)
    }
    els{
        (A:AUTOPILOT HEADING LOCK DIR,degrees) (>K:HEADING_BUG_SET)
        (A:AUTOPILOT ALTITUDE LOCK VAR,feet) (>K:AP_ALT_VAR_SET_ENGLISH)
    }

    <!-- Landing lights and avionics switches -->
     (L:FT5_electrical_selector,enum) 0 == if{
        (A:LIGHT LANDING,bool) if{ 0 (>K:LANDING_LIGHTS_SET) }
        (A:AVIONICS MASTER SWITCH,bool) if{ 0 (>K:AVIONICS_MASTER_SET) } }
        
    (L:FT5_electrical_selector,enum) 1 == if{
        (A:LIGHT LANDING,bool) ! if{ (L:FT5_stroom,bool) (>K:LANDING_LIGHTS_SET) }
        (A:AVIONICS MASTER SWITCH,bool) if{ 0 (>K:AVIONICS_MASTER_SET) } }
        
    (L:FT5_electrical_selector,enum) 2 == if{
        (A:LIGHT LANDING,bool) if{ 0 (>K:LANDING_LIGHTS_SET) }
        (A:AVIONICS MASTER SWITCH,bool) ! if{ (L:FT5_stroom,bool) (>K:AVIONICS_MASTER_SET) } }
        
    (A:LIGHT PANEL,bool) ! if{ (L:FT5_instr_light,bool) (L:FT5_stroom,bool) * (>K:PANEL_LIGHTS_SET) }

    <!-- Prop sync gauge -->
    (A:GENERAL ENG PCT MAX RPM:1,percent) (L:FT5_starter_rate_L,enum) 10.8 * 2600 / + (A:GENERAL ENG PCT MAX RPM:2,percent) (L:FT5_starter_rate_R,enum) 10.8 * 2600 / + - abs (>L:T5_sync_rate,enum)
    (L:T5_sync,enum) (L:T5_sync_rate,enum) + 50 % (L:FT5_stroom,bool) * (>L:T5_sync,enum)
    
    <!-- Nav and recog ligths -->
    (L:FT5_stroom,bool) if{
        (L:FT5_switch_nav_light,bool) (A:LIGHT NAV,bool) ! &amp; if{ (>K:TOGGLE_NAV_LIGHTS) }
        (L:FT5_switch_nav_light,bool) ! (A:LIGHT NAV,bool) &amp; if{ (>K:TOGGLE_NAV_LIGHTS) }
        (L:FT5_switch_recog_light,bool) (A:LIGHT RECOGNITION,bool) ! &amp; if{ (>K:TOGGLE_RECOGNITION_LIGHTS) }
        (L:FT5_switch_recog_light,bool) ! (A:LIGHT RECOGNITION,bool) &amp; if{ (>K:TOGGLE_RECOGNITION_LIGHTS) }
    }
    els{
        (A:LIGHT NAV,bool) if{ (>K:TOGGLE_NAV_LIGHTS) }
        (A:LIGHT RECOGNITION,bool) if{ (>K:TOGGLE_RECOGNITION_LIGHTS) }
    }
    (L:FT5_switch_instr_light,bool) (L:FT5_stroom,bool) * (>K:PANEL_LIGHTS_SET)
   </Value>
  </Select>       
 </Element>
</Gauge>

The power system is controlled by another gauge, since I needed another frequency to run at.

Code:
<Gauge Name="T5_power.xml" Version="1.0">
 <Update Frequency="1"/>
 <Element>
  <Select>
   <Value>
    <!-- List all consumers -->
    (A:LIGHT NAV,bool) 5.6 *
    (A:LIGHT PANEL,bool) 19 * +
    (A:LIGHT RECOGNITION,bool) 4.2 * +
    (A:LIGHT LANDING,bool) 50 * +
    (A:PITOT HEAT,bool) 3 * +
    (A:AVIONICS MASTER SWITCH,bool) 35 * +
    (L:Askania_RAW_on,bool) 4 * +
    (L:FT5_push_signals,bool) 4 * +
    (L:FT5_push_claxon,bool) 6 * +
    (L:FT5_bosch_lo,enum) 3 * +
    (L:FT5_window_heat,bool) 3 * +
    (L:FT5_clothes_heat,bool) 3 * +
    (>L:FT5_total_amps,enum)
    
    <!-- List starter consumers -->
    (L:FT5_starter_L,bool) 90 *
    (L:FT5_starter_R,bool) 90 * +
    (A:GENERAL ENG STARTER:1,bool) 4.6 * +
    (A:GENERAL ENG STARTER:2,bool) 4.6 * +
    (>L:FT5_starter_amps,enum)
    
    <!-- List all generator amps -->
    (L:FT5_GenL_on,bool)
    (L:FT5_GenR_on,bool) + (L:FT5_Gen_power,enum) *
    (>L:FT5_gens_amps,enum)
    
    <!-- Five pos switch to UIT -->
    (L:Ragonot_fiveway,enum) 0 == if{ (L:FT5_starter_amps,enum) (>L:FT5_battery_load,enum) }
    els{ (L:FT5_starter_amps,enum) (L:FT5_total_amps,enum) + (L:FT5_gens_amps,enum) - (>L:FT5_battery_load,enum) }
    
    <!-- Battery state of charge (0=262800C so full, -262800=0C so empty) -->
    (L:FT5_battery_SOC,enum) (L:FT5_battery_load,enum) - -262800 max 0 min (>L:FT5_battery_SOC,enum)
    (L:FT5_battery_SOC,enum) 262800 + s1
    l1 2 pow -0.00000000005 * l1 0.00003 * + 20 + (>L:FT5_battery_volts,enum)
   </Value>
  </Select>       
 </Element>
</Gauge>

Curious if this will help you.

Cheers,

Daan
 
Just two comments regarding electrical systems...

1 - Discharge is not a linear process. In fact, as a battery discharges the voltage drop is an exponential curve.
2 - Charge is not at the actual amperage of a generator/alternator. The battery would probably overheat and explode if it were. Most charging systems charge at a 10% rate, as in 10% of the battery's capacity.
 
1 - Discharge is not a linear process. In fact, as a battery discharges the voltage drop is an exponential curve.

I know it. And maybe other know it!
But my mathematics is a little bit poor!

So maybe you have a formula?? Would be really nice!

Edi
 
Hi,

Curious if this will help you.

Cheers,

Daan

I do not think this will help because it's very complex and i did not write it. And i am not interested in a 2 week project for a small minor detail. Thanks for trying to help!

I think a better solution would be to crank up the charging amps and add this variable to the default charge. If that can be done!
 
See my reply. Amperes for starters can be adjusted in the aircraft.cfg.
 
See my reply. Amperes for starters can be adjusted in the aircraft.cfg.

I already set the starter to 300 AMPS. But the starter only uses amps for a few seconds rather than the the first 20%. And the charge is what we need because you can't see the amps during the start because the same switch is the generator. And the gen is off. So we need to show a higher rate of charge and problem fixed.
 
That can't be done with the default system. If you really want non-default behavior you'll have to code a custom system.
 
That can't be done with the default system. If you really want non-default behavior you'll have to code a custom system.
Why can't we add a custom Lvar factor with increased rate and add this to the default generator variable and the amp meter will show a higher value.
 
Why can't we add a custom Lvar factor with increased rate and add this to the default generator variable and the amp meter will show a higher value.

Assuming the starter amps are set to 30 in the aircraft.cfg...

Generator variable:
Code:
(L:FSW LJ Generator:1, number)

In a 2D gauge:
Code:
 (A:GENERAL ENG STARTER:1, bool)
0 20 (A:TURB ENG N2:1, percent) rng and
if{ 270 } els{ 0 }
(A:ELECTRICAL GENALT BUS AMPS:1, Amperes) + (>L:FSW LJ Generator:1, number)

Do the same for the other generator, using index "2".

This will also fix the animation bug in the amperemeters since, as of v 2.7, both of them are driven by "(A:ELECTRICAL GENALT BUS AMPS:1, Amperes)".


And while we're at it: The clickspot for the anti skid switch misses a "1" in front of "(&gt;L:XMLSND62,enum)", which prevents the click sound for the switch from being played.
 
Assuming the starter amps are set to 30 in the aircraft.cfg...

Generator variable:
Code:
(L:FSW LJ Generator:1, number)

In a 2D gauge:
Code:
 (A:GENERAL ENG STARTER:1, bool)
0 20 (A:TURB ENG N2:1, percent) rng and
if{ 270 } els{ 0 }
(A:ELECTRICAL GENALT BUS AMPS:1, Amperes) + (>L:FSW LJ Generator:1, number)

Do the same for the other generator, using index "2".

This will also fix the animation bug in the amperemeters since, as of v 2.7, both of them are driven by "(A:ELECTRICAL GENALT BUS AMPS:1, Amperes)".


And while we're at it: The clickspot for the anti skid switch misses a "1" in front of "(&gt;L:XMLSND62,enum)", which prevents the click sound for the switch from being played.

Will try to work this out.
And good find on the missing 1 for the anti skid code. Nobody ever caught that mistake yet!:eek:

And yes last week i also found both meters reading gen 1. This has already been fixed.
 
I have changed the rules. There is no amps on the meter during the start because the gen is off.
I also created new tooltips that add up both the default and the Lvar for accurate reading.
I went 250 amps because lights brings it over 300 amps. When the battery reaches 27.9 the voltage drops back to the default and your ready to start engine 2.

But what if the APU is on then there is no loss. And the starter does not drop the voltage much. So the 1 minute wait is not there yet. Some more work to go.

Here is the new code:
Code:
(A:GENERAL ENG GENERATOR SWITCH:1,bool) 1 == (A:ELECTRICAL BATTERY VOLTAGE:1,Volts) 27.9 &lt; and
if{ 250 } els{ 0 }
(A:ELECTRICAL GENALT BUS AMPS:1, Amperes) + (>L:FSW LJ GENERATOR:1, NUMBER) }

Can you help me make the value a sliding scale from the default amps. So this way when the default drops from 24 amps to 17 amps we will see 300 amps drop to 100 amps.
 
Will try to work this out.
And good find on the missing 1 for the anti skid code. Nobody ever caught that mistake yet!:eek:

Well, to be fair, some users on Avsim did indeed mention that the switch doesn't play a sound when clicked. I just looked at the code and found the cause.


I have changed the rules. There is no amps on the meter during the start because the gen is off.

The starter motors should draw from the main bus which is either sourced from the battery or a GPU, therefor their current will not show up on the ammeters for the engine generators.

I also created new tooltips that add up both the default and the Lvar for accurate reading.
I went 250 amps because lights brings it over 300 amps. When the battery reaches 27.9 the voltage drops back to the default and your ready to start engine 2.

But what if the APU is on then there is no loss. And the starter does not drop the voltage much. So the 1 minute wait is not there yet. Some more work to go.

Here is the new code:
Code:
(A:GENERAL ENG GENERATOR SWITCH:1,bool) 1 == (A:ELECTRICAL BATTERY VOLTAGE:1,Volts) 27.9 &lt; and
if{ 250 } els{ 0 }
(A:ELECTRICAL GENALT BUS AMPS:1, Amperes) + (>L:FSW LJ GENERATOR:1, NUMBER) }

Can you help me make the value a sliding scale from the default amps. So this way when the default drops from 24 amps to 17 amps we will see 300 amps drop to 100 amps.

I need to dig up some info about the real electrical system first, because I have a hunch that you will only see 300 amps on the generator bus if you're starting engine #2 while #1 is already running (and its generator is connected) and while you're not connected to a GPU. With a GPU, you likely wouldn't see any current or delay on the ammeters at all since it is able to fully supply the aircraft with enough current to start both engines in quick succession.
 
I read up on the electrical part of the start procedure. The real Learjet does have combined starters/generators, so I guess you do indeed see an indication on the generator bus during engine start.
Since GPUs may be rated up to 1000A for the Learjet, you won't see a current drop when starting an engine while plugged in as the GPU will replenish the battery as fast as the starter drains it. Also mind that the systems description says that the generators may not be used as long as you're plugged in (is this already modeled?).
With one engine running, the generator of the running engine will supply the battery during engine start, so there won't be much of a battery voltage drop either. You'll most likely only see more amps on the generator bus of the running engine (corresponding to the 300A used by the running starter?).

About the lights: If you get a 300A indication on the ammeter for a generator, it's current that's on the generator bus while the aircraft lights will only drain the battery or the main bus, therefor lowering current that's available to the starter anyway. So if you scale light drain correctly, you will end up with 250A on the generator bus anyway.

Calculating the multiplier for the battery voltage to produce starter amps isn't that diffcult.

1) Multiplier for 300A at 28V battery: 300/28=10.71
2) Multiplier for 100A at 17V battery: 100/17=5.88
3) Delta voltage: -11V, delta multiplier: -4.83
4) Gradient: -4.83/-11V = 0.439 per volt input
5) Equation: y=[(x-28)*0.439+10.71]*x with y=output multiplier, x=input voltage, 28=start voltage, 10.71=start multiplier. Output has to be lower than 10.71 for voltages lower than 28V. Multiply result with input voltage to obtain amperes.
6) Test: Multiplier for 20V. y=[(20-28)*0.439+10.71]*20=143.96A. Result is in the valid range (300 and 100A).

In XML syntax, writing to a G: type variable and built into the ammeter code for use during engine start for engine 1:
Code:
<!-- Calculate current for engine 1 generator bus -->
(A:ELECTRICAL BATTERY VOLTAGE, volts) 28 - 0.439 * 10.71 + (A:ELECTRICAL BATTERY VOLTAGE, volts) * (>G:Var1)
<!-- Generator bus may only work in starter or generator mode, but not in both -->
(A:GENERAL ENG STARTER:1, bool) (A:GENERAL ENG GENERATOR SWITCH, bool) ! and if{ (G:Var1) (>L:FSW LJ GENERATOR:1, NUMBER) }
(A:GENERAL ENG STARTER:1, bool) ! (A:GENERAL ENG GENERATOR SWITCH, bool) and if{ (A:ELECTRICAL GENALT BUS AMPS:1, Amperes) (>L:FSW LJ GENERATOR:1, NUMBER) }
<!-- Starter cuts out when N2 > 45% or voltage falls below 20 V -->
(A:TURB ENG N2:1, percent) 45 &gt;
(A:ELECTRICAL BATTERY VOLTAGE, volts) 20 &lt; or
(A:GENERAL ENG STARTER:1, bool) and
if{ (>K:TOGGLE_STARTER1) }

The battery voltage multiplier calculation is the same for the other engine ammeter, so you just need one instance.
 
I read up on the electrical part of the start procedure. The real Learjet does have combined starters/generators, so I guess you do indeed see an indication on the generator bus during engine start.

The DC ammeters on the Lear (and on many other aircraft as well) show amperage output by each generator unit.

When the first engine is started - battery only -, both generators show 0 amperage as they are not producing current, the battery is feeding the starter's draws.

After the engine starts, turning its generator to ON will show 300-more amps initially, meaning the battery started recharging; short time later amperage lowers while battery charge completes, up to a value near to 40-60 % of amperage rating (120-180 amps) as the single generator is feeding the entire electrical system.

When the second engine is started - generator assisted - the opposite generator ammeter initially rises to full (300-more) until the start procedure ends, then it will go down steadily to 120-180 amps, after the second battery's recharge is finished.

As long as the second generator is put on line, the entire electrical draws are shared by both generators, therefore ammeters on both units will show values around 25 % (60-90) of max (300) amperage, depending on the amount of systems that are active.

With minor differences, the above should apply to any turbine (turbofan/turboprop) aircraft that uses battery for engine starts.

Tom
 
GAH! The code and explanations cost me one and a half hours of very percious sleep.
Sorry DG, this was one extra mile too much for nothing. Maybe Tom and Roy are kind enough to help you out further, but I'm out.

(Yes, bad day.)
 
Last edited:
Taquilo explained this perfectly as i was saying you can't see any amps for the first engines start because the generator is not being used. The battery is or the GPU.

Heretic, should i try your code not sure if this is going to be what we want? I planned on working out a code as i near the end of my updates. Thanks for putting so much time in. I would try to keep things simple and maybe only put small amount of time in per day. You are an awesome helper!:cool:
 
Calculating the multiplier for the battery voltage to produce starter amps isn't that diffcult.

1) Multiplier for 300A at 28V battery: 300/28=10.71
2) Multiplier for 100A at 17V battery: 100/17=5.88
3) Delta voltage: -11V, delta multiplier: -4.83
4) Gradient: -4.83/-11V = 0.439 per volt input
5) Equation: y=[(x-28)*0.439+10.71]*x with y=output multiplier, x=input voltage, 28=start voltage, 10.71=start multiplier. Output has to be lower than 10.71 for voltages lower than 28V. Multiply result with input voltage to obtain amperes.
6) Test: Multiplier for 20V. y=[(20-28)*0.439+10.71]*20=143.96A. Result is in the valid range (300 and 100A).
[/code]

I really like your formula for figuring out the multiplier. I learned a new trick.
But we want to reverse this scale so that as the battery gets charged the amps drop not raise. Also we do not want the scale to be from 17 volts to 28 volts. We want 27V to 28V.


Your formula is amazing and it works perfect including reversing the sliding scale.:stirthepo This came out perfect.
Now i just need the battery to drain a bit more!o_O
As you can see here i learn fast!
Code:
Multiplier AMPS AT SPECIFIC VOLTS

1) Multiplier 100A at 28.0V battery: 100/28 = 3.57
2) Multiplier 300A at 27.0V battery: 300/27 = 11.11
3) Delta Voltage: -1.0V
4) Delta Multiplier: -7.22
4) Gradient: -7.54 /-1.0V = -8.54 per volt input
5) Equation: Y=[(x-28)*-8.54+3.57]*x

x = CURRENT VOLTAGE
Y = RESULT

Where did you learn this formula? Your a genius!:eek:
 
Last edited:
Back
Top