launch.gms : 발사체 설계 및 크레이지 슬롯

설명

이 모델은 3단 발사체를 설계합니다.
R&D 및 생산 크레이지 슬롯에 대한 계정 크레이지 슬롯 추정 관계
기체, 엔진 및 계기 장치용.

소형 모델 유형 :NLP


카테고리 : 크레이지 슬롯 모델 라이브러리


메인 파일 : launch.gms

$title 발사체 설계(LAUNCH,SEQ=161)

$onText
이 모델은 3단 발사체를 설계합니다.
R&D 및 생산 크레이지 슬롯에 대한 계정 크레이지 슬롯 추정 관계
기체, 엔진 및 계기 장치용.

Bracken, J 및 McCormick, G P, 7장. 선택된 응용 분야에서
비선형 프로그래밍의. 존 와일리 앤 선즈(John Wiley and Sons), 뉴욕, 1968년,
58-82페이지.

키워드: 비선형 프로그래밍, 발사체 설계, 에너지 경제학, 엔지니어링
$offText

세트
   s '단계' / stage-1*stage-3 /
   b '바운드 라벨' / 하위, 상위 /;

별칭(s,ss);

ge(s,ss)의 s가 ss보다 크다고 설정합니다.
ge(s,ss) = yes$(ord(s) >= ord(ss));

스칼라
   pl '지불 부하(천 파운드)' / 20 /
   numl '실행 횟수' / 10 /
   g '평균 중력(est)' / 31.8 /;

테이블 pwbound(s,b) '추진제 중량'
            하부 상부
   1단계 12 16
   2단계 10 12
   3단계 7 9;

매개변수
   iwf(s) '중량 비율' / stage-1 .5, stage-2 .6, stage-3 .7 /
   num(s) '엔진 수' / (stage-1,stage-2) 5, stage-3 1 /
   rde1(s) '엔진 R&D 크레이지 슬롯 1' / (stage-1,stage-2) -257.963, stage-3 32.591 /
   rde2(s) '엔진 R&D 크레이지 슬롯 2' / (stage-1,stage-2) 160.990, stage-3 181.806 /
   rde3(s) '엔진 R&D 크레이지 슬롯 3' / (stage-1,stage-2) -0.146, stage-3 0.539 /
   rde4(s) '엔진 R&D 크레이지 슬롯 4' / (stage-1,stage-2) 282.874, stage-3 232.570 /
   rde5(s) '엔진 R&D 크레이지 슬롯 5' / (stage-1,stage-2) 0.648, stage-3 0.772 /
   pre1(s) '엔진 크레이지 슬롯 1' / (stage-1,stage-2) 0.2085, stage-3 0.0705 /
   pre2(s) '엔진 크레이지 슬롯 2' / (stage-1,stage-2) 2.509 , stage-3 -0.01807 /
   pre3(s) '엔진 크레이지 슬롯 3' / (stage-1,stage-2) 0.736 , stage-3 -1.33 /
   pre4(s) '엔진 크레이지 슬롯 4' / (stage-1,stage-2) 0.9744, stage-3 16.687 /
   pre5(s) '엔진 크레이지 슬롯 5' / (stage-1,stage-2) -0.229 , stage-3 0.498 /;

* 3단계의 경우 c*(x/100)**b에서 (c*10**b)*(x/1000)**b로 조정
pre2('단계-3') = pre2('단계-3')*10**pre3('단계-3');
pre4('단계-3') = pre4('단계-3')*10**pre5('단계-3');

변수
   aweight(s) '기체 중량(천 파운드)'
   iweight(s) '불활성 중량(천 파운드)'
   pweight(s) '추진제 무게(천 파운드)'
   instweight '기기 단위 중량(천 파운드)'
   Weight(s) '총 초기 무게(천 파운드)'
   length(s) '무대 길이(피트)'
   추력(들) '추력(천 파운드)'
   ethrust(s) '단일 엔진 추력(수천 파운드)'
   ms(s) '질량 분율'
   t2w(s) '추력 대 중량 비율'
   t(s) '작동 시간'
   vfac(s) '속도 인자'
   v(s) '증분 속도'
   vt '총 속도'
   크레이지 슬롯 '총 크레이지 슬롯';

방정식
   diweight(s) '불활성 중량의 정의'
   dweight(s) '가중치 정의'
   dthrust(s) '추력의 정의'
   t2wr(s) '초기 중량비 정의에 대한 추력'
   msd(s) '질량분율 정의'
   pwlower(s) '추진제 중량의 하한'
   pwupper(s) '추진제 중량의 상한'
   defvfac(s) '속도 인자 정의'
   defv(s) '속도 정의'
   defvt '총 속도의 정의'
   costdef '크레이지 슬롯 정의';

