changing a variable in an equation
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, I wrote this little piece of code to evaluate
mass_flow
I then find out I have mass_flow, and I need to evaluate ER. Is there an automatic way to do so without doing the math?
clear
clc
close all
load
datas.mat
k = 1.4; %Gas constant ratio, cp/cv()
R = 287.05; %ideal gas constant [J/Kg*K]
A_eff = .0069; %[m^2]
mass_flow = phi_10Hz; %expansion ratio
mass_flow = A_eff.*((k./R).^0.5).*((1./E_R).^(1/k)).*(((2./k-1).*(1-(1./E_R).^((k-1)./k))).*0.5);
figure()
plot(E_R,mass_flow)
In attached the datas.mat you need to run the file
4 commentaires
Alan Stevens
le 11 Déc 2020
Modifié(e) : Alan Stevens
le 11 Déc 2020
Ah yes. Because you want to plot mass-flow agaist E_R, I assume you want to find a different E_R for each value of mass_flow (rather than a single overall best-fit), in which case one way is to do the following:
load datas.mat
k = 1.4; %Gas constant ratio, cp/cv()
R = 287.05; %ideal gas constant [J/Kg*K]
A_eff = .0069; %[m^2]
mass_flow = phi_10Hz; %expansion ratio
mass_flowfn = @(E_R) A_eff.*((k./R).^0.5).*((1./E_R).^(1/k)).*(((2./k-1).*(1-(1./E_R).^((k-1)./k))).*0.5);
E_R = zeros(1,numel(mass_flow));
ER0 = 1; % Initial guess
for i = 1:numel(mass_flow)
E_R(i) = fminsearch(@(ER)fn(ER,mass_flowfn,mass_flow(i)),ER0);
ER0 = E_R(i);
end
figure()
plot(E_R,mass_flow)
function F = fn(ER, mass_flowfn, mass_flow)
F = norm(mass_flowfn(ER) - mass_flow);
end
Most of the values of E_R seem to be the same, so perhaps this isn't the best method!
Réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Computations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!