I am currently working on a model for a client and considering using the AnyLogic Fluid Library for part of our logic
They have a series of processes in their manufacturing that would be too difficult to model directly due to complexity and lack of data. Instead they would like us to model it as one continuous process with an approximate time and flow rate. They have a storage tank, followed by this process and then another storage tank at the end which will then slowly release batches of fluid.
Knowing exactly how much fluid is in the storage tanks at the start and end is very important and required for other parts of our logic to function and therefore we want it to be as accurate as possible
The logic would be that the fluid flows into this process at a specified rate and it takes about 6 hours for the fluid to then start flowing out of the other side at the same rate. Fluid should not stop flowing in at any point unless there is none left or the process is stopped for other reasons
If the inflow of fluid does stop at any point then we would want to similarly stop the outflow 6 hours later to mimic this. I like to picture it as a really long waterslide. You put water in at the top and it takes 6 hours for that exact bit of water to come out at the bottom
It is also possible they may want to make the flow rate dynamic to mimic them increasing production capacity due to external factors or for the process to breakdown/stop randomly, this would not effect process time. This would make it harder to simply use events to change the outflow
My first thought was to use a process tank but immediately realized this was not possible because of how it works with capacities. It doesn't begin the delay until it is full and nothing enters/ leaves until it is done
I have tried seeing if we could have a pipeline with a dynamic flow with events but with the possibility of the flow changing so much it would be difficult to keep track of how much fluid would have made it to the end yet. Perhaps keeping an queue of times that we changed the flows and then calling an event 12 hours after the next entry in the queue. When the flow changes we either schedule a new event or append to the queue
Has anyone ever implemented something like this before or have any ideas. There are a few different blocks like the tanks, valves and pipelines. As I have never used the fluid library for a project I am not sure which ones would be best to use in this instance
I am currently working on a model for a client and considering using the AnyLogic Fluid Library for part of our logic
They have a series of processes in their manufacturing that would be too difficult to model directly due to complexity and lack of data. Instead they would like us to model it as one continuous process with an approximate time and flow rate. They have a storage tank, followed by this process and then another storage tank at the end which will then slowly release batches of fluid.
Knowing exactly how much fluid is in the storage tanks at the start and end is very important and required for other parts of our logic to function and therefore we want it to be as accurate as possible
The logic would be that the fluid flows into this process at a specified rate and it takes about 6 hours for the fluid to then start flowing out of the other side at the same rate. Fluid should not stop flowing in at any point unless there is none left or the process is stopped for other reasons
If the inflow of fluid does stop at any point then we would want to similarly stop the outflow 6 hours later to mimic this. I like to picture it as a really long waterslide. You put water in at the top and it takes 6 hours for that exact bit of water to come out at the bottom
It is also possible they may want to make the flow rate dynamic to mimic them increasing production capacity due to external factors or for the process to breakdown/stop randomly, this would not effect process time. This would make it harder to simply use events to change the outflow
My first thought was to use a process tank but immediately realized this was not possible because of how it works with capacities. It doesn't begin the delay until it is full and nothing enters/ leaves until it is done
I have tried seeing if we could have a pipeline with a dynamic flow with events but with the possibility of the flow changing so much it would be difficult to keep track of how much fluid would have made it to the end yet. Perhaps keeping an queue of times that we changed the flows and then calling an event 12 hours after the next entry in the queue. When the flow changes we either schedule a new event or append to the queue
Has anyone ever implemented something like this before or have any ideas. There are a few different blocks like the tanks, valves and pipelines. As I have never used the fluid library for a project I am not sure which ones would be best to use in this instance
Share Improve this question asked Feb 6 at 20:18 Jacob WhyteJacob Whyte 212 bronze badges 1- Hey, pls use the LinkedIn forum for open-ended questions like this, see benjamin-schumann.com/blog/anylogic-community . SOF is purely for Q&A of specific issues :) – Benjamin Commented Feb 7 at 9:36
1 Answer
Reset to default 0The description you provided look like it would be covered by the ConveyorBelt
block rather than the pipeline. The conveyor belt assumes that any bulk material (and fluids are bulk materials in AnyLogic) takes a specific amount of time to reach the other side, based on the speed and length of the belt. You can have it be fed for 1h, then idle for 15min, then fed again for 1h, and it will show off on the output end of the conveyor belt after a fixed delay (based on speed/length).