I'm working with a Golden Motor HPM48-5000 (48 volt, 5 kW). It's an axial-flux design with 8 magnets and 24 coils. It weighs 11 kg. I'm trying to reconcile winding resistance and inductance from several sources:
The manufacturer specifies the 48-volt version as having a phase resistance of 6.2 milliohms and a phase inductance of 68 uH @100 kHz. They don't state the conditions under which the measurements were taken. Are these numbers measured at ambient conditions or at operating temperature* and operating current** ? Are those values with or without external factory-provided interconnect leads? Is the motor wired as a wye or a delta?
I measured the motor parameters using a laboratory-grade Wayne Kerr 3245 Precision Inductance Analyzer. At 17* C, with no bias current, I got 7.2 milliohms and 34 uH @ 100 kHz. Actually, I measured 31uH, 34uH, 34uH... repeating like that every 3 "cogs" of rotation for all 24 rotor positions per revolution. I'm wondering if this is expressed by the VESC Tool parameter "Motor Inductance Difference (Ld – Lq)" under the "FOC Advanced" tab? My motor leads are ~6.5mm OD (including insulation) about 33 cm long. I'm guessing they are #4 AWG. That's 91 milliohms per meter, so let's say 0.6 milliohm for the two cables together.
VESC Tool 3.0 says: 131.7 amps, resistance 4.32 milliohms, inductance 11.06 microhenrys, flux linkage 15.02 mWb. Was the inductance determined using 131 A of bias current?
*Since copper has a positive temperature coefficient, the hotter the winding, the higher the resistance.
**Similarly, inductance decreases with increasing bias current.
Please use the latest BETA VESC-Tool: https://vesc-project.com/node/2859
We run this very same motor without any issues with standard detection via the Wizards (large outrunner).
The is motor is used in some projects we support and with the new VESC-Tool we can push up to 450A without any issues. Well, the motor gets hot quite fast during these loads....
Thanks for sharing the karting video. 😁
I'm always hesitant to work with beta software (especially when I'm not sure of what I'm doing) but it's got a lot of really cool features! Had been considering it just to get the KTY84 thermistor support.
Here are the results:
Experimental VESC Tool with FW v5.2: I 43.9 A, R 4.3 milliohms, L 11.09 uH, lambda 15.873 mWb
Experimental VESC Tool with FW v5.3: I 51.99A, R 2.73 milliohms, L 26.36 uH, lambda 15.873 mWb (also reported the L (Ld-Lq) value at 6.23 uH)
That new resistance value makes no sense. FW 5.3 should be 3/2 higher than FW 5.2.
PS. FW 5.3 had just been released. If you download via the official link you should get the new version.
Elwin, I downloaded the .zip file frank linked in post #2 above 6 hours ago. It appears the firmware is accessible to the beta VESC Tool, but the process is pretty well obscured from the user. Is there a way to download just a compiled version of the FW you want me to use for testing?
Edit: The Firmware Upload Status says "BETA 78".
It is now the stable and you can download the stable via google play store or here: https://vesc-project.com/vesc_tool
Or download it via purchased files. The FW is always included in the software.
Okay, now there appears to be a discrepancy in the resistance value depending if I run the Wizard or perform the detection via FOS setup.
VESC Tool 3.01 with FW v5.3 (stable) I 251.13 A, R 4.20 milliohms, L 27.46 uH, lambda 15.91 mWb, L (Ld-Lq) 6.09 uH
Manual (2-step process)
VESC Tool 3.01 with FW v5.3 (stable) I 83.71 A, R 1.91 milliohms, L 26.18 uH, lambda 15.941 mWb, L (Ld-Lq) 6.01 uH
BTW, this is using the Windows build.
How many amps did you use for detection in the FOC page?
I varied current from ~50A to ~100A with only a tiny change in all the results.
The Goldenmotor can be detected with the wizard. Then you go to Motor FOC and change the Time Constant ( T ) from 1000uS to 250uS. After that you re-calcualte Ki and KP via the button Calc Apply Old.
Then write the motor config to the ESC and you should be good.
I had got hpm5000b-72 having 12mohm, 154uH, 4650rpm (higest power 6kw @97a, 3779rpm) and another one hpm5000n-72 having 9.5mohm, 110uH, 5360rpm (nominal power 4,61kw @70a, 4550rpm) wired as a wye
Skyline where your resistance and inductance measurements made with VESC Tool or by some other method?
You also bring up an excellent point in that not all the 5 kW motors are the same. Golden Motor says the speed is customizable (2000 - 6000 rpm). I think mine is 3000 rpm, but 4000 is a possibility.
This was very good advice! Thanks. The motor is now much more responsive.
With default T = 1000 uS: Kp = 0.043, Ki = 7.20
With suggested T = 250 uS: Kp = 0.136, Ki = 28.80
They had been measured by a lrc-meter. Turn count on windings will define rpm value.
Good to hear that your motor is working!
Do you still get the low R value (1.9 mOhm) when using the FOC page? That seems to be way too low and could be a bug. Are you interested in having another look?
I just re-ran the manual detection. R was reported as 4.85 milliohms. So that seems good, but the Ki and Kp gains come out lower than optimal for my application. I need to make them about 150% of suggested to achieve good throttle response.
VESC Tool 3.01's determination of both R and L are smaller than what I measured with the Wayne Kerr @ 100kHz.
Bringing this back around to my first post in the thread:
The values provided by Golden Motor for R and L are probably correct for some 5kW motor, just not my motor.
I achieve good performance using VESC Tool's R and L values, so long as I increase Ki and Kp.
When using R and L values I measured independently, VESC Tool chooses good coefficients for Ki and Kp.
When you scale both Kp an Ki in the controller with the same factor what you are actually doing is change the gain of the overall loop. This is separate from the measurement of R and L, and can be done using the time constant setting as explained by Frank. Lower time constant makes a more responsive system, but the drawbacks are more current noise and less phase margin (causing overshoot or even instability).
Now I'm trying to configure BLDC to compare against FOC.
The detection algorithm fails. I need about 60A to get the motor to spin. Have tried modifying the detection parameters per the Help, to no avail.
I've tried systematic changes in the range: D 0.05 to 0.30, Omega 100 to 1500.
Any suggestions? It's a high-inertia system.
I know nothing about the bldc mode and don't think it is the way to go for anything really. What are you trying to improve by using bldc mode?
I can't divulge the application, but a human will feel the response of the system. I'd like to feel the difference between BLDC and FOC if for no other reason than to satisfy my curiosity.
Ah, that is a pretty good reason. Unfortunately I cannot help you with the bldc mode. Can only say that for a motor with sinusoidal back EMF, driving it as a bldc (6 step) causes a torque ripple of 15% or so IIRC. Probably FOC mode is much better.
The good news is that I got BLDC mode to work! The bad news is I'm not entirely sure why. Success was had by changing the BLDC detection current parameter to the 33 amps used by the FOC Wizard (while keeping the default BLDC parameters of omega = 150 ERPM and D = 5%).
Unfortunately, BLDC detection can't reliably be repeated (despite using the same or slightly different parameters). Sometimes the motor barely moves. At first I thought perhaps the initial position of the rotor had something to do with it, but that's not the case. The experiments were conducted with the motor completely unloaded -- not even any reduction gearing.
I thought maybe there was something wrong with the Hall sensors themselves, but their response looked reasonable on an oscilloscope and logic analyzer.
I have repeatedly used the Terminal's hall_analyze command. The results are very erratic. Sometimes the motor would not even turn despite being given the same, or near, current command.
It seems the Hall sensors are used differently between BLDC and FOC modes. The Hall table for BLDC appears to be sequence numbers whereas the FOC Hall table appears to be rotor position.
I have not had my motor apart, but found a photo of one disassembled via a search. The Hall sensors look to be 30 degrees apart. Is that typical placement?
At least now it's trivial to switch between the BLDC and FOC by changing only the Motor Type parameter, so I'm counting it as progress.
In our tests with this motor, the FOC mode was better in any aspect. Even top speed was better.
I'm no longer concerned about reconciling inductance (or resistance) values between a laboratory measurement and the VESC's determination.
For one thing, the measured value of an inductance depends on how the measurement is made. For example, the instrument I used employs an AC voltage (or current) source to determine inductance at any of 42 frequencies ranging from 20 Hz to 300 kHz. (Near 1 kHz, my measurements actually agree fairly well with the manufacturer's data. This makes me wonder if they really measured it at 100 kHz as stated?)
I also wonder what the VESC Tool is actually reporting? The Help for motor winding resistance says, "Should be half of what is measured between two motor wires." But for motor inductance, Help just says, "The average of LD and LQ inductance."
I now think that the VESC Tool's determination of these motor parameters is appropriate for the intended purpose -- and tweaking them to get closer to some arbitrary measurement is going to be counterproductive.