AC servo running slow at 0V analog
05 Oct 2018 17:37 #118477
by PCW
Replied by PCW on topic AC servo running slow at 0V analog
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
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.
06 Oct 2018 01:39 - 06 Oct 2018 01:40 #118483
by thang
Replied by thang on topic AC servo running slow at 0V analog
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).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)
I dont get it, do you mean i should move joint to difference positions then tuning FF2 to get higher accuracy?One advantage of torque mode is that you can adjust the PIDs FF2 tuning based on the pose
Last edit: 06 Oct 2018 01:40 by thang. Reason: wrong quote
Please Log in or Create an account to join the conversation.
06 Oct 2018 02:52 #118485
by PCW
Replied by PCW on topic AC servo running slow at 0V analog
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
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.
06 Oct 2018 04:07 #118488
by thang
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)
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?
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
Replied by thang on topic AC servo running slow at 0V analog
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?
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
Please Log in or Create an account to join the conversation.
06 Oct 2018 14:55 - 06 Oct 2018 14:57 #118493
by PCW
Replied by PCW on topic AC servo running slow at 0V analog
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)
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.
09 Oct 2018 01:37 - 10 Oct 2018 14:59 #118571
by thang
Sorry for late reply and thank you so much for clearly explain but:
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
Replied by thang on topic AC servo running slow at 0V analog
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.102 seconds