• forida
    了解作者
  • matlab
    开发工具
  • 66KB
    文件大小
  • rar
    文件格式
  • 1
    收藏次数
  • 1 积分
    下载积分
  • 26
    下载次数
  • 2019-04-20 19:04
    上传日期
主要是用来绘制超声导波时域信号的能量谱图,通过能量的大小来区分到底是哪一个模态。
铝板频散曲线(A0、S0).rar
  • 铝板频散曲线(A0、S0)
  • 5mm铝板F-Cp频散曲线图.jpg
    21.4KB
  • amode.m
    434B
  • 5mm铝板群速度频散曲线.jpg
    24.1KB
  • ss.m
    853B
  • xiangsudu_yf.m
    2.9KB
  • dispersion(1).m
    6.7KB
  • smode.m
    444B
  • serfen.m
    423B
  • dispersion.m
    2.9KB
  • aa.m
    824B
  • F-Cp图.jpg
    21.5KB
  • aerfen.m
    423B
  • 5mm铝板相速度频散曲线.jpg
    22KB
内容介绍
function dispersion %绘制平板频散曲线 %tic clc;clear; cl=5850; %材料纵波波速(铝板) cs=3127; %材料横波波速(铝板) dfd=0.01*1e3; fd0=(0.01:dfd/1e3:20)*1e3; %频厚积(MHz*mm) d_lv=2.5; cps_min=0; cpa_min=0; cp_max=10000; mode=2; %绘制的模式数 precision=1e-8; cpa=zeros(length(fd0),mode); cps=zeros(length(fd0),mode); for i=1:length(fd0) fd=fd0(i); [cp12, n]=ss(cps_min,cp_max,fd,cl,cs,mode); for j=1:n cp1=cp12(j,1); cp2=cp12(j,2); cps(i,j)=serfen(cp1,cp2,fd,cl,cs,precision); end [cp12, n]=aa(cpa_min,cp_max,fd,cl,cs,mode); for j=1:n cp1=cp12(j,1); cp2=cp12(j,2); cpa(i,j)=aerfen(cp1,cp2,fd,cl,cs,precision); end end h=zeros(mode,2); %绘制相速度 figure(1) for j=1:2 if j==1 cp=cps; %对称 color='b'; else cp=cpa; %反对称 color='r'; end for i=1:mode cpp=cp(:,i); ind=find(cpp==0); if ~isempty(ind) h(i,j)=plot((fd0(ind(end)+1:end))/d_lv,cpp(ind(end)+1:end),color); else h(i,j)=plot(fd0/d_lv,cpp,color); end hold on end if j==2 xlabel('f/(KHz)') ylabel('C_{p}/(km?s^{-1})') title('5mm铝板 相速度频散曲线') set(gca,'xtick',(0:0.6:20)*1e3/d_lv,'xticklabel',(0:0.6:20)*1e3/d_lv) xlim([0, 1000]);% set(gca,'ylim',[0 cp_max],'ytick',(0:cp_max/1e3)*1e3,... 'yticklabel',0:cp_max/1e3) grid on hSGroup = hggroup;%要在子对象构建之后构建,构建后立即使用,否则将失效 hAGroup = hggroup; set(h(:,1),'parent',hSGroup) set(h(:,2),'parent',hAGroup) set(get(get(hSGroup,'Annotation'),'LegendInformation'),... 'IconDisplayStyle','on'); set(get(get(hAGroup,'Annotation'),'LegendInformation'),... 'IconDisplayStyle','on'); legend('对称模式','反对称模式') end end % %绘制群速度 % figure(2) % for j=1:2 % if j==1 % cp=cps; % color='b'; % else % cp=cpa; % color='r'; % end % for i=1:mode % cpp=cp(:,i); % ind=find(cpp==0); % if ~isempty(ind) % fd=fd0(ind(end)+1:end)'; % cpp=cpp(ind(end)+1:end); % else % fd=fd0'; % end % dcdf=diff(cpp)/dfd; %diff是二阶差分变换 % cg=cpp(1:end-1).^2./(cpp(1:end-1)-fd(1:end-1).*dcdf); % h(i,j)=plot(fd(1:end-1)/d_lv,cg,color); % hold on % end % if j==2 % xlabel('f/(KHz)') % ylabel('C_{g}/(km?s^{-1})') % title('5mm铝板 群速度频散曲线') % set(gca,'xtick',(0:0.6:20)*1e3/d_lv,'xticklabel',(0:0.6:20)*1e3/d_lv) % xlim([0, 1000]);% % set(gca,'ylim',[0 5.5]*1e3,'ytick',(0:0.5:5.5)*1e3,'yticklabel',0:0.5:5.5) % grid on % hSGroup = hggroup;%要在子对象构建之后构建,构建后立即使用,否则将失效 % hAGroup = hggroup; % set(h(:,1),'parent',hSGroup) % set(h(:,2),'parent',hAGroup) % set(get(get(hSGroup,'Annotation'),'LegendInformation'),... % 'IconDisplayStyle','on'); % set(get(get(hAGroup,'Annotation'),'LegendInformation'),... % 'IconDisplayStyle','on'); % legend('对称模式','反对称模式') % end % end % %toc end % % %对称模式 function [cp0, n]=ss(cp_min,cp_max,fd,cl,cs,mode) %确定方程解的区间 cp2=cp_min; deter=33; %步长 cp0=zeros(mode,2); n=0; while cp2<cp_max&&n<mode cp1=cp2; cp2=cp1+deter; y1=smode(cp1,fd,cl,cs); y2=smode(cp2,fd,cl,cs); while y1*y2>0&&cp2<cp_max cp1=cp2; cp2=cp1+deter; y1=smode(cp1,fd,cl,cs); y2=smode(cp2,fd,cl,cs); end if y1*y2<0 n=n+1; cp0(n,:)=[cp1 cp2]; else if y1==0&&y2~=0 n=n+1; cp0(n,:)=[cp1 cp1]; elseif y2==0&&y1~=0 n=n+1; cp0(n,:)=[cp2 cp2]; cp2=cp2+1; elseif y1==0&&y2==0 n=n+1; cp0(n,:)=[cp1 cp1]; n=n+1; cp0(n,:)=[cp2 cp2]; cp2=cp2+1; end end end end function fs=smode(cp,fd,cl,cs) p=abs(sqrt((cp/cs)^2-1)); q=abs(sqrt((cp/cl)^2-1)); if cp<=cs%p和q都是复数 fs=-4*p*q*sinh(pi*fd/cp*q)*cosh(pi*fd/cp*p)+(-p^2-1)^2*sinh(pi*fd/cp*p)*cosh(pi*fd/cp*q); elseif cp>cs&&cp<=cl%p是实数,q是复数 fs=-4*p*q*sinh(pi*fd/cp*q)*cos(pi*fd/cp*p)+(p^2-1)^2*sin(pi*fd/cp*p)*cosh(pi*fd/cp*q); else fs=4*p*q*sin(pi*fd/cp*q)*cos(pi*fd/cp*p)+(p^2-1)^2*sin(pi*fd/cp*p)*cos(pi*fd/cp*q); end end function cp=serfen(cp1,cp2,fd,cl,cs,precision) while cp2-cp1>precision y1=smode(cp1,fd,cl,cs); y2=smode(cp2,fd,cl,cs); cp0=(cp1+cp2)/2; y0=smode(cp0,fd,cl,cs); if y1*y0<0 cp2=cp0; elseif y2*y0<0 cp1=cp0; elseif y0==0 break elseif y1==0 cp2=cp1; break elseif y2==0 cp1=cp2; break end end cp=(cp2+cp1)/2; end %反对称模式 function [cp0 n]=aa(cp_min,cp_max,fd,cl,cs,mode) cp2=cp_min; deter=0.2; cp0=zeros(mode,2); n=0; while cp2<cp_max&&n<mode cp1=cp2; cp2=cp1+deter; y1=amode(cp1,fd,cl,cs); y2=amode(cp2,fd,cl,cs); while y1*y2>0&&cp2<cp_max cp1=cp2; cp2=cp1+deter; y1=amode(cp1,fd,cl,cs); y2=amode(cp2,fd,cl,cs); end if y1*y2<0 n=n+1; cp0(n,:)=[cp1 cp2]; else if y1==0&&y2~=0 n=n+1; cp0(n,:)=[cp1 cp1]; elseif y2==0&&y1~=0 n=n+1; cp0(n,:)=[cp2 cp2]; cp2=cp2+1; elseif y1==0&&y2==0 n=n+1; cp0(n,:)=[cp1 cp1]; n=n+1; cp0(n,:)=[cp2 cp2]; cp2=cp2+1; end end end end function fs=amode(cp,fd,cl,cs) p=abs(sqrt((cp/cs)^2-1)); q=abs(sqrt((cp/cl)^2-1)); if cp<=cs%p和q都是复数 fs=-4*p*q*sinh(pi*fd/cp*p)*cosh(pi*fd/cp*q)+(-p^2-1)^2*sinh(pi*fd/cp*q)*cosh(pi*fd/cp*p); elseif cp>cs&&cp<=cl%p是实数,q是复数 fs=4*p*q*sin(pi*fd/cp*p)*cosh(pi*fd/cp*q)+(p^2-1)^2*sinh(pi*fd/cp*q)*cos(pi*fd/cp*p); else fs=4*p*q*sin(pi*fd/cp*p)*cos(pi*fd/cp*q)+(p^2-1)^2*sin(pi*fd/cp*q)*cos(pi*fd/cp*p); end end function cp=aerfen(cp1,cp2,fd,cl,cs,precision) while cp2-cp1>precision y1=amode(cp1,fd,cl,cs); y2=amode(cp2,fd,cl,cs); cp0=(cp1+cp2)/2; y0=amode(cp0,fd,cl,cs); if y1*y0<0 cp2=cp0; elseif y2*y0<0 cp1=cp0; elseif y0==0 break elseif y1==0 cp2=cp1; break elseif y2==0 cp1=cp2; break end end cp=(cp2+cp1)/2; end
评论
  • 从零@开始960723 2020-06-22 17:23:50
    适合新手拿来学习,需要近一步修改,与一些论文里的差距还是很大,继续修改