diweight(s).. iwf(s)*iweight(s) =e= aweight(s);

dweight(s).. Weight(s) =e= sum(ss$ge(ss,s), iweight(ss) + pweight(ss)) + instweight + pl;

d추력(들).. 추력(들) =e= 숫자*추진(들);

t2wr(들).. t2w(들)*중량(들) =e= 추력(들);

msd(s).. (1 - ms(s))*weight(s) =e= pweight(s);

pwlower(들).. pwbound(s,'lower')*iweight(s) =l= pweight(s);

pwupper(s).. pweight(s) =l= pwbound(s,'upper')*iweight(s);

defvfac(들).. vfac(들)*pweight(들) =e= 추력(들)*t(들);

defv(s).. v(s) =e= vfac(s)*g*log(1/ms(s));

defvt..vt =e= sum(s, v(s));

크레이지 슬롯정의.. 크레이지 슬롯 =e=

* 기체 R&D 크레이지 슬롯
   + 5272.77*합계, 무게**1.2781*가중치**(-0.1959)
                  * ms(초)**2.4242*추력**0.38745*pweight(초)**(-0.9904))

* 기체 제작비
   + .185214*합계, 중량**0.3322*ms(초)**(-1.5935)*p중량**0.2362
                  * 길이**0.1079*수**0.1616*수**0.9)

* 엔진 연구개발비
   + sum(s, rde1(s) + rde2(s)*(ethrust(s)/1000)**rde3(s) + rde4(s)*(ethrust(s)/1000)**rde5(s))

* 엔진 생산 크레이지 슬롯
   + sum(s, (pre1(s)*(ethrust(s)/1000) + pre2(s)*(ethrust(s)/1000)**pre3(s)
          + pre4(s)*(ethrust(s)/1000)**pre5(s))*(num(s)*numl)**0.93)

* 악기 유닛
   + 10.35*(15822e-6*(instweight*1000)**0.786 - 35.5)
   + numl**0.9*15822e-6*(instweight*1000)**0.786

* 발사 작전
   + 8.5*numl*(3*sum(s, pweight(s))/1000)**0.460;

모델 출시 / 모두 /;

t2w.lo('스테이지-1') = 1.2;
t2w.lo('스테이지-2') = .6;
t2w.lo('스테이지-3') = .7;
t2w.up('스테이지-1') = 1.4;
t2w.up('스테이지-2') = .75;
t2w.up('스테이지-3') = .9;

ms.lo('스테이지-1') = .25;
ms.lo('스테이지-2') = .24;
ms.lo('스테이지-3') = .16;
ms.up('스테이지-1') = .30;
ms.up('스테이지-2') = .29;
ms.up('스테이지-3') = .21;

length.lo('스테이지-1') = 125;
length.lo('스테이지-2') = 75;
length.lo('stage-3') = 50;
length.up('스테이지-1') = 150;
length.up('stage-2') = 100;
length.up('스테이지-3') = 70;

vfac.lo('스테이지-1') = 240;
vfac.lo('스테이지-2') = 240;
vfac.lo('스테이지-3') = 340;
vfac.up('스테이지-1') = 290;
vfac.up('stage-2') = 290;
vfac.up('스테이지-3') = 375;

vt.lo = 35000;
vt.up = 50000;
instweight.lo = 2.5;
instweight.up = 4.0;
v.lo(s) = 1000;
t.lo(들) = 100;
추력.lo(s) = 1;
aweight.lo(s) = 1;
iweight.lo(s) = 5;
pweight.lo(s) = 50;
ethrust.lo(s) = 20;

* 이 책의 솔루션 가치는 다음과 같습니다.
t.l('단계-1') = 155;
t.l('단계-2') = 314;
t.l('단계-3') = 403;

iweight.l ('단계-1') = 136;
iweight.l ('스테이지-2') = 47;
iweight.l ('단계-3') = 16;

pweight.l ('단계-1') = 2176;
pweight.l ('단계-2') = 564;
pweight.l ('단계-3') = 144;

ethrust.l('stage-1') = 746;
ethrust.l('stage-2') = 96;
ethrust.l('stage-3') = 129;

length.l('스테이지-1') = 125;
length.l('스테이지-2') = 75;
length.l('스테이지-3') = 50;

ms.l('스테이지-1') = .3;
ms.l('스테이지-2') = .29;
ms.l('스테이지-3') = .21;

instweight.l = 2.5;
vt.l = 38632;

nlp 최소화 크레이지 슬롯을 사용하여 출시를 해결합니다.