설명
수직 발사 로켓의 최종 고도를 최대화하려면 다음을 사용하십시오. 추력을 제어로 사용하고 초기 질량, 연료 질량 및 로켓의 항력 특성. 이 모델은 COPS 벤치마킹 제품군에서 나온 것입니다. 참조http://www-unix.mcs.anl.gov/~more/cops/.이산화 지점 수는 다음 명령을 사용하여 지정할 수 있습니다 라인 매개변수. COPS 성능 테스트는 nh = 50에 대해 보고되었습니다. 100, 200, 400
대형 모델 유형 :NLP
카테고리 : 무료 슬롯 게임 모델 라이브러리
메인 파일 : rocket.gms
$title 고다드 로켓 경찰 2.0 #10 (ROCKET,SEQ=238)
$onText
다음을 사용하여 수직 발사 로켓의 최종 고도를 최대화합니다.
추력을 제어로 사용하고 초기 질량, 연료 질량 및
로켓의 항력 특성.
이 모델은 COPS 벤치마킹 제품군에서 나온 것입니다.
http://www-unix.mcs.anl.gov/~more/cops/를 참조하세요.
이산화 지점 수는 다음 명령을 사용하여 지정할 수 있습니다.
라인 매개변수. COPS 성능 테스트는 nh = 50에 대해 보고되었습니다.
100, 200, 400
Dolan, E D 등, JJ, 벤치마킹 최적화
COPS가 포함된 소프트웨어. 기술. 대표, 수학과 컴퓨터
과학부, 2000.
Bryson, AE, 동적 최적화. 애디슨 웨슬리, 1999.
키워드: 비선형 프로그래밍, 항공우주공학, 고다드 로켓
$offText
$설정되지 않은 경우 nh $set nh 50
h '간격' 설정 / h0*h%nh% /;
스칼라
h_0 '초기 높이' / 1 /
v_0 '초기 속도' / 0 /
m_0 '초기 질량' / 1 /
g_0 '표면의 중력' / 1 /
nh '메쉬의 간격 수' / %nh% /
t_c '추력 상수' / 3.5 /
v_c / 620 /
h_c / 500 /
m_c / 0.6 /
D_c
m_f '최종 질량'
다;
가변 final_velocity;
양수변수
단계 '단계 크기'
v(h) '속도'
ht(h) '높이'
g(h) '중력'
m(h) '질량'
t(h) '추력'
d(h) '드래그';
방정식
df(h) '드래그 기능'
gf(h) '중력 함수'
객체
h_eqn(h)
v_eqn(h)
m_eqn(h);
obj..final_velocity =e= ht('h%nh%');
df(h).. d(h) =e= D_c*sqr(v(h))*exp(-h_c*(ht(h) - h_0)/h_0);
gf(h).. g(h) =e= g_0*sqr(h_0/ht(h));
h_eqn(h-1)..ht(h) =e= ht(h-1) + .5*단계*(v(h) + v(h-1));
m_eqn(h-1).. m(h) =e= m(h-1) - .5*단계*(T(h) + T(h-1))/c;
v_eqn(h-1).. v(h) =e= v(h-1) + .5*단계*((T(h) - D(h) - m(h)*g(h))/m(h)
+ (T(h-1) - D(h-1) - m(h-1)*g(h-1))/m(h-1));
c = 0.5*sqrt(g_0*h_0);
m_f = m_c*m_0;
D_c = 0.5*v_c*(m_0/g_0);
ht.lo(h) = h_0;
t.lo(h) = 0.0;
t.up(h) = T_c*(m_0*g_0);
m.lo(h) = m_f;
m.up(h) = m_0;
ht.fx('h0') = h_0;
v.fx('h0') = v_0;
m.fx('h0') = m_0;
m.fx('h%nh%') = m_f;
ht.l(h) = 1;
v.l(h) = ((ord(h) - 1)/nh)*(1 - ((ord(h) - 1)/nh));
m.l(h) = (m_f - m_0)*((ord(h) - 1)/nh) + m_0;
t.l(h) = t.up(h)/2;
단계 1 = 1/nh;
* 중간변수의 초기값
d.l(h) = D_c*sqr(v.l(h))*exp(-h_c*(ht.l(h) - h_0)/h_0);
g.l(h) = g_0*sqr(h_0/ht.l(h));
모형 로켓 / 모두 /;
$if set workSpace 로켓.workSpace = %workSpace%
final_velocity를 최대화하는 nlp를 사용하여 로켓을 해결합니다.