ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.19k stars 16.77k forks source link

Arducopter - Booster Motor Start for Turbines #26410

Open fanman2014 opened 4 months ago

fanman2014 commented 4 months ago

Feature request

Is your feature request related to a problem? Please describe. For multirotors, Boost motor SERVOx_FUNCTION = 81 doesn't allow for starting & stopping gas turbine engines.

Describe the solution you'd like Gas turbines require ramp-up of throttle command (i.e. from 1000us to 2000us) momentarily (approx 2 seconds) to initiate the start sequence in ECU. Once engine started, throttle will transition to normal throttle control for booster motor (turbine). This needs to be done when multirotors motors are turned off for safety reasons.

Another switch would be required to shut down turbine in emergencies (i.e. go to throttle down & trim down for booster motor only) to shut down turbine but leave multirotors active for safe landing.

Describe alternatives you've considered Considered helistart turbine feature but not linked to booster function. Prefer separate function for booster. Also considered motor interlock for multirotors but doesn't seem to trigger booster motor for start sequence.

Platform [ ] All [ ] AntennaTracker [ x ] Copter [ ] Plane [ ] Rover [ ] Submarine

Additional context Building a test platform to test features. See image. TurbineBooster

geofrancis commented 4 months ago

you could do this with a simple lua scipt. very cool build.

fanman2014 commented 4 months ago

Interesting. Any tips on where to start with the lua script?

fanman2014 commented 4 months ago

Looking at lua scripting, this could be risky for turbine use if the script crashes or runs out of memory. We'll need something more robust for power control.

IamPete1 commented 4 months ago

Looking at lua scripting, this could be risky for turbine use if the script crashes or runs out of memory. We'll need something more robust for power control.

No problems using lua for such thing provided you test to the same level you would if you made the change in C++. For example we now support several EFI systems that run engines doing the same sort of things your talking about for starting and stopping. The only difference here is that you would use the booster throttle output as the input to the EFI script instead of plane forward throttle.

https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_Scripting/drivers

fanman2014 commented 4 months ago

You mean this one -> https://github.com/ArduPilot/ardupilot/blob/ArduPlane-stable/libraries/AP_Scripting/drivers/EFI_HFE.lua

Not sure where to begin?

IamPete1 commented 4 months ago

I didn't really mean any particular one as a example for this use case, rather as a example of flight critical things using lua. I guess you just want to do the starting thing? If you had telemetry too then a EFI backed would make scene.

For starting you might want to just to a override with timeout on the existing boost output, that means that the script only overrides in the starting case and then once started it works exactly as it does now.

fanman2014 commented 4 months ago

Thanks Pete, I'm new lua so not sure how to do this. I'm trying to wrap my head around the context of how the script works. Sorry I'm very green when it comes to this kind of coding.

fanman2014 commented 4 months ago

Well not sure how to do this via Lua but wrote simple Arduino code to do the same thing. Let's see how this goes.