참조
카테고리 : 슬롯 커뮤니티 NOA 라이브러리
메인파일 : htb.gms
$onText
정수압 추력 작동 중 전력 손실 최소화
베어링에는 여러 가지 제약이 따릅니다.
참고자료:
J.N. Siddall, 최적 엔지니어링 설계. 마르셀 데커, 뉴욕, 1982.
K. Deb, M. Goyal, 결합을 이용한 엔지니어링 설계 최적화
유전자 검색. In: Back, T., (Ed.) 제7차 인터내셔널 회보
유전 알고리즘에 관한 회의, 1997, 미국 미시건 주 이스트 랜싱, 7월 19-23일
1997, pp.521-528.
Carlos A. Coello Coello, 단일 제약 조건을 목표로 제약 조건 처리
객관적인 진화 최적화. 엔지니어링 최적화, vol.32,
(2000), pp.275-308.
$offText
스칼라
gamma '석유의 중량 밀도(lb/in^3)' /0.0307/
C '기름 비열(Btu/lb degr F)' /0.5/
N '축의 각속도(rpm)' /750/
Ws '추력 하중(lb)' /101000/
Pmax '최대 입구 압력(psi)' /1000/
delta_t_max '최대 온도 변화(degF)' /50/
hmin '최소 막 두께(in)' /0.001/
g '중력상수(in/s^2)' /386.4/
taf '주위 온도(degF)' /100.0/
P1 '출구 압력, 대기압(psi 게이지)' /0/
Pump_efficiency '펌프 효율 70%' /0.7/
pi '유명 상수' ;
파이 = 2*arctan(inf);
표 oil_constants(*,*) 오일 등급
C1n
'SAE 5' 10.85 -3.91
'SAE 10' 10.45 -3.72
'SAE 20' 10.04 -3.55
'SAE 30' 9.88 -3.48
'SAE 40' 9.83 -3.46
'SAE 50' 9.82 -3.44 ;
매개변수
C1 '주어진 오일 등급에 대한 c 인자'
cn '주어진 오일 등급에 대한 n 계수'
gr '기름의 비중'
tar '주위 온도' ;
* 매개변수 계산 또는 추출:
C1 = oil_constants('SAE 20', 'C1');
cn = oil_constants('SAE 20', 'n');
gr = 감마/0.0361111;
타르= 459.7 + taf;
변수
R '베어링 스텝 반경(in)'
R0 '함몰 반경(in)'
mu '레이놀즈 단위의 오일 점도(Lb sec/in)'
Q '오일의 유량(in^3/sec)'
PL '전력 손실(lb/초)'
P0 '입구 압력(psi 게이지)'
Ef '마찰로 인한 전력 손실(lb/초)'
Ep '펌핑 에너지(lb/초)'
h '필름 두께(in)'
delta_t '온도 상승(°F)'
t '온도(화씨)'
W '무게(lb)' ;
방정식
power_loss '목적 함수'
Pumping_energy '펌프 효율'
마찰 '마찰 손실'
temp_rise '베어링을 통과하는 오일의 온도 상승'
inlet_press '입구 압력과 유량의 관계'
load_capacity '하중 운반 능력'
oil_viscosity '온도에 따른 오일 점도'
온도 'T = 주변 및 오일 출구 온도'
radius '내부 반경은 가장 작아야 합니다'
limit1 '압력 강하의 0.1%로 출구 손실을 제한'
limit2 '압력 손실 시 표면 손상 방지' ;
* 목적 함수:
power_loss.. PL =e= Ep + Ef;
* 제약:
펌핑_에너지.. Ep =e= Q*(P0-P1)/pump_efficiency;
마찰.. Ef*h =e= sqr(2*pi*N/60)*[(2*pi*mu)]*(R**4-R0**4)/4;
temp_rise.. delta_t*(9336*Q*gamma*C) =e= Ef;
load_capacity.. W*(log(R)-log(R0)) =e= [(pi*P0)/2]*(sqr(R)-sqr(R0));
입구_압력.. P0*(pi*h**3) =e= (6*mu*Q)*(log(R)-log(R0));
오일_점도.. log10(8.112e6*mu+0.8) =e= (T**cn)*(10**C1);
온도.. T =e= 560 + delta_t/2;
반경.. R =g= R0;
한계1.. 감마*sqr(Q) =l= 0.001*g*sqr(2*pi*R*h)*P0;
한계2.. W =l= 5000*pi*(sqr(R)-sqr(R0));
* 경계:
P0.up = pmax;
h.lo = hmin;
delta_t.up = delta_t_max;
w.lo = Ws;
Ep.lo = 1;
Ef.lo = 1;
P0.lo = 1;
R.lo = 1; R.up = 16;
R0.lo = 1; R0.up = 16;
Q.lo = 1; Q.up = 16;
mu.lo = 1.0e-6; mu.up = 16.0e-6;
t.lo = 100;
* 가변 스케일링:
mu.scale = 1.0e-6;
h.규모 = hmin;
W.규모 = Ws;
PL.scale = 1.0e4;
Ep.scale = 1.0e4;
Ef.scale = 1.0e4;
* 초기 지점:
R.1 = 6;
R0.1 = 5;
mu.l = 0.000006;
Q.1 = 3;
P0.1 = 1000.0000;
Ef.1 = 16000;
Ep.1 = 3000;
h.l = 0.001;
delta_t.l = 50;
t.l = 600;
W.l = 101000;
모델 htb /all/;
htb.scaleopt = 1;
nlp를 사용하여 PL을 최소화하는 htb를 해결합니다.
$ifThenI x%mode%==xbook
/htb.dat/를 파일로 저장하세요.
내놔;
R.l:15:7, R0.l:15:7, mu.l:15:7, Q.l:15:7 /;
put P0.l:15:7, Ef.l:15:7, Ep.l:15:7, h.l:15:7 /;
put delta_t.l:15:7, t.l:15:7, W.l:15:7 /;
넣어 /"목표 ="PL.l:15:7 /;
$endIf
* HTB 끝