- Posts: 79
- Thank you received: 0
PID module and function for steppers with 7i76e
4 years 9 months ago #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 to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
-
Less
More
- Posts: 4739
- Thank you received: 2
4 years 9 months ago #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.
Please Log in to join the conversation.
4 years 9 months ago #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 to join the conversation.
4 years 9 months ago #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)
Please Log in to join the conversation.
Time to create page: 0.073 seconds
