现代控制理论(机器人方向)考核要求与Matlab(Octave)简明教程

举报
zhangrelay 发表于 2021/07/15 04:04:12 2021/07/15
【摘要】 课程全部资料请查阅课程分类:https://blog.csdn.net/zhangrelay/article/category/6161998 现代控制理论成绩构成为如下四个部分: 总成绩根据平时成绩(包括考勤、作业、课堂测试等占30%)、编程考核30%、创新实践报告10%、期末考试(占30%)综合评定。期末考试形式采用闭卷笔试。 创新实践报告模版:https...

课程全部资料请查阅课程分类https://blog.csdn.net/zhangrelay/article/category/6161998


现代控制理论成绩构成为如下四个部分:

总成绩根据平时成绩(包括考勤、作业、课堂测试等占30%)、编程考核30%、创新实践报告10%、期末考试(占30%)综合评定。期末考试形式采用闭卷笔试。

创新实践报告模版:https://share.weiyun.com/5tHl9I6

Octave Online(Matlab):https://octave-online.net/

编程示例:https://blog.csdn.net/ZhangRelay/article/details/51615389


Matlab简明教程(对应教材):

可以使用电脑系统Windows/MacOS/Linux,也可以使用手机系统Android/ios等实现。

>> connector on
首次运行 MATLAB Connector 时,必须指定密码。
请输入在设备上设置 MATLAB Mobile 时所用的同一密码。
Password: *************
DNS 名称: 
IP 地址: 192.168.x.xxx
使用此链接可测试 MATLAB Connector:
http://192.168.x.xxx:31415/
如果测试成功,但 MATLAB Mobile 无法连接,
可能是因为您的计算机有多个 IP 地址。要确定
正确的地址,请参阅确定计算机的 DNS 名称或 IP 地址。


倒立摆案例:


  
  1. A=[ 0 1 0 0; 0 0 0 0;0 0 0 1; 0 0 29.4 0]
  2. B=[0 ; 1 ; 0 ;3 ]
  3. C=[1 0 0 0; 0 0 1 0]
  4. D=[0 ; 0]
  5. syms t
  6. eAt=expm(A*t)
  7. ctrb(A,B)
  8. rank(ctrb(A,B))
  9. rank(obsv(A,C))
  10. step(A, B ,C ,D)
  11. flag=0;
  12. [z,p,k]=ss2zp(A,B,C,D,1);
  13. disp('系统零点,极点和增益为:');
  14. z
  15. p
  16. k
  17. n=length(A);
  18. for ii=1:n
  19. if real(p(ii))>0
  20. flag=1;
  21. end
  22. end
  23. if flag==1
  24. disp('系统不稳定');
  25. else
  26. disp('系统稳定');
  27. end
  28. % Q=eye(4,4);
  29. % P=lyap(A,Q);
  30. % flag=0;
  31. % n=length(A);
  32. % for i=1:n
  33. % det(P(1:i,1:i))
  34. % if(det(P(1:i,1:i))<=0)
  35. % flag=1;
  36. % end
  37. % end
  38. % if flag==1
  39. % disp('系统不稳定');
  40. % else
  41. % disp('系统稳定');
  42. % end
  43. P=[-10 -10 -2-2*sqrt(3)*i -2+2*sqrt(3)*i]
  44. K=acker(A,B,P)
  45. A =
  46. 0 1.0000 0 0
  47. 0 0 0 0
  48. 0 0 0 1.0000
  49. 0 0 29.4000 0
  50. B =
  51. 0
  52. 1
  53. 0
  54. 3
  55. C =
  56. 1 0 0 0
  57. 0 0 1 0
  58. D =
  59. 0
  60. 0
  61. eAt =
  62. [ 1, t, 0, 0]
  63. [ 0, 1, 0, 0]
  64. [ 0, 0, exp(-(7*3^(1/2)*5^(1/2)*t)/5)/2 + exp((7*3^(1/2)*5^(1/2)*t)/5)/2, (3^(1/2)*5^(1/2)*exp((7*3^(1/2)*5^(1/2)*t)/5))/42 - (3^(1/2)*5^(1/2)*exp(-(7*3^(1/2)*5^(1/2)*t)/5))/42]
  65. [ 0, 0, (7*3^(1/2)*5^(1/2)*exp((7*3^(1/2)*5^(1/2)*t)/5))/10 - (7*3^(1/2)*5^(1/2)*exp(-(7*3^(1/2)*5^(1/2)*t)/5))/10, exp(-(7*3^(1/2)*5^(1/2)*t)/5)/2 + exp((7*3^(1/2)*5^(1/2)*t)/5)/2]
  66. ans =
  67. 0 1.0000 0 0
  68. 1.0000 0 0 0
  69. 0 3.0000 0 88.2000
  70. 3.0000 0 88.2000 0
  71. ans =
  72. 4
  73. ans =
  74. 4
  75. 系统零点,极点和增益为:
  76. z =
  77. 5.4222 0.0000
  78. -5.4222 -0.0000
  79. p =
  80. 5.4222
  81. -5.4222
  82. 0
  83. 0
  84. k =
  85. 1.0000
  86. 3.0000
  87. 系统不稳定
  88. P =
  89. -10.0000 + 0.0000i -10.0000 + 0.0000i -2.0000 - 3.4641i -2.0000 + 3.4641i
  90. K =
  91. -54.4218 -24.4898 93.2739 16.1633

