How can I optimize function output by tuning 3 input parameters?

8 visualizaciones (últimos 30 días)
Yossef Yossefi
Yossef Yossefi el 7 de En. de 2021
Comentada: Bjorn Gustavsson el 7 de En. de 2021
I want to optimize a non-linear output (Pressures) by finding the best 3 input parameters (Kp,Kd,Ki).
An optimized output is a constrained output.
Attached an example for unconstrained output for the input (0.0001,0.0008,0.000002). Thats not optimized.
  • I have tried using fminimax. It did not go well because Preasures is a long scalar vector (1x300) while the input is 3 scalars.
  • I have tried using live editor optimization tool. It did not go well because I have 3 parameters to tune in order to find the best output.
  • Unfortunately I do not know the system transfer function so I can not use the tune controller.
Thanks in advance.
function [Pressures] = myFunc(Kp,Kd,Ki)
for i = 1:500
...
end
end

Respuestas (1)

Bjorn Gustavsson
Bjorn Gustavsson el 7 de En. de 2021
You'll have to modify (at least for simplicity) your function to something like this:
function [Pressures] = myFunc(KpKdKi)
Kp = KpKdKi(1);
Kd = KpKdKi(2);
Ki = KpKdKi(3);
for i = 1:500
...
end
end
Then you can use fminimax or some of the other optimization-functions. The important point is to combine all the input parameters into one array - that is the format the optimization-tools expect things to have.
HTH
  4 comentarios
Yossef Yossefi
Yossef Yossefi el 7 de En. de 2021
Ok I see, it worked.
Thank you very much :)

Iniciar sesión para comentar.

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by