声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1203|回复: 6

[综合讨论] 请教这个程序什么意思?

[复制链接]
发表于 2008-4-23 20:32 | 显示全部楼层 |阅读模式

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

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

x
最近研究倒立摆的仿真,由于刚接触matlab,还在学习阶段。自己找了个程序有很多看不明白,希望大家都看看。

  1. clear;
  2. M = 1.096;                  %小车质量

  3. m = 0.109;                  %摆杆质量
  4. b = 0.1;                          %摩擦系数
  5. f=0;                               %unknow
  6. I= 0.0034;                      %转动惯量
  7. g = 9.8;                            %重力加速度
  8. l = 0.25;                           %摆杆长度
  9. D = I*(M+m)+M*m*l^2;   %A和B共有
  10. A = [0 ,1, 0, 0;
  11.          0 ,-(I+m*l^2)*b/D ,(m^2*g*l^2)/D ,-m*l*f/D;
  12.          0,0,0,1;
  13.             0,-(m*l*b)/D,m*g*l*(M+m)/D,-(m+M)*f/D]
  14. B = [0; -(I+m*l^2)/D;0;-m*l/D];
  15. C = [1,0,0,0;0,0,1,0];
  16. D = [0;0];
  17. disp('The rank of controllability matrix')
  18. rc=rank(ctrb(A,B))
  19. % p=[-2-3*i,-2+3*i,-20,-21];
  20. p=[-20,-21,-2-3*i,-2+3*i];                         %p表示什么
  21. k=place(A,B,p)                                   %place函数功能是什么,怎么用
  22. Cn=[1 0 0 0 ];
  23. Nbar=rscale(A,B,Cn,0,k)                       %rscale函数功能是什么,怎么用
  24. t0=0;
  25. tspan=0.006;
  26. R=1;                                                                    %以下的就更不明白了
  27. y0=[0 0 0.1 0];
  28. n=1000;
  29. F=R*Nbar-k*y0';
  30. for i=1:n

  31. tf=t0+tspan;

  32. [t,y]=ode45(@xprime10,[t0 tf],y0',[],F);

  33. t0=tf;

  34. y1=y(end,1);

  35. y2=y(end,2);

  36. y3=y(end,3);

  37. y4=y(end,4);

  38. y0=[y1 y2 y3 y4];

  39. F=R*Nbar-k*y0';

  40. h(i,1)=y1;

  41. h(i,2)=y2;

  42. h(i,3)=y3;

  43. h(i,4)=y4;

  44. h(i,5)=F;
  45. end

  46. T=0.006:0.006:6;

  47. figure(1)

  48. plot(T,h(:,1),':b')

  49. legend('小车位移')

  50. grid

  51. figure (2)

  52. plot(T,h(:,3),'-r')

  53. legend('摆杆摆角')

  54. grid

  55. figure(3)

  56. plot(T,h(:,5),'--g')

  57. legend('F')

  58. grid
复制代码



程序运行结果及相应图形:
A =
         0    1.0000         0         0
         0   -0.0883    0.6293         0
         0         0         0    1.0000
         0   -0.2357   27.8285         0

The rank of controllability matrix
rc =
     4

k =
  236.4228   95.9248 -353.7495  -55.0080

Nbar =
  236.4228


   
1.jpg
2.jpg
3.jpg
回复
分享到:

使用道具 举报

发表于 2008-4-23 20:35 | 显示全部楼层
:@L 这程序写得,不好意思,我根本不想看。建议从简单看起,找本比较正规的书,matlab初期的良好书写习惯相当重要

[ 本帖最后由 raozel 于 2008-4-23 20:37 编辑 ]
 楼主| 发表于 2008-4-23 20:41 | 显示全部楼层

回复 2楼 的帖子

仿真程序我也没写过。。。。所以很没经验,自己找的也看不明白。。。。。。。。
刚才是由于发帖子的时候发生乱码了,刚重新编辑了一下。现在看应该不乱了啊!
发表于 2008-4-23 20:58 | 显示全部楼层
嗯,确实不乱了,不过你这问题属于物理问题,最好把物理情景和相应的方程写出来。
 楼主| 发表于 2008-4-23 22:01 | 显示全部楼层

回复 4楼 的帖子

这个是一级倒立摆的建模后的仿真,建模后列出空间状态方程。。。程序的前部分都是关于状态方程的,后边的我也不知是什么了。。。
我也只知道这么多了。
关键是我这个问题提的不合理,不联系实际模型而只看程序很难看出程序的功能。
发表于 2008-4-24 08:57 | 显示全部楼层

回复 5楼 的帖子

物理背景都不清楚,让别人怎么看呢

还是先静下心来,找本基础书看看,一些常用的命令等
还可以查看帮助文档
 楼主| 发表于 2008-4-24 09:54 | 显示全部楼层
这个问题确实提的very foolish.
这个帖子大家都不要回复了。。。
我要是有什么不明白的会继续讨教的!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 12:38 , Processed in 0.064993 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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