trussm.gms : 다중 로드를 사용한 트러스 토폴로지 설계

설명

n개의 선형 탄성 막대 구조는 m개의 노드 세트를 연결합니다.
작업은 막대의 크기를 결정하는 것입니다. 즉, 볼륨 t(i)를 결정합니다.
제약 조건에 따라 가장 견고한 트러스를 생성하는 철근
총 중량 제한 및 k개의 다른(비동시) 로딩 등
만족할 수 있는 시나리오. 예를 들어, 다양한 부하 시나리오
교량의 경우 러시아워 교통, 야간 교통, 지진이 포함될 수 있습니다.
그리고 옆바람.

모델은 원뿔형 프로그램으로 제공됩니다. 콘 구현이 온다
Ben-Tal과 Nemirovski로부터.

n개의 막대와 m개의 노드로 구성된 트러스가 있다고 가정합니다. 이제 다음 세트를 고려해보세요.
k는 외부에서 적용된 절점력 f(k)=[f1, .., fn]을 고정했습니다.

d_i는 힘으로 인한 작은 노드 변위를 나타냅니다.
각 노드 i. 트러스의 강성을 극대화하는 것이 목적이며,
이는 탄성 저장 에너지 0.5*f^T*d를 최소화하는 것과 같습니다.
트러스의 최대 볼륨 제한이 적용됩니다.

Ben-Tal 및 Nemirovski(2001)에 제공된 공식을 사용하여 다음을 수행할 수 있습니다.
이것을 2차 원뿔 문제로 모델링합니다.

           타우를 최소화하다
           대상
                         합계(i, t(i)) <= 최대 볼륨

                         s(i,k)^2 <= 2*t(i)*시그마(i,k)
                         합계(i, 시그마(i,k)) <= 타우
                         합(i,k) s(i,k)*b(i)) <= f(k)

첫 번째 제약은 재료의 양 제한입니다. 후자 3
제약 조건과 목표는 준수 제약 조건입니다.
주어진 조건 하에서 탄성 위치 에너지를 최소화하는 것과 같습니다.
로드.

소형 모델 유형 :QCP


카테고리 : 크레이지 슬롯 모델 라이브러리


메인 파일 : trussm.gms

$title 다중 로드를 사용한 트러스 토폴로지 설계(TRUSSM,SEQ=432)

$onText
n개의 선형 탄성 막대 구조가 m개의 노드 세트를 연결합니다.
작업은 막대의 크기를 결정하는 것입니다. 즉, 볼륨 t(i)를 결정합니다.
제약 조건에 따라 가장 견고한 트러스를 생성하는 철근 
총 중량 제한 및 k개의 다른(비동시) 로딩 등 
만족할 수 있는 시나리오. 예를 들어, 다양한 부하 시나리오 
교량의 경우 러시아워 교통, 야간 교통, 지진이 포함될 수 있습니다. 
그리고 옆바람.

모델은 원뿔형 프로그램으로 제공됩니다. 콘 구현이 온다
Ben-Tal과 Nemirovski로부터.

n개의 막대와 m개의 노드로 구성된 트러스가 있다고 가정합니다. 이제 다음 세트를 고려해보세요. 
k는 외부에서 적용된 절점력 f(k)=[f1, .., fn]을 고정했습니다.

d_i는 힘으로 인한 작은 노드 변위를 나타냅니다.
각 노드 i. 트러스의 강성을 극대화하는 것이 목적이며,
이는 탄성 저장 에너지 0.5*f^T*d를 최소화하는 것과 같습니다.
트러스의 최대 볼륨 제한이 적용됩니다. 

Ben-Tal 및 Nemirovski(2001)에 제공된 공식을 사용하여 다음을 수행할 수 있습니다.
이것을 2차 원뿔 문제로 모델링합니다.

           타우를 최소화하다
           대상
                         합계(i, t(i)) <= 최대 볼륨

                         s(i,k)^2 <= 2*t(i)*시그마(i,k) 
                         합계(i, 시그마(i,k)) <= 타우 
                         합(i,k) s(i,k)*b(i)) <= f(k)

첫 번째 제약은 재료의 양 제한입니다. 후자 3
제약 조건과 목표는 준수 제약 조건입니다.
주어진 조건 하에서 탄성 위치 에너지를 최소화하는 것과 같습니다.
로드.

A. Ben-Tal 및 A. Nemirovski, 현대 볼록 최적화 강의: 
분석, 알고리즘 및 엔지니어링 애플리케이션, MPS/SIAM 시리즈 
최적화에 관해, SIAM Press, 2001. 

MS Lobo, L. Vandenberghe, S. Boyd 및 H. Lebret, "응용 프로그램
2차 원뿔 프로그래밍', 선형대수학 및 그 응용, 
제어, 신호 및 이미지 처리 분야의 선형 대수학 특별호. 
284(1998) 193-228.
$offText

i "바" 설정 /i1*i5/
    j "노드" /j1*j4/
    k "로드 시나리오" /k1*k3/;

표 f(j,k) "노드 j의 시나리오 k에 대한 노드 힘" 
          k1 k2 k3
j1 0.0008 1.0668 0.2944
j2 0.0003 0.0593 -1.3362
j3 -0.0006 -0.0956 0.7143
j4 -1.0003 -0.8323 1.6236; 

표 b(j,i) "막대 i의 강성 매개변수" 
      i1 i2 i3 i4 i5
j1 1.0 0 0.5 0 0
j2 0 0 -0.5 -1.0 0
j3 0 0.5 0 0 1.0
j4 0 0.5 0 1.0 0;

스칼라
    maxvolume "최대 트러스 볼륨" /10/; 

변수
    타우 "객관적"
    s(i,k) "하중 시나리오 k에서 철근 i에 대한 응력(연신율과 철근의 단면적)";
긍정적인 변수
    tk(i,k) "하중 시나리오 k에서 트러스 바 i의 부피" 
    t(i) "트러스바의 부피 i" 
    sigma(i,k) "하중 k를 받는 막대 i의 필요한 단면적"; 

방정식
    Volumeeq(i,k) "볼륨 t를 계산합니다"
    deftk(i,k) "원뿔이 분리되도록 tk 할당"
    reseq(k) "트러스에 대한 자원 제한"
    trusscomp "트러스 준수"
    Stiffness(j,k) "하중 k를 받는 막대 j의 강성 요구 사항";

* 원뿔형 변수는 한 번만 발생할 수 있습니다. 즉, 원뿔형이 분리되어 있습니다.
볼륨eq(i,k).. 2*tk(i,k)*sigma(i,k) =G= sqr(s(i,k));

deftk(i,k)..tk(i,k) =E= t(i);

reseq(k)..sum(i, sigma(i,k)) =L= 타우;

trusscomp..sum(i, t(i)) =L= 최대 볼륨;

강성(j,k).. sum(i, s(i,k)*b(j,i)) =E= f(j,k);  

모델 트러스 / 모두 /;

* 모든 하중을 사용하여 해결
sigma.l(i,k) = 균일(0.1,1);
타우를 최소화하는 qcp를 사용하여 트러스를 해결합니다.

* 단일 하중(k1)만으로 해결
f(j,"k2") = 0;
f(j,"k3") = 0;

tau를 ​​최소화하는 qcp를 사용하여 트러스를 해결합니다.