原创 机器人手臂程序位置

2019-11-5 22:10 709 11 4 分类: 工业电子 文集: MATLAB
  1. function [sys,x0,str,ts] = spacemodel(t,x,u,flag)
  2. %设置系统的初始值、长度、时间等
  3. switch flag,
  4. case 0,
  5. [sys,x0,str,ts]=mdlInitializeSizes;
  6. case 3,
  7. sys=mdlOutputs(t,x,u);
  8. case {2,4,9}
  9. sys=[];
  10. otherwise
  11. error(['Unhandled flag = ',num2str(flag)]);
  12. end
  13. %以上的选择参数


  1. function [sys,x0,str,ts]=mdlInitializeSizes
  2. sizes = simsizes;
  3. sizes.NumOutputs = 2;
  4. sizes.NumInputs = 6;
  5. sizes.DirFeedthrough = 1;
  6. sizes.NumSampleTimes = 1;
  7. sys = simsizes(sizes);
  8. x0 = [];
  9. str = [];
  10. ts = [0 0];
  11. %以上是输入信号



  1. function sys=mdlOutputs(t,x,u)
  2. R1=u(1);dr1=0;
  3. R2=u(2);dr2=0;
  4. x(1)=u(3);
  5. x(2)=u(4);
  6. x(3)=u(5);
  7. x(4)=u(6);
  8. e1=R1-x(1);
  9. e2=R2-x(3);
  10. e=[e1;e2];
  11. de1=dr1-x(2);
  12. de2=dr2-x(4);
  13. de=[de1;de2];
  14. Kp=[50 0;0 50];
  15. Kd=[50 0;0 50];
  16. tol=Kp*e+Kd*de;
  17. sys(1)=tol(1);
  18. sys(2)=tol(2);
  19. %以上是模型输出信号

这个是控制模型chap2_1ctrl,给定一个系统的模型。


  1. function [sys,x0,str,ts] = spacemodel(t,x,u,flag)
  2. switch flag,
  3. case 0,
  4. [sys,x0,str,ts]=mdlInitializeSizes;
  5. case 3,
  6. sys=mdlOutputs(t,x,u);
  7. case {2,4,9}
  8. sys=[];
  9. otherwise
  10. error(['Unhandled flag = ',num2str(flag)]);
  11. end
  12. function [sys,x0,str,ts]=mdlInitializeSizes
  13. sizes = simsizes;
  14. sizes.NumOutputs = 2;
  15. sizes.NumInputs = 6;
  16. sizes.DirFeedthrough = 1;
  17. sizes.NumSampleTimes = 1;
  18. sys = simsizes(sizes);
  19. x0 = [];
  20. str = [];
  21. ts = [0 0];
  22. function sys=mdlOutputs(t,x,u)
  23. R1=u(1);dr1=0;
  24. R2=u(2);dr2=0;
  25. x(1)=u(3);
  26. x(2)=u(4);
  27. x(3)=u(5);
  28. x(4)=u(6);
  29. e1=R1-x(1);
  30. e2=R2-x(3);
  31. e=[e1;e2];
  32. de1=dr1-x(2);
  33. de2=dr2-x(4);
  34. de=[de1;de2];
  35. Kp=[50 0;0 50];
  36. Kd=[50 0;0 50];
  37. tol=Kp*e+Kd*de;
  38. sys(1)=tol(1);
  39. sys(2)=tol(2);


这个是控制模型chap2_1plant,检测系统的模型。

本身这两个模型是一样的,唯一的不同点,一个是给定的系统模型,可以认为是精确的,后一个模型是检测模型,有一定的误差。

 

模型如图所示。



  1. close all;
  2. figure(1);
  3. subplot(211);
  4. plot(t,x1(:,1),'r',t,x1(:,2),'b');
  5. xlabel('time(s)');ylabel('position tracking of link 1');
  6. subplot(212);
  7. plot(t,x2(:,1),'r',t,x2(:,2),'b');
  8. xlabel('time(s)');ylabel('position tracking of link 2');
  9. figure(2);
  10. subplot(211);
  11. plot(t,tol(:,1),'r');
  12. xlabel('time(s)');ylabel('tol1');
  13. subplot(212);
  14. plot(t,tol(:,2),'r');
  15. xlabel('time(s)');ylabel('tol2');
  16. %以上是显示图形程序


仿真后的结果如图所示。



需要源程序或者有任何问题请联系 scut_08@sina.com

作者: curton, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3876349.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
curton 2020-04-27 21:39
电气知识水平决定下限,数学决定上限,有感。
用一句很流行的话说,电气知识水平决定下限,数学决定上限。   今天在上网的时候看到了这句话。   回想起我的大学的时候,我在大学四年期间修了如下有关...
curton 2020-04-27 21:31
读书日分享给你们
读书日分享给你们   春风拂面,流水悦耳,又来到了世界读书日,也是我国的全民阅读日。   早在2013年,中国共产党中央委员会总书记,中共中央军事委员会主席...
curton 2020-03-21 17:18
算法经济支撑的赛博智能经济讲座有感
 听取了算法经济支撑的赛博智能经济讲座,给我的第一个感觉就是我们的信息泄露的太多了。 该讲座从赛博这个词的来源说起,他是Cyber这个单词的音译,就是精准控制的意思。讲座从3个例子...
curton 2020-03-21 16:56
复杂场景下知识获取讲座
听取了复杂场景下知识获取讲座,从一个方面了解了机器学习,也是人类的自然语言处理发展的一个方向。 知识分为领域知识和事实知识。虽然我们知道一些知识是事实知识,但是对于计算机而言,这个也算是领域...
curton 2020-03-21 16:43
汽车电气学习策略研究
阅读文献WITH LEARNING ACHIEVEMENT AUTOMOTIVE ELECTRICAL IN CLASS XII&...
curton 2020-03-19 22:40
晚上的讲座,总是给人启迪更多-信息安全讲座
晚上听了学校的信息安全的讲座。讲了几个常见的案例,虽然这几个案例我之前也有所耳闻,但是没有用专业的角度去看待这些问题,毕竟信息安全对自己来说还是比较遥远的。虽然我不了解什么是漏洞,但是我知道有的软件是...
广告
我要评论
0
11
广告
关闭 热点推荐上一条 /4 下一条