课后习题参考,编程示例不再重复列出。

第一章:状态空间表达式

num为传递函数分子参数,den为传递函数分母参数,tf为传递函数,ss为状态空间,

tf2ss传递函数转状态空间,ss2tf状态空间转传递函数。

掌握系统框图、模拟结构图、状态方程组、状态空间表达式(不唯一)、传递函数等。


  
  1. % 1.6
  2. num=[6];
  3. den=[1 6 41 7];
  4. [A B C D]=tf2ss(num,den)
  5. %1.7
  6. num=[360 440];
  7. den=[1 28 196 740];
  8. [A B C D]=tf2ss(num,den)
  9. %1.8
  10. %1.9
  11. A=[0 1 -1; -6 -11 6; -6 -11 5];
  12. [P J]=eig(A)
  13. inv(P)*[0;0;1]
  14. [1 0 0]*P
  15. %1.10
  16. [T J]=jordan(A)
  17. inv(T)*[0;0;1]
  18. [1 0 0]*T
  19. %1.11
  20. A=[0 1 0; 0 0 1; 2 3 0];
  21. [T J]=jordan(A)
  22. %[P J]=eig(A)

第二章:表达式的解

step求解阶跃,plot画图。


  
  1. %2.1 2.2 2.4 2.6
  2. syms t
  3. A=[0 1; -2 -3]
  4. eAt=expm(A*t)
  5. %2.3 2.7
  6. syms t
  7. A=[0 1 0; 0 0 1; 2 -5 4]
  8. eAt=expm(A*t)
  9. %2.8
  10. syms t
  11. A=[0 1; -2 -3]
  12. B=[0;1]
  13. x0=[0;0]
  14. eAt=expm(A*t)
  15. xt=eAt*x0+inv(A)*(eAt-1)*B*1

修订:


  
  1. %2.8
  2. syms t
  3. A=[0 1; -2 -3]
  4. B=[0;1]
  5. x0=[0;0]
  6. eAt=expm(A*t)
  7. xt=eAt*x0+int(eAt*B*1,t)
  8. %xt=eAt*x0+inv(A)*(eAt-1)*B*1
  9. %xt2.6
  10. syms t
  11. A=[0 1; 0 0]
  12. B=[0;1]
  13. C=[1 0]
  14. x0=[1;1]
  15. eAt=expm(A*t)
  16. xt=eAt*x0+int(eAt*B*1,t)
  17. %xt=eAt*x0+inv(A)*(eAt-1)*B*1
  18. yt=C*xt

