Technical library · T1 method · edition 2.1 · Chapter 3 of 19

Book contents · Technical library (in Spanish) · Leer este capítulo en español

Engine equations and operational ceilings

The T1 2.3 core combines an exposure curve, an inlet-dependent operational capacity, configuration factors and module grouping into stages. This chapter describes that version rather than a newly fitted equation. The frozen code accompanying the edition reproduces examples and exposes each branch.

Parameter provenance and status

Traceability separates where a value is implemented from which evidence identifies its magnitude. Frozen assets answer the first question; displaying code does not answer the second. The material examined for this edition did not yield a reproducible fit linking each decisive coefficient to an identified experimental series. This does not deny operating experience or application measurements; it limits what a reader can independently verify.

Group Available basis in this edition Missing test for identification
Curve 1-0.5^c Engine rule and exponential identity; no recoverable experimental fit Exposure series with recorded regime, dose and residual
Ceilings, load transitions and sensitivities Engineering parameterisation reproducible in code Comparable batches and held-out evaluation within each domain
Chemical and module factors Configuration rules; neither dose specifications nor proof of independent effects Matched comparisons, active-reagent records and physical layout
Bonus from c=12 Discrete software condition Measurements around the threshold; no demonstrated physical transition identified
Global/serial envelope Selection of the better numerical result Comparison against actual physical stages and intermediate separation
Concentration floors Numerical outlet limits Operating domain and low-inlet behaviour; these are not laboratory limits
Equipment flows and powers Nominal and manufacturer-declared values Flow and energy measured at the operating point
Volume, mass and energy balances Physical identities under stated boundaries and assumptions Measurements to test closure; the identity does not calibrate efficacy

The benchmark loads t1_parametros.js before t1_motor_v2.js. Effective parameters override fallback values; an external T1_CONFIG, where present, may override them again. This benchmark adds no such external configuration. Reproducing a website run also requires retaining any overrides, not just its version number.

Bonus and stage branches are reported as model scenarios, not automatically measured improvements. A validated predictive domain is neither claimed universally nor inferred from error-free execution. Each result must retain its options and distinguish calculation, estimate and observation.

Approaching treatable capacity

The exposure function is A(c)=1-0.5^c. At one, two and four turnovers it is 0.5, 0.75 and 0.9375. These are not automatically removal percentages for all COD: they act on an effective ceiling dependent on the parameter and conditions.

With fixed ceiling theta, removal is r(c)=theta*(1-0.5^c) and concentration before the software floor is Cout=Cin*(1-r). Its asymptotic residual is Cin*(1-theta). Calling it operational means that it describes stage conditions, not that the remaining mass is chemically impossible to treat by another process.

The equivalent exponential form is A(c)=1-exp(-ln(2)*c). In an ideal mixed-tank balance the effective coefficient would be ln(2)=0.693147, not a physical fraction of 0.5 per reactor visit. Estimating that coefficient experimentally requires fitting under stated hydraulics and residual assumptions, rather than importing it from an algebraic identity.

Base ceilings and concentration

For BOD5, COD, TSS and P, the code interpolates a base ceiling B(C) between two concentrations. Below C_OK it retains the first ceiling; above C_BAD it retains the second. Within that range:

u = (C-C_OK)/(C_BAD-C_OK)
B(C) = B_OK + u*(B_BAD-B_OK)
Parameter B_OK to B_BAD C_OK to C_BAD, mg/L TMAX / floor
BOD5 0.72 to 0.55 1200 to 7000 0.90 / 3
COD 0.64 to 0.55 2000 to 12000 0.80 / 15
TSS 0.67 to 0.58 800 to 5000 0.84 / 5
P 0.88 to 0.78 20 to 90 0.94 / 0.2

BOD5 and COD are expressed as O2, and P as P. TMAX is a fraction while the floor uses the parameter's concentration unit. These are adopted model values rather than universal constants extracted from the references. Effective parameter files override fallback values in JavaScript.

For COD of 7000 mg/L, the position between 2000 and 12000 is 0.5 and the base ceiling is 0.595. This alone does not calculate the outlet: difficulty, configuration, exposure and potentially stages still apply.

Matrix difficulty

The combined factor is f=f_ratio*f_N*f_pH. The code uses:

f_ratio = clamp(1 - 0.2*(COD/max(1,BOD)-2.4), 0.4, 1)
f_N = clamp(1 - 0.4*max(0,N-50)/150, 0.6, 1)
f_pH = 1 from pH 6.5 to 8.5
f_pH = clamp(1 - 0.5*d/3, 0.55, 1) outside that range

