I have a problem with "At line 85 of file ../src/userio.f (unit = 5, file = 'stdin') Fortran runtime error: End of file" when attempting to run xfoil using matlab
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The script that calls the xfoil script is something like this
Options=optimset('Display','iter','DiffMinChange',0.01,'TolCon',0.01)
[rootWeightsSQP,rootDragSQP]=fmincon(@drag,goodrootweights,[],[],[],[],zeros(1,14),ones(1,14),@thicknessconstraint,Options);
meanError=getstartweights(rootWeightsSQP,1);
[cd,cl,rootAlpha]=drag(rootWeightsSQP);
and the script whichs opens xfoil is
function [cd,cl,alpha]=drag(w)
global wingParameters constants
% control points
p0=[1 0]';
p1=[0.8 w(1)*0.2-0.05]';
%p1=[0.8 w(1)*0.2-0.1]';
p2=[0.3 w(2)*0.15]';
%p2=[0.3 w(2)*0.2-0.05]';
p3=[0 -0.1]';
q1=[0 0.1]';
q2=[0.4 w(3)*0.2+0.1]';
q3=[0.8 w(4)*0.2-0.05]';
q4=[1 0]';
if length(w)<5
w=[w wingParameters.bezierw];
end
% weights
zp=[w(5)*1.9+0.1 w(6)*1.9+0.1 w(7)*1.9+0.1 w(8)*1.9+0.1 w(9)*1.9+0.1];
zq=[w(10)*1.9+0.1 w(11)*1.9+0.1 w(12)*1.9+0.1 w(13)*1.9+0.1 w(14)*1.9+0.1];
% calculate connection point
p4=(4/(4+4))*p3+(4/(4+4))*q1;
q0=p4;
% calculate rational cubic Bezier for t[0,1]
lower=bezier([p0 p1 p2 p3 p4]',zp);
upper=bezier([q0 q1 q2 q3 q4]',zq);
fid=fopen('aerofoil.dat','w');
for i=1:101
fprintf(fid,'%20.18f %20.18f\n',lower(i,1),lower(i,2));
end
for i=2:101
fprintf(fid,'%20.18f %20.18f\n',upper(i,1),upper(i,2));
end
fclose(fid);
a=340.3; %speed of sound
v=constants.V; %velocity
M=v/a; %Mach number
nu=0.00001461; %kinematic viscosity
L=wingParameters.localChord; %local chord length of wing section airfoil
Re=v*L/nu; %local Reynold's number
fid=fopen('commands.in','w');
fprintf(fid,'load %saerofoil.dat\n',constants.file_path);
fprintf(fid,'GuyMartin\n');
fprintf(fid,'panel\n');
fprintf(fid,'plop\nG\n\n');
fprintf(fid,'oper\n');
fprintf(fid,'visc %f\n',Re);
fprintf(fid,'M %f\n',M);
fprintf(fid,'type 1\n');
fprintf(fid,'pacc\n');
fprintf(fid,'%spolar.dat\n',constants.file_path);
fprintf(fid,'\n');
fprintf(fid,'iter\n250\n');
fprintf(fid,'cl %f\n',wingParameters.CL2d);
fprintf(fid,'\n');
fprintf(fid,'\n');
fprintf(fid,'quit\n');
fclose(fid);
run_xfoil_command=[constants.xfoil_path 'xfoil < ' constants.file_path 'commands.in > dump.out' ];
setenv('GFORTRAN_STDIN_UNIT','5'); %only for matlab on mac
setenv('GFORTRAN_STDOUT_UNIT','6'); %only for matlab on mac
setenv('GFORTRAN_STDERR_UNIT','0'); %only for matlab on mac
try
system(run_xfoil_command)
fid=fopen('polar.dat');
for i=1:13
tline = fgetl(fid);
disp(tline);
end
fclose(fid);
cl=str2num(tline(12:17));
cd=str2num(tline(20:28));
alpha=str2num(tline(3:8));
catch me
cl=777;
cd=777;
alpha=777;
end
setenv('GFORTRAN_STDIN_UNIT','-1'); %only for matlab on mac
setenv('GFORTRAN_STDOUT_UNIT','-1'); %only for matlab on mac
setenv('GFORTRAN_STDERR_UNIT','-1'); %only for matlab on mac
delete polar.dat
I am running this script on a windows 10 machine and I am using Xfoil 6.99. Do let me know if you have any idea what could have gone wrong because I have spent ages rectifying it and the error seems intermittent
2 commentaires
Diogo Nascimento
le 3 Jan 2018
Hey, have you been able to solve this? I'm having the same error and dont know why!
thanks
Kai Mommsen
le 25 Mar 2019
Its the same with me,
trying to figure out what might be the issue, but i did not find anything about it.
Using matlab 2018b on Win 10 with Xfoil6.99 and an airfoil of Airfoiltools
Thanks
Réponse acceptée
Jan
le 20 Fév 2016
Modifié(e) : Jan
le 20 Fév 2016
Are you creating the control file in the correct folder? This is safer:
fid = fopen(fullfile(constants.file_path, 'aerofoil.dat'),'w')
...
fid=fopen(fullfile(constants.file_path, 'commands.in'),'w');
2 commentaires
Oscar
le 1 Oct 2024
I noticed that this happens when you are trying to run xfoil in the background. I'm using Python, but I have the same issue..
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Airfoil tools 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!