第三章:能控性和能观性


  
  1. %3.2
  2. A=[-4 5;1 0]
  3. B=[-5;1]
  4. [T,J]=jordan(A)
  5. inv(T)*B
  6. %3.5
  7. M=[B, A*B]
  8. rank(M)
  9. %3.8
  10. A=[1 2 1; 0 1 0; 1 0 3]
  11. B=[1 0; 0 1; 0 0]
  12. M=[B A*B A*A*B]
  13. rank(M)

第四章:稳定性和李雅普诺夫法


  
  1. %4-1
  2. A=[-1 0; 0 1];
  3. B=[1;1];
  4. C=[1 0];
  5. D=[0];
  6. flag=0;
  7. [z,p,k]=ss2zp(A,B,C,D,1);
  8. disp('系统零点,极点和增益为:');
  9. z
  10. p
  11. k
  12. n=length(A);
  13. for i=1:n
  14. if real(p(i))>0
  15. flag=1;
  16. end
  17. end
  18. if flag==1
  19. disp('系统不稳定');
  20. else
  21. disp('系统稳定');
  22. end
  23. %4-5
  24. A=[0 1; -1 -1];
  25. Q=eye(2,2);
  26. P=lyap(A,Q);
  27. flag=0;
  28. n=length(A);
  29. for i=1:n
  30. det(P(1:i,1:i))
  31. if(det(P(1:i,1:i))<=0)
  32. flag=1;
  33. end
  34. end
  35. if flag==1
  36. disp('系统不稳定');
  37. else
  38. disp('系统稳定');
  39. end
  40. %4-6
  41. A=[0 1; -1 0];
  42. Q=eye(2,2);
  43. P=lyap(A,Q);
  44. flag=0;
  45. n=length(A);
  46. for i=1:n
  47. det(P(1:i,1:i))
  48. if(det(P(1:i,1:i))<=0)
  49. flag=1;
  50. end
  51. end
  52. if flag==1
  53. disp('系统不稳定');
  54. else
  55. disp('系统稳定');
  56. end
  57. %4-8
  58. A=[1 1; -1 1];
  59. Q=eye(2,2);
  60. P=lyap(A,Q);
  61. flag=0;
  62. n=length(A);
  63. for i=1:n
  64. det(P(1:i,1:i))
  65. if(det(P(1:i,1:i))<=0)
  66. flag=1;
  67. end
  68. end
  69. if flag==1
  70. disp('系统不稳定');
  71. else
  72. disp('系统稳定');
  73. end
  74. %4-9
  75. A=[0 1; -2 -3];
  76. Q=eye(2,2);
  77. P=lyap(A,Q);
  78. flag=0;
  79. n=length(A);
  80. for i=1:n
  81. det(P(1:i,1:i))
  82. if(det(P(1:i,1:i))<=0)
  83. flag=1;
  84. end
  85. end
  86. if flag==1
  87. disp('系统不稳定');
  88. else
  89. disp('系统稳定');
  90. end

第五章:线性定常系统综合


  
  1. %5-2
  2. A=[0 1 0;0 0 1;0 -2 -3];
  3. B=[0;0;1];
  4. P=[-2 -1+1i -1-1i];
  5. M=[B,A*B,A*A*B];
  6. n=length(A);
  7. rank(M)
  8. if rank(M)==n
  9. disp('系统可控')
  10. disp('状态反馈')
  11. K=acker(A,B,P)
  12. else
  13. disp('系统不可控')
  14. [Ac,Bc,Cc,T,K]=ctrbf(A,B,C)
  15. end
  16. Ac=A-B*K
  17. disp('配置后极点')
  18. eig(Ac)

第六章:最优控制

-未完待续-


 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/88654172

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。