相关推荐
  • JYSJ.zip
    基于时反导波检测的管道缺陷圆周定位的基本原理及方法
  • matlabcnhelp.rar
    matlab中文帮助很难找的,快速下载
  • MobilePolice.rar
    移动警察,车牌识别,车牌定位系统源代码,已经运用在移动车载稽查系统中。
  • SVM(matlab).rar
    支持向量机(SVM)实现的分类算法源码[matlab]
  • svm.zip
    用MATLAB编写的svm源程序,可以实现支持向量机,用于特征分类或提取
  • Classification-MatLab-Toolbox.rar
    模式识别matlab工具箱,包括SVM,ICA,PCA,NN等等模式识别算法,很有参考价值
  • VC++人脸定位实例.rar
    一个经典的人脸识别算法实例,提供人脸五官定位具体算法及两种实现流程.
  • QPSK_Simulink.rar
    QPSK的Matlab/Simulink的调制解调仿真系统,给出接收信号眼图及系统仿真误码率,包含载波恢复,匹配滤波,定时恢复等重要模块,帮助理解QPSK的系统
  • LPRBPDemo2009KV.rar
    车牌识别,神经网络算法,识别率高达95%,识别时间低于80ms。
  • MODULATION.RAR
    这个源程序代码包提供了通信系统中BPSK,QPSK,OQPSK,MSK,MSK2,GMSK,QAM,QAM16等调制解调方式 用matlab的实现,以及它们在AWGN和Rayleigh信道下的通信系统实现及误码率性能