throttle, duty_cycle control(castle) vs current control(vesc)
throttle responsiveness
TL;DR; castle more control vesc more smooth
Current control lacks the responsiveness that you notice when running at the edge of traction and balance around a turn on the track. It also lacks the punch of duty_cycle control. I suspect both of these are due to input lag and that PID tuning may help. Sadly, I never got around to testing PID turning. Punch wise, a litte throttle expo might help current control feel more jumpy. but it won’t help the lag.
Note Vesc throttle ramping needs to be set very very low (off), as it’s an artificial lag in response that would skew all these tests in duty_cycle’s favor.
throttle range
TL;DR; mixed, vesc more power fidelity, castle more speed fidelity
if you’re at mid speed with duty_cycle control and let off the throttle. you have to come all the way back to mid throttle to match your speed again, and then only the remaining range of the throttle is available to add more power. you could see this as less range to control remaining power or more range to carefully match current speed which matters balancing through turns.
with current control if you’re at mid speed and you let off the throttle, you only have to travel a small distance before you’ve matched enough current to maintain current speed, and the rest of the throttle is available to control the remaining amount of power. this more range to control remaining power less range to carefully match current speed. which matters if you wan to carefully add more power and maintain balance in a turn. enjoy the symmetry.
IMO the matching the speed bit feels like more fidelity. the more range to control the power feels ‘smoother’
These differences in control require vastly different muscle memory and the reason it’s so troubling to switch between the two. (on high power boards)
smooth starts
TL;DR; vesc more smooth.
castle background
In the castle controllers, there are two kinds of motor current limiting: punch control, which we run at 100%, and torque limiting, which we have disabled. Torque limiting is motor current limits, and thus we’re running “none” all the time. I’m not sure how punch control is implemented, it’s intended to prevent burnouts. I suspect motor current limits only when rpm is very low.
duty_cycle control simplified model
With duty_cycle control if you command 50% duty_cycle, the motor will instantly try to turn at 50% top speed (x max power %) If it can’t, the motor instead demands current which results in torque until it reaches that speed. The amount of current demanded is proportional to the difference in actual rpm and target rpm. This can be a lot. [up to infinite if the motor is held stopped. ]
castle smooth starts
If you give 5% throttle the esc targets 5% duty_cycle and will use any amount of current to get there. To get a smooth start you have to smoothly control the throttle so that the delta between current speed and commanded speed (duty_cycle) ramps up at your control. if your muscle memory is vesc you will usually push more throttle then you need and it will jump. in fact for anyone you’ll usually push to fast into it. it requires fine control at the starting end.
you can learn this, but it’s the harder of the two types.
current control simplified model
With current control, if you give it 50% throttle, the ESC tries to target 50% of motor current max, in order to do this it begins watching the current sensors and using a PID loop tries to adjusts duty_cycle until it hits the desired current. this PID loop provides a ramping that contributes to “smoothness” and also a delay that contributes to “lag”
vesc smooth starts
From start on a vesc if you give 5% throttle, you’re only asking for 5% current. The vesc will begin ramping duty_cycle at whatever the PID control’s response rate is, until it sees 5% current. this is likely going to be less than 5% top speed so the rider will give more throttle before getting to the same 5% speed in the castle exampel above.
So, vesc gets to use more range of the throttle on start,
and gets the built in ramping of the PID loop.
both contribute to more smoothness over castle / duty_cycle control.
Adapting between the two
it’s not easy. familiarity bias comes into play a ton.
going from current_control → duty_cycle
you will notice that starts are jumpy, less power fidelity.
you will notice that after reengaging throttle you need to throttle in further than you’re used to to to match your current speed.
going from duty_cycle → current_control
you will notice you over throttle when reengaging throttle. you need less throttle to hit the matching speed point before you add power.
you will notice notice that power seems to engage later on, you’ll hear people say “more mid range power”. I think this is just PID lag.
you will notice power feels like it runs on as you attempt level off speed. this is because in duty_cycle you hold throttle to maintain speed, with current control you need to learn to back off throttle and match current to speed.
summary opinions
As someone is used to the GT2B and duty_cycle control, and used to hoyt pucks on current_control on less powerful boards. and now GT2B on vesc. as well as OSRR on vesc. I will say that you can get used to both. switching requires conciously switching your muscle memory.
However, I did try to run duty_cycle on hobby wing using a hoyt puck, IE using my thumb for the first time on duty_cycle. This was the hardest thing for me to adapt to. In particular I had trouble finding matching speed point exiting turns and it was throwing off my balance.
So my vote goes to learning duty_cycle control slightly more difficult than learning current control.
Therefore, I concede that @jack.luis is right. ( by small margins) vesc current control is smoother and easier to deal with in a way that makes it better for a street board.
I still maintain you can learn both and it’s not that big a deal. but I admit it’s there even when you overcome familiarity bias. I do maintain the fidelity is better on duty_cycle due to lack of PID lag, if you’re pushing your board that hard like track riding does.
fin.
Thanks for reading this far. I hope someone found this brain dump useful. I worked hard to learn something from it all i figured someone might find it interesting.
sry it’s so long, I spent time to make it shorter. I’m out of time to make it actually short.