설명
이 문제의 목적은 전력 손실을 최소화하는 것입니다. 정수압 스러스트 베어링 작동 중 여러 가지 제약 조건이 적용됩니다.
소형 모델 유형 :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을 해결합니다.