설명
이 모델은 다음에서 작동하는 열교환기 네트워크를 설계합니다. 최소한의 연간 비용으로 난방 및 냉방 요구 사항을 충족합니다. 말. 상부 구조는 8개의 스테이지로 구성된 2개의 스테이지로 구성됩니다. 가능한 교환자.
소형 모델 유형 :MINLP
카테고리 : 무료 슬롯 게임 모델 라이브러리
메인 파일 : synheat.gms
$title HEN 합성을 위한 동시 최적화(SYNHEAT,SEQ=117)
$onText
이 모델은 다음에서 작동하는 열교환기 네트워크를 설계합니다.
최소한의 연간 비용으로 난방 및 냉방 요구 사항을 충족합니다.
말. 상부 구조는 8개의 스테이지로 구성된 2개의 스테이지로 구성됩니다.
가능한 교환기.
Yee, T F 및 Grossmann, I E, 다음에 대한 모델의 동시 최적화
열 통합 - 열 교환기 네트워크 합성. 컴퓨터와
화학공학 14, 10(1990), 1151-1184.
키워드: 혼합 정수 비선형 계획법, 화학 공학, 열 교환기
네트워크
$offText
세트
나는 '핫 스트림' / 1*2 /
j '콜드 스트림' / 1*2 /;
Scalar nok '상부구조의 단계 수' / 2 /;
세트
k '온도 위치 nok + 1' / 1*3 /
st(k) '단계';
싱글톤 세트
firstK(k) '첫 번째 온도 위치'
lastK(k) '마지막 온도 위치';
st(k) = yes$(ord(k) < 카드(k));
firstK(k) = 예$(ord(k) = 1);
lastK(k) = yes$(ord(k) = 카드(k));
매개변수
fh(i) '뜨거운 흐름의 열용량 유량'
fc(j) '저온 스트림의 열용량 유량'
얇은(i) '공급 온도. 핫스트림'
thout(i) '목표 온도. 핫스트림'
tcin(j) '공급온도. 차가운 시냇물'
tcout(j) '목표 온도. 차가운 시냇물'
ech(i) '열 함량이 뜨겁습니다.'
ecc(j) '열량 저온 j'
hh(i) '스트림-개별 필름 계수 hot i'
hc(j) '스트림-개별 필름 계수 콜드 j'
hucost '난방 유틸리티 비용'
cucost '냉방 유틸리티 비용'
UNITC '교환기 고정 요금'
acoeff '교환기의 면적 비용 계수'
hucoeff '히터의 면적 비용 계수'
cucoeff '냉각기의 면적 비용 계수'
aexp '교환기의 비용 지수'
허 '스트림-개별 필름 계수 핫 유틸리티'
hcu '스트림-개별 필름 계수 콜드 유틸리티'
'입구 온도 핫 유틸리티'
thout '출구 온도 핫 유틸리티'
tcuin '입구 온도 저온 유틸리티'
tcuout '출구 온도 저온 유틸리티'
gamma(i,j) '추진력의 상한'
a(i,j,k) '간격 k에서 매치 ij에 대한 교환기 영역(chen 대략)'
al(i,j,k) '로그 평균으로 계산된 영역'
acu(i) '지역 냉각기'
ahu(j) '지역 히터'
tmapp '최소 접근 온도'
Costheat '난방 비용'
Costcool '냉각 비용'
invcost '투자 비용';
바이너리 변수
z(i,j,k)
zcu(i)
주(j);
양수 변수
th(i,k) 'k 단계에 들어갈 때 뜨거운 흐름 i의 온도'
무료 슬롯 게임(j,k) 'k단계를 떠날 때 차가운 흐름 j의 온도'
q(i,j,k) 'k단계에서 i와 j 사이에 교환된 에너지'
qc(i) 'i와 콜드 유틸리티 사이에서 교환되는 에너지'
qh(j) 'j와 핫 유틸리티 사이에서 교환되는 에너지'
dt(i,j,k) '위치 k에서 i와 j 사이에 접근'
dtcu(i) 'i와 콜드 유틸리티 간의 접근 방식'
dthu(j) 'j와 핫 유틸리티 간의 접근 방식';
가변 비용 '암탉 및 유틸리티 비용';
방정식
eh(i,k) 'k 단계에서 핫 스트림 i에 의해 교환된 에너지'
eqc(i) '뜨거운 스트림 i에 의해 차가운 유틸리티와 교환되는 에너지'
teh(i) '뜨거운 흐름 i에 의해 교환된 총 에너지'
ec(j,k) 'k단계에서 차가운 흐름 j에 의해 교환된 에너지'
eqh(j) '콜드 스트림 j가 핫 유틸리티와 교환한 에너지'
tec(j) '차가운 흐름 j에 의해 교환된 총 에너지'
Month(i,k) 'th의 단조성'
montc(j,k) '무료 슬롯 게임의 단조성'
Monthl(i) 'k의 단조성 = 마지막'
montcf(j) 'k = 1에 대한 무료 슬롯 게임의 단조성'
tinh(i) '뜨거운 스트림의 공급 온도'
tinc(j) '차가운 스트림의 공급 온도'
logq(i,j,k) 'q에 대한 논리적 제약'
logqh(j) 'qh(j)에 대한 논리적 제약'
logqc(i) 'qc(i)에 대한 논리적 제약'
logdth(i,j,k) '핫 엔드의 dt에 대한 논리적 제약'
logdtc(i,j,k) '콜드 엔드에서 dt에 대한 논리적 제약 조건'
logdtcu(i) 'dtcu에 대한 논리적 제약'
logdthu(j) 'dthu에 대한 논리적 제약'
obj '목적 함수';
teh(i).. (thin(i) - thout(i))*fh(i) =e= sum((j,st), q(i,j,st)) + qc(i);
tec(j).. (tcout(j) - tcin(j))*fc(j) =e= sum((i,st), q(i,j,st)) + qh(j);
eh(i,k)$st(k).. fh(i)*(th(i,k) - th(i,k+1)) =e= sum(j, q(i,j,k));
ec(j,k)$st(k).. fc(j)*(무료 슬롯 게임(j,k) - 무료 슬롯 게임(j,k+1)) =e= sum(i,q(i,j,k));
eqc(i).. fh(i)*(th(i,lastK) - thout(i)) =e= qc(i);
eqh(j).. fc(j)*(tcout(j) - 무료 슬롯 게임(j,firstK)) =e= qh(j);
Tinh(i)..thin(i) =e= th(i,firstK);
tinc(j)..tcin(j) =e= 무료 슬롯 게임(j,lastK);
월(i,k)$st(k)..th(i,k) =g= th(i,k+1);
montc(j,k)$st(k)..무료 슬롯 게임(j,k) =g= 무료 슬롯 게임(j,k+1);
월(i).. 일(i,lastK) =g= thout(i);
montcf(j)..tcout(j) =g= 무료 슬롯 게임(j,firstK);
logq(i,j,k)$st(k).. q(i,j,k) - min(ech(i), ecc(j))*z(i,j,k) =l= 0;
logqc(i).. qc(i) - ech(i)*zcu(i) =l= 0;
logqh(j).. qh(j) - ecc(j)*zhu(j) =l= 0;
logdth(i,j,k)$st(k)..
dt(i,j,k) =l= th(i,k) - 무료 슬롯 게임(j,k) + 감마(i,j)*(1 - z(i,j,k));
logdtc(i,j,k)$st(k)..
dt(i,j,k+1) =l= th(i,k+1) - 무료 슬롯 게임(j,k+1) + 감마(i,j)*(1 - z(i,j,k));
logdthu(j).. dthu(j) =l= (thuout - 무료 슬롯 게임(j,firstK));
logdtcu(i).. dtcu(i) =l= th(i,lastK) - tcuout;
obj..cost =e= 단위c*(sum((i,j,st),z(i,j,st))
+ 합(i,zcu(i)) + 합(j,zhu(j)))
+ acoeff*sum((i,j,k)$st(k),(q(i,j,k)*((1/hh(i)) + (1/hc(j)))
/ (((dt(i,j,k)*dt(i,j,k+1)*(dt(i,j,k) + dt(i,j,k+1))/2
+ 1e-6)**0.33333) + 1e-6) + 1e-6)**aexp)
+ hucoeff*sum(j,(qh(j)*((1/hc(j)) + (1/hhu))
/ (((thuin - tcout(j))*dthu(j)*((thuin - tcout(j) + dthu(j))/2)
+ 1e-6)**0.33333) + 1e-6)**aexp)
+ cucoeff*sum(i,(qc(i)*((1/hh(i)) + (1/hcu))
/ (((thout(i)-tcuin)*dtcu(i)*(thout(i) - tcuin + dtcu(i))/2
+ 1e-6)**0.33333) + 1e-6)**aexp)
+ sum(j,qh(j)*hucost) + sum(i,qc(i)*cucost);
* 프로세스 스트림
* 뜨겁다
얇은('1') = 650; 생각('1') = 370; fh('1') = 10; hh('1') = 1;
얇은('2') = 590; 생각('2') = 370; fh('2') = 20; hh('2') = 1;
* 감기
tcin('1') = 410; tcout('1') = 650; fc('1') = 15; hc('1') = 1;
tcin('2') = 350; tcout('2') = 500; fc('2') = 13; hc('2') = 1;
* 비용과 계수
휴코스트 = 80; 휴코에프 = 150; 투인 = 680; 투아웃 = 680; ㅎㅎ=5;
큐코스트 = 15; 쿠코에프 = 150; 티쿠인 = 300; tcuout = 320; hcu = 1;
단위 = 5500; acoeff = 150;
aexp = 1; tmap = 10;
* 경계
dt.lo(i,j,k) = tmapp;
dthu.lo(j) = tmapp;
dtcu.lo(i) = tmapp;
th.up(i,k) = 얇은(i);
th.lo(i,k) = thout(i);
무료 슬롯 게임up(j,k) = tcout(j);
무료 슬롯 게임lo(j,k) = tcin(j);
* 초기화
th.l(i,k) = 씬(i);
무료 슬롯 게임l(j,k) = tcin(j);
dthu.l(j) = thuout - tcin(j);
dtcu.l(i) = 얇은(i) - tcuout;
ech(i) = fh(i)*(thin(i) - yout(i));
ecc(j) = fc(j)*(tcout(j) - tcin(j));
gamma(i,j) = max(0,tcin(j) - Thin(i), tcin(j) - Thout(i),tcout(j) - Thin(i), tcout(j) - Thout(i));
dt.l(i,j,k) = 얇은(i) - tcin(j);
q.l(i,j,k)$st(k) = min(ech(i),ecc(j));
모델 슈퍼/모두/;
옵션 optCr = 0, limRow = 0, limCol = 0, solPrint = 끄기, sysOut = 끄기;
비용을 최소화하는 minlp를 사용하여 super를 해결합니다.
* 첸 근사에 의한 면적
a(i,j,k)$st(k) = q.l(i,j,k)*((1/hh(i)) + (1/hc(j)))
/ (2/3*sqrt(dt.l(i,j,k)*dt.l(i,j,k+1))
+ 1/6*(1e-8 + dt.l(i,j,k) + dt.l(i,j,k+1)));
* 로그 평균 기온별 면적
al(i,j,k)$st(k) = (q.l(i,j,k)*((1/hh(i)) + (1/hc(j))))
/ (dt.l(i,j,k)*dt.l(i,j,k+1)
* (dt.l(i,j,k) + dt.l(i,j,k+1))/2)**0.33333;
디스플레이 a, al;
* 히터 및 쿨러 영역
ahu(j) = (qh.l(j)*((1/hc(j)) + (1/hhu))/(((thuin-tcout(j))*dthu.l(j)
* ((thuin-tcout(j)+dthu.l(j)))/2) + 1e-6)**0.33333);
acu(i) = (qc.l(i)*((1/hh(i)) + (1/hcu))/(((thout(i) - tcuin)*dtcu.l(i)
* (thout(i) - tcuin + dtcu.l(i))/2 + 1e-6)**0.33333));
디스플레이 acu, ahu;
* 유틸리티 비용
costheat = sum(j,qh.l(j)*hucost);
costcool = sum(i,qc.l(i)*cucost);
Costheat, Costcool을 표시합니다.
* 투자비용
invcost = 비용.l - 비용열 - 비용쿨;
인보이스 표시;