에탄올: Saccharomyces Cerevisiae에 의한 혐기성 포도당 발효로부터 에탄올 생산을 위한 유가식 생물반응기의 최적 제어

참조

  • Neculai Andrei, 무료 슬롯 사이트 기술을 사용한 비선형 최적화 애플리케이션, 스프링거 최적화 및 그 애플리케이션, 모델에탄올(12.11) 장최적 제어, 2013

카테고리 : 무료 슬롯 사이트 NOA 라이브러리


메인파일 : 에탄올.gms

$onText
에탄올 생산을 위한 유가식 반응기의 최적 제어.
혐기성 미생물로부터 에탄올을 생산하기 위한 유가식 생물반응기
Saccharomyces cerevisiae에 의한 포도당 발효.

Larrosa, J.A.E., 복합체의 전역 최적화를 위한 새로운 경험적 방법
생물 공정. 박사. 논문, Universidade de Vigo, Departamento de Enxeera
쿠미카, 비고, 2008.
$offText

$if 세트 n $set nh %n%
$설정되지 않은 경우 nh $set nh 100

set nh 하위 간격 수 / 0*%nh% /;
별칭(nh,k);

스칼라 tf 최종 시간 /54/
          y1_0 y1 / 20/의 초기값
          y2_0 y2 / 150 /의 초기값
          y3_0 y3 / 21 /의 초기값
          y4_0 y4 / 10 /의 초기값
          목적 함수 /0.0/의 a 매개변수
          h ;

          h=tf/%nh%;

변수 y1(nh) 미생물 집단 농도
          y2(nh) 기질 농도
          y3(nh) 생성물 농도
          y4(nh) 볼륨
          u(nh) 제어변수
          p1(nh)
          p2(nh)
          obj 기준 ;

방정식 eobj 기준 정의
          state1(nh) 상태 방정식 1
          state2(nh) 상태 방정식 2
          state3(nh) 상태 방정식 3
          state4(nh) 상태 방정식 4
          ep1(nh)
          ep2(nh) ;

* 극대화할 목적 함수:
에오브..
 obj =e= y3['%nh%']*y4['%nh%'] +
         h*a*sum(nh(k+1), ((u(k+1)-u(k))*(u(k+1)-u(k))) );

* 제약:
상태1(nh(k+1))..
y1[k+1] =e= y1(k)+
   (h/2)*( p1(k)*y1(k) - u(k)*y1(k)/y4(k) +
           p1(k+1)*y1(k+1)- u(k+1)*y1(k+1)/y4(k+1) ) ;

상태2(nh(k+1))..
y2[k+1] =e= y2(k)+
   (h/2)*( (-10)*p1(k)*y1(k) + u(k)*((150-y2(k))/y4(k)) +
           (-10)*p1(k+1)*y1(k+1) + u(k+1)*((150-y2(k+1))/y4(k+1)) );

상태3(nh(k+1))..
y3[k+1] =e= y3(k)+
   (h/2)*( p2(k)*y1(k) - u(k)*y3(k)/y4(k) +
           p2(k+1)*y1(k+1) - u(k+1)*y3(k+1)/y4(k+1) );

상태4(nh(k+1))..
y4[k+1] =e= y4(k) + (h/2)*(u(k) + u(k+1));

ep1(nh(k)).. p1(k) =e= (0.408/(1+y3(k)/16))*(y2(k)/(0.22+y2(k)));
ep2(nh(k)).. p2(k) =e= (1/(1+y3(k)/71.5))*(y2(k)/(0.44+y2(k)));

*초기점
y1.l[nh]=20;
y2.l[nh]=150;
y3.l[nh]=40;
y4.l[nh]=10;
u.l[nh] =10;

* 고정 값:
y1.fx ['0'] = y1_0;
y2.fx ['0'] = y2_0;
y3.fx ['0'] = y3_0;
y4.fx ['0'] = y4_0;
y4.fx ['%nh%'] = 200;

*경계
u.lo(nh) = 0;     u.up(nh) = 12;

y1.lo(nh) = 0;
y2.lo(nh) = 0;
y3.lo(nh) = 0;
y4.lo(nh) = 0;

모델 에탄올 /all/;

nlp를 사용하여 에탄올을 최대화하는 obj를 해결합니다.

$ifThenI x%mode%==xbook
파일 stat1 /eth1.dat/;
파일 stat2 /eth2.dat/;
파일 stat3 /eth3.dat/;
파일 stat4 /eth4.dat/;
파일 계속 /eth.dat/;

stat1을 넣어;
루프(nh, put y1.l(nh):10:5,',', put/)

stat2를 넣어;
루프(nh, put y2.l(nh):10:5,',', put/)

stat3을 넣어;
루프(nh, put y3.l(nh):10:5,',', put/)

stat4를 넣어;
루프(nh, put y4.l(nh):10:5,',', put/)

계속하다;
루프(nh, u.l(nh):10:5,',', put/)
$endIf

* 에탄올의 끝