在CFD后处理过程中,有时需要将一个圆柱面上的参数展开为一个平面并导入到Tecplot中进行出云图或流线图,这就需要坐标变换,下面的程序就是采用matlab编写的柱面展开程序。如果有建议,欢迎大家共同交流。
%% 压力数据展开
% 数据读取
clc
clear all
close all
cyl_data = csvread('cyl_data_Pre_50H.csv'); % 读取CFX中Export的50%叶高的流道压力数据(环形叶栅),数据先把文件开头几行非数据字符行删掉
[m,n] = size(cyl_data);
cyl_x = cyl_data(:,1); % x坐标
cyl_y = cyl_data(:,2); % y坐标
cyl_z = cyl_data(:,3); % z坐标
data = cyl_data(:,4); % 压力
pi = 3.1415926;
f_plane_data = fopen('plane_data_Pre_50H.dat', 'w'); % 新建数据文件保存展开为xy平面的数据,三列数据分别为:x坐标、y坐标、压力。
% 进行坐标变化
for i = 1:m
if abs(cyl_y(i))<0.0000001 && cyl_x(i)<0 % 避免z(i)特别小等于0时,atan(x(i)/z(i))计算出错
theta = -pi/2;
elseif abs(cyl_y(i))<0.0000001 && cyl_x(i)>0 % 避免z(i)特别小等于0时,atan(x(i)/z(i))计算出错
theta = pi/2;
elseif cyl_y(i)<0 && cyl_x