|文档主题:|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
- 更新日志
- 0. 导波理论
- 0.1 导波控制方程推导
- 0.2 导波模态的应变能分析
- 1. 数值模拟
- 1.1 大型计算机ANSYS运算要点
- 1.2 ANSYS的APDL语法在Notepad++中高亮设置
- 1.3 ANSYS命令流建模高效调试技术
- 1.4 ANSYS临时文件清理方法
- 1.5 ANSYS典型语法模块总结
- 1.6 ANSYS常用可视化查询命令汇总
- 1.7 ANSYS数据格式化读写技术总结
- 1.8 ANSYS文件名字符串的构造
- 1.9 异常处理:ANSYS科学计数法数据读取错误
- 1.10 ANSYS实体单元和结点的选中操作
- 1.11 ANSYS一种结点数据的批量导出流程
- 1.12 异常处理:ANSYS实体单元网格划分报错处理
- 1.13 ANSYS点线面体的关联选定
- 1.14 ANSYS多工况大型模拟分析执行策略
- 2.导波程序
- 2.1 PCDISP导波分析程序改进说明
- 2.2 PCDISP圆柱杆频散曲线求解
- 2.3 PCDISP圆柱杆波结构分析
- 2.4 GUIGUW软件安装
- 2.5 异常处理:GUIGUW多层圆柱杆导波分析
- 2.6 GUIGUW常见问题解决办法
- 2.7 异常处理:GUIGUW导波曲线模态匹配分组
- 3.MATLAB数据处理
- 3.1 超声导波激励信号的生成与频谱分析
- 3.2 示波器CSV数据导入MATLAB
- 3.3 切比雪夫低通滤波器设计与滤波实现
- 3.4 异常处理:低通滤波器参数参数设置问题
- 3.5 Hilbert变换与包络线绘制
- 3.6 高频测试信号压缩采样
- 3.7 高频信号的小波分析技术要点
- 3.8 MATLAB导波信号处理集成工具箱guw说明
- 3.9 figure中提取曲线坐标数据的方法
- 3.10 异常处理:测试信号在MATLAB中显示不连续
- 4.试验操作方法
- 4.1 钢筋试件采购与试验编号
- 4.2 PZT贴片操作方法
- 4.3 信号测试仪器操作方法
- 4.4 加速电化学腐蚀试验方法
- 4.5 PZT与电缆接线通路断路的检查方法
- 4.6 异常处理:导波测试短路短路与触发电平
- 4.7 ArbExpress自定义多波峰信号设置方法
- 4.8 异常处理:导波测试信号中电磁杂波干扰
- 4.9 异常处理:PZT压电片无法激发钢筋中的纵向模态
- 5.科研方法
- 5.1 导波监测技术研究线索
- 5.2 学术文献阅读方法心得
- 5.3 一种文献总结的基本范式
- 5.4 试验方案撰写规范示例
- 5.5 研究目标与技术路径设计
- 5.6 科研实验的知识管理
- 5.7 试验材料的采购渠道总结