AC servo running slow at 0V analog

More
05 Oct 2018 17:37 #118477 by PCW
If you require D term for stability that suggest you are running your drives in torque mode rather than velocity mode (also torque mode would require a faster servo thread for stability)

One advantage of torque mode is that you can adjust the PIDs FF2 tuning based on the pose

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

More
06 Oct 2018 01:39 - 06 Oct 2018 01:40 #118483 by thang

If you require D term for stability that suggest you are running your drives in torque mode rather than velocity mode (also torque mode would require a faster servo thread for stability)

Dont you mind to explain what difference between velocity mode and torque mode in this case? I configured velocity control mode on driver and also using auto tuning mode 1 that automatic set all gain ( except response).

One advantage of torque mode is that you can adjust the PIDs FF2 tuning based on the pose

I dont get it, do you mean i should move joint to difference positions then tuning FF2 to get higher accuracy?
Last edit: 06 Oct 2018 01:40 by thang. Reason: wrong quote

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

More
06 Oct 2018 02:52 #118485 by PCW
Typically motor drive systems have 3 cascaded control loops:
1. Current (controls motor voltage to match a torque command = K*current )
2 Velocity (controls torque to match a velocity command )
3. Position (controls velocity to match a position command )

LinuxCNC can run loop 3 or 2 and 3 (3 for velocity mode drives and 2+3 for torque mode drives)

In the velocity loop, FF2 is used to compensate for the systems inertia
so for systems with variable inertial loads (serial kinematics machine like robots often have this issue) its advantageous to vary FF2 based on the robots pose.

If the velocity loop is in the drive an you have no real time parameter communications to the drive, its advantageous to run the velocity loop in the controller since it can vary the velocity loops FF2 on the fly based on the pose

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

More
06 Oct 2018 04:07 #118488 by thang

Typically motor drive systems have 3 cascaded control loops:
1. Current (controls motor voltage to match a torque command = K*current )
2 Velocity (controls torque to match a velocity command )
3. Position (controls velocity to match a position command )


i'm confused here.

To control Current, driver need torque command (analog signal in my case) .
To control Velocity, driver need velocity command (also use analog signal)
To control Position, driver need position command ( step/dir command)

When we say " Position control" does it mean we use step/dir command or just control position of joint ( use velocity loops to control position or use step/dir)

LinuxCNC can run loop 3 or 2 and 3 (3 for velocity mode drives and 2+3 for torque mode drives)


This is a part of my hal file, is this Position control or Velocity control? i never seen a system with "2+3" use by linuxcnc, are there any project or config file that is using this system?

File Attachment:

File Name: hal.txt
File Size:2 KB

If the velocity loop is in the drive an you have no real time parameter communications to the drive, its advantageous to run the velocity loop in the controller since it can vary the velocity loops FF2 on the fly based on the pose


What is the "real-time parameter communications" did you mention, could you give me an example about it? for now, i'm connecting only encoder and analog speed command from driver to controller
Attachments:

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

More
06 Oct 2018 14:55 - 06 Oct 2018 14:57 #118493 by PCW
Position control of the drive means the controller sends position commands

Step/dir is a confusing example here because in fact the controller is sending velocity commands (as an instantaneous step rate) but the drive is integrating them to a local position setpoint and running a local position feedback loop against this position setpoint, so the drive is running in position mode locally.

Examples of pure position mode drives are digitally interfaced drives that take digital position commands over some industrial bus (Ethercat, PowerLink, CAN etc etc)
There are also some drives that can take an analog value as a position reference
(and position feedback)

Your hal file is a single loop with a position setpoint (from LinuxCNC), position feedback
and a velocity output from the PID (Assuming your drives really are setup in velocity mode) This would be a type 3 setup

For torque mode control its usually better to implement 2 PID loops in LinuxCNC, The position loop of this dual loop configuration would be identical to your position loop above except that its PID output would not connect to the analog output but rather furnish the setpoint for the velocity loop. The velocity loop takes a velocity command from the position loop and velocity feedback from the encoder. The velocity PID loop output then drives the analog out torque command

Some digitally interfaced drives (Ethercat etc) allow you to dynamically change tuning
in real time (over the communication bus)
Last edit: 06 Oct 2018 14:57 by PCW.
The following user(s) said Thank You: thang

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

More
09 Oct 2018 01:37 - 10 Oct 2018 14:59 #118571 by thang

Position control of the drive means the controller sends position commands

Step/dir is a confusing example here because in fact the controller is sending velocity commands (as an instantaneous step rate) but the drive is integrating them to a local position setpoint and running a local position feedback loop against this position setpoint, so the drive is running in position mode locally.

Examples of pure position mode drives are digitally interfaced drives that take digital position commands over some industrial bus (Ethercat, PowerLink, CAN etc etc)
There are also some drives that can take an analog value as a position reference
(and position feedback)

Your hal file is a single loop with a position setpoint (from LinuxCNC), position feedback
and a velocity output from the PID (Assuming your drives really are setup in velocity mode) This would be a type 3 setup


Sorry for late reply and thank you so much for clearly explain but:

The velocity PID loop output then drives the analog out torque command


As i remember when i send analog output to driver torque command channel, the motor wont run that only control torque on motor shaft, then how this system can control position? if i'm wrong please correct me.

Edit: i found that i setup and wiring driver wrongly that make motor wont run in torque mode
Last edit: 10 Oct 2018 14:59 by thang. Reason: found answer by myself

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

Time to create page: 0.151 seconds
Powered by Kunena Forum