Skip to content

IOModule: filter-dryer-sim

The simulated I/O module for filter-dryer-1. Use this module to run every filtration, wash, dry, and discharge phase without physical hardware. It hosts all the channels a Nutsche filter-dryer needs (cake level, moisture, vessel temperature/pressure, filtrate flow, weight, jacket heater control, vacuum pump control, agitator, and the four valves: feed, filtrate, wash, vent) and references the reusable filter-dryer SimulationPreset for the vessel's physics model, mapping the preset's generic address names onto this module's tag addresses via spec.simulation.addressMap.

Where to find it

System endpointSetupIO Modules → select filter-dryer-sim.

HMI screenshot pending

An annotated capture of the filter-dryer-sim detail view will be added here.

What you see

Element Meaning
Channels Per-channel name, direction, signal type, and address
Controller pharma-controller
Protocol simulation
Preset filter-dryer — supplies the behavior list
Address map Binds preset generic names to this module's tag addresses
Behaviors Inherited from the preset (Expr + ValveFeedback). Inline overrides on the IOModule win over the preset; the reference plant uses none.

Channels

Analog: cake level, vessel temperature, vessel pressure, filtrate flow, cake moisture (LOD proxy), weight, jacket heater command and feedback, vacuum pump command and feedback, agitator command and feedback.

Discrete: feed valve drive + feedback, filtrate valve drive + feedback, wash valve drive + feedback, vent valve drive + feedback.

Properties

Property Value
Controller pharma-controller
Protocol simulation
Address sim://local
Preset filter-dryer (see 05a-simulation-presets.yaml)
Address map Defined on spec.simulation.addressMap
Namespace site-riverbend

How the simulation works

The vessel's physics model lives on the filter-dryer SimulationPreset. Each tick the simulation engine evaluates the preset's behaviors (expanded at reconcile time via this IOModule's addressMap):

  1. Vessel pressure integrates vacuum-pump evacuation against air ingress through a closed vent and leakage. It drives the fd-vacuum-decay-test integrity check.
  2. Cake level grows while the feed valve is open and filtrate drains, decaying slowly thereafter. It is the endpoint for filter-charge.
  3. Filtrate flow is proportional to the vacuum level and inversely proportional to cake thickness (Darcy-style). Used by filter-wash to detect cake saturation between cycles.
  4. Moisture decays exponentially with vessel temperature and vacuum, driving the vacuum-dry endpoint. Starts near the slurry's nominal water content, decays toward a floor value.
  5. Vessel temperature lags toward jacket_cmd with a time constant that reflects the cake's thermal mass.
  6. ValveFeedback drives feedback toward command for each actuator.

Deterministic given a fixed seed.

Used by

  • filter-dryer-1 — the unit runtime pod for the filter-dryer reads every tag the vessel's control modules need

Try it

  1. Processriverbendpharma-areasim-cellfilter-dryer-1
  2. Start sim-filter-dry-m1 and watch pressure pull down during the vacuum-decay test, filtrate flow during charge and wash, and moisture drop during dry
  3. Open Data endpointTrends on pressure_sensor.PV, cake_level_sensor.PV, moisture_sensor.PV, and filtrate_flow_sensor.PV for a full picture of vessel dynamics
  4. Inject a vacuum leak via spec.simulation.faults to fail the fd-vacuum-decay-test integrity check and see the phase park in ISA-88 Held