MiravoMiravo

Cleanroom Zone

GMP cleanroom suite served by an AHU, with controlled temperature, humidity, positive pressure cascade, air changes, HEPA loading, door events, and particle counts.

Cleanroom zone model illustration

What it is

One GMP cleanroom suite and the air handling unit (AHU) that serves it. The suite holds temperature and relative humidity in tight bands, keeps a positive pressure against the adjacent corridor, and changes the room air target_ach times per hour through a HEPA filter. Door events, shift activity and filter loading move pressure and particle counts the way a pharma quality team watches them.

t=0 is the start of shift 1. The 24-hour profile runs two production shifts with breaks, then overnight cleaning at rest.

Used in

  • pharma-cleanroom: the Grade B, C, D and gowning suites

What it tracks

MemberDescription
runningAHU operating state.
room_temperatureSuite temperature, held within a tight band around temp_setpoint_c.
relative_humiditySuite humidity in % RH. It follows the supply-air dew point and the humidifier.
supply_dewpoint / humidifier_outputHumidity actuation path.
differential_pressurePressure in Pa against the adjacent corridor. Falls when a door opens or airflow drops.
air_changes_per_hourAir changes per hour (ACH): supply_airflow divided by room_volume_m3.
supply_airflowDelivered airflow in m³/h.
fan_speedAHU fan speed. 80 % delivers the design airflow.
hepa_filter_dpHEPA filter pressure drop in Pa. Rises with lifecycle wear and loading.
particle_count_0_5um / particle_count_5umParticles of 0.5 µm and larger, and 5 µm and larger, per m³ (UInt32). They rise with shift activity, with airflow loss, and when the pressure cascade falls and air floods in from the adjacent lower grade.
dp_alarmPressure below dp_alarm_min_pa for about 2 minutes.
temp_alarm / rh_alarmTemperature or humidity outside its setpoint ± band for about 2 minutes.
particle_alert / particle_actionWorst particle size above the alert level (particle_alert_fraction of the limit) or the action limit.
particle_limit_0_5um / particle_limit_5umThe action limit that applies now: in-operation while staffed, at-rest once the room has been unstaffed for 20 minutes.
excursion_activeTrue while any of dp_alarm, temp_alarm, rh_alarm or particle_action is true.
excursion_countRising edges of excursion_active: exactly one per new excursion. An alarm that starts while another is active joins that excursion.
dp_excursion_count / temp_excursion_count / rh_excursion_count / particle_excursion_countRising edges of each alarm (particle_action for particles). Their sum can exceed excursion_count when alarms overlap.
door_openDoor state, driven by shift activity.
shift_activityStaff activity profile that drives door events and particle generation.
power_draw / energy_totalAHU fan and humidifier energy.

Fault modes

  • hepa_filter_loading: needs the early_wear stage and fan speed above 20 %. Filter pressure drop rises ×1.8 and airflow falls ×0.85 over a 1800 s ramp, for 3600 s. The weaker airflow also pulls the pressure cascade down.
  • pressure_cascade_loss: needs the degraded stage, fan speed above 20 % and differential pressure above 5 Pa. The pressure target drops 20 Pa for 900 s, so the room can go negative against the corridor. This is the key GMP alarm.
  • humidifier_failure: needs the degraded stage, fan speed above 20 % and humidifier output above 5 %. Output ramps to zero over 300 s and stays there for 2400 s, and humidity drifts down by about 18 % RH.
  • door_left_open: needs fan speed above 20 % and shift activity above 0.3, with no lifecycle gate (0.04 per hour). The door stays open for 240 s, the cascade collapses, dp_alarm asserts and 5 µm counts climb towards the alert level.
  • supply_fan_degraded: needs fan speed above 20 %, no lifecycle gate (0.01 per hour). The fan delivers about 70 % of its reference for 1800 s, so ACH and the cascade collapse and particles build up: a pressure and particle excursion together.
  • humidifier_trip: like humidifier_failure but with no lifecycle gate (0.008 per hour) and a 1800 s duration. Humidity leaves its band and rh_alarm asserts.
  • cooling_loss: needs fan speed above 20 %, no lifecycle gate (0.01 per hour). The room warms 4 K above setpoint over 900 s and holds for 3600 s, so temp_alarm asserts.

Environmental monitoring (EU GMP Annex 1)

Each room is monitored the way Annex 1 asks: differential pressure against the adjacent lower grade (at least 10 Pa between grades), temperature and humidity bands, and airborne particle counts at 0.5 µm and 5 µm. Alarms assert after about 2 minutes out of band, so brief door openings do not alarm, and clear about 2 minutes after recovery.

The action limits are parameters, so each grade gets its own. Per m³ at ≥ 0.5 µm and ≥ 5 µm (Annex 1 (2022), Table 5):

GradeAt restIn operation
A3,520 / 293,520 / 29
B3,520 / 29352,000 / 2,930
C352,000 / 2,9303,520,000 / 29,300
D3,520,000 / 29,300not predetermined (the at-rest limit is used)

The alert level is particle_alert_fraction (default 0.7) of the action limit. An alert is an early warning for trending, not an excursion. The room counts as in operation while staffed and for 20 minutes afterwards, the clean-up period before at-rest sampling.

Typical counts are parameters too (particle_rest_*, particle_op_*, quoted at design airflow), plus particle_ingress_*, the extra count that floods in from the adjacent lower grade when the cascade is fully lost. An open door, a fan fault or filter loading therefore drives pressure alarms first and particle alarms when the loss is severe.

Key parameters

ParameterDefaultUnit
target_ach20ACH
room_volume_m3150m3
pressure_setpoint_pa15Pa
temp_setpoint_c20°C
rh_setpoint_pct45%
dp_alarm_min_pa5Pa
temp_band_c / rh_band_pct2 / 10°C / %
particle_alert_fraction0.7pu
particle_limit_rest_0_5um / particle_limit_op_0_5um352,000 / 3,520,000count/m³
particle_limit_rest_5um / particle_limit_op_5um2,930 / 29,300count/m³
particle_rest_* / particle_op_* / particle_ingress_* (0.5 µm, 5 µm)Grade C valuescount/m³

Defaults describe a Grade C suite. pharma-cleanroom sets them per room.

Input port

PortDefaultUnit
makeup_air_temp16°C

Supply air temperature of the make-up air unit feeding the suite. The suite AHU holds the setpoint, so the port leaks only 0.03 K per K of swing around its 16 °C default into room_temperature. Unbound, the room stays on temp_setpoint_c. pharma-cleanroom binds every zone to makeup-air-001 supply_air_temp.

Design airflow is target_ach × room_volume_m3 (3000 m³/h by default). Typical particle counts are quoted at design airflow. Losing airflow raises them in proportion.

Use cases

  • Pressure cascade and door-event monitoring.
  • Alarm tuning for differential pressure, humidity, and HEPA filter loading.
  • Particle-count excursion and recovery-time analysis.
  • Counting environmental excursions per room over a simulated week.
  • Environmental monitoring dashboards.

Customize

miravo models add cleanroom-zone --from cleanroom-zone
miravo models inspect cleanroom-zone

Was this page useful?

Last updated on