On 12/31/25 23:44, johnd wrote:
Cool! Will look at it in more detail in the next week or so. Three glasses of
wine at the Puerto Vallarta Yacht club New Years party means my head isn't
working as well as it usually does.Although to be truthful I went the Andy Pugh
way with a harmonic drive AC servo. One day I might even cast the pattern for
the frame.One of my 42 projects...Sent from my Samsung S10
This is hard to read without any LF's or CR/s.
-------- Original message --------From: andrew beck <[email protected]> Date: 2025-12-31
8:51 p.m. (GMT-06:00) To: "Enhanced Machine Controller (EMC)"
<[email protected]> Subject: Re: [Emc-users] setting up dual PID loops for servo
encoders and
scales thanks johni found this which might be enough to make it work for mei just need to sit down and get my head around the cascading PID loopshttps://forum.linuxcnc.org/10-advanced-configuration/29851-combining-two-feedback-devices-rotary-axisOn Thu, Jan 1, 2026
at 11:58 AM johnd <[email protected]> wrote:> Sounds interesting. Do report on what you find out.JohnSent from my> Samsung S10> -------- Original message --------From: andrew beck <> [email protected]> Date: 2025-12-31 4:12 p.m.
(GMT-06:00) To:> "Enhanced Machine Controller (EMC)" <[email protected]>> Subject: [Emc-users] setting up dual PID loops for servo encoders and> scales hey guysjust looking for a config example if possible for a mesa> card from
someonethat has this nested PID loop setup.internal PID loop uses> servo motor encoder and the outer Pid loop only usesthe Intergral value> with the scale and then they get summed together todrive the motorI found> this link here on the forum and want to try
set it uphttp://> wiki.linuxcnc.org/cgi-bin/wiki.pl?Combining_Two_Feedback_Devices_On_One_AxisThis> page shows how to combine two position feedback devices into two PID'sfor> the tuning and positioning of one axis. 1. This example has one high> resolution
linear scale on the axis table and one rotary encoder on the> axis drive motor. 2. This could also be a rotary encoder on the ballscrew> and a rotary encoder on the motor 3. This assumes the PID's are loaded> and connected to the servo thread 4.
linear scale position feedback> connects to the input of the pid.4 PID 1. net X-linear-pos-fb 'linear> position feedback' pid.4.feedback 5. motor encoder position feedback> connects to the feedback input of the pid.0 PID 1. net> X-motor-pos-fb
'axis motor position feedback' pid.0.feedback 6. position> command signal from LinuxCNC axis connects to both PID command> inputs 1. net Xpos-cmd axis.0.motor-pos-cmd pid.0.command> pid.4.command 7. bit signals from LinuxCNC axis connnects to>
enable/disable both PID loops 1. net Xenable axis.0.amp-enable-out> pid.0.enable pid.4.enable 8. set PID loop output limits as specified in> ini file 1. setp pid.0.maxoutput [AXIS_0]PID_MAX_VEL 2. setp> pid.4.maxoutput [AXIS_0]PID_MAX_VEL
9. set the motor encoder PID loop> gains 10. NOTE - I gain is set to zero - it would fight the other> PID 1. setp pid.0.Pgain [AXIS_0]P 2. setp pid.0.Igain 0 3.> setp pid.0.Dgain [AXIS_0]D 4. setp pid.0.bias [AXIS_0]BIAS 5.> setp
pid.0.FF0 [AXIS_0]FF0 6. setp pid.0.FF1 [AXIS_0]FF1 7. setp> pid.0.FF2 [AXIS_0]FF2 8. setp pid.0.deadband [AXIS_0]DEADBAND 9.> setp ppmc.0.DAC.00.scale [AXIS_0]OUTPUT_SCALE 11. set the linear scale> PID loop gains 12. NOTE - it has only
I gain - all other gains are set to> zero 1. setp pid.4.Pgain 0 2. setp pid.4.Igain [AXIS_0]I 3.> setp pid.4.Dgain 0 4. setp pid.4.bias 0 5. setp pid.4.FF0 0> 6. setp pid.4.FF1 0 7. setp pid.4.FF2 0 8. setp pid.4.deadband>
[AXIS_0]DEADBAND 13. connect both PID output signals to sum2.4 inputs> 14. sum the outputs of pid.0 and pid.4 15. pid.0 is using motor encoder> feedback 16. pid.4 is using linear scale feedback 1. net> Xoutput-motor pid.0.output sum2.4.in0 2.
net Xoutput-linear> pid.4.output sum2.4.in1 17. the summed PID output is connnected to the> DAC input signal 1. net Xoutput sum2.4.out 'DAC input' 18. repeat as> necessary for more> axes_______________________________________________Emc-users
mailing> [email protected]://> lists.sourceforge.net/lists/listinfo/emc-users> _______________________________________________> Emc-users mailing list> [email protected]>
https://lists.sourceforge.net/lists/listinfo/emc-users>_______________________________________________Emc-users mailing [email protected]https://lists.sourceforge.net/lists/listinfo/emc-users
Let me suggest a different solution. On that I have found quite useful
as so far 8 axises on various machines have been converted. Toss the
conventional PID's, drivers and motors in the bin and replace them with
closed loop stepper/servo's. Feed the drivers directly from the TP, no
PID's to allow any error in what is sent. I am doing exactly that,
converting both my linuxcnc machines and my 3d printers. The motors
contain an encoder that feeds back ONLY to the drivers, LinuxCNC is not
aware of these encoders, which in turn controls the motors much more
precisely.
3 Huge advantages ensue.
1. The motors are fed only as much power as it takes to do the job, so
they run 60C cooler in most cases.
2. the control is much faster in that if a motor overshoots getting
stopped, its reversed and backed up to the correct position, or if it
falls behind, the driver turns up the current until the motor has caught
up. This is full time active by the microsecond control, does not depend
on low latency in the OS.
3. Speeds are multiplied, bringing steppers into servo speed responses
if the supply voltage is turned up to overcome motor inductance faster.
On 72 volts, 3000 or more rpms can be had with total control. No loss
of "home" has occurred.
All this is at a cost increase of maybe $25 per axis. This translates
to 3d printers that can move 10x faster than OOTB, can engrave text on
the sides of half nuts w/o any Input Shaper tomfoolery. Currently the
Hanpose LC42 and LC57 drivers are the only problem, in 3d printers the 5
volt logic overdrives the step/dir opto couplers (6N137's) leading to
their early failure, so I've added 150 to 190 ohm current limiters in
those 2 inputs using the signals delivered to the stepstick sockets on
the BTT octopus-pro V1.1 controller cards I use for all my printer
rebuilds. My power supply's are 72 volts. Hanpose has been advised of
the problem. Where the logic signals are 3.3 volts, like much of the
mesa stuff, no problem.
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users
Cheers, Gene Heskett, CET.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Don't poison our oceans, interdict drugs at the src.
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users