Manufacturing Equipment Reference¶
Look up your equipment โ get the pattern, equation, and starting parameters.
This table maps common manufacturing equipment to Odibi simulation patterns. Instead of deriving equations from textbooks, find your equipment, copy the expression, and tune the 1โ2 numbers that matter.
Not listed?
Ask one question: what does the output do when I change the input?
- Settles to a new value โ
first_order - Keeps ramping โ
integrator - Bounces before settling โ
second_order - Nothing, then responds โ
dead_time - Changes instantly โ
gain
Find the closest equipment below and copy its equation. The pattern is what matters, not the exact equipment name.
Quick Reference: Key Terms¶
Before reading the table, here's what each column means:
- gain = max output รท 100 (when input is 0โ100%). It converts input units to output units. Example: a valve with max flow 15 mยณ/hr โ gain = 15 รท 100 = 0.15
- alpha = how fast it responds. Each timestep, alpha ร the remaining gap gets closed. Only applies to
first_order. Low (0.02) = sluggish. High (0.3) = snappy - dt = timestep unit conversion so rates accumulate correctly. Example: flow in mยณ/hr with a 5-min timestep โ dt = 5/60
See Parameter Intuition Guide for the full breakdown of alpha, gain, and dt.
Valves¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Globe valve (throttling) | first_order |
prev(flow) + alpha ร (gain ร valve_pct - prev(flow)) |
Max flow รท 100. Example: 15 mยณ/hr max โ 0.15 | 0.05โ0.15 | Slow โ designed for precise flow control |
| Ball valve (on/off) | first_order |
prev(flow) + alpha ร (gain ร valve_pct - prev(flow)) |
Max flow รท 100 | 0.2โ0.5 | Fast โ quarter-turn, snaps open/closed |
| Butterfly valve | first_order |
prev(flow) + alpha ร (gain ร valve_pct - prev(flow)) |
Max flow รท 100 | 0.1โ0.3 | Moderate speed. Nonlinear at low openings |
| Relief / safety valve | gain |
max_flow if pressure > setpoint else 0 |
Binary โ fully open or closed | โ | Threshold behavior, not proportional |
Pumps¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Centrifugal pump | first_order |
prev(flow) + alpha ร (gain ร speed_pct - prev(flow)) |
Max flow รท 100. Example: 20 mยณ/hr โ 0.20 | 0.2โ0.5 | Fast response. Flow varies with speedยฒ at extremes, but linear enough for simulation |
| Positive displacement pump | gain |
gain ร speed_pct |
Max flow รท 100 | โ | Flow is directly proportional to speed. Nearly instant response |
| Peristaltic / diaphragm pump | gain |
gain ร speed_pct |
Max flow รท 100 | โ | Like PD pumps โ flow tracks speed with very little lag |
Vessels & Tanks¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Storage tank (liquid level) | integrator |
max(0, min(cap, prev(level) + (inflow - outflow) ร dt)) |
โ | โ | Always clamp to [0, capacity]. Get dt units right |
| Tank with gravity drain | integrator (self-regulating) |
Level: max(0, min(cap, prev(level) + (inflow - drain_coeff ร prev(level)) ร dt)) |
โ | โ | Self-regulates โ outflow increases with level. No controller needed |
| Pressure vessel (gas) | second_order |
Velocity: prev(vel) + beta ร (target - prev(pressure)) - damping ร prev(vel) then Pressure: prev(pressure) + velocity |
โ | โ | Gas compresses/expands with overshoot. Use beta=0.04, damping=0.3 as starting point |
| Mixing tank (concentration) | first_order |
prev(conc) + alpha ร (inlet_conc - prev(conc)) |
โ | 0.05โ0.2 | Alpha depends on tank volume vs flow rate. Bigger tank = lower alpha |
| Reactor (CSTR) | first_order |
prev(conc) + alpha ร (feed_conc - prev(conc)) |
โ | 0.02โ0.1 | Similar to mixing tank but slower. Reaction kinetics add complexity โ start simple |
Heat Transfer¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Shell & tube heat exchanger | first_order |
prev(t_out) + alpha ร (gain ร t_in - prev(t_out)) |
0.6โ0.9 (efficiency) | 0.02โ0.08 | Large thermal mass = slow. Gain < 1.0 because heat transfer isn't perfect |
| Plate heat exchanger | first_order |
prev(t_out) + alpha ร (gain ร t_in - prev(t_out)) |
0.7โ0.95 | 0.1โ0.3 | Much faster than shell & tube โ less thermal mass, more surface area |
| Jacketed vessel | first_order |
prev(t_vessel) + alpha ร (gain ร t_jacket - prev(t_vessel)) |
0.3โ0.7 | 0.01โ0.05 | Very slow โ heating/cooling a large batch through a wall |
| Cooling tower | first_order |
prev(t_out) + alpha ร (t_wet_bulb - prev(t_out)) |
โ | 0.02โ0.1 | Target is wet-bulb temp. Gain โ 1.0 in ideal conditions |
| Electric heater | first_order |
prev(temp) + alpha ร (gain ร heater_pct - prev(temp)) |
Max temp rise รท 100 | 0.05โ0.2 | Gain = max temp above ambient per % power |
| Boiler / steam generator | first_order |
prev(steam_pressure) + alpha ร (gain ร fuel_rate - prev(steam_pressure)) |
System-specific | 0.01โ0.05 | Very slow, large thermal mass. Steam drum adds lag |
Conveyors & Transport¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Belt conveyor | dead_time |
delay(input, steps, default) |
โ | โ | steps = belt length รท belt speed รท timestep. Pure transport delay |
| Screw conveyor | dead_time |
delay(input, steps, default) |
โ | โ | Shorter delay than belt. steps = screw length รท feed rate รท timestep |
| Pipeline (liquid) | dead_time + first_order |
prev(output) + alpha ร (delay(input, steps, default) ร gain - prev(output)) |
Flow gain | 0.1โ0.3 | Dead time = pipe volume รท flow rate. First-order for pressure dynamics |
| Pneumatic transport | dead_time |
delay(input, steps, default) |
โ | โ | Air velocity is fast, so fewer delay steps than liquid pipeline |
Motors & Drives¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| VFD motor (variable frequency drive) | first_order |
prev(speed) + alpha ร (command_pct - prev(speed)) |
1.0 (command = speed in %) | 0.2โ0.5 | Fast response. VFD ramp rate determines alpha |
| Direct-on-line motor | gain |
rated_speed if running else 0 |
โ | โ | On/off โ no speed control. Full speed or stopped |
| Compressor | first_order |
prev(pressure) + alpha ร (gain ร speed_pct - prev(pressure)) |
Max pressure รท 100 | 0.05โ0.15 | Slow โ compressed gas has thermal mass |
Instruments & Sensors¶
| Equipment | Pattern | Equation | Gain | Alpha | Notes |
|---|---|---|---|---|---|
| Thermocouple | first_order |
prev(reading) + alpha ร (true_temp - prev(reading)) |
1.0 (reads what it sees) | 0.1โ0.3 | Sensor lag โ doesn't read instantly. Add noise: + (random() - 0.5) * band |
| RTD (resistance temp detector) | first_order |
prev(reading) + alpha ร (true_temp - prev(reading)) |
1.0 | 0.05โ0.15 | Slower than thermocouple โ larger thermal mass in the sensor |
| Pressure transmitter | first_order |
prev(reading) + alpha ร (true_pressure - prev(reading)) |
1.0 | 0.3โ0.5 | Very fast โ nearly instant. Often modeled as gain |
| Flow meter (magnetic / Coriolis) | gain |
true_flow + (random() - 0.5) * noise_band |
1.0 | โ | Essentially instant. Main imperfection is noise, not lag |
| Level sensor (ultrasonic) | first_order |
prev(reading) + alpha ร (true_level - prev(reading)) |
1.0 | 0.2โ0.4 | Moderate lag. Surface turbulence adds noise |
| pH probe | first_order |
prev(reading) + alpha ร (true_ph - prev(reading)) |
1.0 | 0.02โ0.1 | Slow โ electrochemical response time. Gets slower as probe ages |
How to Use This Table¶
Step 1: Find your equipment (or the closest match).
Step 2: Copy the equation into your YAML expression: field. Replace variable names with your column names.
Step 3: Pick a gain and alpha from the ranges shown. Use the middle of the range to start.
Step 4: Run the simulation and look at the chart. Does it respond too fast? Lower alpha. Too slow? Raise alpha. Wrong magnitude? Adjust gain.
Example โ Globe valve controlling cooling water flow:
columns:
- name: valve_position_pct
data_type: float
generator:
type: random_walk
start: 50.0
min: 0.0
max: 100.0
step_size: 3.0
- name: cooling_flow_m3_hr
data_type: float
generator:
type: derived
expression: "max(0, prev('cooling_flow_m3_hr', 7.5) + 0.1 * (0.15 * valve_position_pct - prev('cooling_flow_m3_hr', 7.5)))"
# gain = 0.15 โ 100% valve = 15 mยณ/hr max flow
# alpha = 0.1 โ globe valve, moderate speed
# default = 7.5 โ starts at 50% valve = 7.5 mยณ/hr
Related Documentation¶
- Simulation Playbook โ Complete execution system for building simulations
- Core Patterns โ Detailed explanation of each pattern with row-by-row traces
- Parameter Intuition Guide โ How to tune alpha, gain, dt, and PID parameters
- Stateful Functions โ
prev(),ema(),pid(),delay()complete reference