참조
카테고리 : 슬롯 게임 NOA 라이브러리
메인파일 : batchreactor.gms
$onText
회분식 반응기의 최적 제어.
최대 중간 생성물을 제공하는 최적의 온도 프로파일 찾기
두 번의 연속 반응이 있는 회분식 반응기에서의 농도. 첫 번째
반응은 2차 반응이고 두 번째 반응은 1차 반응입니다.
속도 상수.
Renfro J.G., Morshedi, A.M., Osbjornsen, O.A., 동시 최적화 및
미분/대수 방정식으로 설명되는 시스템의 솔루션입니다. 컴퓨터
및 화학 공학, vol.11, 1987, pp.503-517.
$offText
$if 세트 n $set nh %n%
$설정되지 않은 경우 nh $set nh 100
set nh 하위 간격 수 / 0*%nh% /;
별칭(nh,k);
스칼라 tf 최종 시간 / 100/
ca_0 ca / 1.0/의 초기값
cb_0 cb / 0.0/의 초기값
h ;
h=tf/%nh% ;
성분 A의 변수 ca(nh) 농도
cb(nh) 성분 B의 농도
t(nh) 반응기 온도(제어변수)
k1(nh) 첫 번째 반응의 속도 상수
k2(nh) 두 번째 반응의 속도 상수
obj 기준 ;
방정식 eobj 기준 정의
state1(nh) 상태 방정식 1
state2(nh) 상태 방정식 2
ek1(nh)
ek2(nh) ;
에오브..
obj =e= cb['%nh%'] ;
ek1(nh(k)).. k1(k) =e= 4000*exp(-2500/t(k));
ek2(nh(k)).. k2(k) =e= 620000*exp(-5000/t(k));
상태1(nh(k+1))..
ca[k+1] =e= ca(k)+
(h/2)*(-k1(k)*ca(k)*ca(k) - k1(k+1)*ca(k+1)*ca(k+1) ) ;
상태2(nh(k+1))..
cb[k+1] =e= cb(k)+
(h/2)*( k1(k)*ca(k)*ca(k) - k2(k)*cb(k) +
k1(k+1)*ca(k+1)*ca(k+1) - k2(k+1)*cb(k+1) );
*초기점
ca.l[nh] = 1.0;
cb.l[nh] = 0.0;
ca.fx ['0'] = ca_0;
cb.fx ['0'] = cb_0;
*경계
t.lo(nh) = 110;
t.up(nh) = 280;
모델 배치Reactor /all/;
nlp를 사용하여 obj를 최대화하는 BatchReactor를 해결합니다.
$ifThenI x%mode%==xbook
파일 stat1 /batch1.dat/;
파일 stat2 /batch2.dat/;
파일 stat3 /batch3.dat/;
stat1을 넣어;
루프(nh, put ca.l(nh):10:5,',', put/)
stat2를 넣어;
루프(nh, put cb.l(nh):10:5,',', put/)
stat3을 넣어;
루프(nh, put t.l(nh):10:5,',', put/)
$endIf
* BatchReactor의 끝