DrumBinTransfer
Drum/bin solid transfer model for batch operations (steady-state and dynamic).
Overview
The DrumBinTransfer class models batch solid material transfer operations using drums or bins with conveyor-based discharge systems. This model is commonly used in pharmaceutical, food, and chemical processing industries for transferring powders, granules, and other solid materials between process units.
Use Case
The drum/bin transfer system is employed when:
Batch processing requires controlled material handling
Materials need to be transferred between different elevation levels
Dust containment is important
Process requires intermediate storage capacity
Materials have varying flowability characteristics
Mathematical Model
Steady-State Model
The steady-state calculation determines the actual transfer rate and batch completion time based on:
Available Material Mass: Calculated from container fill level and material density
Effective Discharge Rate: Considers flowability factor and discharge efficiency
Transfer Rate Limiting: Accounts for material availability and discharge capacity
Batch Time Calculation: Includes discharge, transport, and handling times
Key equations:
Dynamic Model
The dynamic model tracks:
Transfer rate response with first-order dynamics
Container level changes based on mass balance
System stops when container is empty
State equations:
where \(\tau_{\text{rate}} = 10.0\) s is the discharge rate response time constant.
Parameters
Parameter |
Range |
Unit |
Description |
|---|---|---|---|
container_capacity |
0.1 - 2.0 |
m³ |
Container volume capacity |
transfer_rate_max |
10.0 - 500.0 |
kg/min |
Maximum discharge rate |
material_density |
200.0 - 2000.0 |
kg/m³ |
Bulk density of material |
discharge_efficiency |
0.5 - 1.0 |
Discharge mechanism efficiency |
|
handling_time |
60.0 - 300.0 |
s |
Setup and handling time per batch |
conveyor_speed |
0.1 - 2.0 |
m/s |
Conveyor belt speed |
transfer_distance |
1.0 - 50.0 |
m |
Transfer distance |
Examples
Basic Usage
from transport.batch.solid.DrumBinTransfer import DrumBinTransfer
import numpy as np
# Create pharmaceutical transfer system
pharma_transfer = DrumBinTransfer(
container_capacity=0.3, # 300 L container
transfer_rate_max=80.0, # 80 kg/min max rate
material_density=600.0, # Pharmaceutical powder density
discharge_efficiency=0.9, # Good discharge efficiency
handling_time=90.0, # 1.5 min handling time
conveyor_speed=0.4, # 0.4 m/s conveyor speed
transfer_distance=8.0 # 8 m transfer distance
)
# Steady-state calculation
u = np.array([0.8, 70.0, 0.7]) # [fill_level, setpoint, flowability]
result = pharma_transfer.steady_state(u)
transfer_rate, batch_time = result
print(f"Transfer rate: {transfer_rate:.1f} kg/min")
print(f"Batch time: {batch_time:.1f} s")
Dynamic Simulation
# Dynamic simulation
import matplotlib.pyplot as plt
time_span = np.linspace(0, 600, 301) # 10 minutes
dt = time_span[1] - time_span[0]
# Initial conditions
x = np.array([0.0, 1.0]) # [transfer_rate=0, fill_level=1.0]
u = np.array([1.0, 70.0, 0.8]) # [target_fill, setpoint, flowability]
# Storage for results
transfer_rates = []
fill_levels = []
# Euler integration
for t in time_span:
transfer_rates.append(x[0])
fill_levels.append(x[1])
if x[1] > 0: # Continue only if material remains
dx_dt = pharma_transfer.dynamics(t, x, u)
x = x + dx_dt * dt
x[1] = max(0.0, x[1]) # Prevent negative fill level
else:
break
# Plot results
plt.figure(figsize=(10, 6))
plt.subplot(2, 1, 1)
plt.plot(time_span[:len(transfer_rates)]/60, transfer_rates)
plt.ylabel('Transfer Rate (kg/min)')
plt.title('DrumBinTransfer Dynamic Response')
plt.subplot(2, 1, 2)
plt.plot(time_span[:len(fill_levels)]/60, np.array(fill_levels)*100)
plt.xlabel('Time (min)')
plt.ylabel('Fill Level (%)')
plt.show()
Visualization Results
Dynamic Response
Dynamic response showing transfer rate and container fill level during batch operation.
Detailed Analysis
Detailed analysis showing flowability effects, fill level impacts, setpoint tracking, and batch time calculations.
Example Output
=== DrumBinTransfer Example ===
1. Creating DrumBinTransfer instances:
----------------------------------------
Pharmaceutical transfer: PharmaPowderTransfer
Container capacity: 0.3 m³
Max transfer rate: 80.0 kg/min
Food ingredient transfer: FoodIngredientTransfer
Container capacity: 1.5 m³
Max transfer rate: 300.0 kg/min
2. Steady-state analysis:
-------------------------
Pharmaceutical transfer results:
Full container, good flow:
Transfer rate: 60.0 kg/min
Batch time: 290.0 s
Half full, moderate flow:
Transfer rate: 57.6 kg/min
Batch time: 203.8 s
Low level, poor flow:
Transfer rate: 46.8 kg/min
Batch time: 133.1 s
High setpoint, excellent flow:
Transfer rate: 72.0 kg/min
Batch time: 230.0 s
3. Dynamic simulation:
--------------------
Simulating batch transfer with pharma_transfer:
Initial conditions: rate=0 kg/min, fill=100%
Setpoint: 70.0 kg/min, flowability: 0.8
Dynamic simulation results:
Final time: 182.0 s
Final fill level: 0.000
Average transfer rate: 59.8 kg/min
4. Flowability sensitivity analysis:
-----------------------------------
Food transfer flowability sensitivity (80% fill, 80 kg/min setpoint):
Flowability 0.1: 80.0 kg/min
Flowability 0.2: 80.0 kg/min
Flowability 0.3: 80.0 kg/min
Flowability 0.4: 80.0 kg/min
Flowability 0.5: 80.0 kg/min
Flowability 0.6: 80.0 kg/min
Flowability 0.7: 80.0 kg/min
Flowability 0.8: 80.0 kg/min
Flowability 0.9: 80.0 kg/min
Flowability 1.0: 80.0 kg/min
5. Model introspection:
--------------------
Model type: Drum/Bin Solid Transfer
Description: Batch solid material transfer using drums or bins with conveyor discharge
Key parameters:
container_capacity: 0.3 m³ - Container volume capacity
transfer_rate_max: 80.0 kg/min - Maximum discharge rate
material_density: 600.0 kg/m³ - Bulk density of material
discharge_efficiency: 0.9 - - Discharge mechanism efficiency
handling_time: 90.0 s - Setup and handling time per batch
Operating ranges:
container_capacity: 0.1 - 2.0
transfer_rate_max: 10.0 - 500.0
material_density: 200.0 - 2000.0
discharge_efficiency: 0.5 - 1.0
fill_level: 0.0 - 1.0
6. Creating visualization plots...
Plots saved as DrumBinTransfer_example_plots.png and DrumBinTransfer_detailed_analysis.png
=== Example completed successfully ===
Literature References
Perry, R.H., Green, D.W. (2019). “Perry’s Chemical Engineers’ Handbook”, 9th Edition, McGraw-Hill, Chapter 21: Solid-Solid Operations.
Schulze, D. (2008). “Powders and Bulk Solids: Behavior, Characterization, Storage and Flow”, Springer, ISBN: 978-3-540-73768-1.
Marinelli, J., Carson, J.W. (1992). “Solve solids flow problems in bins, hoppers, and feeders”, Chemical Engineering Progress, 88(5), 22-28.
Jenike, A.W. (1964). “Storage and Flow of Solids”, Bulletin No. 123, University of Utah Engineering Experiment Station.
BMHB (2003). “The Design of Hoppers, Silos and Bunkers”, Institution of Chemical Engineers, Rugby, UK.
Roberts, A.W. (2001). “Particle Technology - Storage and Flow of Particulate Solids”, TUNRA Bulk Solids Research Associates, University of Newcastle.