w89986581 发表于 2009-3-24 19:47

ATV的计算与导出

计算时几个细节如下:1.间接边界元和直接边界元(单元类型)可以进行ATV分析,而直接边界元(节点类型)不能进行ATV分析;
2.计算ATV前必须设定场点,因为ATV的物理意义为单元单独振动时指定场点的声压响应,步骤见1,2;
3.输出ATV时,可以选择txt文件格式,读取程序如下(matlab)

%%%读取sysnoise生成的ATV文件,并转存
filename = ['D:\Sysnoise\unitsphere\ATV.txt'];
%%% Sysnoise输出的ATV文件
fid
= fopen(filename,'r');
if fid == -1,
disp('Invalid datafile');
return;
end
while 1,

dataline1 = fgetl(fid);

if ~ischar(dataline1),
fclose(fid);
break;
end;

if isequal(dataline1, 'ATV
FREQUENCY

FIELD POINT'),


dataline1 = fgetl(fid);

temp = str2num(dataline1);

filename1 = ['C:\MATLAB6p5\work\unitsphere\ATV',num2str(temp(2)),'Hz.txt'];
%%% 转存的Mat文件

fid1
= fopen(filename1,'w');

for ii = 1:length(nodedata(:,1)),


dataline1 = fgetl(fid);


dataline2 = fgetl(fid);

fprintf(fid1,'%s \n',[dataline1,'
',dataline2]);


end

fclose(fid1);


end

end
%%%load读取指定频率的ATV矩阵,每个节点对应的ATV元素为:
sysnoiseATV = (ATV(:,3)+i*ATV(:,4)).*normvect(:,1)+(ATV(:,5)+i*ATV(:,6)).*normvect(:,2)+(ATV(:,7)+i*ATV(:,8)).*normvect(:,3);
%%%其中normvect为法向量矩阵,N表示节点总数。
----------------------------------------------------------------------------------------------------------------------

tangyuanyuan 发表于 2009-3-26 09:56

谢谢楼主哦!
再弱弱的问下:单元类型和节点类型是??

w89986581 发表于 2009-3-26 10:28

回复 沙发 tangyuanyuan 的帖子

操作对象,间接边界元只能对单元进行操作,直接边界元可以对单元也可以对节点进行操作.

benbendog 发表于 2012-6-7 17:25

谢谢正找呢

yuanchongxin 发表于 2013-3-25 02:50

本帖最后由 yuanchongxin 于 2013-3-25 03:29 编辑

请问您是怎么导入ATV为txt格式的。我怎么没有发现啊?
已经找到方法,要用到vector to function conversion

jindaniel 发表于 2013-4-1 15:36

yuanchongxin 发表于 2013-3-25 02:50 static/image/common/back.gif
请问您是怎么导入ATV为txt格式的。我怎么没有发现啊?
已经找到方法,要用到vector to function conversion ...

请问,ATV和普通边界元方法的区别就是ATV要有个具体长点的,而普通边界元,就直接算完,再定义场点也可以么?

yuanchongxin 发表于 2013-6-10 03:04

嗯。是这样的。普通边界元可以先算完potential,然后再定义声场点。也可先定义场点。都可以

yhljjj 发表于 2014-2-25 11:53

想请问一下,在VL中有木有进行过这样的ATV数据导出后自己处理计算场点声压的?
VL中导出的只有实部和虚部数据,没有sysnoise中的XYZ三个方向的实部和虚部数据
请问VL中导出的这个ATV就是法向的么?
页: [1]
查看完整版本: ATV的计算与导出