1. 問題描述
ANSYS常用的數(shù)據(jù)讀取格式是:
*VREAD,EXCI1(1),V100K_C1,TXT
(F12.7)
用這種方式讀取科學(xué)計數(shù)法數(shù)據(jù)如:
0.0000000e+00
1.9259679e-03
1.5124368e-02
4.9482003e-02
1.1225699e-01
2.0710678e-01
3.3348874e-01
4.8649803e-01
會發(fā)生錯誤票堵,導(dǎo)致數(shù)據(jù)混亂抛姑,分析結(jié)果錯誤趁矾。
而序列化數(shù)據(jù)往往由MATLAB生成瓮具。
2. 技術(shù)背景
- ANSYS
- MATLAB
3. 解決方案
為了避免如此結(jié)果,需要保證MATLAB輸出的數(shù)據(jù)問題為自然計數(shù)法格式掌呜。
MATLAB常規(guī)的數(shù)據(jù)輸出語法:
save(filename,'V','-ascii','-double')
默認(rèn)輸出科學(xué)計數(shù)法數(shù)據(jù)滓玖。
為了得到自然計數(shù)法的數(shù)據(jù),我們采用
4. 實施示例
信號數(shù)據(jù)構(gòu)造示例:
% 題目: 超聲導(dǎo)波激勵信號的生成與頻譜分析
% 參數(shù):
% N - cycle數(shù)质蕉,即激勵信號波峰數(shù)
% fc - 激勵信號中心頻率
% 功能:
% 生成激勵信號序列
% 繪制時域圖和頻域圖
% 對比不同cycle數(shù)信號的特征
% 輸出txt文件
% 作者: 馬騁
% 參考:張玉強2013势篡,p29
% 2016.03.18 @HIT
clc,clear,close all
%% 基本參數(shù)
N = 1; % cycle數(shù),即激勵信號波峰數(shù)
fc = 100e3; % 激勵信號中心頻率模暗,Hz
A = 1; % 激勵信號幅值
T = 1e-4; % 激勵持續(xù)時長
dt = 1/(20*fc)/2; % 時間步長禁悠,在最大步長基礎(chǔ)上除以2
t = [0:dt:T]'; % 時間序列
%% 信號時域波形
V = A*[heaviside(t)-heaviside(t-N/fc)].*... % 時域輸入信號求解
(1-cos(2*pi*fc*t/N)).*sin(2*pi*fc*t);
%% 頻域信號
fs = 1/dt; % 采樣頻率
Nz = length(t); % 數(shù)據(jù)長度
fz= fs*(0:Nz-1)/Nz; % 頻域橫軸
X = fft(V); % fft變換
%% 繪圖
figure
subplot(211)
plot(t,V)
xlabel('t(s)'),ylabel('Mangitude(N)')
xlim([0 T]),grid on
subplot(212)
plot(fz/1000,abs(X))
xlabel('frequency(kHz)'),ylabel('Amplitude')
xlim([0 fs/2/1000]),grid on % 防混疊,fs/2
%% 信號輸出
filename = ['V',num2str(fc/1000),'K_C',num2str(N),'.TXT'];
% save(filename,'V','-ascii','-double')
fid = fopen(filename, 'w');
for iloop=1:length(V)
fprintf(fid, '%15.10f \r\n', V(iloop));
end
fclose(fid);
輸出數(shù)據(jù):
5. 常見問題
數(shù)據(jù)的格式也可以手動用Excel調(diào)整兑宇。
本文用時 20 min碍侦。