高圧燃料管の圧力制御モデルと数値シミュレーション

高圧燃料システムにおいて、燃料の供給と噴射の非連続性は管内圧力の変動を引き起こし、エンジン効率に影響を与える。本稿では、数学的モデリングと数値計算により、圧力を目標値に安定させる制御手法を提案する。

問題1:単向弁開口時間の最適化

内径10mm、長さ500mmの油管に対し、入口孔径1.4mm、初期圧力100MPa、ポンプ圧力160MPaの条件下で、圧力を100MPaに維持するための弁開口時間を探索する。また、2秒・5秒・10秒で150MPaへ遷移させる動的調整も検討。

% 圧力-密度変換関数
function p = density_to_pressure(rho)
    p = 17284 * rho^2 - 27111 * rho + 10656;
end

% 噴射流量関数(周期100ms)
function rate = injection_rate(time)
    phase = mod(time, 100);
    if phase <= 0.2
        rate = 100 * phase;
    elseif phase <= 2.2
        rate = 20;
    elseif phase <= 2.4
        rate = 240 - 100 * phase;
    else
        rate = 0;
    end
end

% 弁状態関数(開口時間T_open, 閉鎖時間10ms)
function state = valve_state(t, T_open)
    cycle = T_open + 10;
    phase = mod(t, cycle);
    state = (phase <= T_open);
end

% 主ループ:時間ステップ0.02msで2000ms間シミュレーション
optimal_time = 0;
min_error = inf;
for test_time = 0.01:0.01:5
    pressure_log = zeros(1, 100001);
    current_pressure = 100;
    fuel_mass = 0.85 * pi * 2500 * 500; % 初期質量
    
    for step = 0:0.02:2000
        in_flow = valve_state(step, test_time) * ...
                  0.85 * pi * 0.49 * sqrt(2*(160 - current_pressure)/0.8725) * 0.02;
        out_flow = injection_rate(step) * 0.02;
        
        fuel_mass = fuel_mass + (in_flow - out_flow) * 0.85;
        density = fuel_mass / (pi * 2500 * 500);
        current_pressure = density_to_pressure(density);
        pressure_log(floor(step/0.02)+1) = current_pressure;
    end
    
    error = sum((pressure_log - 100).^2);
    if error < min_error
        min_error = error;
        optimal_time = test_time;
    end
end
fprintf('最適開口時間: %.2f ms\n', optimal_time);

問題2:カム角速度の最適化

柱塞ポンプと針弁式噴射器を組み合わせたシステムにおいて、カムの回転速度を調整して圧力を100MPaに安定させる。柱塞径5mm、残存容積20mm³、針弁径2.5mm、噴孔径1.4mm、円錐角9°の構造を考慮。

% カム形状関数(極座標)
function radius = cam_profile(angle)
    radius = -0.06315*angle^4 + 0.7934*angle^3 - 2.647*angle^2 + 0.9696*angle + 7.09;
end

% 針弁リフト高さ
function lift = needle_lift(t)
    phase = mod(t, 100);
    if phase < 0.45
        lift = 2.016 * exp(-((phase - 0.4551)/0.1661)^2);
    elseif phase <= 2
        lift = 2;
    elseif phase < 2.45
        lift = 2.016 * exp(-((2.45 - phase - 0.4551)/0.1661)^2);
    else
        lift = 0;
    end
end

% 柱塞位置計算
function height = plunger_position(omega, t)
    angles = 0:0.1:2*pi;
    positions = arrayfun(@(a) cam_profile(a)*sin(omega*t + a), angles);
    height = max(positions) - 2.143;
end

% 最適角速度探索
best_omega = 0;
min_variance = inf;
for omega_test = 0.0001:0.0001:0.05
    pressure_series = simulate_system(omega_test);
    variance = sum((pressure_series - 100).^2);
    if variance < min_variance
        min_variance = variance;
        best_omega = omega_test;
    end
end
fprintf('最適角速度: %.4f rad/ms\n', best_omega);

function pressures = simulate_system(omega)
    % システムシミュレーションの詳細実装(省略)
    pressures = ones(1, 100001) * 100; % ダミー
end

問題3:二重噴射と減圧弁制御

噴射器を2系統に増設し、D点に内径1.4mmの単向減圧弁を追加。供給タイミングと減圧弁開放タイミングを協調制御することで、より精密な圧力管理を実現する。

減圧弁は管内圧力が設定閾値を超えた場合に自動開放し、外部低圧ラインへ燃料を戻す。供給側は噴射タイミングに応じて流量を前倒し補正し、過渡応答の遅れを補償する。

タグ: 数学モデリング MATLAB 流体力学 制御工学 数値シミュレーション

7月8日 18:21 投稿