加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

应用技巧: 使用MATLAB提取FLUENT计算得到的航行器流体动力系数

(2013-12-23 04:03:44)
标签:

fluent

matlab

流体动力

自动提取

分类: FLUENT
function GetForce
%用途:从rpt文件中提取流体动力
%作者:袁绪龙
%日期:2013-12-22
%版权所有:袁绪龙, 西北工业大学航海学院

%列举算例名称
casedat={'scv3d2','scv3d2-02','scv3d2-04','scv3d2-06','scv3d2-08','scv3d2-10'};

%填写rpt文件中汇总流体动力的行号
lines=25;

%循环操作
for i=1:length(casedat)
    %构造阻力系数rpt文件名
    fileName=strcat(casedat{i},'-cx');

    %打开rpt文件
    fid=fopen(fileName);

    %读取并抛弃无用行
    for j=1:lines-1
        line1=fgetl(fid);
    end
    
    %扫描汇总行,抛弃第一个字符串
    textscan(fid,'%s',1);

    %扫描汇总行剩余字符串,得到6个实型数
    force=textscan(fid,'%f',6);

    %6个实数构成元包数组的第一个元素,提取成数组
    force=force{1};

    %分别提取压差阻力系数、摩擦阻力系数和总阻力系数,构造成数组
    Cxp(i)=force(4);
    Cxf(i)=force(5);
    Cx(i)=force(6);
end

%同理,提取升力系数
for i=1:length(casedat)
    fileName=strcat(casedat{i},'-cy');
    fid=fopen(fileName);
    for j=1:lines-1
        line1=fgetl(fid);
    end
    
    textscan(fid,'%s',1);
    force=textscan(fid,'%f',6);
    force=force{1};
    Cyp(i)=force(4);
    Cyf(i)=force(5);
    Cy(i)=force(6);
end

%同理,提取俯仰力矩系数
for i=1:length(casedat)
    fileName=strcat(casedat{i},'-mz');
    fid=fopen(fileName);
    for j=1:lines-1
        line1=fgetl(fid);
    end
    
    textscan(fid,'%s',1);
    force=textscan(fid,'%f',6);
    force=force{1};
    mzp(i)=force(4);
    mzf(i)=force(5);
    mz(i)=force(6);
end

%构造攻角数组
alpha=0:2:10;

%绘制流体动力系数曲线,用于预览
figure(1);
plot(alpha,Cx,'-^',alpha,Cy,'-d',alpha,-mz,'-*');
grid on;
xlabel('alpha(\circ)');
legend('Cx','Cy','mz');

%保存流体动力系数汇总数据文件,用于正式绘图
fd=[alpha;Cxp;Cxf;Cx;Cyp;Cyf;Cy;mzp;mzf;mz];
save 'scv3d_fd.txt' fd -ascii;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有