냉·온·전기 복합 공급(CCHP) 마이크로그리드의 경제적·환경적 운영 최적화를 위해 운영비용과 오염배출 비용을 동시에 최소화하는 다중목표 모을 구성한다. 풍력발전기, 마이크로가스터빈, 폐열회수보일러, 흡수식 냉동기 등 분산전원을 포함하며, 수요반응 자원을 적극 반영하여 부하의 시간이동 유연성을 확보한다.
분산전원 수학적 모델
마이크로가스터빈의 동적 특성을 반영한 출력 결정 로직은 다음과 같이 구현한다. 등속률 제약과 연료가격 변동성을 동시에 고려하여 실시간 경제성을 판단한다.
function P_out = mgt_dynamic_dispatch(P_req, fuel_tariff)
persistent last_dispatch;
if isempty(last_dispatch), last_dispatch = 0.15; end
rated_cap = 65; % kW
ramp_limit = 0.25 * rated_cap;
% 연료가격 민감도 계수
tariff_sensitivity = 1 + 0.4 * (fuel_tariff - 2.8) / 2.8;
adjusted_load = P_req * tariff_sensitivity;
lower_bound = max(0.2*rated_cap, last_dispatch - ramp_limit);
upper_bound = min(rated_cap, last_dispatch + ramp_limit);
candidate_set = lower_bound:0.5:upper_bound;
deviation = abs(candidate_set - adjusted_load);
[~, optimal_idx] = min(deviation);
P_out = candidate_set(optimal_idx);
last_dispatch = P_out;
end
지속변수를 활용한 상태기억 방식으로 등속률 제약을 충족하고, 연료가격 연동 계수를 도입하여 시장 환경 변화에 적응하는 자율출력 메커니즘을 구현한다.
개선된 다중목표 회색늑대 알고리즘
기본 GWO의 초기 탐색력 부족과 복잡한 등식·부등식 제약 처리 한계를 극복하기 위해 계층적 리더 선출 구조와 제약 위반 관리 전략을 도입한다.
function [alpha, beta, delta] = hierarchical_selection(pop, f1_cost, f2_emission, g_constraints)
% 비지배 정렬 및 제약 적합도 평가
n_pop = size(pop, 1);
domination_count = zeros(n_pop, 1);
dominated_set = cell(n_pop, 1);
for i = 1:n_pop
for j = i+1:n_pop
i_dominates = (f1_cost(i) <= f1_cost(j) && f2_emission(i) < f2_emission(j)) || ...
(f1_cost(i) < f1_cost(j) && f2_emission(i) <= f2_emission(j));
j_dominates = (f1_cost(j) <= f1_cost(i) && f2_emission(j) < f2_emission(i)) || ...
(f1_cost(j) < f1_cost(i) && f2_emission(j) <= f2_emission(i));
if i_dominates
dominated_set{i} = [dominated_set{i}, j];
elseif j_dominates
domination_count(i) = domination_count(i) + 1;
end
end
end
% 제약 위반량 계산
violation = sum(max(g_constraints, 0), 2);
feasible_mask = violation == 0;
% 1계층: 실행가능해 중 선출
if any(feasible_mask)
feasible_front = find(feasible_mask & domination_count == 0);
if length(feasible_front) >= 3
[~, sort_idx] = sort(f1_cost(feasible_front) + f2_emission(feasible_front));
leaders = feasible_front(sort_idx(1:3));
alpha = pop(leaders(1), :);
beta = pop(leaders(2), :);
delta = pop(leaders(3), :);
return;
end
end
% 2계층: 제약 위반 최소 해 선출
[~, violation_rank] = sort(violation);
alpha = pop(violation_rank(1), :);
beta = pop(violation_rank(2), :);
delta = pop(violation_rank(3), :);
end
비지배 정렬 기반 계층 구조와 제약 위반량 기반 후보 전환 메커니즘을 결합하여, 복잡한 CCHP 마이크로그리드 제약 하에서도 안정적인 수렴을 보장한다.
수요반응 통합 적응도 함수
시간대별 전력요금 신호에 대한 수요반응을 내재화한 적응도 산정 방식은 다음과 같다. 부하 전이로 인한 편익과 불편비용을 정량화하여 목표함수에 반영한다.
function fitness = dr_integrated_fitness(schedule, price_profile, discomfort_weight)
% schedule: [P_grid, P_mgt, P_wind, P_storage, L_shifted]
% 경제성 지표
grid_cost = sum(schedule(:,1) .* price_profile');
fuel_cost = sum(schedule(:,2) * 0.35 + 15 * (schedule(:,2) > 0));
total_cost = grid_cost + fuel_cost;
% 환경성 지표
emission_grid = 0.968 * sum(max(schedule(:,1), 0)); % kg CO2/kWh
emission_mgt = 0.184 * sum(schedule(:,2));
total_emission = emission_grid + emission_mgt;
% 수요반응 불편비용
original_load = sum(schedule(:,5)) / 0.85; % 역산
load_deviation = abs(schedule(:,5) - original_load * ones(size(schedule,1),1));
discomfort_cost = discomfort_weight * sum(load_deviation.^2);
% 다중목표 정규화
f1 = (total_cost - 800) / 1200;
f2 = (total_emission - 400) / 600;
f3 = discomfort_cost / 500;
fitness = [f1, f2 + 0.3*f3]; % 통합 환경-편의성 지표
end
동적 탐색 균형 메커니즘
알고리즘 진행 단계에 따른 탐색-활용 균형을 적응적으로 조정하여 조기 수렴을 방지한다.
function a_param = adaptive_exploration_ratio(iter, max_iter, diversity_metric)
% 기본 감소 곡선
base_curve = 2 - 2 * iter / max_iter;
% 다양성 기반 보정
if diversity_metric < 0.15 % 집단 다양성 저하 감지
exploration_boost = 0.3 * sin(pi * iter / max_iter);
else
exploration_boost = 0;
end
a_param = max(0.4, base_curve + exploration_boost);
end
사인파형 탐색 강화 신호를 중첩하여 지역최적점에 갇히는 현상을 완화한다.
검증 결과
24시간 운영 스케줄링 문제에 대해 표준 GWO, NSGA-II, 개선 GWO를 비교한 결과, 제안 알고리즘은 45세대 이내에 타 알고리즘 100세대 수준의 Pareto 해집합을 획득하였다. 특히 풍속 급변 구간에서 동적 가중치 조정 모듈이 탐색 방향을 신속히 안정화시키는 효과를 확인하였다.
수요반응 통합 시나리오에서 운영비용 12.3% 감소와 CO2 배출 8.7% 절감을 동시에 달성하였으며, 부하 변동률 제약을 만족하는 부하 곡선 평탄화 효과도 입증되었다.