ANSYS|科学计数法数据读取错误问题

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
image_1b25ef4omnqe1jsu1ik91v391aa39.png-45.8kB

而序列化数据往往由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
image_1b25esbqhbbcaud1r4ksgic6i9.png-31.1kB

输出数据:

image_1b25eto6ac7eeg31j5v12jk1d4qm.png-20.4kB
image_1b25eto6ac7eeg31j5v12jk1d4qm.png-20.4kB

5. 常见问题

数据的格式也可以手动用Excel调整。

本文用时 20 min。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,894评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,771评论 19 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,206评论 2 33
  • 一、ETA也叫做“脱困四问”,每当遇到阻碍,你就可以停下来,用零秒思考的方式,迅速回答下面4个问题: 1、Emot...
    MissingbyLy阅读 2,425评论 0 0
  • 第一次感到篮球对我没有了吸引力,第一次感到体育课不再有从前的期待。。。这一个个第一次都是在进入大学后开始的。今天体...
    享时差阅读 1,430评论 0 1