I edited the problem and get pretty good results with:
f[reqpower_] := MininmalBy[{
Check[NMinimize[{ae1[w], {w == reqpower, 0 <= w <= maxae1}}, {w},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae2[x], {x == reqpower, 0 <= x <= maxae2}}, {x},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae3[y], {y == reqpower, 0 <= y <= maxae3}}, {y},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae4[z], {z == reqpower, 0 <= z <= maxae4}}, {z},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae2[x], {w + x == reqpower,
0 <= w <= maxae1, 0 <= x <= maxae2}}, {w, x},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae3[y], {w + y == reqpower,
0 <= w <= maxae1, 0 <= y <= maxae3}}, {w, y},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae4[z], {w + z == reqpower,
0 <= w <= maxae1, 0 <= z <= maxae4}}, {w, z},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae2[x] + ae3[y], {x + y == reqpower,
0 <= x <= maxae2, 0 <= y <= maxae3}}, {x, y},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae2[x] + ae4[z], {x + z == reqpower,
0 <= x <= maxae2, 0 <= z <= maxae4}}, {x, z},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae3[y] + ae4[z], {y + z == reqpower,
0 <= y <= maxae3, 0 <= z <= maxae4}}, {y, z},
Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae2[x] + ae3[y], {w + x + y == reqpower,
0 <= w <= maxae1, 0 <= x <= maxae2, 0 <= y <= maxae3}}, {w, x,
y}, Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae2[x] + ae4[z], {w + x + z == reqpower,
0 <= w <= maxae1, 0 <= x <= maxae2, 0 <= z <= maxae4}}, {w, x,
z}, Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae3[y] + ae4[z], {w + y + z == reqpower,
0 <= w <= maxae1, 0 <= y <= maxae3, 0 <= z <= maxae4}}, {w, y,
z}, Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae2[x] + ae3[y] + ae4[z], {x + y + z == reqpower,
0 <= x <= maxae2, 0 <= y <= maxae3, 0 <= z <= maxae4}}, {x, y,
z}, Method -> "RandomSearch"], 999999],
Check[NMinimize[{ae1[w] + ae2[x] + ae3[y] +
ae4[z], {w + x + y + z == reqpower, 0 <= w <= maxae1,
0 <= x <= maxae2, 0 <= y <= maxae3, 0 <= z <= maxae4}}, {w, x,
y, z}, Method -> "RandomSearch"], too much power needed]},
First]
When evaluating this formula with f[reqpower], the result looks like this:
MininmalBy[{999999, 999999, 999999, 999999, {396.497, {w -> 3160.39,
x -> 1839.61}}, {390.376, {w -> 2515.03,
y -> 2484.97}}, {389.794, {w -> 3140.25,
z -> 1859.75}}, {389.996, {x -> 2293.23,
y -> 2706.77}}, {389.955, {x -> 3241.48,
z -> 1758.52}}, {383.048, {y -> 2730.85,
z -> 2269.15}}, {602.931, {w -> 1733.48, x -> 1638.86,
y -> 1627.66}}, {600.422, {w -> 1755.15, x -> 1655.01,
z -> 1589.84}}, {596.013, {w -> 1752.93, y -> 1659.67,
z -> 1587.4}}, {592.798, {x -> 1674.27, y -> 1707.44,
z -> 1618.29}}, {602.931, {w -> 1733.48, x -> 1638.86,
y -> 1627.66, z -> 0.}}}, First]
Is there a trick to get the final result without having to look for the minimum list of values manually? According to the help database, MinimalBy[Arg,First] should do it...? Thanks a lot to whoever supports me on this! :)
EDIT: Corrected brackets, but no change in the outcome...