2000W sensored motor. Getting higher amps at low duty cycle.

General topics and discussions about the VESC and its development.
mdeken
Posts: 2
Joined: 26 Jul 2018, 14:56

2000W sensored motor. Getting higher amps at low duty cycle.

Postby mdeken » 26 Jul 2018, 15:24

Hi,
I am trying to control a 2000W motor with a FOCBOX and Ackmaniac-ESC Tool. With FW: 3.102 and HW:410 (Starting from FW:2.18 and BLDC Tool)
But not really getting to torque I want (and expected) at low rpm.

My motor (MY1020 from Chines market):
Voltage: 48VDC
Output: 2000W
Rated speed: 4300RPM
Rated current: 42A

My setup:
I want to run this motor at 30V max, because of regulations, and therefore also know I'm losing power beforehand. I got a 1500W (30V 50A) switch power supply. I want to eventually use is to directly drive a drum for a treadmill belt, so it doesn't move and doesn't need a battery. I configured my motor without that many problems, and I can now control smoothly using low duty cycles (and even PID speed control above 500 ERPM) on both BLDC and FOC. Now when testing for torque (stalling with a wrench), at low duty (0.02 for example) I get motor amps of 17.5A (and can clearly stop it), but when using my arrow keys (duty cycle 0.18 or something) or just a higher duty cycle, the amps will go up to my set limit of max motor amps and produce much more torque when stalling (upping the limit even exceeds my capacity of stalling the motor and throws out my wrench, not recommended ;) ). I get that the motor can't output its full power at that low rpm, but how is it limited at 17.5A? That seems something to do with the software right?

In short: how do I get this kind of power when controlling the motor at low speeds. If I miss something important or need more info, please tell me...

Edit: Do I need PID to regulate the needed amount of duty cycle to run at a certain low speed with a high toque, or is duty cycle alone enough?

arvidb
Posts: 234
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: 2000W sensored motor. Getting higher amps at low duty cycle.

Postby arvidb » 29 Jul 2018, 16:35

mdeken wrote:Do I need PID to regulate the needed amount of duty cycle to run at a certain low speed with a high toque, or is duty cycle alone enough?

Yes, you need PID control. Torque is proportional to motor current, and rpm is proportional to voltage. At 0.02 duty cycle and 30 V bus voltage you have only 0.6 V over the motor. 17.5 A at that voltage means the motor winding resistance is about 34 mΩ (0.6 V/17.5 A) which is entirely reasonable - so you cannot get more torque at so low a duty cycle.

So you need speed PID to automatically compensate the duty cycle for the changing load. Wikipedia has info about how to tune PID loops.

mdeken
Posts: 2
Joined: 26 Jul 2018, 14:56

Re: 2000W sensored motor. Getting higher amps at low duty cycle.

Postby mdeken » 30 Jul 2018, 07:26

arvidb wrote:Yes, you need PID control. Torque is proportional to motor current, and rpm is proportional to voltage. At 0.02 duty cycle and 30 V bus voltage you have only 0.6 V over the motor. 17.5 A at that voltage means the motor winding resistance is about 34 mΩ (0.6 V/17.5 A) which is entirely reasonable - so you cannot get more torque at so low a duty cycle.

So you need speed PID to automatically compensate the duty cycle for the changing load. Wikipedia has info about how to tune PID loops.


Alright thanks! Weird I didn't think about the resistance... I was just like why not get more amps through haha :)

I also already tried PID control with the ESC tool, but I didn't really get good results after some tuning. Do you know if this speed control uses only Back EMF, or does this automatically switch to the hall sensors when you use the sensored setup? I am tempted to also let the hall sensors go to an arduino and do pid from there, and then control the esc on duty cycle through the arduino. But of course I would much rather do it with the ESC only...

Thanks in advance!

arvidb
Posts: 234
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: 2000W sensored motor. Getting higher amps at low duty cycle.

Postby arvidb » 30 Jul 2018, 23:28

For commutation, rotor position is calculated from sensors at low rpm and from back EMF at higher speed where back EMF is more reliable. Speed is estimated from rotor position using a phase-locked loop (pll_run() in mcpwm_foc.c). This speed value is reported in VESC Tool and also used as feedback to the speed PID loop. The speed PLL can be tuned using PLL Kp and PLL Ki in VESC Tool, if you get strange rpm values. (I don't know how well this works; I haven't played with the VESC's speed control.)

Edit: You could also check if speed control works better in BLDC mode; it uses a different method of calculating speed based on time between commutations. Note that you need to re-tune the PID loops when you switch between BLDC and FOC since the code is not shared (and is quite dissimilar) between the two modes.


Return to “General”

Who is online

Users browsing this forum: No registered users and 1 guest