Rods "Spaceship" Scratch built Plasma Cutter build

19 Nov 2017 12:15 #102005 by rodw
Robert,, thanks for the ideas. 10 steps on a 5mm ball screw with 1.8 deg stepper is 0.25 mm which is exactly the distance I used when doing some tests similar to what you have suggested except I was lazy and had LinuxCNC log the voltages for me 1.5 seconds after ArcOK. I ran cuts from 1.5mm to 2.25mm in 0.25 volt (10 step) increments and graphed a trend line of a couple of repetitions.. When I say volts per mm, it really is volts per 0.1mm but its easier to think in terms of whole numbers. The reality is that we don't really need to know the characteristics of the torch to cut steel but we do need know them to model the torch in software if we want to build a simulator that allows it to be tuned without cutting steel plate.

I haven't tested it but from what I've read the change in volts over time is not correlated to material thickness or cutting speed and remains more or less constant. Certainly the oscillations I've seen are similar on 2mm and 8mm steel.

Don't forget that I am adopting someone else's paradigm here. One of the inputs is a scaling factor K and that paradigm says its 1000 for an imperial machine or 39.37 (1000/25.4) for a metric machine. The reciprocal of this number (1/39.37) becomes the input to the external offset scale parameter. In some of the literature they refer to a PID scale and it seems to me that this is the equivalent scaling setting. They suggested where ongoing oscillations are experienced, it could be that the PID scale is too high.

If I haven't confused you by now, imagine how I feel with no experience with CNC or plasma cutting of any kind.

No wonder my head hurts!
19 Nov 2017 13:04 #102008 by robertspark

Are you not using any microstepping of th z-axis? 5/200*10 yes = 0.25mm.... but really you should be using some microsteps (no more that 10)

What is your present z axis acceleration + velocity settings?

so what volts per unit have you found?

I'd suggest that this would become equated to your "P" parameter (step/volt), therefore if you know how many volts error you have you now know how many steps your axis needs to move.

"I" is the integril bit.... is the amount of change that did not happen (cumulative error at the time intervils) ..... because your Z Axis "may" move fast or slow, "I" may change relative to your feedrate in my opinion..... because at 1khz you'd expect the Z axis to be on track with the error, in fact it may have even overshot the error because your z axis is so fast and the voltage error "may" be small {the may bit refers to a dependancey on feedrate + the profile you are cutting / it's bevel that your THC is trying to correct).
low feedrate .... small "I" and a high feedrate ..... large "I"

"D" is the rate change over time, how much can the axis actually change over time..... so with a low feedrate you would use a large "D" and with a high feedrate you would use a smaller "D" action

So the "I" will speed up the motion (because its not getting to its target) and the "D" will slow the motion down (because its getting to the target too quickly)

... simplified explanation ...

Now the catch comes..... what are the units of "I" and "D" that the PID loop is using.... as there are a few different ones that can be used (basically they can be units or inverse units {1/I or 1 / D} too
19 Nov 2017 14:30 #102013 by PCW
I dont think using steps is a good idea

This just adds another machine specific constant to the control loop and makes
PID constants machine specific/non-portable. LinuxCNC uses engineering units everywhere and
I think that's the cleanest approach, at least for me It makes understanding the PID parameters
understandable at a glance. You already have one constant that makes settings non-portable
(mm vs inch) that's plenty...
19 Nov 2017 14:59 #102016 by robertspark
The advantage of using steps is you can use absolute units.... Let's say your error is 0.01mm.... do you move the axis or not.... No because your axis resolution is 0.025.... hence when your error exceeds 0.025 (1 step)... You only move 1 step....

The PID parameters should not be universal.... They are machine setup specific as they relate to your z axis resolution, and it's responsiveness...

Ultimately you can do whatever you want but ask yourself what is the error proportional to? And amount of corrective movement from the z.... So at some point you have to equate the measured voltage error to movement

If you can measure 0.01v if error... What does this equate to in steps

Calculate your voltage error resolution in steps .....
mm inches apples oranges and light years mean nothing if all your machine can do is take defined fixed distance steps

MM help us to think in round units and inches helped whitworth with the industrial revolution of standardisation but at the moment there is only one country clinging on to imperial units
19 Nov 2017 17:10 #102021 by robertspark

What volts per mm did you get/ calculate from your testing?


19 Nov 2017 17:10 - 19 Nov 2017 17:13 #102022 by PCW
Using steps (and many interfaces will not even have steps) just complicates things and make them less portable.
Its absolutely possible to have portable settings. If you normalize the parameters (so for example the z axis feedback voltage is scaled in mm) Differences in Z axis performance will affect the tuning but in easy to understand ways
adding steps to the equations is going in the wrong direction (away from normalization), and just complicates things

LinuxCNC already takes steps out of the equation (Z axis resolution), why would you out them back in?

I don't buy the resolution argument, unless you have really Z low resolution, this is immaterial in a real system
as movements near the step resolution are swamped by other error sources
Last edit: 19 Nov 2017 17:13 by PCW.
The following user(s) said Thank You: robertspark
19 Nov 2017 17:24 #102023 by robertspark
Fair enough

It doesn't really make any difference... It's just another multiplier anyway (X steps per unit)
19 Nov 2017 17:33 #102024 by andypugh

PCW wrote: I don't buy the resolution argument, unless you have really Z low resolution, this is immaterial in a real system
as movements near the step resolution are swamped by other error sources

Using a deadband in the PID could probably solve that too.
19 Nov 2017 17:39 #102025 by robertspark
What do you classify as "really low"

20 steps per mm?

The advantage of low (big) steps is higher acceleration + less jolt / jerk with linear acceleration profiles

That's in part why I'm interested to see what rod got for the volts per unit or mm from his testing.
19 Nov 2017 21:18 #102039 by rodw
Wow! you guys were busy overnight! I think we are off on a tangent here. Linuxcnc is based on machine units (inches or mm) and once correctly configured, we never refer to discrete steps so we are not going to do that now.

In its early iterations, external offsets required a setting to choose between these but now it is self configuring as internally it has a setting called units per mm.

Originally, the torch simulation worked on what has normally accepted values of 1 volt per 0.1 mm (1 volt per 0.004"). By plotting the results for various heights, I came up with 0.4654 volts per mm for my torch .So internally, I updated the scale of 10 volts per mm to be 4.651 volts per mm. However, I'm not convinced from the limited data set I took that the results were really linear.

So in the background, eoffset_pid THC continues to be improved by my feed back and experiences on a live (but not very high quality) machine. I'm probably not the right candidate here as I know nothing about PID, plasmas or CNC in general but we are making progress. even if that progress leaves me somewhat battered and bruised as I learn some electronics fundamentals the hard way..
Time to create page: 0.111 seconds
Powered by Kunena Forum