HVAC Noise the German Way (VDI 2081)
Standards: VDI 2081 Blatt 1VDI 2081 Blatt 2
Duct-borne noise answers the same question this page does, and answers it differently. That page is the Anglo-American route, built on Long’s Table 14.9 and the ASHRAE scaling law. This one is VDI 2081, the German guideline, which arrives at the level in the room by a different set of models and anchors them on a worked example of its own.
Two methods for one question is not duplication. Each carries its own
arguments, its own tables and its own worked sheet, and where they disagree
the disagreement is worth knowing about. The library keeps them apart with
model=, so a calculation cannot end up half in one and half in the other.
1. The installation, and where each number comes from
Section titled “1. The installation, and where each number comes from”Part 2 is a table of twenty numbered elements. It is easier to read as a place.
Every box is one row of Table 1. The strip under the drawing is the part a table of results cannot show: which equation, table or measurement each number comes from.
The shape of the calculation is the same as any duct-noise sheet: a source, a run that takes level out and puts some back, and a room that turns sound power into sound pressure. What differs is every model inside it.
2. The source: a fan described by its assembly
Section titled “2. The source: a fan described by its assembly”ASHRAE describes a fan by its type and reads a row of band constants for it. VDI 2081 describes it by its assembly, and gets the spectrum from a formula. Section 4.3 gives the overall level as
Equation (13), with the representative specific sound power level of the assembly: 34 dB for a radial fan with rearwards curved blades, 36 dB for a cylindrical rotor with forwards curved blades, 42 dB for an axial fan with a downstream diffuser. The shape then comes from Equation (15), one parabola in the logarithm of the Strouhal number that each assembly moves along by its own .
The same air, the same pressure rise, and eight more decibels overall for choosing an axial machine.
from phonometry import noise_control
for assembly in ("rr", "t", "am"): fan = noise_control.fan_sound_power( 16000 / 3600, model="vdi2081", fan_total_pressure_pa=600.0, assembly=assembly, fan_speed_rpm=1250.0, ) print(assembly, [round(float(v), 1) for v in fan.values[:3]])Two traps live in that call.
The pressure is the total pressure rise, not the static pressure. The
ASHRAE law scales the static pressure; VDI 2081 scales the total. They are
different quantities, and confusing them is worth twenty times the logarithm
of their ratio. Each model therefore takes only the argument its own standard
is written on, declared through typing.overload, so the two cannot be
swapped by accident.
The Strouhal number carries no impeller diameter. It cancels between the tip speed and the impeller circumference, so depends on the running speed alone. A nomogram that asks for the impeller size is answering a different question.
3. What the run takes out
Section titled “3. What the run takes out”Four models, one per element kind, each with the guideline’s own table behind it.
- Straight duct (Section 6.1, Table 5): decibels per metre by duct size,
through
unlined_rectangular_duct_attenuationandunlined_circular_duct_attenuationwithmodel="vdi2081". A rectangular duct of sheet steel takes far more out at 63 Hz than a round one, because its walls are the thing that gives. - Bend (Section 6.2, Table 7): keyed on the bend’s own size, through
elbow_insertion_loss. The table is printed once, for a 1250 mm side, and carried along the frequency axis for every other size. - Change of section (Section 6.3, Figure 26): the reflection at a sudden
step, through
section_change_loss. It is one expression, in the area ratio , and two rules about when it applies: a sudden reduction reflects in every band, a sudden increase only below the limit frequency of the duct it arrives through. VDI 3733 recommends taking no more than 5 dB from it, because the printed value is only reached when the duct is anechoically terminated at both ends, and a gradual change through a long tapered adapter reflects nothing worth counting. - Branch (Section 6.4, Equation (35)): the share of the flow the branch
takes, through
split_loss.
from phonometry import noise_controlimport numpy as np
bands = np.array([63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0])run = noise_control.unlined_rectangular_duct_attenuation( bands, 0.500, 0.400, 4.000, model="vdi2081")print([round(float(v), 2) for v in run.values])The expression is symmetric: a duct that widens by a factor reflects what the same duct narrowing by it does. What differs is when.
from phonometry import noise_controlimport numpy as np
bands = np.array([63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0])step = noise_control.section_change_loss( bands, 0.5, 0.2, shape="rectangular", upstream_size=0.8)print(round(float(step.values[0]), 2)) # 0.88 dB, in every bandA splitter silencer is not one of these: its insertion loss comes from the
maker’s measurement, to ISO 7235, and the guideline says so.
splitter_silencer_insertion_loss is the estimate for when there is none.
4. What the run puts back
Section titled “4. What the run puts back”Air moving through a duct makes noise, and past the silencer there is often nothing else left to hear. VDI 2081 gives it in closed form.
- A straight run (Section 5.2.1, Equations (16) and (17) with Figure 16)
and a bend or a branch (Section 5.2.2, Equation (18) with Figures 17 and
18), through
flow_noise_straight_ductandflow_noise_bend. The second pair is written on a Strouhal number built from the element’s own diameter and the flow speed through it, and both figures state that they hold only above , so the library gives no level below it rather than extrapolating a curve the guideline does not draw. - A splitter silencer’s own noise (Equation (49)), through
silencer_self_noise, which depends on the speed in the gaps between the baffles and on the pressure drop across them. It is the reason a silencer has a best size: make the gaps narrower and the insertion loss rises, but so does the speed through them, and past a point the silencer is louder than what it removed. - The outlet itself, through
diffuser_sound_power.
5. The room step, and the two areas that are not the same number
Section titled “5. The room step, and the two areas that are not the same number”Equation (36) turns the sound power arriving at the outlet into the level a listener hears:
Two things about it are easy to get wrong.
is the equivalent absorption area, not the room constant. The room
constant is , and both are areas in square metres, both
positive, so substituting one for the other is a silent mistake: the number
comes out plausible and wrong. room_effect and room.steady_state_spl
therefore take absorption_area= and room_constant= as separate arguments,
and exactly one of them may be given.
moves with frequency. A ceiling diffuser is more directional the shorter the wavelength, and the guideline reads off a chart against frequency rather than assuming a half space. Both functions take a directivity that varies across the bands.
Left: the single 5,7 dB the sheet prints beside the row is not any of the eight band values, because it is the same room with the directivity of a half space. Right: reading the room constant into the absorption-area argument costs about a decibel in this room, and more in a livelier one.
from phonometry import noise_controlimport numpy as np
directivity = np.array([2.1, 2.4, 3.0, 4.0, 5.5, 6.7, 7.0, 7.2])shaped = noise_control.room_effect(1.5, absorption_area=20.0, directivity=directivity)print([round(float(v), 1) for v in np.asarray(shaped)])print(round(float(noise_control.room_effect(1.5, absorption_area=20.0)), 1))6. The sheet, end to end
Section titled “6. The sheet, end to end”Part 2 exists to anchor Part 1: one supply air network, worked element by element, with every intermediate quantity printed. That makes it an oracle of a kind the ASHRAE side of the module does not have, and for a genuinely different model rather than a restatement of the same one.
The silencer does almost all of the work, and what it leaves is a shelf: past 1 kHz the level no longer follows the fan at all, because what is heard there is the noise the air makes on its way past.
The A-weighted level in room 102 comes out at 40,0 dB(A) against the 40,0 the sheet prints, and the unweighted total at 51,4 against 51,4. Forty-six conformance rows hold each element of the chain to the tenth of a decibel the table is printed to, band by band rather than by the sum: a sum is blind to the shape, and any pair of compensating errors passes it.
Whether the room is quiet enough is then Part 2 Section 1.1, which turns an A-weighted requirement into a limit for each octave:
from phonometry import noise_control
limits = noise_control.octave_band_limits(35.0)print([round(float(v)) for v in limits.values])7. What the guideline itself gets wrong
Section titled “7. What the guideline itself gets wrong”Four defects are recorded in the errata register, all verified against the printed page.
- The symbol list under Equation (36) sends the reader looking for in Equation (36) itself, which is where they already are.
- The English column of Section 6.7.3 calls a hemispherical radiation spherical, and the German column beside it does not.
- The English column of Section 6.4 says the opposite of the German about which way a duct’s attenuation runs with frequency.
- Table 1 of Part 2 prints a hydraulic diameter for element 2 that is not the one it computes with.
The editions implemented here are Part 1:2001-07 and Part 2:2005-05. Both are superseded, by the 2022 editions, and neither successor is held; the pair in hand is self-consistent, because Part 2:2005 was written against Part 1:2001 and every cross-reference in its tables resolves there.
Covered
The fan of Section 4.3 through
fan_sound_power(model="vdi2081"), the duct, bend, section-change and branch attenuation of Section 6, the flow noise of Equations (16) and (17), the splitter silencer and its self-noise, the end reflection of Section 6.6, the room step of Equation (36) and the assessment curve of Part 2 Section 1.1, all against the worked sheet of Part 2 Table 1.Not covered
The air-handling unit and the outdoor-propagation chapters the 2019 revision added, which are in the editions not held here; the room acoustics VDI 2081 leaves to VDI 2569; and the vibration isolation of the plant, which is a different guideline again.
References
Section titled “References”- Verein Deutscher Ingenieure. (2001). Geräuscherzeugung und Lärmminderung in Raumlufttechnischen Anlagen (VDI 2081 Blatt 1:2001-07). The method: the fan of Section 4.3 with Equations (13) and (15), the duct attenuation of Section 6 with Tables 5 and 8, the flow noise of Equations (16) and (17), the splitter silencer and its self-noise of Equation (49), the end reflection of Section 6.6 and the room step of Equation (36). Superseded by Blatt 1:2022-04, which is not held here.
- Verein Deutscher Ingenieure. (2005). Geräuscherzeugung und Lärmminderung in Raumlufttechnischen Anlagen — Beispiele (VDI 2081 Blatt 2:2005-05). The oracle: one supply air network worked element by element in Table 1, with every intermediate spectrum printed, and the assessment curve of Section 1.1. Superseded by Blatt 2:2022-10, which is not held here.