Simulink "MATLAB Function" block and extremum value
1 view (last 30 days)
Show older comments
Hello. I am trying to use single input and single output Simulink matlab code function block: MATLAB function. I use the input value "u" to calculate the output value "y", which should be the maximum value of the function "factor (v, u)". The function "factor" depends on the Simulink block input "u" as well as the value which is needed to be found as output ("y" or "result" or "fcn(u)").
How could I find the maximum extremum value for the function factor(v,u) and which value for parameter "v" is needed to have the maximum value for factor (v, u) function? The result or output of the Simulink function block is the parameter value "v" which gives the maximum value for factor (v,u). How could I do it in correct way?
function y = fcn(u)
%function factor(v,u)
factor(v,u)=(18/(1/(u+0.01*v)-0.05/(v^3+1))-0.4*v-1)...
*exp(-2/(1/(u+0.01*v)-0.05/(v^4+1)))+0.8*u-6;
%end
fcn(u)=v=????....
result=fcn(v,u);
y = result;
0 Comments
Answers (1)
Sulaymon Eshkabilov
on 29 Jan 2023
Note that there are a couple of important points here. (1) v input argument values have to be given/known to perform the calculations of your stated formulation. (2) therefore, there must be two input arguments to MATLAB fcn block. Considerign these two points ehre is the completed code of fcn:
function y = fcn(u, v)
H=(18/(1/(u+0.01*v)-0.05/(v^3+1))-0.4*v-1)...
*exp(-2/(1/(u+0.01*v)-0.05/(v^4+1)))+0.8*u-6;
[~, IDX] = max(H);
y = v(IDX);
One simple simulink model (Sim_Demo.slx) is attached to this post with this code.
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!