spring.gms : 코일 압축 스트링 디자인

설명

코일 압축 스프링 설계 문제, 최소 볼륨 찾기
코일 압축 스프링 생산을 위한 와이어.

소형 모델 유형 :MINLP


카테고리 : 슬롯 사이트 추천 모델 라이브러리


메인 파일 : spring.gms

$title 코일 압축 스프링 설계 (SPRING,SEQ=206)

$onText
코일 압축 스프링 설계 문제, 최소 볼륨 찾기
코일 압축 스프링 생산용 와이어.

Sangren, E, 기계 분야의 비선형 정수 및 이산 프로그래밍
디자인 최적화. 기계 설계 저널, Trans.
ASME 112(1990), 223-229.

키워드: 혼합 정수 비선형 프로그래밍, 코일 압축 스프링 설계,
          공학
$offText

i '가능한 와이어 유형' / g-1*g-11 /을 설정합니다.

매개변수
   b(i) '허용 선경(in)' / g-1 0.207
                                              g-2 0.225
                                              g-3 0.244
                                              g-4 0.263
                                              g-5 0.283
                                              g-6 0.307
                                              g-7 0.331
                                              g-8 0.362
                                              g-9 0.394
                                              g-10 0.4375
                                              g-11 0.500 /
   로드 '예압(lb)' / 300 /
   Pmax '최대 작업 하중(lb)' / 1000 /
   delm '최대 편향(in)' / 6 /
   delw '예압으로 인한 편향(in)' / 1.25 /
   lmax '스프링의 최대 자유 길이(in)' / 14 /
   코일맥스 '최대 코일 직경(in)' / 3 /
   S '최대 전단 응력' / 189e3 /
   G '재료의 전단 계수' / 11.5e6 /;

변수
   코일 '코일 직경'
   와이어 '와이어 직경'
   델 '편향'
   N '코일 수'
   C '상수'
   K '상수'
   y(i) '와이어 선택'
   볼륨;

이진변수 y;
정수 변수 n;

방정식
   voldef '코일 스프링의 전체 부피 정의'
   데프C
   데프K
   전단
   데델
   프리엘
   코일 폭
   defWire
   선택와이어;

voldef.. 볼륨 =e= (N + 2)/2*PI*코일*와이어**2;

DefC.. C =e= 코일/와이어;

DefK.. K =e= (4*C - 1)/(4*C - 4) + 0.615/C;

전단.. 8*Pmax/PI*K*C/와이어**2 =l= S;

Defdel.. del =e= 8*N/G*전력(C,3)/와이어;

freel.. Pmax*del + 1.05*(N + 2)*wire =l= lmax;

코일폭.. 코일 + 와이어 =l= 코일최대;

DefWire.. wire =e= sum(i, b(i)*y(i));

SelectWire.. sum(i, y(i)) =e= 1;

del.up = delm/Pload;
del.lo = delw/(Pmax - Pload);
wire.lo = smin(i, b(i));
c.lo = 1.1;
코일.lo = 2*wire.lo;
n.lo = 1;

모델 스프링/모두/;

* 출발점
y.l(i) = 1/카드(i);
wire.l = sum(i, b(i)*y.l(i));
코일.l = 코일최대 - 와이어.l;
c.l = 코일.l/와이어.l;

볼륨을 최소화하는 minlp를 사용하여 스프링을 해결합니다.