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

Reply via email to