- Configuring LinuxCNC
- Advanced Configuration
- PID control of pressure in hydraulic cylinders with Python and LinuxCNC
PID control of pressure in hydraulic cylinders with Python and LinuxCNC
- santy
- Offline
- Premium Member
Less
More
- Posts: 116
- Thank you received: 10
08 Jul 2023 21:25 #275044
by santy
PID control of pressure in hydraulic cylinders with Python and LinuxCNC was created by santy
Hey guys
My goal is to drive an hydraulic cylinder with a directional valve.
The cylinder is to push an object, by opening the valve, and closing it when it reaches a given pressure.
For this, i have built a test python script to obtain the pressure of a dial, and my goal is to send the current pressure as a variable to linuxcnc, so that i can control it.
The idea is that the operator could choose a certain pressure in the control panel, and linuxcnc would work in parallel with the python script to check if it has reached it or not yet.
I can accept an error of 2-5 % so there is no problem!
please check the picture. the test was done with a compressor dial, not yet the hydraulic manometer.. but its similar.
What approach would you suggest to get the PID control working? where can i start?
Any examples for communicating variables within linuxcnc to other apps?
Thank you!
My goal is to drive an hydraulic cylinder with a directional valve.
The cylinder is to push an object, by opening the valve, and closing it when it reaches a given pressure.
For this, i have built a test python script to obtain the pressure of a dial, and my goal is to send the current pressure as a variable to linuxcnc, so that i can control it.
The idea is that the operator could choose a certain pressure in the control panel, and linuxcnc would work in parallel with the python script to check if it has reached it or not yet.
I can accept an error of 2-5 % so there is no problem!
please check the picture. the test was done with a compressor dial, not yet the hydraulic manometer.. but its similar.
What approach would you suggest to get the PID control working? where can i start?
Any examples for communicating variables within linuxcnc to other apps?
Thank you!
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23310
- Thank you received: 4858
08 Jul 2023 22:08 #275050
by andypugh
Replied by andypugh on topic PID control of pressure in hydraulic cylinders with Python and LinuxCNC
Using image recognition to measure the pressure is fairly cunning, but is presumably not providing results in real-time?
If at all possible it would be better to get the pressure into HAL as a realtime signal. (for example, by using a pressure gauge with an analogue voltage output.
Maybe something like a diesel fuel rail pressure sensor? What pressure do you need to measure?
Anyway, to answer the question, rather than say "No, don't do it that way"
Import the linuxcnc HAL module into python and create a HAL pin to present the pressure on.
Then connect that to a HAL PID component as the feedback.
That's pretty much it.
linuxcnc.org/docs/2.9/html/hal/halmodule.html
If at all possible it would be better to get the pressure into HAL as a realtime signal. (for example, by using a pressure gauge with an analogue voltage output.
Maybe something like a diesel fuel rail pressure sensor? What pressure do you need to measure?
Anyway, to answer the question, rather than say "No, don't do it that way"
Import the linuxcnc HAL module into python and create a HAL pin to present the pressure on.
Then connect that to a HAL PID component as the feedback.
That's pretty much it.
linuxcnc.org/docs/2.9/html/hal/halmodule.html
import hal
...
h = hal.component("hydraulics")
h.newpin("pressure", hal.HAL_FLOAT, hal.HAL_OUT)
h.ready()
...
h.pressure = measured_pressure
Please Log in or Create an account to join the conversation.
- santy
- Offline
- Premium Member
Less
More
- Posts: 116
- Thank you received: 10
09 Jul 2023 14:24 #275077
by santy
Replied by santy on topic PID control of pressure in hydraulic cylinders with Python and LinuxCNC
i want to measure hydraulic pressure. So that type of sensor is hard to find and fairly expensive.
Pneumatic sensors can be cheaper as they handle max 10 bar but for hydraulics i haven't had much luck with something that won't break the bank. yes i would rather get something exactly like you said and use a 7i87 or similar for analogue input but this way i can play with open cv!
Pneumatic sensors can be cheaper as they handle max 10 bar but for hydraulics i haven't had much luck with something that won't break the bank. yes i would rather get something exactly like you said and use a 7i87 or similar for analogue input but this way i can play with open cv!
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19414
- Thank you received: 6510
09 Jul 2023 14:47 #275079
by tommylight
And are cheap as they are mass produced.
Search for "common rail pressure sensor".
Replied by tommylight on topic PID control of pressure in hydraulic cylinders with Python and LinuxCNC
That is a very good idea, those sensors measure up to 2000 BAR of pressure.Maybe something like a diesel fuel rail pressure sensor?
And are cheap as they are mass produced.
Search for "common rail pressure sensor".
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- PID control of pressure in hydraulic cylinders with Python and LinuxCNC
Time to create page: 0.061 seconds