bearing.gms : 터보 발전기용 정수압 스러스트 베어링 설계

설명

이 문제의 목적은 전력 손실을 최소화하는 것입니다.
정수압 스러스트 베어링 작동 중
여러 가지 제약 조건이 적용됩니다.

소형 모델 유형 :NLP


카테고리 : 피망 슬롯 모델 라이브러리


메인 파일 : bearing.gms

$title 터보 발전기용 정유압 스러스트 베어링 설계(BEARING,SEQ=202)

$onText
이 문제의 목적은 전력 손실을 최소화하는 것입니다.
정수압 스러스트 베어링 작동 중
여러 가지 제약을 받습니다.

Siddall, J N, 최적 엔지니어링 설계. 마르셀 데커,
1982년 뉴욕.

Deb, K 및 Goyal, M, 다음을 사용하여 엔지니어링 설계 최적화
결합된 유전자 검색. In Back, T, Ed, Proceedings of
제7차 유전 알고리즘 국제회의.
1997, pp. 521-528.

Coello Coello, CA, 제약 조건을 목표로 취급
단일 목표 진화 최적화. 공학
최적화 32(2000), 275-308.

키워드: 비선형 프로그래밍, 엔지니어링 설계, 정수압 스러스트 베어링
$offText

변수
   R '베어링 스텝 반경(인치)'
   R0 '리세스 반경(인치)'
   mu '레이놀즈 단위의 오일 점도(lb sec/in.)'
   Q '오일의 유량(in.^3/sec)'
   PL '전력 손실(인치. lb/초)'
   P0 '입구 압력(psi 게이지)'
   Ef '마찰로 인한 전력 손실(in. lb/sec)'
   Ep '펌핑 에너지(in. lb/sec)'
   h '필름 두께(인치)'
   delta_t '온도 상승(°F)'
   t '온도(화씨)'
   W '무게(lb)'
   tmp1 '임시변수: log(R/R0)'
   tmp2 '임시변수: R^2-R0^2';

방정식
   power_loss '목적 함수'
   Pumping_energy '펌프 효율 포함'
   마찰 '마찰 손실'
   temp_rise '베어링을 통과하는 오일의 온도 상승'
   inlet_press '입구 압력과 유량의 관계'
   load_capacity '하중 운반 능력'
   oil_viscosity '오일 점도는 온도의 함수입니다'
   온도 'T는 주변 및 오일 출구 온도의 평균입니다.'
   radius '내부 반경은 가장 작아야 합니다'
   limit1 '압력 강하의 0.1%로 출구 손실을 제한'
   Limit2 '압력 손실 시 표면 손상 방지'
   temp1 'tmp1 계산'
   temp2 'tmp2 계산';

스칼라
   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 '최대 온도 변화(°F)' / 50 /
   hmin '최소 필름 두께(in)' / 0.001 /
   g '중력 상수 (in/s^2)' / 386.4 /
   taf '주위 온도(°F)' / 100.0 /
   P1 '출구 압력, 대기압(psi 게이지)' / 0 /
   Pump_efficiency '70% 효율' / 0.7 /;

테이블 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 '주위 온도(°R)';

* 매개변수 계산 또는 추출
C1 = oil_constants('SAE 20','C1');
cn = oil_constants('SAE 20','n');
gr = 감마/0.0361111;
타르 = 459.7 + taf;

* 모델 제한
* P0 <= pmax
* h >= hmin
* delta_t <= delta_t_max
* w >= Ws
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;

* 0의 곱셈을 방지하기 위한 경계
tmp1.lo = 0.0001;
tmp2.lo = 0.01;

* 초기점. 일부 NLP 솔버는 이 문제를 해결하기 위한 좋은 출발점이 필요합니다.
R.L = 6;
R0.L = 5;
μ.L = 0.000006;
QL = 3;
P0.L = 1000.0000;
Ef.L = 16000;
Ep.L = 3000;
hL = 0.001;
delta_t.L = 50;
t.L = 600;
WL = 101000;

power_loss.. PL =e= Ep + Ef;

펌핑_에너지.. Ep =e= Q*(P0 - P1)/pump_efficiency;

* 마찰.. Ef =e= sqr(2*pi*N/60)*[(2*pi*mu)/h]*(r**4 - r0**4)/4;
*는 다음과 같이 재구성됩니다.
마찰.. Ef*h =e= sqr(2*pi*N/60)*[(2*pi*mu)]*(r**4 - r0**4)/4;

* temp_rise.. delta_t =e= Ef/(12*778*Q*gamma*C);
*는 다음과 같이 재구성됩니다.
temp_rise.. delta_t*(12*778*Q*gamma*C) =e= Ef;

* load_capacity.. W =e= [(pi*P0)/2]*tmp2/tmp1;
*는 다음과 같이 재구성됩니다.
load_capacity.. W*tmp1 =e= [(pi*P0)/2]*tmp2;

* 입구_압력.. P0 =e= (6*mu*Q)/(pi*h**3)*tmp1;
*는 다음과 같이 재구성됩니다.
입구_압력.. P0*(pi*h**3) =e= (6*mu*Q)*tmp1;

오일_점도.. 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*tmp2;

temp1..tmp1 =e= log(R) - log(R0);

temp2..tmp2 =e= sqr(R) - sqr(R0);

모델 m / 모두 /;

m.scaleOpt = 1;

nlp를 사용하여 pl을 최소화하는 m을 해결합니다.