8i20/BLDC component, limited spindle speed

More
21 Apr 2018 03:02 #109367 by blazini36
I've managed to get a 750w brushless DC spindle motor running pretty well with the BLDC component on an 8i20/7i76e.The motor is 6 pole with 3 hall sensors hooked up to field inputs and a 1000ppr differential encoder. I'm only able to get the spindle speed up to ~2000rpms in "qh" mode even when a higher speed is requested. I'm not sure if this has something to do with the speed of the hall sensors on the field inputs or what. I can get the spindle set up to hold speed respond to load changes very well in qh mode but the spindle runs smooth up to 1700rpms, then I start to get some clanging at the spindle key because of some lag with it trying to maintain speed, but it won't go above 20000rpms.

I've tried "qhi" and "qi" mode to use the encoders index but I haven't been able to get that to run correctly. When the motor goes into a "run away" condition when testing these modes or the PID loop is incorrect, the motor does run off to 3000rpms. I had the hm2 index-enable pin connected to the bldc index-enable pin. This is all I believe I added when trying so I'm not sure if another parameter needs to be set to make the index modes work. I'm just curious what else needs to be set for the index modes and if using the index will actually help the limited speed.

Please Log in or Create an account to join the conversation.

More
21 Apr 2018 12:28 #109388 by Todd Zuercher
Hopefully Andy or Peter will chime in with the definitive answer but I believe that you are running into the limit imposed by the 1khz read write limit imposed by the 7i76e 's connection to Linuxcnc..

Please Log in or Create an account to join the conversation.

More
21 Apr 2018 14:31 #109394 by PCW
It most likely is servo thread related, I would try raising the servo thread rate
Some PC hardware can run the Ethernet cards reliably up to around 4 KHz

Even if you get some real time errors, so you cannot permanently use
the higher servo thread, it will show if it is the issue

Other things to try:

If the problem is the commutation phase lag try running at 2000 RPM and slowly adjust the BLDC lead angle

Please Log in or Create an account to join the conversation.

More
24 Apr 2018 00:36 #109517 by blazini36
I had a chance to try the suggestions last night. I've been running the servo thread at 700000 because I was thinking along the same lines. Last night I tried it at 500000 and I had the initial realtime error that tends to pop up in the beginning of starting linuxcnc. The spindle speed was still limited to around 2100rpms, but there was no spindle clanking until the requested speed exceeded the 2100rpms that the motor could spin. I also tried adjusting the BLDC lead-angle but it seemed to have no effect. This was all In "qh" mode. I'm still not sure what is necessary to make an "i" mode work.

I'm just curious what keeps the motor commutating when it goes into a "run-away" condition if the motor speed is limited to the speed that LinuxCNC can handle the commutation. It will run off at 3000rpms which is closer to what this motor is probably rated at.

I'm also curious when to take realtime errors seriously in linuxCNC. The error that occurs toward the beginning "...this will only display once", I don't tend to think much of. Errors that occur sometime during operation I take more seriously. Is this a reasonable way to judge if the hardware is keeping up with the servo thread speed?

Please Log in or Create an account to join the conversation.

More
24 Apr 2018 00:50 #109519 by PCW
The easiest way to check if the hardware is keeping up is by monitoring the servo-thread.tmax (this is in CPU clocks)
realtime errors are typically not terribly important with step/dir systems or velocity mode servos since
late commands only affect accelerated motion.

As far as runaway is concerned can you post your PID settings?
It may also be that the current loop tuning is too aggressive for your motor inductance

Please Log in or Create an account to join the conversation.

More
24 Apr 2018 02:00 #109521 by blazini36
To be clear, with the current PID and BLDC settings the motor does not run away at all, it's rock solid up till 1700-2100rpms depending on servo thread speed. The only time I see it run away is when trying to use "qhi" or "qi" bldc modes, though I'm sure I did something wrong there. The question arises because it's obviously possible under some circumstance for the hardware to commutate the motor to 3000rpms. Though I wonder if the difference is with some sort of lag on the hall input verses the encoder channels index input. The HAL file posted is what I use right now. There's alot of commented out lines from when I was trying the other BLDC modes. INI is posted for spindle PID settings.

File Attachment:

File Name: PM25MV_7i7...4-23.hal
File Size:13 KB

File Attachment:

File Name: PM25MV_7i7...4-23.ini
File Size:4 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
24 Apr 2018 15:01 #109547 by PCW
Is it possible the hall setting is not correct?

Does the spindle have the same speed limits in both directions?

Please Log in or Create an account to join the conversation.

More
24 Apr 2018 15:46 #109548 by andypugh

The question arises because it's obviously possible under some circumstance for the hardware to commutate the motor to 3000rpms.


Does it make any torque in "run away" mode?

I was experimenting with making a replacement motor work with the 8i20 on my milling machine and found that sometimes the motor would run very fast, even with the 8i20 current set to zero. I think this might be some sort of passive resonance, independent of the commutation. (But this is just a guess). However when this happens the motor is extremely easy to stall, it makes no real torque.

Another possibility is that the motor and commutation are running in opposite directions, a lead angle of 270 degrees rather than 90. Again this is unstable and low torque.

Please Log in or Create an account to join the conversation.

More
26 Apr 2018 02:41 #109626 by blazini36

Is it possible the hall setting is not correct?

Does the spindle have the same speed limits in both directions?


Well there's only 3 or 4 hall patterns or that spin the motor at all, 2 of them spin well in opposite directions, the others are noticeably bad and unusable. The actual pattern number changes with the way the halls are labeled in HAL vs how the motor phases are wired but its always the case that only 2 patterns work well. It works too well up to the speed limit to be wrong.

It is limited to the same speed in reverse

Please Log in or Create an account to join the conversation.

More
26 Apr 2018 03:30 #109627 by PCW
If speed limits are symmetrical and doubling the servo thread rate doesn't help dramatically, the problem
may be related to the current loop tuning, i think I would try setting the current loop P gain and I gain
to 1/2 of their default values , I think this requires setsserial or Mesa utilities a funny cable and Windows.

Please Log in or Create an account to join the conversation.

Time to create page: 0.094 seconds
Powered by Kunena Forum