8i20/BLDC component, limited spindle speed

More
17 Jul 2018 15:59 #114399 by andypugh

started to to make these changes last night but it didn't seem to be going well. nvkqil I could not get to set at 200000. Is there an internal limit for the value? It seemed as though I was just having issues with setserial again, but other parameters were setting easier.


How are you using setsserial? Are you monitoring the results using dmesg? (for best results open a separate terminal window and use "tail -f /var/log/kern.log" But only if using RTAI. )

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

More
17 Jul 2018 16:09 - 17 Jul 2018 16:19 #114401 by PCW
The integral limit are 16 bit values, they are fine at default 32000 value
Last edit: 17 Jul 2018 16:19 by PCW.

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

More
17 Jul 2018 16:15 - 17 Jul 2018 16:15 #114402 by andypugh

The integral limit is a 16 bit value, its fine at its default


I think that (for extra fun) the two values are using a different scaling.

I think that this
{LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,10,"none","nvkqp"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,14,"none","nvkqihi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,12,"none","nvkqilo"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,16,"none","nvkqil"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,18,"none","nvkdp"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,22,"none","nvkdihi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,20,"none","nvkdilo"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,24,"none","nvkdil"}

Probably wants to be
{LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,10,"none","nvkqp"},
    {LBP_DATA,0x20,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,12,"none","nvkqi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,16,"none","nvkqil"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,18,"none","nvkdp"},
    {LBP_DATA,0x20,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,20,"none","nvkdi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,24,"none","nvkdil"}

Note the change in bit-length.
Last edit: 17 Jul 2018 16:15 by andypugh.

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

More
17 Jul 2018 17:13 #114408 by blazini36

started to to make these changes last night but it didn't seem to be going well. nvkqil I could not get to set at 200000. Is there an internal limit for the value? It seemed as though I was just having issues with setserial again, but other parameters were setting easier.


How are you using setsserial? Are you monitoring the results using dmesg? (for best results open a separate terminal window and use "tail -f /var/log/kern.log" But only if using RTAI. )


I run the command for the halcmd shell,
Then I load up a source hal file that just contains enough to get the 7i76e and 8i20 started.
I run the "set" command
It errors out which is normal, it forces the 8i20 to disconnect
Power cycle the 8i20, but nothing else
restart the hal shell and source hal file. run show param *8i20* and check for changes

I did notice that sometimes using the decimal value for the parameter sometimes sets the wrong value. If I set "150000", it may take the change but sometimes the resulting hex value that it displays is incorrect

I havent really bothered with dmesg because I have to powercycle and restart hal anyway so it's not like I can throw parameters at it until it takes

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

More
17 Jul 2018 21:53 #114420 by blazini36

The integral limit are 16 bit values, they are fine at default 32000 value

So the manual in incorrect as the max number would be around 65000?

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

More
17 Jul 2018 21:54 #114422 by blazini36

The integral limit is a 16 bit value, its fine at its default


I think that (for extra fun) the two values are using a different scaling.

I think that this
{LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,10,"none","nvkqp"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,14,"none","nvkqihi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,12,"none","nvkqilo"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,16,"none","nvkqil"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,18,"none","nvkdp"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,22,"none","nvkdihi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,20,"none","nvkdilo"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,24,"none","nvkdil"}

Probably wants to be
{LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,10,"none","nvkqp"},
    {LBP_DATA,0x20,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,12,"none","nvkqi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,16,"none","nvkqil"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,18,"none","nvkdp"},
    {LBP_DATA,0x20,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,20,"none","nvkdi"},
    {LBP_DATA,0x10,LBP_NONVOL_UNSIGNED,LBP_OUT,0,0,24,"none","nvkdil"}

Note the change in bit-length.

Does any of this relate to any gains spindle speed wise?

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

More
18 Jul 2018 11:57 #114462 by andypugh

I havent really bothered with dmesg because I have to powercycle and restart hal anyway so it's not like I can throw parameters at it until it takes


You only need to power-cycle the 8i20, and ought to be able to reload the setsserial command without having to exit HAL.
(possibly unloadrt / loadrt hm2_pci between iterations)

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

More
18 Jul 2018 21:30 #114495 by blazini36

I havent really bothered with dmesg because I have to powercycle and restart hal anyway so it's not like I can throw parameters at it until it takes


You only need to power-cycle the 8i20, and ought to be able to reload the setsserial command without having to exit HAL.
(possibly unloadrt / loadrt hm2_pci between iterations)

cntrl+c to exit hal, Two more button presses to start hal and load source hm2 file isn't a huge difference. That's not really a big deal if the set took more frequently, which it actually may with the faster servo thread I think.

What I'm getting from this is there's not a whole lot to be done to get a higher speed from the 8i20. Was hopeful about the PI gains, but it looks like that may be a dead end.

I'm not fully upto snuff on AC servos but is there any advantage to tossing the 6pole BLDC and picking up a ~2000w servo for the spindle, speed wise? I don't recall seeing pole counts generally listed when buying servos. One thing I'm a little weary of is I wasn't able to get the BLDC+encoder(=servo) to work well in any mode other than qh. Any thoughts on 3000+ rpms with a 2kw AC servo?

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

More
18 Jul 2018 22:48 #114502 by andypugh
You could try increasing the lead-angle.

linuxcnc.org/docs/2.7/html/man/man9/bldc.9.html

That was added by John Kasunich (IIRC) and he set up a lincurve component to increase the lead angle at higher RPMs.

Set if up for 90 at low speeds and a bit more at high speeds.

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

More
18 Jul 2018 23:14 - 18 Jul 2018 23:33 #114503 by PCW
We've run the 8I20 over 6000 RPM with a 4 pole motor and LinuxCNC/BLDC

I suggested tuning changes because you stated that changing the servo thread rate didn't make a substantial difference (which is quite surprising) and I thought it might be that you had a low inductance motor so the default current loop tuning parameters were too high. This can lead to oscillations/ringing on the steps in commutations

Can you try a 2 KHz servo thread again with no other changes?

Or as Andy suggests, adjusting the lead angle when its running at high speed to see if the commutation delay is really the issue
or there's something else limiting your speed (motor voltage encoder setting etc, etc)
Last edit: 18 Jul 2018 23:33 by PCW.

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

Time to create page: 0.108 seconds
Powered by Kunena Forum