lostcontrol
Lifetime Supporting Member
Just x-checking that my method for calculating silo volume is correct.
If we have a standard silo, cone bottom & cylinder top, with a level Tx towards the bottom of the code, ranged in mm.
I have seen a few different methods, but none of them seem to take into account the correct volume of a cone calculation. With a Level Tx in the cone, as the level goes above the Level Tx & presents a reading, the base of the cone is changing, therefore the calculation needs to account for this.
To get an accurate volume, we need to do 3x calculations:
1. Small Cone - Volume below Level Tx
2. Large Cone - Volume of complete cone, with Level Tx used to determine the Base of the Cone
3. Cylinder - Volume of Cylinder based on Level Tx reading-Large Cone height.
Calculations:
Small Cone
ConeSmall := ConeHeight2LevelTx * PI * (ConeRadius@LevelTx^2) * 0.3333 * 1000
Large Cone
//ConeAngle is a Constant
ConeRadius@Level := (ConeHeight2LevelTx + LevelTxRaw) / TAN(RAD(ConeAngle))
ConeLarge := (LevelTxRaw + ConeHeight2LevelTx) * PI * (ConeRadius@Level^2) * 0.3333 * 1000
Cylinder
VolumeTotal := ((CylinderRadius^2) * PI * (LevelTxRaw - ConeHeightfromLevelTx2Cylinder)) + ConeLarge
Obviously there is some checking on what the current reading is so as to put the correct formula to use.
Does this look like how you guys would do it?
If we have a standard silo, cone bottom & cylinder top, with a level Tx towards the bottom of the code, ranged in mm.
I have seen a few different methods, but none of them seem to take into account the correct volume of a cone calculation. With a Level Tx in the cone, as the level goes above the Level Tx & presents a reading, the base of the cone is changing, therefore the calculation needs to account for this.
To get an accurate volume, we need to do 3x calculations:
1. Small Cone - Volume below Level Tx
2. Large Cone - Volume of complete cone, with Level Tx used to determine the Base of the Cone
3. Cylinder - Volume of Cylinder based on Level Tx reading-Large Cone height.
Calculations:
Small Cone
ConeSmall := ConeHeight2LevelTx * PI * (ConeRadius@LevelTx^2) * 0.3333 * 1000
Large Cone
//ConeAngle is a Constant
ConeRadius@Level := (ConeHeight2LevelTx + LevelTxRaw) / TAN(RAD(ConeAngle))
ConeLarge := (LevelTxRaw + ConeHeight2LevelTx) * PI * (ConeRadius@Level^2) * 0.3333 * 1000
Cylinder
VolumeTotal := ((CylinderRadius^2) * PI * (LevelTxRaw - ConeHeightfromLevelTx2Cylinder)) + ConeLarge
Obviously there is some checking on what the current reading is so as to put the correct formula to use.
Does this look like how you guys would do it?
Last edited: