声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3097|回复: 10

[稳定性与分岔] 定义法求Lyapunov指数的结果(非自治、9个变量)

[复制链接]
发表于 2010-12-4 19:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
电脑配置:E5200,3G
耗时:Elapsed time is 5148.729930 seconds.
结果:

Lyapunov指数

Lyapunov指数

疑惑:指数绝对值居然达到100?计算一次耗时如此之久?
期待:大家帮助分析一下;提供更有效、准确计算LE方法。
代码:1 微分方程定义 2 GS正交化  3  求解
PS:因为Jacobian矩阵过大,屏幕无法显示,所以在此不列出。

part1:微分方程定义



  1. function du = myfun(t,u)
  2.   m1 = 60;               %转子质量 kg
  3.   m2 = 25;               %轴颈质量 kg
  4.   c1 = 4000;             %转子阻尼 N.s/m
  5.   c2 = 1200;             %轴承阻尼 N.s/m
  6.   Ke = 6.2*10^6;          %转轴刚度 N/m
  7.   
  8.   e0 = 0.6*10^-3;        %转子质量偏心 m
  9.   
  10.   Rr = 60*10^-3;         %转子半径 m
  11.   Lr = 150*10^-3;        %转子长 m
  12.   delta_0 = 4.5*10^-3;   %均匀气隙大小 m
  13.   
  14.   cz = 0.2*10^-3;        %轴颈间隙 m
  15.   
  16.   Rb = 50*10^-3;         %轴承半径 m
  17.   
  18.       
  19.   Lb = 20*10^-3;          %轴承长 m
  20.   
  21.   mu = 18*10^-3;         %绝对润滑油粘度 无单位
  22.   mu_0 = 4*pi*10^-7;     %空气磁导系数 H/m  
  23.   kj = 5.2;              %气隙基波磁动势系数 无单位
  24.   Ij = 4;            %励磁电流
  25.   Fj = kj^2 * Ij^2;              %励磁电流的基波磁动势幅值
  26.   
  27.   omega = 13;            %大轴旋转角速度
  28.   
  29.   
  30.   
  31.   
  32. u1 = u(1);
  33. u2 = u(2);
  34. u3 = u(3);
  35. u4 = u(4);
  36. u5 = u(5);
  37. u6 = u(6);
  38. u7 = u(7);
  39. u8 = u(8);
  40. u9 = u(9);

  41. %%% 不平衡磁拉力表达式 Fx  Fy   %%%%
  42.   e = sqrt(u(1).^2 + u(3).^2);                           %转子轴心轨迹
  43.   F_coeffi = Rr * Lr *pi *mu_0 *Fj^2 /delta_0.^2;
  44.   Fx = F_coeffi * (1/2 * e + 5/8 * e.^3) * u(1)./e;
  45.   Fy = F_coeffi * (1/2 * e + 5/8 * e.^3) * u(3)./e;       %不平衡磁拉力
  46.   
  47.   
  48.   %%% 非线性油膜力表达式 fx  fy  %%%%
  49.   
  50.   sigma = mu * omega * Rb * Lb * (Rb/cz)^2 * (Lb/2/Rb)^2;        %Sommerfeld修正系数
  51.   
  52.   A1 = u(7) + 2*u(6);
  53.   A2 = u(5) - 2*u(8);
  54.   
  55.   alpha = atan(A1./A2) - pi/2* sign(A1./A2) - pi/2* sign(A1);
  56.   
  57. E = sqrt(u(5).^2 +u(7).^2);                     %轴颈轴心轨迹
  58. E_minus = sqrt(1 -E.^2);

  59. B1 = u(7)*cos(alpha) - u(5)*sin(alpha);
  60. B2 = u(5)*cos(alpha) + u(7)*sin(alpha);
  61.   
  62.   G = 2./E_minus * ( pi/2 + atan(B1./ E_minus) );
  63.   V = (2 + B1 * G) ./  E_minus.^2;
  64.   S = B2 ./ ( 1 - B2.^2 );
  65.   
  66.   F_oil_same = -sqrt( A2.^2 + A1.^2 ) ./ E_minus.^2;
  67.   
  68.   f_x = F_oil_same * ( 3* u(5) *V - sin(alpha) * G - 2 *cos(alpha)*S );
  69.   f_y = F_oil_same * ( 3* u(7) *V + cos(alpha) * G - 2 *sin(alpha)*S );     %油膜力的无量纲表达式
  70.   
  71.   fx = sigma * f_x;
  72.   fy = sigma * f_y;              %非线性油膜力
  73.   
  74.   
  75.   Q = [u(10) u(19) u(28) u(37) u(46) u(55) u(64) u(73) u(82);
  76.       u(11) u(20) u(29) u(38) u(47) u(56) u(65) u(74) u(83);
  77.       u(12) u(21) u(30) u(39) u(48) u(57) u(66) u(75) u(84);
  78.       u(13) u(22) u(31) u(40) u(49) u(58) u(67) u(76) u(85);
  79.       u(14) u(23) u(32) u(41) u(50) u(59) u(68) u(77) u(86);
  80.       u(15) u(24) u(33) u(42) u(51) u(60) u(69) u(78) u(87);
  81.       u(16) u(25) u(34) u(43) u(52) u(61) u(70) u(79) u(88);
  82.       u(17) u(26) u(35) u(44) u(53) u(62) u(71) u(80) u(89);
  83.       u(18) u(27) u(36) u(45) u(54) u(63) u(72) u(81) u(90);
  84.   ];

  85. du = zeros(90,1);
  86.   du(1) = u(2);
  87.   du(2) = -c1/(m1*omega) * u(2) - Ke/(m1*omega^2) * u(1) + Ke * cz/(m1*omega^2*delta_0)*u(5) + e0 * cos(u(9))/delta_0 + Fx/(m1*omega^2*delta_0);
  88.   du(3) = u(4);
  89.   du(4) = -c1/(m1*omega) * u(4) - Ke/(m1*omega^2) * u(3) + Ke * cz/(m1*omega^2*delta_0)*u(7) + e0 * sin(u(9))/delta_0 + Fy/(m1*omega^2*delta_0);
  90.   du(5) = u(6);
  91.   du(6) = -c2/(m2*omega) * u(6) + Ke * delta_0/(2*m2*omega^2*cz) * u(1) - Ke/(2*m2*omega^2) * u(5) + fx/(m2*omega^2 *cz);
  92.   du(7) = u(8);
  93.   du(8) = -c2/(m2*omega) * u(8) + Ke * delta_0/(2*m2*omega^2*cz) * u(3) - Ke/(2*m2*omega^2) * u(7) + fy/(m2*omega^2 *cz);
  94.   du(9) = 1;

  95. J = [];       %没有列出来

  96. du(10:90) = J*Q;

