Git Product home page Git Product logo

Comments (10)

kevstone122 avatar kevstone122 commented on August 10, 2024

One more thing.
"Output" increase endless because of I-part.
But "Value" for sensor doesn't change. Looks like I-part is not used for sensor signal?

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

Hello Kevin - the second feature you wanted can be obtained by using functions with Node-RED context - i found using context tricky with custom nodes ...

also, contributions and code patches are welcomed so dont hesitate to fork it and add your enhancements - we can work on this ..

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

One more thing. "Output" increase endless because of I-part. But "Value" for sensor doesn't change. Looks like I-part is not used for sensor signal?

I will need to investigate it in more details. if possbile - can you submit me your findings like sample image attached here ?
Screenshot from 2023-08-07 22-28-13

from node-red-contrib-easy-pid-controller.

kevstone122 avatar kevstone122 commented on August 10, 2024

Hello

I just have build an simple test flow. So if i keep it run with an simple setpoint and process value which will not change, this happen like in the picture.
image

The I-controller gain rises up endless --> Output also because of this. To limit now the output between -100 and +100 is not correct, because if i now change the Process value to -100 for example, the I-part need the same time to "run" down lets say backward. So the full controller is like hang up because of the I-part.
Actually i have also not the correct idea how it will be done normally. But if you reach +100% or -100%, then i think the I-Part need to stop running. Because "more" is not possible. Anyway we have full controller output.

Also you can see, that the "value" has no decimal points.

Also after OFF / ON issue, we should clear the I-part i think. Because PID was off and so the I-part is like from old situation and therefor not correct. So it need to start again from 0 i think. What do you think?

from node-red-contrib-easy-pid-controller.

kevstone122 avatar kevstone122 commented on August 10, 2024

One more thing. "Output" increase endless because of I-part. But "Value" for sensor doesn't change. Looks like I-part is not used for sensor signal?

I will need to investigate it in more details. if possbile - can you submit me your findings like sample image attached here ? Screenshot from 2023-08-07 22-28-13

Oh this looks like Grafana....Actually i am working also on this, but still not able to run on my virtual maschine-system.
I am sorry!

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

One more thing. "Output" increase endless because of I-part. But "Value" for sensor doesn't change. Looks like I-part is not used for sensor signal?

I will need to investigate it in more details. if possbile - can you submit me your findings like sample image attached here ? Screenshot from 2023-08-07 22-28-13

Oh this looks like Grafana....Actually i am working also on this, but still not able to run on my virtual maschine-system. I am sorry!

no problem - these values are obtained from a valve that gives its feedback ie pv back to easy-pid node - here you can observe the behaviour of system when sv is changed and how it tries to attain pv - so i suggest you to try and test it with a control device - either a real or virtual one.

from node-red-contrib-easy-pid-controller.

kevstone122 avatar kevstone122 commented on August 10, 2024

Hi. Instead of sending hardcoded values, try to send values using pid simulator. Use this library https://github.com/hj91/simple-pid-controller to create virtual valve that will take input from this nodes sv and in turn send pv back to easy-pid-controller node which will then operate correctly.. Check the flow in examples/ Harshad Joshi

-- Bufferstack.IO ® Analytics Technology LLP is a Govt Of India recognized startup.. https://bufferstack.io DISCLAIMER This email and any files transmitted with it are intended solely for the person or the entity to whom they are addressed and may contain information which is Confidential and Privileged. Any misuse of the information contained in this email, including but not limited to retransmission or dissemination of the said information by person or entities other than the intended recipient is unauthorized and strictly prohibited. If you are not the intended recipient of this email, please delete this email and contact the sender immediately.
On Mon, 11 Sept, 2023, 03:24 kevstone122, @.> wrote: Hello I just have build an simple test flow. So if i keep it run with an simple setpoint and process value which will not change, this happen like in the picture. [image: image] https://user-images.githubusercontent.com/57774255/266870057-e6662288-2df6-4da7-bd4b-96a524c4b1d0.png The I-controller gain rises up endless --> Output also because of this. To limit now the output between -100 and +100 is not correct, because if i now change the Process value to -100 for example, the I-part need the same time to "run" down lets say backward. So the full controller is like hang up because of the I-part. Actually i have also not the correct idea how it will be done normally. But if you reach +100% or -100%, then i think the I-Part need to stop running. Because "more" is not possible. Anyway we have full controller output. — Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAYOHMBNYEESLVHXCSMCLXZYZJ3ANCNFSM6AAAAAA4SDXA5Q . You are receiving this because you were assigned.Message ID: @.>

