Расходная характеристика регулирующего клапана

Расходная характеристика - зависимость расхода среды на участке гидравлической сети, в котором установлен регулирующий клапана (РК), от положения штока этого РК.

Если вид пропускной характеристики зависит только от конструкции РК, то на вид расходной характеристики влияние так же оказывают свойства всех элементов рассматриваемого участка гидравлической сети. Чем ниже авторитет РК, тем в большей степени расходная характеристика отличается от пропускной.

Авторитет регулирующего клапана - это отношение падения давления на полностью открытом РК к потерям давления на всём участке сети, в котором установлен РК, без учёта нивелирной составляющей (разницы высот начальной и конечной точек рассматриваемого участка сети).

Из статьи Пропускная характеристика регулирующего клапана возьмём функции, описывающие линейную, параболическую и равнопроцентную пропускные характеристики:

In [1]:
from math import log, exp
#Расчётные функции для определения относительной пропускной способности
#Линейная пропускная характеристика
def lin_flow_char (Kv0, h):
    return Kv0 + (1 - Kv0) * h
#Параболическая пропускная характеристика
def par_flow_char (Kv0, h):
    return Kv0 + (1 - Kv0) * h * h
#Равнопроцентная пропускная характеристика
def ep_flow_char (Kv0, h):
    return Kv0 ** (1 - h)

Рассмотрим гидравлическую сеть, состоящую из насоса, регулирующего клапана и трубопровода, в одном из сечений которого установлена дроссельная шайба. Примем, что при изменении положения штока РК (и соответствующем изменении гидравлического сопротивления всего участка сети и расхода среды в нём) напор насоса не изменяется. Для построения расходных характеристик (зависимость относительного расхода $\bar{Q} = Q / Q_{max}$ от положения штока РК $h$) необходимо:

  1. Задаться напором насоса $H$, Па;
  2. Задаться объёмным расходом в сети при полностью открытом РК, $Q_{max}, м^3/ч$;
  3. Задаться плотностью среды $\rho$;
  4. Задаться диапазоном регулирования РК.

Для каждого значения авторитита РК $a$:

  1. Найти падение давления на РК ($\Delta p_{valve} = H \cdot a$) и на остальном участке сети ($\Delta p_{notvalve} = H \cdot (1 -a)$);
  2. По падению давления на РК и расходу через РК $Q_{max}$ найти его $K_{VS}$
  3. Рассчитать значения гидравлического сопротивления остального участка сети $R_{notvalve} = \Delta p_{notvalve} / Q_{max}^2$. Данная величина будет оставаться неизменной при изменении положения штока РК. Она зависит только от значения авторитета РК.

Для каждого положения штока $h$:

  1. Определить $K_V = K_{VS} \cdot \bar{K}_V$, где $\bar{K}_V = K_V / K_{VS}$ - относительная пропускная способность, расчитываемая с использованием функции для соответствующей пропускной характеристики;
  2. Найти гидравлическое сопротивление РК $R_{valve}$ при заданном $K_V$.
  3. Общее сопротивление сети $R = R_{valve} + R_{notvalve}$;
  4. $Q = \sqrt{H / R}$;
  5. Значение относительного расхода $\bar{Q} = Q / Q_{max}$.
In [2]:
H = 1e5 #Па, напор насоса (падение давления на всём участке сети, при полностью открытом РК)
Q_max = 100 #м3/ч, объёмный расход при полностью открытом РК
dens = 998.2 #кг/м3, плотность воды при нормальном атмосферном давлении и t = 20 C
Kv0 = 1 / 50 #диапазон регулирования РК 50:1
In [3]:
import numpy as np # библиотека работы с массивами
a = np.array([0.02, 0.05, 0.1, 0.2, 0.4, 0.6, 1]) #массив значений авторитета РК для исследуемых случаев
funcs = [lin_flow_char, par_flow_char, ep_flow_char] #исследуемые пропускные характеристики
hs = np.linspace(0, 1, 51) #положение штока РК
In [4]:
funcs_count = len(funcs) #количество исследуемых типов пропускных характеристик
a_count = a.shape[0] #количество значений авторитетов РК
h_count = hs.shape[0] #количество положений штоков РК 
Qs = np.zeros((funcs_count, h_count, a_count), dtype = float) # объявляем массив относительных расходов
In [5]:
from math import sqrt
for i in range(funcs_count):
    for j in range(a_count):
        dp_valve = a[j] * H
        dp_notvalve = H - dp_valve
        Kvs = Q_max * sqrt(100 * dens / dp_valve)
        R_notvalve = dp_notvalve / Q_max / Q_max
        for k in range(h_count):
            Kv = Kvs * funcs[i](Kv0, hs[k])
            R_valve = 100 * dens / Kv / Kv
            R = R_valve + R_notvalve
            Q = sqrt(H / R)
            Qs[i, k, j] = Q / Q_max
In [6]:
import matplotlib.pyplot as plt #библотека для построения графиков
plt.rcParams['figure.figsize'] = [7, 7]
plt.rcParams.update({'font.size': 16})
plt.plot(hs, Qs[0])
plt.title('Расходные характеристики при различных значениях\n\
авторитета РК с линейной пропускной характеристикой')
plt.xlabel('Положение штока РК')
plt.ylabel('$Q/Q_{max}$')
plt.legend(a)
plt.xlim (0,1); plt.ylim (0,1)
plt.grid()
In [7]:
plt.plot(hs, Qs[1])
plt.title('Расходные характеристики при различных значениях\n\
авторитета РК с параболической пропускной характеристикой')
plt.xlabel('Положение штока РК')
plt.ylabel('$Q/Q_{max}$')
plt.legend(a)
plt.xlim (0,1); plt.ylim (0,1)
plt.grid()
In [8]:
plt.plot(hs, Qs[2])
plt.title('Расходные характеристики при различных значениях\n\
авторитета РК с равнопроцентной пропускной характеристикой')
plt.xlabel('Положение штока РК')
plt.ylabel('$Q/Q_{max}$')
plt.legend(a)
plt.xlim (0,1); plt.ylim (0,1)
plt.grid()