企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
|文档主题:|ANSYS科学计数法数据读取错误问题| |---|---| |文档编号:|T101| |作者:|马骋| |创建日期:|2016/11/22| |关键词:|科学记数法,自然计数法,MATLAB数据输出| [toc] --- # 1. 问题描述 ANSYS常用的数据读取格式是: ``` *VREAD,EXCI1(1),V100K_C1,TXT (F12.7) ``` 用这种方式读取科学计数法数据如: ``` 0.0000000e+00 1.9259679e-03 1.5124368e-02 4.9482003e-02 1.1225699e-01 2.0710678e-01 3.3348874e-01 4.8649803e-01 ``` 会发生错误,导致数据混乱,分析结果错误。 ![image_1b25ef4omnqe1jsu1ik91v391aa39.png-45.8kB][1] 而序列化数据往往由MATLAB生成。 # 2. 技术背景 - ANSYS - MATLAB # 3. 解决方案 为了避免如此结果,需要保证MATLAB输出的数据问题为自然计数法格式。 MATLAB常规的数据输出语法: ``` save(filename,'V','-ascii','-double') ``` 默认输出科学计数法数据。 为了得到自然计数法的数据,我们采用 # 4. 实施示例 信号数据构造示例: ``` % 题目: 超声导波激励信号的生成与频谱分析 % 参数: % N - cycle数,即激励信号波峰数 % fc - 激励信号中心频率 % 功能: % 生成激励信号序列 % 绘制时域图和频域图 % 对比不同cycle数信号的特征 % 输出txt文件 % 作者: 马骋 % 参考:张玉强2013,p29 % 2016.03.18 @HIT clc,clear,close all %% 基本参数 N = 1; % cycle数,即激励信号波峰数 fc = 100e3; % 激励信号中心频率,Hz A = 1; % 激励信号幅值 T = 1e-4; % 激励持续时长 dt = 1/(20*fc)/2; % 时间步长,在最大步长基础上除以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); % 数据长度 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); ``` ![image_1b25esbqhbbcaud1r4ksgic6i9.png-31.1kB][2] 输出数据: ![image_1b25eto6ac7eeg31j5v12jk1d4qm.png-20.4kB][3] # 5. 常见问题 数据的格式也可以手动用Excel调整。 > 本文用时 20 min。 [1]: http://static.zybuluo.com/frank0449/2xj2sfdssh7dunei51l7d20o/image_1b25ef4omnqe1jsu1ik91v391aa39.png [2]: http://static.zybuluo.com/frank0449/5hql8t9ohe9o096gtpjlhphm/image_1b25esbqhbbcaud1r4ksgic6i9.png [3]: http://static.zybuluo.com/frank0449/yb8lxfskkd04bnni6v348crg/image_1b25eto6ac7eeg31j5v12jk1d4qm.png