Function works with one input but not the other
Show older comments
Im using the optimisation tool and have set everything up following the tutorial on the mathwork website, the tool works when the input is Y but not when the input is T_to, which is what id like it to be. T_to input only works when the number of variables is one, which doesnt give me a useful result.
I should disclose im still very new to matlab so its possible that the problem is very simple.
function F = mymulti1(T_to)
y = 20640000;
%T_to = 3050; %degC
A_choke = 0.0531; %m^2
A_Rat = 78;
A_Exit = A_choke * A_Rat; %m^2
T_Exit = 343.2;
M_Exit = 1.65; %Ratio
Gamma = 1.26; %Const
Gas_const = 287.5; %Const
MFR = ((A_choke * y) ./ (sqrt(T_to))) * (sqrt(Gamma / Gas_const)) * ( ((Gamma + 1) / 2)^-((Gamma + 1) / 2*(Gamma - 1)));
Pressure_Exit = (1 + ((Gamma - 1) / 2) * ((M_Exit) ^ 2))^ - (Gamma /(Gamma - 1)) * y;
Velocity_Exit = M_Exit * sqrt(Gamma * Gas_const * T_Exit);
Thrust = (MFR .* Velocity_Exit) + (A_Exit * Pressure_Exit);
F(2) = Thrust ./ MFR ;
F(1) = (y .* A_choke) ./ MFR;
end
Answers (1)
VBBV
on 14 Apr 2022
F(2,:) = Thrust ./ MFR ;
F(1,:) = (y .* A_choke) ./ MFR;
Check the size of output matrix
10 Comments
Samir Chaouki
on 14 Apr 2022
Samir Chaouki
on 14 Apr 2022
VBBV
on 14 Apr 2022
F(2,:,:) = Thrust ./ MFR ;
F(1,:,:) = (y .* A_choke) ./ MFR;
Samir Chaouki
on 14 Apr 2022
VBBV
on 14 Apr 2022
F{2} = Thrust ./ MFR ;
F{1} = (y .* A_choke) ./ MFR;
Try using a cell array
Samir Chaouki
on 14 Apr 2022
VBBV
on 14 Apr 2022
F{2} = Thrust ./ MFR ;
F{1} = (y .* A_choke) ./ MFR;
F = cell2mat(F);
Convert to double array. It looks the standard function , gamutli doesn't take cell arrays.
Samir Chaouki
on 14 Apr 2022
VBBV
on 14 Apr 2022
Try A histogram plot in output display
Samir Chaouki
on 14 Apr 2022
Categories
Find more on Symbolic Math Toolbox 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!