- Posts: 17524
- Thank you received: 0
Setting Servo Max Acceleration
Please Log in to join the conversation.
But none of the config tools do that.
still, it might be worth looking at the thread order of components to be sure.
Please Log in to join the conversation.
This is analog out vs vel cmd:
Attachment not found
THis is the same tune with two different speeds, can't seem to find a middle ground.
P300 FF1 1.04 FF2 .0065 at 270 IPM
Attachment not found
P300 FF1 1.04 FF2 .0065 at 60 IPM
Attachment not found
Please Log in to join the conversation.
Michael wrote: As I get to a tune at higher and higher speeds my low speed tuning seems farther off.
This is not uncommon. I created the "lincurve" HAL component specifically for this purpose, so that the PID controller gains could be set up to vary with speed (or with temperature, error, etc)
In my day job I am in charge of tuning a system where P, I and D gains are each derived from a temperature / total error map, and there is a map for each of the 12 gears.
Please Log in to join the conversation.
Some other thoughts that come to mind. The issue could be a delay in the drive sending out an encoder count. From what I read a lot of these servo's are not a direct pass through on the encoder. The delayed encoder counts would create a similar response. I don't have to use the drives encoder to Linuxcnc, I could use a glass or magnetic scale on each axis, would have a few extra benefits as well. Just some thoughts, I think by the time I added those in I would be near the cost of more name brand servo products, which is another option.
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
- Posts: 22012
- Thank you received: 4
Please Log in to join the conversation.
So taking all this information back to DMM technical help and they responded that the problem is on the Mesa side and that I need to work with mesa to figure it out. Obviously I don't think that is accurate. They also stated to use an oscilloscope to confirm the delay since there stated response time is 300 usec. Unfortunately I don't have one of those and also never used one but could probably figure it out. Any advice on finding/acquiring an oscilloscope to get the information and send it back to DMM? At this point I would very much like to see exactly what the problem is.
Any way to definitively rule out the computer and FPGA as being a problem, past what we have already done? Kind of fell like I bought a car that should do 60 mph but can only get up to 40. Yeah I can get it to work but its not what I paid for from DMM.
Please Log in to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
-
- Posts: 4739
- Thank you received: 2
Please Log in to join the conversation.
Michael wrote: Double checking the drives current monitor vs the halscope shows that the delayed response is causing an increased velocity command to get the motor up to acceleration parameters, accelerating faster than it can handle.
You might be able to dial the current back by limiting the PID.
There are a number of parameters that could help.
pid.N.maxoutput float in
Output limit. The absolute value of the output will not be permitted to exceed maxoutput, unless maxoutput is zero. When the output is limited, the error integrator will hold instead of integrating, to prevent windup and overshoot.
pid.N.maxerror float in
Limit on the internal error variable used for P, I, and D. Can be used to prevent high Pgain values from generating large outputs under conditions when the error is large (for example, when the command makes a step change). Not normally needed, but can be useful when tuning non-linear systems.
pid.N.maxerrorD float in
Limit on the error derivative. The rate of change of error used by the Dgain term will be limited to this value, unless the value is zero. Can be used to limit the effect of Dgain and prevent large output spikes due to steps on the command and/or feedback. Not normally needed.
pid.N.maxerrorI float in
Limit on error integrator. The error integrator used by the Igain term will be limited to this value, unless it is zero. Can be used to prevent integrator windup and the resulting overshoot during/after sustained errors. Not normally needed.
pid.N.maxcmdD float in
Limit on command derivative. The command derivative used by FF1 will be limited to this value, unless the value is zero. Can be used to prevent FF1 from producing large output spikes if there is a step change on the command. Not normally needed.
pid.N.maxcmdDD float in
Limit on command second derivative. The command second derivative used by FF2 will be limited to this value, unless the value is zero. Can be used to prevent FF2 from producing large output spikes if there is a step change on the command. Not normally needed.
pid.N.maxcmdDDD float in
Limit on command third derivative. The command third derivative used by FF3 will be limited to this value, unless the value is zero. Can be used to prevent FF3 from producing large output spikes if there is a step change on the command. Not normally needed.
Please Log in to join the conversation.
Todd Zuercher wrote: Which DMM amps do you have? I've gotten the impression most of their product is geared towards step/dir input, and analog is kind of an afterthought.
My post purchase research indicates the same. I wasn't able to find any successful examples of DMM servos in analog speed mode.
I have the DYN4-T01A2-00 Servo Drive. I am just about to buy a 7i78 and cable. The downside is I will lose index homing until 2.9 is ready and even trying to close the position with step and direction maybe problematic if the encoder is delayed in responding. I can keep it velocity but run 2/3 speed which isnt bad but I am also concerned the continual current spikes won't do well for drive/motor longevity.
Please Log in to join the conversation.