复制代码



part 2: GS正交化



  1. %%%    G-S正交化     %%%%%%
  2. function A = NineGS(V)       % V为  9*9 向量
  3. v1 = V(:,1);
  4. v2 = V(:,2);
  5. v3 = V(:,3);
  6. v4 = V(:,4);
  7. v5 = V(:,5);
  8. v6 = V(:,6);
  9. v7 = V(:,7);
  10. v8 = V(:,8);
  11. v9 = V(:,9);
  12. a1 = zeros(9,1);
  13. a2 = zeros(9,1);
  14. a3 = zeros(9,1);
  15. a4 = zeros(9,1);
  16. a5 = zeros(9,1);
  17. a6 = zeros(9,1);
  18. a7 = zeros(9,1);
  19. a8 = zeros(9,1);
  20. a9 = zeros(9,1);
  21. a1 = v1;
  22. a2 = v2 - ((a1'*v2)/(a1'*a1))*a1;
  23. a3 = v3 - ((a1'*v3)/(a1'*a1))*a1 - ((a2'*v3)/(a2'*a2))*a2;
  24. a4 = v4 - ((a1'*v4)/(a1'*a1))*a1 - ((a2'*v4)/(a2'*a2))*a2 - ((a3'*v4)/(a3'*a3))*a3;
  25. a5 = v5 - ((a1'*v5)/(a1'*a1))*a1 - ((a2'*v5)/(a2'*a2))*a2 - ((a3'*v5)/(a3'*a3))*a3 - ((a4'*v5)/(a4'*a4))*a4;
  26. a6 = v6 - ((a1'*v6)/(a1'*a1))*a1 - ((a2'*v6)/(a2'*a2))*a2 - ((a3'*v6)/(a3'*a3))*a3 - ((a4'*v6)/(a4'*a4))*a4 - ((a5'*v6)/(a5'*a5))*a5;
  27. a7 = v7 - ((a1'*v7)/(a1'*a1))*a1 - ((a2'*v7)/(a2'*a2))*a2 - ((a3'*v7)/(a3'*a3))*a3 - ((a4'*v7)/(a4'*a4))*a4 - ((a5'*v7)/(a5'*a5))*a5 - ((a6'*v7)/(a6'*a6))*a6;
  28. a8 = v8 - ((a1'*v8)/(a1'*a1))*a1 - ((a2'*v8)/(a2'*a2))*a2 - ((a3'*v8)/(a3'*a3))*a3 - ((a4'*v8)/(a4'*a4))*a4 - ((a5'*v8)/(a5'*a5))*a5 - ((a6'*v8)/(a6'*a6))*a6 - ((a7'*v8)/(a7'*a7))*a7;
  29. a9 = v9 - ((a1'*v9)/(a1'*a1))*a1 - ((a2'*v9)/(a2'*a2))*a2 - ((a3'*v9)/(a3'*a3))*a3 - ((a4'*v9)/(a4'*a4))*a4 - ((a5'*v9)/(a5'*a5))*a5 - ((a6'*v9)/(a6'*a6))*a6 - ((a7'*v9)/(a7'*a7))*a7 - ((a8'*v9)/(a8'*a8))*a8;
  30. A = [a1 a2 a3 a4 a5 a6 a7 a8 a9];

