PID module and function for steppers with 7i76e
03 Jan 2022 15:56 #230659
by Eyecon
PID module and function for steppers with 7i76e was created by Eyecon
Are the PID real-time module and associated functions required in the Hal file for a 7i76e config using steppers only? The module and functions/pin assignments seems to be included by default as output from pncconf and I’m not sure if they are required.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
03 Jan 2022 19:08 #230671
by Todd Zuercher
Replied by Todd Zuercher on topic PID module and function for steppers with 7i76e
They aren't "required" but are recommended. As the 7i76's hardware stepgenerators are configured by default by PNCconfig they are controled more like a velocity commanded servo. This seems to work better than and introduces less real-time jitter induced error than controlling them with the actual position command directly.
Removing/disabling them will require a significant rewrite of your configuration files.
Removing/disabling them will require a significant rewrite of your configuration files.
The following user(s) said Thank You: Eyecon
Please Log in or Create an account to join the conversation.
03 Jan 2022 21:47 #230685
by Eyecon
Replied by Eyecon on topic PID module and function for steppers with 7i76e
Thank you that makes sense. I noticed I’m getting oscillation behaviour when the P term is set too high(and by default the D term is set to zero).pncconf seems to set random values for it. Any idea how the PIDs should be setup for the 7i76e stepgens?
Please Log in or Create an account to join the conversation.
03 Jan 2022 21:56 - 03 Jan 2022 22:04 #230688
by PCW
Replied by PCW on topic PID module and function for steppers with 7i76e
Pncconf should set the P term to 1/Servo_thread_period
(so P = 1000 for a standard 1 ms servo thread rate)
The physical meanings of a P term of 1/Servo_thread_period
is that position errors are corrected by the next waypoint,
one servo thread period later.
A P term of > 2/Servo_thread_period will be unstable.
The other PID values are all 0 except FF1 which must be 1.000
(There is no D because this is a nearly perfect first order system)
For very fine tuning, a small amount of FF2 can be added..
This value should be the time (in seconds) between the position
read and velocity write (typically between 0.0001 to 0.0003
on Ethernet systems)
(so P = 1000 for a standard 1 ms servo thread rate)
The physical meanings of a P term of 1/Servo_thread_period
is that position errors are corrected by the next waypoint,
one servo thread period later.
A P term of > 2/Servo_thread_period will be unstable.
The other PID values are all 0 except FF1 which must be 1.000
(There is no D because this is a nearly perfect first order system)
For very fine tuning, a small amount of FF2 can be added..
This value should be the time (in seconds) between the position
read and velocity write (typically between 0.0001 to 0.0003
on Ethernet systems)
Last edit: 03 Jan 2022 22:04 by PCW.
The following user(s) said Thank You: Eyecon
Please Log in or Create an account to join the conversation.
Time to create page: 0.074 seconds