下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上加速度转换成位移的matlab代码及说明由测量的加速度离散数据数据转化成位移数据一般不直接在时域进行积分处理,而是由时域转换成频域在频域中进行二次积分再转化到时域中得到位移结果。相关matlab处理程序方法参考王济老师的matlab在振动信号处理中的应用中的程序如下:%频域积分%clear; clc; close all hidden%fni=input('频域积分-输入数据文件名:','s');fid=fopen(fni,'r');sf=fscanf(fid,'%f',1);%采样频率fmin=fsca
2、nf(fid,'%f',1);%最小截止频率fmax=fscanf(fid,'%f',1);%最大截止频率c=fscanf(fid,'%f',1);%单位变换系数it=fscanf(fid,'%f',1);%积分次数sx=fscanf(fid,'%s',1);%横向坐标轴的标注sy1=fscanf(fid,'%s',1);%纵向坐标轴输入单位的标注sy2=fscanf(fid,'%s',1);%纵向坐标轴输出单位的标注fno=fscanf(fid,'%s',1);%输
3、出数据文件名x=fscanf(fid,'%f',1,inf);%输入数据存成行向量status=fclose(fid);n=length(x);%建立时间向量t=0:1/sf:(n-1)/sf;%大于并最接近n的2的幂次方为FFT长度nfft=2nextpow2(n);%FFT变换y=fft(x,nfft);%计算频率间隔(Hz/s)df=sf/nfft;%计算指定频带对应频率数组的下标ni=round(fmin/df+1);na=round(fmax/df+1);%计算圆频率间隔(rad/s)dw=2*pi*df;%建立正的离散圆频率向量w1=0:dw:2*pi*(0.5*s
4、f-df);%建立负的离散圆频率向量w2=2*pi*(0.5*sf-df):-dw:0;%将正负圆频率向量组合成一个向量w=w1,w2;%以积分次数为指数,建立圆频率变量向量w=w.it;%进行积分的频域变换a=zeros(1,nfft); a(2:nfft-1) =y(2:nfft-1)./w(2:nfft-1);if it = 2 y=-a; %进行二次积分的相位变换else a1=imag(a); a2=real(a); y=a1-a2*i; %进行一次积分的相位变换enda=zeros(1,nfft);%消除指定正频带外的频率成分a(ni:na)=y(ni:na);%消除指定负频带外的
5、频率成分a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);y=ifft(a,nfft); %IFFT变换%取逆变换的实部n个元素并乘以单位变换系数为积分结果y=real(y(1:n)*c;subplot(2,1,1); plot(t,x); xlabel(sx); ylabel(sy1); grid on; %绘制几分钱的时程曲线图形subplot(2,1,2); plot(t,y); xlabel(sx); ylabel(sy2); grid on; %绘制积分后的时程曲线图形%打开文件输出积分后的数据fid=fopen(fno,'w'
6、;);for k=1:n, fprintf(fid,'%f n',y(k); endstatus=fclose(fid);程序使用说明:运行该程序会显示 频域积分-输入数据文件名:在之后写出输入数据文件的完整文件名(包括扩展名,例如data.txt)要求数据文件必须在matlab工作空间路径下,该数据文件必须满足如下格式要求:采样频率下限截止频率上限截止频率单位变换系数积分阶数(加速度变位移为2,变速度为1)时间(s)加速度(g)位移(mm)out.txt具体加速度数据(回车或空格隔开)下图为书上给出的例子:满足这样的格式的数据文件才能正常处理,注意单位变换系数和坐标有关,如果
7、按书上的例子加速度以g为单位位移以mm为单位,单位变换系数应该为9.8*1000=9800;而用米每二次方秒为加速度单位以mm为位移单位的话就是1*1000=1000;如果m为位移单位的话那单位变换系数就应该为1了。要注意单位变换系数的选取和自己设定的坐标单位有关。而加速度数据的问题,如果数据为一维数据即全为振动加速度的值可以直接使用该程序,但如果像我一样是测量的原始结果,为振动加速度对应着时间需要对该程序进行修改,在读取数据的代码上修改为读取的x数组分离出加速度数据和时间数据。分别代替原来的加速度x和时间t。我修改后的程序如下,之前除了数据部分直接写到程序里,不在需要输入了,而测量数据为时间
8、对应着相应的加速度,m为位移单位m/s2为加速度单位,单位变换系数为1,程序如下:注意:如果直接复制程序的话注意中英文输入法切换导致程序字符有问题,自己在matlab中改一下单引号为英文输入状态下的就好。%频域积分%clear; clc; close all hidden%fni=input('频域积分-输入数据文件名:','s');fid=fopen(fni,'r');sf=12000%采样频率fmin=0.1%最小截止频率fmax=6000%最大截止频率c=1%单位变换系数it=2%积分次数sx=时间(s);%横向坐标轴的标注sy1=加速度(
9、m/s2);%纵向坐标轴输入单位的标注sy2=位移(m);%纵向坐标轴输出单位的标注out.txt;%输出数据文件名x=fscanf(fid,'%f',1,inf);%输入数据存成行向量%加速度时间数据分离for i=1:1:(length(x)/2) %时间数据 t(i) = x(2*i-1); %加速度数据 xx(i) = x(2*i);endstatus=fclose(fid);n=length(xx);%大于并最接近n的2的幂次方为FFT长度nfft=2nextpow2(n);%FFT变换y=fft(xx,nfft);%计算频率间隔(Hz/s)df=sf/nfft;%计
10、算指定频带对应频率数组的下标ni=round(fmin/df+1);na=round(fmax/df+1);%计算圆频率间隔(rad/s)dw=2*pi*df;%建立正的离散圆频率向量w1=0:dw:2*pi*(0.5*sf-df);%建立负的离散圆频率向量w2=2*pi*(0.5*sf-df):-dw:0;%将正负圆频率向量组合成一个向量w=w1,w2;%以积分次数为指数,建立圆频率变量向量w=w.it;%进行积分的频域变换a=zeros(1,nfft); a(2:nfft-1) =y(2:nfft-1)./w(2:nfft-1);if it = 2 y=-a; %进行二次积分的相位变换el
11、se a1=imag(a); a2=real(a); y=a1-a2*i; %进行一次积分的相位变换enda=zeros(1,nfft);%消除指定正频带外的频率成分a(ni:na)=y(ni:na);%消除指定负频带外的频率成分a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);y=ifft(a,nfft); %IFFT变换%取逆变换的实部n个元素并乘以单位变换系数为积分结果y=real(y(1:n)*c;subplot(2,1,1); plot(t,xx); xlabel(sx); ylabel(sy1); grid on; %绘制几分钱的时程曲线图形subplot(2,1,2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虎门公司团建活动方案
- 装修及好物分享活动方案
- 装修师傅活动方案
- 诚信队活动方案
- 诵经典班队活动方案
- 街道党员进党校活动方案
- 蛋白表达活动方案
- 观看焦裕禄活动方案
- 诚信数码活动方案
- 证券节日营销活动方案
- 肺结节诊治中国专家共识(2024年版)解读
- 软件项目质量、进度、安全保障措施
- 一般道路驾驶教学课件
- 职业技术学院毕业生就业服务方案
- 天然药物文献汇报
- 基于遗传算法的带时间窗的车辆路径问题研究
- DB34-T 4986-2025 建设项目临时用地规模核定指南
- 2025年消防宣传月知识竞赛考试题库50题(含答案)
- 2025-2030中国光伏产业全球化布局及政策红利分析报告
- 幼儿园评估整改措施汇编
- 小学保密教育班会
评论
0/150
提交评论