复制代码


part 3: 求解LE




  1. %%%%      求解LE指数       %%%%%%%
  2. tic
  3. clc
  4. clear;
  5. yinit = [0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0];          % 初始值
  6. orthmatrix = eye(9,9);
  7. %————————————系统参数————————————————%
  8.   m1 = 60;               %转子质量 kg
  9.   m2 = 25;               %轴颈质量 kg
  10.   c1 = 4000;             %转子阻尼 N.s/m
  11.   c2 = 1200;             %轴承阻尼 N.s/m
  12.   Ke = 6.2*10^6;          %转轴刚度 N/m
  13.   
  14.   e0 = 0.6*10^-3;        %转子质量偏心 m
  15.   
  16.   Rr = 60*10^-3;         %转子半径 m
  17.   Lr = 150*10^-3;        %转子长 m
  18.   delta_0 = 4.5*10^-3;   %均匀气隙大小 m
  19.   
  20.   cz = 0.2*10^-3;        %轴颈间隙 m
  21.   
  22.   Rb = 50*10^-3;         %轴承半径 m
  23.   
  24.       
  25.   Lb = 20*10^-3;          %轴承长 m
  26.   
  27.   mu = 18*10^-3;         %绝对润滑油粘度 无单位
  28.   mu_0 = 4*pi*10^-7;     %空气磁导系数 H/m  
  29.   kj = 5.2;              %气隙基波磁动势系数 无单位
  30.   Ij = 4;            %励磁电流
  31.   Fj = kj^2 * Ij^2;              %励磁电流的基波磁动势幅值
  32.   
  33.   omega = 13;            %大轴旋转角速度
  34.   
  35.   
  36.   %——————————————————求解LE————————————%
  37.   
  38.   y = zeros(90,1);
  39.   
  40.   y(1:9) = yinit;
  41.   y(10:90) = orthmatrix;
  42.   tstart = 0;                   % 时间初始值
  43.   tstep = 1e-3;                 % 时间步长
  44.   wholetimes = 1e5;             % 总的循环次数
  45.   steps = 10;                   % 每次演化的步数  
  46.   iteratetimes = wholetimes/steps;              % 演化的次数
  47.   mod = zeros(9,1);             % 方程求解后的模
  48.   lp = zeros(9,1);
  49.   
  50.   % 初始化9个Lyapunov指数
  51.   Lyapunov1 = zeros(iteratetimes,1);
  52.   Lyapunov2 = zeros(iteratetimes,1);
  53.   Lyapunov3 = zeros(iteratetimes,1);
  54.   Lyapunov4 = zeros(iteratetimes,1);
  55.   Lyapunov5 = zeros(iteratetimes,1);
  56.   Lyapunov6 = zeros(iteratetimes,1);
  57.   Lyapunov7 = zeros(iteratetimes,1);
  58.   Lyapunov8 = zeros(iteratetimes,1);
  59.   Lyapunov9 = zeros(iteratetimes,1);
  60.   
  61.   for i = 1:iteratetimes
  62.       disp(i)
  63.       tspan = tstart:tstep:(tstart + tstep*steps);
  64.       [T,Y] = ode15s('myfun',tspan,y);
  65.       y = Y(size(Y,1),:);
  66.       % 重新定义起始时刻
  67.       tstart = tstart + tstep*steps;
  68.       y0 = [y(10) y(19) y(28) y(37) y(46) y(55) y(64) y(73) y(82);
  69.             y(11) y(20) y(29) y(38) y(47) y(56) y(65) y(74) y(83);
  70.             y(12) y(21) y(30) y(39) y(48) y(57) y(66) y(75) y(84);
  71.             y(13) y(22) y(31) y(40) y(49) y(58) y(67) y(76) y(85);
  72.             y(14) y(23) y(32) y(41) y(50) y(59) y(68) y(77) y(86);
  73.             y(15) y(24) y(33) y(42) y(51) y(60) y(69) y(78) y(87);
  74.             y(16) y(25) y(34) y(43) y(52) y(61) y(70) y(79) y(88);
  75.             y(17) y(26) y(35) y(44) y(53) y(62) y(71) y(80) y(89);
  76.             y(18) y(27) y(36) y(45) y(54) y(63) y(72) y(81) y(90);
  77. ];
  78.       %正交化
  79.       y0 = NineGS(y0);
  80.       %取九个向量的模
  81.       mod(1) = sqrt(y0(:,1)' * y0(:,1));
  82.       mod(2) = sqrt(y0(:,2)' * y0(:,2));
  83.       mod(3) = sqrt(y0(:,3)' * y0(:,3));
  84.       mod(4) = sqrt(y0(:,4)' * y0(:,4));
  85.       mod(5) = sqrt(y0(:,5)' * y0(:,5));
  86.       mod(6) = sqrt(y0(:,6)' * y0(:,6));
  87.       mod(7) = sqrt(y0(:,7)' * y0(:,7));
  88.       mod(8) = sqrt(y0(:,8)' * y0(:,8));
  89.       mod(9) = sqrt(y0(:,9)' * y0(:,9));
  90.       
  91.       y0(:,1) = y0(:,1)/mod(1);
  92.       y0(:,2) = y0(:,2)/mod(2);
  93.       y0(:,3) = y0(:,3)/mod(3);
  94.       y0(:,4) = y0(:,4)/mod(4);
  95.       y0(:,5) = y0(:,5)/mod(5);
  96.       y0(:,6) = y0(:,6)/mod(6);
  97.       y0(:,7) = y0(:,7)/mod(7);
  98.       y0(:,8) = y0(:,8)/mod(8);
  99.       y0(:,9) = y0(:,9)/mod(9);
  100.       
  101.       lp = lp + log(abs(mod));
  102.       
  103.       %九个Lyapunov指数
  104.       Lyapunov1(i) = lp(1)/(tstart);
  105.       Lyapunov2(i) = lp(2)/(tstart);
  106.       Lyapunov3(i) = lp(3)/(tstart);
  107.       Lyapunov4(i) = lp(4)/(tstart);
  108.       Lyapunov5(i) = lp(5)/(tstart);
  109.       Lyapunov6(i) = lp(6)/(tstart);
  110.       Lyapunov7(i) = lp(7)/(tstart);
  111.       Lyapunov8(i) = lp(8)/(tstart);
  112.       Lyapunov9(i) = lp(9)/(tstart);
  113.       
  114.       y(10:90) = y0';
  115.   end
  116.   
  117.   % 作Lyapunov指数谱图
  118.   i = 1:iteratetimes;
  119.   plot(i,Lyapunov1, i,Lyapunov2, i,Lyapunov3, i,Lyapunov4, i,Lyapunov5, i,Lyapunov6, i,Lyapunov7, i,Lyapunov8,  i,Lyapunov9);
  120.   toc
  121.       
复制代码


感谢hsfy919和oct先前的帮助,特别是hsfy919提示我的方程采用定义法可以直接求解。本来我认为希望已经出现,但现实还是有些不尽如人意。我的微分方程中有个讨厌的非线性油膜力,表达式很复杂,导致Jacobian矩阵复杂得一塌糊涂,可能是因为它直接影响了计算精度和耗时。现在真的没有太好的办法了,已经看了好久,但是一些问题还是不清楚。望各位帮助一下,如果弄好了一定回来同各位分享。
PS:此程序算法是参考了oct学长的总结性帖子得来,表示感谢。   







本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2010-12-6 12:40 | 显示全部楼层
到100是不可能的,对于超混沌来说,这个数值也大了。

试试LET工具箱!
 楼主| 发表于 2010-12-7 08:29 | 显示全部楼层
回复 2 # octopussheng 的帖子

LET工具箱计算得到指数

LET工具箱计算得到指数

学长,用let工具箱计算后得到的结果依然不是很理想,我看其他的文献上最大LE不会超过10,我的这个算了100秒,已经达到了20多,而且看趋势也没有下降的意思,愁人了,呵呵。

LE.jpg
发表于 2010-12-7 19:44 | 显示全部楼层
不行就试试wolf或者小数据量方法吧
发表于 2011-1-11 00:16 | 显示全部楼层
请问:您看过无限维系统的lyapunov spectrum具体怎么选吗?
我看了Farmer的方法,但是还是不明白!
见:chaotic attractors of an infinite-dimensional dynamical system.pdf
 楼主| 发表于 2011-1-11 09:26 | 显示全部楼层
回复 5 # sch_LNQ 的帖子

这方面我也不清楚,因为对于我自身的系统还没有弄清楚应该如何计算LE。
发表于 2011-1-12 19:36 | 显示全部楼层
智能建议再检查检查Jacobian矩阵了。
发表于 2011-1-14 16:55 | 显示全部楼层
先看一下相图,应该可以初步判断结果是否有问题
 楼主| 发表于 2011-1-15 10:40 | 显示全部楼层
回复 8 # gghhjj 的帖子

感谢学长回答。之前对这方面内容掌握不好,只知道观察单一的相图或者映射图,实际上应该将相图、映射图和频谱图等结合作出判断。
发表于 2011-1-17 09:17 | 显示全部楼层

据个人了解非线性问题现在还没有一种判别方法非常完善
所以通过多种方法综合判定才是比较可靠地
 楼主| 发表于 2011-1-18 08:14 | 显示全部楼层
回复 10 # gghhjj 的帖子

这些天从gghhjj和yejet两位学长这里学到了很多东西,感谢你们的帮助。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-19 12:38 , Processed in 0.066642 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表