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 .
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.
n = 100; vars = Array[r, n];
Cada radio está obligado a estar en el intervalo .
rmin = 1; rmax = 2;
varbounds = Table[rmin <= r[i] <= rmax, {i, 1, n}];
Ingrese el ángulo definido anteriormente.
\[Theta] = 2 Pi/(5 (n + 1));
Restricciones a la convexidad son expresadas por el sistema de inequidades .
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 .
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 .
\[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.
rv = 1;
objfun = Pi rv^2 (1/n) Sum[r[i], {i, 1, n}];
Seleccione puntos iniciales para las variables.
initpts = Table[.5 (rmin + rmax), {i, 1, n}];
Resuelva el problema de maximización.
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 .
Table[r[i], {i, 95, 100}] /. sol[[2]]
Represente gráficamente la solución.