dispatch.gms : 전송 손실을 포함한 경제적 부하 파견

설명

경제적 파견 문제는 다음을 결정하는 것으로 정의될 수 있습니다.
일련의 온라인 발전을 통한 최소 비용 발전 일정
특정 시점의 총 전력 수요를 충족시키는 장치입니다. 는
생성 단위 비용과 네트워크 전송 손실이 모델링됩니다.
발전의 이차 함수로.

현재 문제에서는 비용 최소화와 손실 최소화가 모두 필요합니다.
해결책을 얻었습니다.

소형 모델 유형 :NLP


카테고리 : 무료 슬롯 모델 라이브러리


메인 파일 : dispatch.gms

$title 전송 손실을 포함한 경제적 부하 파견 (DISPATCH,SEQ=166)

$onText
경제적 파견 문제는 다음과 같이 정의될 수 있습니다.
일련의 온라인 발전을 통한 최소 비용 발전 일정
특정 시점의 총 전력 수요를 충족시키는 장치입니다. 는
생성 단위 비용과 네트워크 전송 손실이 모델링됩니다.
발전의 이차 함수로.

현재 문제에서는 비용 최소화와 손실 최소화가 모두 필요합니다.
솔루션을 얻었습니다.

Wood, AJ 및 Wollenberg, BF, 예제 문제 4e. 발전 부문에서는
운영 및 제어. John Wiley and Sons, 1984, pp. 85-88.

키워드: 비선형 프로그래밍, 엔지니어링, 발전, 경제적 파견
$offText

세트
   i '발전기' / p1*p3 /
   genchar '발전기 특성' / a, b, c, upplim, lowlim /
   cg(genchar) '비용 범주' / a, b, c /;

별칭(i,j);

테이블 gendata(i,genchar) '발전기 비용 특성 및 제한'
           에이비씨 업플림 로우림
   p1 213.1 11.669 0.00533 200 50
   p2 200.0 10.333 0.00889 150 37.5
   p3 240.0 10.833 0.00741 180 45;

매개변수 pexp(cg) '비용 함수 지수' / a 0, b 1, c 2 /;

표 b(i,j) 'b-행렬 손실 계수 - 제곱 구성요소'
             p1 p2 p3
   p1 0.0676 0.00953 -0.00507
   p2 0.00953 0.05210 0.00901
   p3 -0.00507 0.00901 0.02940;

매개변수 b0(i) '선형 손실 계수' / p1 -0.0766
                                             p2 -0.00342
                                             p3 0.0189 /;

스칼라
   b00 '손실 방정식 상수' / 0.040357 /
   수요 '총 전력 수요(MW)' / 210 /;

변수
   p(i) '발전량(MW)'
   손실 '총 전송 손실(MW 단위)'
   비용 '총 발전 비용 - 목적 함수';

양의 변수 p;

p.up(i) = gendata(i,"upplim");
p.lo(i) = gendata(i,"lowlim");

방정식
   costfn '총 비용 계산'
   lossfn '총 손실 계산'
   demcons '총 발전량은 수요와 손실이 같아야 합니다';

costfn.. 비용 =e= sum((i,cg), gendata(i,cg)*power(p(i),pexp(cg)));

lossfn.. 손실 =e= b00 + sum(i, b0(i)*p(i))/100
                       + 합계((i,j), p(i)*b(i,j)*p(j))/100;

demcons..sum(i, p(i)) =g= 수요 + 손실;

모델 edc / 모두 /;

nlp를 사용하여 비용을 최소화하는 edc를 해결합니다.

* 상충관계 경계선 추적
세트
   s '절충점' / 최소 손실, s1*s4, 최소 비용 /
   st(s) '점 사이' / s1*s4 /;

매개변수 추적 '추적 보고서';

추적('비용','최소 비용') = 비용.l;
추적('손실','최소 비용') = loss.l;

옵션 limRow = 0, limCol = 0;

nlp를 사용하여 손실을 최소화하는 edc를 해결합니다.

추적('비용','최소 손실') = 비용.l;
추적('손실','최소 손실') = loss.l;

edc.solPrint = %solPrint.quiet%;

루프(st,
   loss.fx = 추적('손실','최소 손실')
           + ord(st)/(카드(st) + 1)*(trace('손실','최소 비용')
                                    -trace('손실','최소 손실'));
   nlp를 사용하여 비용을 최소화하는 edc를 해결합니다.
   추적('비용',st) = 비용.l;
   추적('손실',st) = 손실.l;
);

추적 표시;