# -*- coding: utf-8 -*- """ Created on Tue Mar 24 10:56:58 2026 @author: Grabow """ import numpy as np import matplotlib.pyplot as plt from scipy.optimize import fsolve # ----------------------------- # Lüfterparameter # ----------------------------- dp0 = 500.0 # Pa (Sperrdruck) Vmax = 1.0 # m^3/s (freier Volumenstrom) # ----------------------------- # System # ----------------------------- R_sys = 3000.0 # Pa / (m^3/s)^2 def fan_pressure(V): return dp0 * (1 - (V / Vmax)**2) def system_pressure(V): return R_sys * V**2 # ----------------------------- # Kombinationen # ----------------------------- def single_eq(V): return fan_pressure(V) - system_pressure(V) def series_eq(V): return 2 * fan_pressure(V) - system_pressure(V) def parallel_eq(V): return fan_pressure(V / 2) - system_pressure(V) # ----------------------------- # Arbeitspunkte berechnen # ----------------------------- V_single = fsolve(single_eq, 0.3)[0] V_series = fsolve(series_eq, 0.4)[0] V_parallel = fsolve(parallel_eq, 0.6)[0] dp_single = system_pressure(V_single) dp_series = system_pressure(V_series) dp_parallel = system_pressure(V_parallel) print("Einzellüfter: V = %.3f m³/s, Δp = %.1f Pa" % (V_single, dp_single)) print("Reihenschaltung: V = %.3f m³/s, Δp = %.1f Pa" % (V_series, dp_series)) print("Parallelschaltung: V = %.3f m³/s, Δp = %.1f Pa" % (V_parallel, dp_parallel)) # ----------------------------- # Plot # ----------------------------- V = np.linspace(0, Vmax, 500) plt.figure() plt.plot(V, fan_pressure(V), label="Einzellüfter (real)") plt.plot(V, 2 * fan_pressure(V), label="2 Lüfter in Reihe") plt.plot(V, fan_pressure(V / 2), label="2 Lüfter parallel") plt.plot(V, system_pressure(V), '--', label="System") plt.xlabel("Volumenstrom [m³/s]") plt.ylabel("Druck [Pa]") plt.legend() plt.grid() plt.show()