控制系统数字仿真与CAD-第四次实验-附完整代码

简介: 控制系统数字仿真与CAD-第四次实验-附完整代码

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

完整代码

 

exc4.m

1. clear;
2. clear all;
3. clear close;
4. sa=2;sb=20;l=sb-sa;
5. e=1e-5;
6. x1=sa+(1-0.618)*l;
7. x2=sa+0.618*l;
8. q1=obj_asr(x1);
9. q2=obj_asr(x2);
10. count=0;
11. x_dot=[x1,x2];
12. while((sb-sa)/l>e)
13. if(q1>q2)
14.         sa=x1;
15.         x1=x2;
16.         q1=q2;
17.         x2=sa+0.618*(sb-sa);
18.         x_dot=[x_dot,x2];
19.         q2=obj_asr(x2);
20. else
21.         sb=x2;
22.         x2=x1;
23.         q2=q1;
24.         x1=sa+(1-0.618)*(sb- sa);
25.         x_dot=[x_dot,x1];
26.         q1=obj_asr(x1);
27. end
28. end
29. Kn_opt=(x1+x2)/2;
30. q_min=obj_asr(Kn_opt);
31. opt_asr_plot(Kn_opt);

fun4.m

1. function [result]=fun4(Kn)
2. tn=0.03;
3. Ki=0.269;
4. ti=0.067;
5. Ks=76;
6. Ts=0.00167;
7. R=6.58;
8. Tl=0.018;
9. Tm=0.25;
10. Ce=0.031;
11. Alpha=0.00337;
12. Beta=0.4;
13. A=[0 0 1 1 0];
14. B=[tn ti Ts Tl Tm*Ce];
15. C=[Kn Ki Ks 1/R R];
16. D=[Kn*tn Ki*ti 0 0 0];
17. c=8;
18. r=1;
19. W=[0 0 0 0 -Alpha;
20. 1 0 0 -Beta 0;
21. 0 1 0 0 0;
22. 0 0 1 0 -Ce;
23. 0 0 0 1 0];
24. W0=[1 0 0 0 0 ]';
25. block_num=5;
26. h=0.001; 
27. t_end=0.5;
28. t=0:h:t_end;
29. for k=1:block_num
30.     if (A(k)==0) %求积分或积分比例环节各系数
31.         FI(k)=1;
32.         FIM(k)=h*C(k)/B(k);
33.         FIJ(k)=h*h*C(k)/B(k)/2; 
34.         FIC(k)=1;
35.         FID(k)=0;
36.         if(D(k)~=0) %若为积分比例,修正fai d
37.             FID(k)=D(k)/B(k);
38.         end
39.     else
40.         FI(k)=exp(-h*A(k)/B(k)); % 求惯性或惯性比例环节各系数 
41.         FIM(k)=(1-FI(k))*C(k)/A(k);
42.         FIJ(k)=h*C(k)/A(k)-FIM(k)*B(k)/A(k); 
43.         FIC(k)=1;
44.         FID(k)=0;
45.         if(D(k)~=0)
46.             FIC(k)=C(k)/D(k)-A(k)/B(k);
47.             FID(k)=D(k)/B(k);
48.         end
49.     end
50. end
51. Y0=[0 0 0 0 0]'; 
52. n=length(t);
53. Y=Y0;
54. X=zeros(block_num,1);
55. result=Y;
56. Uk=zeros(block_num,1);
57. Ub=Uk; 
58. for m=1:(n-1)
59.     Ub=Uk;
60.     Uk=W*Y+W0*r;
61.     Uf=2*Uk-Ub;
62.     Udot=(Uk-Ub)/h;
63. %     X=FI'.*X+FIM'.*Uk;
64. %     Y=FIC'.*X+FID'.*Uf;
65.     X=FI'.*X+FIM'.*Uk+FIJ'.*Udot;
66.     Y=FIC'.*X+FID'.*Uf;
67.     Y(1)=satur(Y(1),c);
68.     result=[result,Y];
69. end
70. 
71. end

obj_asr.m

1. function q=obj_asr(Kn)
2. result = fun4(Kn);
3. y_inf = 296.7350;
4. q=100*(max(result(5,:))-y_inf)/y_inf; 
5. end

opt_asr_plot.m

1. function q=opt_asr_plot(Kn)
2. result = fun4(Kn);
3. h=0.001; 
4. t_end=0.5;
5. t=0:h:t_end;
6. figure
7. subplot(4,1,1),plot(t,result(4,:)),grid,title('Id')
8. subplot(4,1,2),plot(t,result(3,:)),grid,title('Ud')
9. subplot(4,1,3),plot(t,result(2,:)),grid,title('ACR')
10. subplot(4,1,4),plot(t,result(1,:)),grid,title('ASR')
11. figure;
12. plot(t,result(5,:),'r');grid,title('n') 
13. end

satur.m

1. function [uo]=satur(ui,c)
2. if (abs(ui)<=c)
3.     uo=ui;
4. elseif (ui>c)
5.     uo=c;
6. else
7.     uo=-c;
8. end
9. end

相关文章
|
1月前
|
传感器 算法
基于波特图的控制系统设计算法
波特图(Bode Plot)是一种用于描述线性控制系统频率响应的图形表示方法,通常用于分析和设计控制系统。它以控制系统的传递函数(或频域传递函数)为基础,将系统的幅频特性(振幅-频率响应)和相频特性(相位-频率响应)以图形的方式展示出来。可以根据波特图理解和评估系统的稳定性、性能和鲁棒性。 波特图可以指导控制器的设计。通过调整控制器的参数,可以改变系统的频率响应,以满足特定的性能要求。波特图提供了反馈信息,帮助选择合适的控制器类型和参数,以达到期望的控制效果。本文使用串联超前校正、串联滞后校正、滞后-超前校正及PID校正,进行控制器的设计。 三频段理论: 频率法串联校正 控制系统串联校
104 31
|
6月前
|
传感器 数据采集 安全
LabVIEW编程控制ABB机械臂
LabVIEW编程控制ABB机械臂
79 0
|
8月前
|
安全
案例分析:DC电源模块应用于工业仪器
案例分析:DC电源模块应用于工业仪器
案例分析:DC电源模块应用于工业仪器
|
8月前
DC电源模块应用于工业仪器的案例分析
DC电源模块应用于工业仪器的案例分析
DC电源模块应用于工业仪器的案例分析
|
异构计算
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
1045 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
控制系统数字仿真与CAD-第三次实验-附完整代码
控制系统数字仿真与CAD-第三次实验-附完整代码
控制系统数字仿真与CAD-第二次实验-附完整代码
控制系统数字仿真与CAD-第二次实验-附完整代码
|
机器学习/深度学习 决策智能 计算机视觉
控制系统数字仿真与CAD-第一次实验-附完整代码
控制系统数字仿真与CAD-第一次实验-附完整代码
104 0
|
测试技术
电力电子技术课程实验:实验一、DC/DC直流斩波电路制作与性能测试
电力电子技术课程实验:实验一、DC/DC直流斩波电路制作与性能测试
电力电子技术课程实验:实验一、DC/DC直流斩波电路制作与性能测试
AD20和立创EDA设计(3)微调原理图和原理图检查
AD20和立创EDA设计(3)微调原理图和原理图检查
586 0

热门文章

最新文章

下一篇
开通oss服务