function [P, M] = Ballans_P(d_pr, v_pr, T_0, T_1, v_otn_min, d_k)
% Арматурный прокат диаметром d_pr [мм], движущийся со скоростью
% v_pr [м/с] охлаждают в двух последовательно расположенных секциях
% с температуры T_0 [град. C] до T_1 [град. C]. Необходимо обеспе-
% чить расход воды, при котором ее разогрев не превысит 40 град. C,
% а относительная скорость потока должна быть не менее
% v_otn_min [м/с].
% Функция Ballans_P(d_pr, v_pr, T_0, T_1, v_otn_min, d_k) возвра-
% щает требуемое давление P [кгс/см2].
% Функция [P, M] = Ballans_P(d_pr, v_pr, T_0, T_1, v_otn_min, d_k)
% кроме этого возвращает массив характеристик M размером 4х3.
% В первом столбце характеристики для первой секции ЛУО, во
% втором – для второй, в третьем – суммарные характеристики для
% ЛУО. В первой строке выводятся значения длин секций и ЛУО [м],
% во второй строке – минимальные требуемые расходы воды [л/с],
% в третьей – фактические расходы [л/с], в четвертой – относитель-
% ные скорости потока [м/с] для первой и второй секций.

% Общая длина зоны активного охлаждения
L_Sum = L_SAO_cylinder_1(T_0, T_1, d_pr, v_pr);
% Вспомогательный вектор, используемый для последовательного
% приближения
V_L = [0 L_Sum./2 L_Sum];

Flag = 1;   % Флаг условия
while Flag
    % Длину первой секции принимаем равной среднему значению
    % вспомогательного вектора
    L_1s = V_L(2);
    
    % Средняя по сечению температура металла в конце первой
    % секции
    T_1s = T_uo_ot_L_cylinder_1(T_0, d_pr, v_pr, L_1s);
    
    % Минимальные требуемые расходы воды по секциям
    Q_1 = Q_min(T_0, T_1s, d_pr, v_pr, 40);
    Q_2 = Q_min(T_1s, T_1, d_pr, v_pr, 40);
    
    % Минимальные требуемые давления по секциям
    P_1 = P_forsun(d_pr, v_pr, L_1s, d_k, v_otn_min, Q_1);
    P_2 = P_forsun(d_pr, v_pr, (L_Sum - L_1s), d_k, v_otn_min, Q_2);
    
    if abs(P_1 - P_2) < 0.001
        % Если разница в требуемых давлениях по секциям не превышает
        % 0.001 кгс/см2, расчет можно завершить
        Flag = 0;
        L_1 = L_1s;
        L_2 = L_Sum - L_1s;
        P = (P_1 + P_2)./2;
    elseif P_1 > P_2
        % Если требуемое давление перед первой секцией превышает
        % давление, требуемое для второй секции, то уменьшаем длину
        % первой секции
        V_L(3) = V_L(2);
        V_L(2) = (V_L(1) + V_L(3))./2;
    else
        % Если требуемое давление перед первой секцией меньше
        % давления, требуемого для второй секции, то увеличиваем
        % длину первой секции
        V_L(1) = V_L(2);
        V_L(2) = (V_L(1) + V_L(3))./2;
    % Повторяем итерацию
    end
end

% Формирование массива характеристик M
M = zeros(4,3);
% Длины секций и ЛУО в целом
M(1,:) = [L_1 L_2 L_Sum];
M(2,:) = [Q_1 Q_2 (Q_1 + Q_2)];
% Для определения фактического расхода воды и относительной ско-
% рости потока повторим вычисления с полным выводом вычисляемых
% параметров
Q_1_min = Q_1;
Q_2_min = Q_2;
[P_1, v_otn_1, Q_1] = ...
    P_forsun(d_pr, v_pr, L_1, d_k, v_otn_min, Q_1_min);
[P_2, v_otn_2, Q_2] = ...
    P_forsun(d_pr, v_pr, L_2, d_k, v_otn_min, Q_2_min);
% Фактические расходы воды
M(3,:) = [Q_1 Q_2 (Q_1 + Q_2)];
% Фактические относительные скорости потока
M(4,:) = [v_otn_1 v_otn_2 NaN];