캠의 형상 최적화
캠의 1 회전에 대한 밸브의 입구가 극대화되도록 캠의 반경에 제약 조건을 붙여 볼록 캠의 형상을 설계합니다.
캠의 형상은 반경 rmin의 원주의 각도 의 원형이며, 나머지
에 대칭 형태로 간주합니다.

설계 변수 ri, i=1, …, n은 각도 , 즉 캠의 원형 부분이 아닌 상단의 반부에 분포한 등간격의 각도 θ에서의 캠의 반경을 나타냅니다.
In[1]:=

n = 100; vars = Array[r, n];
각각의 반경 ri는 구간에 존재해야 합니다.
In[2]:=

rmin = 1; rmax = 2;
varbounds = Table[rmin <= r[i] <= rmax, {i, 1, n}];
위에서 정의된 각도 θ를 입력합니다.
In[3]:=

\[Theta] = 2 Pi/(5 (n + 1));
볼록 제약은 불평등계 에 의해 표현됩니다.
In[4]:=

convexconstri = (1/2) r[i - 1] r[i + 1] Sin[2 \[Theta]] <=
(1/2) r[i - 1] r[i] Sin[\[Theta]] + (1/2) r[i] r[
i + 1] Sin[\[Theta]];
을 사용하면, 시스템을 아래와 같이 다시 표현할 수 있습니다.
은 캠의 원형 부분에 있는 점의 반경이므로
과 동일함을 주목합니다.
In[5]:=

convexconstr =
Table[2 r[i - 1] r[i + 1] Cos[\[Theta]] <=
r[i] (r[i - 1] + r[i + 1]), {i, 0, n}] /. {r[-1] -> rmin,
r[0] -> rmin, r[n + 1] -> rmax};
반경의 변화율에 대한 제약은 매개 변수 α에서 로 표현 됩니다.
In[6]:=

\[Alpha] = 1.5; rchangeconstr =
Table[-\[Alpha] <= (r[i + 1] - r[i])/\[Theta] <= \[Alpha], {i, 0,
n}] /. {r[0] -> rmin, r[n + 1] -> rmax};
목적 함수 (밸브 개방부)는 , rv는 밸브 값의 기하학에 관련된 상수로서 주어지며, 설계 변수 ri 와 단순한 선형 관계를 갖는 것으로 가정됩니다.
In[7]:=

rv = 1;
objfun = Pi rv^2 (1/n) Sum[r[i], {i, 1, n}];
변수의 초기점을 선택합니다.
In[8]:=

initpts = Table[.5 (rmin + rmax), {i, 1, n}];
극대화 문제를 해결합니다.
In[9]:=

sol = FindMaximum[
Join[{objfun}, varbounds, convexconstr, rchangeconstr],
Thread[vars, initpts]];
최대 반경 중 일부는 최대의 입니다.
In[10]:=

Table[r[i], {i, 95, 100}] /. sol[[2]]
Out[10]=

해를 플롯합니다.
전체 Wolfram 언어 입력 표시하기
Out[11]=