Here d is distance to the nearest range boundary. Each parameter responds through 1-S*(1-f), with sensitivities 0.25 for BOD and COD, 0.12 for TSS, 0.10 for P and 0.35 for N. This is a reduced representation: COD/BOD does not identify substances, and the same ratio may arise from differing toxicity, biodegradability or mixtures.

Synthetic example: COD/BOD of 4 gives f_ratio=0.68. With no N or pH penalty, the final COD factor is 1-0.25*(1-0.68)=0.92. This does not mean literature measured a universal 8% loss at that ratio; it describes the model's correction.

Nitrogen and chemical options

The engine distinguishes ammoniacal fraction a, expressed as ammoniacal N divided by total N. Its base ceiling is 0.63*(1-a)+0.72*a; with the oxidant option the second coefficient becomes 0.85. Maximum N removal is 0.79, or 0.90 with oxidant. N removal is not cascaded like COD.

This rule predicts aqueous concentration through a parameterisation; it does not establish whether N enters solids, gas or another species. Analytical interpretation must distinguish mg N/L from mg NH4+/L. The calculation interface uses factor 1.2878 to convert ammonium-ion mass into nitrogen mass. A fraction must not be entered where a concentration is required.

With chemistry enabled, the factors for BOD, COD, N, P and TSS are 1.05, 1.06, 1.03, 1.12 and 1.15. For N, enabling oxidant as well replaces 1.03 with 1.10: the two factors are not multiplied together. Without chemistry, this N factor is 1 even if the oxidant option changes its specific ceilings. These bonuses specify neither reagent nor active dose and must not become dosing instructions.

Modules, turnovers and the global equation

The module factor is 1 below three modules, then grows as min(1.6,1+0.1*(n-2)). The turnover factor remains 1 until c=12, when it becomes 1.1. For non-N parameters, the effective maximum scales as TMAX*min(1,B/B_OK).

The compact single-stage expression is:

r = min(B*F_chemical*F_modules*F_turnovers, cap)
    * (1-0.5^c) * (1-S*(1-f))
Cout = max(floor, Cin*(1-r))

The N branch retains its specific denominator and rules in the code; it must not be reconstructed from the COD table. Options and version form part of every reproducible result.

Numerical stages and persistence

The engine groups modules using a minimum-exposure condition and a bonus rule. It recalculates BOD, COD, TSS and P on the preceding group's output, reassesses part of matrix difficulty and retains the better result of global and serial formulations. N does not receive successive reduction.

For stages removing r1 and r2 from their respective incoming loads, r_total=1-(1-r1)*(1-r2). Applying a ceiling again to the residual assumes that residual can still respond. A permanently untreatable fraction should not restart as susceptible at every stage. Distinguishing an operational ceiling from persistent residual is therefore a physical condition, not merely a label.

Two hypotheses are proposed: extra exposure continues acting on susceptible material, and separation or matrix changes renew treatment conditions. Dose- and energy-matched comparisons with and without intermediate separation distinguish them. The benchmark does not turn a numerical envelope into proof of both.

Inverse calculation and marginal yield

While theta is fixed and no branch changes, target r_target requires:

c_target = -ln(1-r_target/theta)/ln(2)
condition: 0 <= r_target < theta
dr/dc = theta*ln(2)*2^(-c)

At theta=0.64, 60% removal requires four turnovers. A 75% target has no finite solution in that branch because it exceeds the ceiling. This does not make the water untreatable; extending the same formulation does not solve the target. A new configuration needs its own justification.

Marginal yield falls as c rises while energy typically increases approximately linearly at constant power and flow. Extra operating hours can therefore become unproductive. This does not guarantee improved energy performance from another stage: its consumption and separations must be counted.

Features that technical users need to know

The factor change at twelve turnovers creates a programmed jump, not a demonstrated chemical transition. Floors can exceed very low inlet concentrations, producing a numerical outlet above the inlet; this domain has no direct physical interpretation. Initial equipment selection by minimum turnovers is also not optimisation against all analytical targets.

These features remain in the frozen core to support reproducibility. Correcting them requires a new version and regression tests rather than silently changing code within a book. The method becomes more useful by exposing these decisions and specifying experiments capable of testing them.

T1 2.3 model estimate for the stated inputs and options. Not a measurement or a compliance guarantee. See assumptions and method.

Downloads

The same book as a PDF and, separately, the reproducible bench (code and cases to repeat the calculations). The figures in the book are those of the simulator published on this website.

Download the book (PDF)   Reproducible bench (ZIP)

Book contents · T1 simulator

SiteLock