Building an auxiliary power unit for a very big drone. Will be using an internal combustion engine (16kW) as prime mover to a large BLDC motor/generator to mainly feed a DC bus and then also charge a 14 cell Lipo pack.
How well suited is an ODrive to this. The 56 volt version with lots of cooling (100 mph air stream type of cooling) seems capable. I could run 2 half-sized motor/generators in parallel and thus use 2 ODrives.
I believe that’s 143 amps per ODrive, so can the two axis be paralleled on each ODrive?
If so, is this feasible in terms of the regenerative efficiency particular to Odrive? Could I control the voltage using a parameter or parameter PID combo?
I am a noob for now
But your help is much appreciated.
Not yet. It’s a planned feature, but is not yet implemented. That being said, nothing stopping you from putting multiple motors on the same shaft (all of the ODrive motors come with through shafts) and using mutliple ODrives. Two ODrives (4 motors) would be ~ 75A each, which you should be able to do with the cooling you’re talking about. We also support thermistors and temperature cutoff so you can get an idea of what’s going on
Currently, any current generated on the DC bus by the motor will be dumped into the brake resistor. If you do not use a brake resistor, this functionality is disabled and it simply lets all of the DC bus current get dumped into whatever can take it. Put ODrive in current control mode, don’t use a brake resistor, and control bus current by setting your desired bus current as a negative motor current. For example if you want 100A bus current (50A per motor), you’d set:
<odrv>.axis0.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL
<odrv>.axis1.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL
<odrv>.axis0.controller.current_setpoint = -50.0
<odrv>.axis1.controller.current_setpiont = -50.0
There is technically a voltage control mode, but I don’t think it’s setup for what you want at the moment.
By the way, we have a working CAN branch, just needs review before it gets merged into the software. That way you can use this in a more robust environment