I think the problem is in the BLDC code in the methode update_adc_sample_pos at this line
`if (duty > (uint32_t)((float)top * conf->l_max_duty)) {
duty = (uint32_t)((float)top * conf->l_max_duty);
}`
But i am still not sure. Did some calculations and sometimes you get strange numbers exactly around the duty cycle between 0,85 and 0,95. But still hard to understand.
And i just want to know if the same behavior happens in FOC mode. Because there the calculation is not the same.
Discussed the motor theory with my electronics lab teacher on monday and he confirmed it to be correct. So I can pretty much do almost purely mathematical control. I need to know the motor’s kV, Pole count and internal resistance (all constants) + I need to be able to measure the battery DC voltage (Although I can use a constant, but voltage droop exists) + Motor’s RPM, which I can measure with the hall-sensors. Basically, because I IMO suck at ADC design, I want to avoid using it as much as possible.
Then I can calculate motor amps, battery amps, power, speed and from those make my control scheme. We also discussed what would be the most natural control scheme and we concluded that speed control is the best option. So I’ll probably use speed control and then just calculate the motor amps and battery amps to make sure they stay within limits.
Also did some calculations to figure out battery voltage, wheel size, gearing and motor kV to beat the current world record (95.9 km/h) for electric skateboards
@ackmaniac, very interesting video and data. I watched the video many times.
To me it actually looks that neither motor nor battery LIMITS play any role here. Neither motor nor battery current are hitting the limit. With your throttle setting at 50% the motor is simply not requested to produce enough power to get close to the limits of 80 amps motor and 35 amps battery.
What is noticeable is that battery voltage drops and is at the lowest level at exactly the point the duty cycle jumps from 0,86 to 0,94. This also seems to indicate an irregularity.
As mentioned, I haven’t noticed the boost in FOC mode. It is very pronounced on another board in BLDC mode, but at lower speeds.
So why would it be between 0,85 and 0,95???
Could it be at other levels with other settings?
That chart is only applicable when we are not changing the duty cycle! We can only reproduce that chart if we either give the motor a constant voltage, or static duty cycle. It is a STATIC representation.
When we are cruising, we ARE adjusting the duty cycle and therefore it’s a DYNAMIC situation in which you cannot use that chart directly.
This thread is not about the behavior at 0 rpm. We know that we need to increase the motor max amps drastically to reach high watts at 0.so please stay to the topic about the acceleration boost.
So it seems that the problem doesn’t exist in Foc mode. That brings me back to my theory that this behavior is caused by wrong calculations. Maybe somebody can test with the same bat and motor settings on bldc and foc and tell us the difference.
@devin, please note that this diagram is a generic diagram and not a real world motor diagram. Also, it doesn’t state any load, which in the real world is constantly changing.
In the real world when the motor powers a skateboard we have wind resistance which increases with the square of the speed. So we need 1) power to accelerate (pretty constant in this case) plus 2) power to overcome increasing wind resistance.