Servo tuning issues (Velocity mode driven from 7i77)

More
7 years 6 months ago #130859 by fungus
Good afternoon folks,

Please forgive me for starting another tuning thread.

Background: these are DYN4 drives and DMM servos, set up as velocity mode; they are receiving +/-10V analog signal from a Mesa 7i77. The PID velocity loop in the DYN4 is satisfactorily tuned, and now I am attempting to close a positioning loop through LinuxCNC.

I have read several tuning threads here, but I just can't seem to get things working (or at least make them behave the way other people report).

In the Gnipsel tutorial, it is mentioned that "commanded velocity" is the parameter you should trigger on during tuning. In my case, I cannot get anything on any commanded velocity channels; I can get velocity feedback, but no commands. NOW, for me that makes perfect sense... I am closing a position loop, which means I should only have position commands.

To heighten my confusion, FF1 seems to have no affect. According to the tuning sticky ,

FF1 is the first derivative of position, so that is proportional
to velocity.

Since I apparently don't have a velocity command, does this mean that FF1 is null and void?

I'm a bit thrown off by this. I got things pretty close with PID, but I have some following error I just can't shake. It seems like I can't get far with the Gnipsel page above, as P alone causes some pretty bad oscillation before it even brings any stiffness to the axis.

Thanks for any help. PID & FFn have frustrated me enough that I'm going to take a calculus class. I want to know how to do this!

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

More
7 years 6 months ago #130861 by PCW
If you leave the PID components command-deriv pin unconnected, the PID component uses a locally calculated derivative (I would suggest using this mode)

FF1 is the _primary_ tuning parameter for velocity mode drives. It needs to be correct
for any hope of final tuning to work

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

More
7 years 6 months ago #130863 by fungus
Hi Peter,

Right now, I have:
Code:
net x-pos-cmd => pid.x.command net x-vel-cmd => pid.x.command-deriv ... net x-pos-cmd axis.0.motor-pos-cmd

net x-vel-cmd does not occur anywhere else in the HAL file. I can comment this out, but it looks like it is already disconnected (unless the net is referenced in another file)

Would you recommend I start with FF1 = 1 (or some other beginning value) and tune PID to match it?
Thanks for your help.

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

More
7 years 6 months ago #130864 by PCW
1.
Comment out the

net x-vel-cmd => pid.x.command-deriv

statement

2. FF1 == 1 only if the analog out is scaled in machine units per second

For example with the default output scaling (in volts), if 10V = 10 inches/sec (or 10 mm/second) FF1 =1

So if you want FF1 to be one you need to know the approximate machine
axis velocity (in machine units per second) at 10V and set the output scale
(and limits) to that number

Also if you use an older version of pncconf to create the initial hal file, make sure you comment out or delete all the pid.N.maxerror statements

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

More
7 years 6 months ago #131314 by fungus
Wow, I head a serious misunderstanding regarding OUTPUT_SCALE, OUTPUT_MIN_LIMIT & OUTPUT_MAX_LIMIT.

In my case, the DMM servos output 3000RPM at 10V; there's a 2:1 belt reduction, & I have 5mm pitch ballscrews (but I'm using inches), so 1 rev = ~0.197".
So at 10V, I should get 4.921 IPS.
For axis X (in the .INI):
OUTPUT_SCALE = -4.921
OUTPUT_MIN_LIMIT = -4.921
OUTPUT_MAX_LIMIT = 4.921

Does this sound reasonable? If so, the tuning order should be that I set FF1 to this calculated value, then tune the PID loop after?
My usual procedure for high inertia systems is to turn up kP to instability, back off 30%, add kD until instability, back off 30%, cycle back and forth between the two until I can't turn them up any higher and then add any kI I need.

Thanks again for the help.

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

More
7 years 6 months ago #131317 by PCW
Yes, if you have the output scaled in machine units/second as it look like you have done,
FF1==1

Normally D is not needed for velocity mode drives (D is velocity feedback and that's
handled by the drives themselves)

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

Time to create page: 1.939 seconds
Powered by Kunena Forum