|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
几个站友都问过这个问题,计算时几个细节如下:
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,3]法向量矩阵,N表示节点总数。
|
-
-
评分
-
2
查看全部评分
-
|