Optimización de la forma de una leva
Diseñe la forma de una leva convexa para maximizar el área de la apertura de la válvula para una rotación de la leva, con restricciones en los radios de la leva.
Asuma que la forma de la leva es circular sobre un ángulo de de su circunferencia con radio rmin y está formada simétricamente sobre el restante
.
![](assets.es/optimize-the-shape-of-a-cam/O_38.png)
Las variables de diseño ,
,
,
,
, representan el radio de la leva en ángulos equidistantes
distribuidos sobre un ángulo de
, la mitad superior de la parte no circular de la leva.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_62.png)
n = 100; vars = Array[r, n];
Cada radio está obligado a estar en el intervalo
.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_63.png)
rmin = 1; rmax = 2;
varbounds = Table[rmin <= r[i] <= rmax, {i, 1, n}];
Ingrese el ángulo definido anteriormente.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_64.png)
\[Theta] = 2 Pi/(5 (n + 1));
Restricciones a la convexidad son expresadas por el sistema de inequidades .
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_65.png)
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]];
Usando , el sistema puede ser expresado de nuevo como sigue. Note que
es el radio de un punto en la parte circular de la leva y por lo tanto igual a
.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_66.png)
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};
Una restricción en el índice de cambio del radio se expresa en términos del parámetro como
.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_67.png)
\[Alpha] = 1.5; rchangeconstr =
Table[-\[Alpha] <= (r[i + 1] - r[i])/\[Theta] <= \[Alpha], {i, 0,
n}] /. {r[0] -> rmin, r[n + 1] -> rmax};
La función objetivo (área de apertura de la válvula), se supone que tiene una relación lineal simple con las variables de diseño dado como
, donde
es una constante relacionadas con la geometría de la válvula.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_68.png)
rv = 1;
objfun = Pi rv^2 (1/n) Sum[r[i], {i, 1, n}];
Seleccione puntos iniciales para las variables.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_69.png)
initpts = Table[.5 (rmin + rmax), {i, 1, n}];
Resuelva el problema de maximización.
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_70.png)
sol = FindMaximum[
Join[{objfun}, varbounds, convexconstr, rchangeconstr],
Thread[vars, initpts]];
Note que varios de los radios más grandes están en el máximo .
![Click for copyable input](assets.es/optimize-the-shape-of-a-cam/In_71.png)
Table[r[i], {i, 95, 100}] /. sol[[2]]
![](assets.es/optimize-the-shape-of-a-cam/O_39.png)
Represente gráficamente la solución.
![](assets.es/optimize-the-shape-of-a-cam/O_40.png)