电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

matlab动力学分析程序详解VIP免费

matlab动力学分析程序详解_第1页
1/11
matlab动力学分析程序详解_第2页
2/11
matlab动力学分析程序详解_第3页
3/11
1 1.微分方程的定义 对于duffing 方程032xxx,先将方程写作3112221xxxxx function dy=duffing(t,x) omega=1;%定义参数 f1=x(2); f2=-omega^2*x(1)-x(1)^3; dy=[f1;f2]; 2.微分方程的求解 function solve (tstop) tstop=500;%定义时间长度 y0=[0.01;0];%定义初始条件 [t,y]=ode45('duffing',tstop,y0,[]); function solve (tstop) step=0.01;%定义步长 y0=rand(1,2);%随机初始条件 tspan=[0:step:500];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); 3.时间历程的绘制 时间历程横轴为t,纵轴为y ,绘制时只取稳态部分。 plot(t,y(:,1));%绘制y 的时间历程 xlabel('t')%横轴为t ylabel('y')%纵轴为y grid;%显示网格线 2 axis([460 500 -Inf Inf])%图形显示范围设置 4.相图的绘制 相图的横轴为y ,纵轴为dy /dt,绘制时也只取稳态部分。红色部分表示只取最后 1000 个点。 plot(y(end-1000:end,1),y(end-1000:end,2));%绘制y 的时间历程 xlabel('y')%横轴为y ylabel('dy/dt')%纵轴为dy/dt grid;%显示网格线 5.Poincare 映射的绘制 对于不同的系统,Poincare 截面的选取方法也不同 对于自治系统一般每过其对应线性系统的固有周期,截取一次 对于非自治系统,一般每过其激励的周期,截取一次 例程:duffing 方程032xxx的poincare 映射 function poincare(tstop) global omega; omega=1; T=2*pi/omega;%线性系统的周期或激励的周期 step=T/100;%定义步长为T/100 y0=[0.01;0];%初始条件 tspan=[0:step:100*T];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); for i=5000:100:10000%稳态过程每个周期取一个点 plot(y(i,1),y(i,2),'b.'); hold on;% 保留上一次的图形 end xlabel('y');ylabel('dy/dt'); 3 Poincare 映射也可以通过取极值点得到 function poincare(tstop) y0=[0.01;0]; tspan=[0:0.01:500]; [t,y]=ode45('duffing',tspan,y0); count=find(t>100);%截取稳态过程 y=y(count,:); n=length(y(:,1));%计算点的总数 for i=2:n-1 if y(i-1,1)+epsy(i+1,1)+eps % 简单的取出局部最大值 plot(y(i,1),y(i,2),'.'); hold on end end xlabel('y');ylabel('dy/dt'); 6 .频谱 yy=fft(y(end-1000:end,1)); N=length(yy); power=abs(yy); freq=(1:N-1)*1/step/N; plot(freq(1:N...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

matlab动力学分析程序详解

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部