The simplest solution is to craft a PCB with two CPUs with accompanying driver channels: We just have to agree on the features and set about making one
. However I like Justin’s thought on using the CA to manage both throttles; it seems promising and I’ve yet to try that.
BTW – I just want to say that 2WD and AWD systems are advanced topics for experienced users
. I would strongly suggest noobs go build a single-wheel drive system first before venturing into this realm, because most of us here already know well the aspects of common components. In other words – if you’ve never built an ebike before, then this is the wrong thread to read and post your questions.
Thank you, KF
Are you guys familiar with my 30F controller build (viewtopic.php?f=30&t=34231
I'm building a full sinewave sensored/sensorless modified Field Oriented Control controller IC with everything configurable
to the user over RS232 (or USB with a USB<->RS232 cable
The options I built in for throttle control are ideal for multi-motor setup.
In my setup multiple controller IC's can be linked together via a CAN bus. One controller IC can be configured as throttle master, the
rest as throttle slaves. The throttle master has 1 or 2 analog throttle inputs (can be hall or potentiometer based). 1 can be used as
throttle, the 2nd can be used as regen (or a 2nd throttle). The analog throttle voltages are both converted to a 16 bit signal in
the 0 to 1 range. These two 16 bit words are transmitted over CAN by the master to the slaves.
Now each controller, independent of whether its a master or slave, uses the throttle inputs to regulate the motor phase currents (torque).
This is done according to
- Code: Select all
x1 = throttle_1 [0..1]
x2 = throttle_2 [0..1]
y1 = a1 * x1 + b1 * x1^2 + c1 * x1^3 (a1, b1 and c1 are in [-8 .. 8] range)
y2 = a2 * x2 + b2 * x2^2 + c2 * x2^3 (a2, b2 and c2 are in [-8 .. 8] range)
motor_phase_current = max_motor_phase_current * (y1 + y2)
Coefficients a, b and c can be used to configure all kinds of linear / exponentional type throttle curves.
Negative values can be used to obtain negative motor_phase_current which is basically regen.
The beauty in a multi-controller setup is that all controllers share the same throttle_1&2 values
but that each has its own a,b,c and max_motor_phase_current. So the maximum torque and throttle
respons can differ between the motors. You can have a 350W Mac in the front and a 500W Mac in the
rear, both operating on the same twist throttle and thumb regen 'throttle'. Then during motoring the
coefficients can be such that the powers to the motors match their ratings. For regen you can enable
(by using a2,b2,c2) regen strongly in the rear motor and weakly (or not with a2,b2,c2 all 0) in the front.
On the physical side, the CAN interface can be build to work with a shared ground supply or, if
you use opto couplers, you can have completely independent batteries for your motors...