Actually i understand your idea and it's totally clear, that the controller will work, if the PV will follow...This i can also simulate with my PV-Values. If PV is the same like SV, then the I-part will stop to get crazy.
But exactly this situation i wanted to test. The limits of the controller. So also in reality what happen, if the PV does not follow the SV....because some part is broken for example.
Then the I-part should not run away. Also after stop and start the value is still there. So how to reset this big value? Then the controller show after 24h this one in the picture below!
My problem is, that i also don't know how to do it correct 100%, i just know from siemens controller, that this should not happen. So if you stop your simulation and PV will not change anymore because valve is broken. So after 24h you have a value like 23000%....So if you repair the valve, the system need again 23000% steps to go back down --> cannot be correct.
Can you give it a try to freeze the I-calculation if the "output" will have 100%?
And also set the I-part to zero after you stop the controller.

I tried to understand the code but i am not sure. Something like in line 74.
if (pidTimer == null && controller.update(node.currentValue) <= 100 && controller.update(node.currentValue) >= -100 ).
Am i correct?
Can you try some scenario at your simulation PV-value. Just add some offset to the PV-value(Like valve get stock somewhere) and then controller run away.

Thank you a lot.

image

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

Hi. Instead of sending hardcoded values, try to send values using pid simulator. Use this library https://github.com/hj91/simple-pid-controller to create virtual valve that will take input from this nodes sv and in turn send pv back to easy-pid-controller node which will then operate correctly.. Check the flow in examples/ Harshad Joshi

-- Bufferstack.IO ® Analytics Technology LLP is a Govt Of India recognized startup.. https://bufferstack.io DISCLAIMER This email and any files transmitted with it are intended solely for the person or the entity to whom they are addressed and may contain information which is Confidential and Privileged. Any misuse of the information contained in this email, including but not limited to retransmission or dissemination of the said information by person or entities other than the intended recipient is unauthorized and strictly prohibited. If you are not the intended recipient of this email, please delete this email and contact the sender immediately.
On Mon, 11 Sept, 2023, 03:24 kevstone122, @.> wrote: Hello I just have build an simple test flow. So if i keep it run with an simple setpoint and process value which will not change, this happen like in the picture. [image: image] https://user-images.githubusercontent.com/57774255/266870057-e6662288-2df6-4da7-bd4b-96a524c4b1d0.png The I-controller gain rises up endless --> Output also because of this. To limit now the output between -100 and +100 is not correct, because if i now change the Process value to -100 for example, the I-part need the same time to "run" down lets say backward. So the full controller is like hang up because of the I-part. Actually i have also not the correct idea how it will be done normally. But if you reach +100% or -100%, then i think the I-Part need to stop running. Because "more" is not possible. Anyway we have full controller output. — Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADAYOHMBNYEESLVHXCSMCLXZYZJ3ANCNFSM6AAAAAA4SDXA5Q . You are receiving this because you were assigned.Message ID: _@**.**_>

Actually i understand your idea and it's totally clear, that the controller will work, if the PV will follow...This i can also simulate with my PV-Values. If PV is the same like SV, then the I-part will stop to get crazy. But exactly this situation i wanted to test. The limits of the controller. So also in reality what happen, if the PV does not follow the SV....because some part is broken for example. Then the I-part should not run away. Also after stop and start the value is still there. So how to reset this big value? Then the controller show after 24h this one in the picture below! My problem is, that i also don't know how to do it correct 100%, i just know from siemens controller, that this should not happen. So if you stop your simulation and PV will not change anymore because valve is broken. So after 24h you have a value like 23000%....So if you repair the valve, the system need again 23000% steps to go back down --> cannot be correct. Can you give it a try to freeze the I-calculation if the "output" will have 100%? And also set the I-part to zero after you stop the controller.

I tried to understand the code but i am not sure. Something like in line 74. if (pidTimer == null && controller.update(node.currentValue) <= 100 && controller.update(node.currentValue) >= -100 ). Am i correct? Can you try some scenario at your simulation PV-value. Just add some offset to the PV-value(Like valve get stock somewhere) and then controller run away.

Thank you a lot.

image

There are multiple factors as to why i is getting saturated..

Study this code
https://github.com/hj91/simple-pid-controller/blob/main/tolerance.js

Observe how it works.

from node-red-contrib-easy-pid-controller.

hj91 avatar hj91 commented on August 10, 2024

Closing it for now.

from node-red-contrib-easy-pid-controller.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.