当前位置:   article > 正文

m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算_fpga testbench top 模块 框图 duc 被测 模块

fpga testbench top 模块 框图 duc 被测 模块

目录

1.算法仿真效果

2.算法涉及理论知识概要

3.Verilog核心程序

4.完整算法代码文件


1.算法仿真效果

vivado2019.2、matlab2022a仿真结果如下:

2.算法涉及理论知识概要

        PID控制器产生于1915年,PID控制律的概念最早是由LYAPIMOV提出的,到目前为止,PID控制器以及改进的PID控制器在工业控制领域里最为常见。PID控制器(比例-积分-微分控制器),由比例单元 P、积分单元 I 和微分单元 D 组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。图1为PID控制器的基本结构框图。

       PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当控制对象不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PIPD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。 

      PID 控制器由比例单元( P )、积分单元( I )和微分单元( D )组成。其输入 e (t) 与输出 u (t) 的关系为公式1

       公式中,参数kp表示的是比例调整模块的系数,其作用是将系统的反馈误差e(t)根据参数 kp进行调节,使得调整后的控制对象的反馈误差减小。当比例系数kp取较大值的时候,那么控制器的调整速度较快,但是其抖动也较大,从而导致系统了不稳定性。当比例系数kp取较小值的时候,那么控制器调整速度较慢,但调整过程较为稳定。

       参数ki​​​​​​​表示的是积分调整模块的系数,其作用将消除系统中存在的稳态误差,当存在稳态误差的时候,通过积分调节模块进行调节,直到完全消除稳态误差为止,之后积分调节功能停止工作,积分调节模块输出一个固定值。当积分调制系数ki​​​​​​​较小的时候,积分调节作用越强,反之,积分调节作用较弱,系统调整速度较慢。

      参数kd表示的是微分调整模块的系数,其主要是对系统反馈误差的变化率进行调整,其具有超前调整功能,可以预测系统反馈误差的变化率,因此可以在反馈误差产生之间将误差消除,因此通过设置微分调整参数,可以降低PID控制器的超调量,并加快系统的调整速度。

整个PID控制器的fpga结构如下图结构所示: 

3.Verilog核心程序

  1. .......................................................................
  2. M=0;
  3. switch M
  4. case 0
  5. case 1 %Only PID Control
  6. kp(k)=kp0;
  7. ki(k)=ki0;
  8. kd(k)=kd0;
  9. end
  10. du(k)=kp(k)*xc(1)+kd(k)*xc(2)+ki(k)*xc(3);
  11. u(k)=u_1+du(k);
  12. %Return of parameters
  13. x(1)=du(k);
  14. x(2)=yout(k);
  15. x(3)=y_1;
  16. u_1=u(k);
  17. y_1=yout(k);
  18. ci_3=ci_2;
  19. ci_2=ci_1;
  20. ci_1=ci;
  21. bi_3=bi_2;
  22. bi_2=bi_1;
  23. bi_1=bi;
  24. w_3=w_2;
  25. w_2=w_1;
  26. w_1=w;
  27. xc(1)=error(k)-error_1; %Calculating P
  28. xc(2)=error(k)-2*error_1+error_2; %Calculating D
  29. xc(3)=error(k); %Calculating I
  30. error_2=error_1;
  31. error_1=error(k);
  32. kp_1=kp(k);
  33. kd_1=kd(k);
  34. ki_1=ki(k);
  35. end
  36. figure(1);
  37. subplot(311);
  38. plot(time,yout,'r','linewidth',2);
  39. hold on;
  40. plot(time,rin,'b','linewidth',2);
  41. grid on;
  42. xlabel('time(s)');
  43. ylabel('rin,yout');
  44. subplot(312);
  45. plot(time,yout,'r','linewidth',2);
  46. hold on
  47. plot(time,ymout,'b','linewidth',2);
  48. grid on;
  49. xlabel('time(s)');
  50. ylabel('yout,ymout');
  51. subplot(313);
  52. plot(time,dyout,'linewidth',2);
  53. xlabel('time(s)');
  54. ylabel('Jacobian value');
  55. figure(2);
  56. subplot(311);
  57. plot(time,kp,'g','linewidth',2);
  58. xlabel('time(s)','linewidth',2);
  59. ylabel('kp');
  60. subplot(312);
  61. plot(time,ki,'g','linewidth',2);
  62. xlabel('time(s)');
  63. ylabel('ki');
  64. subplot(313);
  65. plot(time,kd,'g','linewidth',2);
  66. xlabel('time(s)');
  67. ylabel('kd');
  68. disp('kp整定值');round(1e3*kp(end))
  69. disp('ki整定值');round(1e3*ki(end))
  70. disp('kd整定值');round(1e3*kd(end))
  71. ----------------------------------------------------------------
  72. `timescale 1ns / 1ps
  73. //
  74. // Company:
  75. // Engineer:
  76. //
  77. // Create Date: 2023/03/19 20:45:54
  78. // Design Name:
  79. // Module Name: tops
  80. // Project Name:
  81. // Target Devices:
  82. // Tool Versions:
  83. // Description:
  84. //
  85. // Dependencies:
  86. //
  87. // Revision:
  88. // Revision 0.01 - File Created
  89. // Additional Comments:
  90. //
  91. //
  92. .............................................................
  93. //这个参数是MATLAB RBF参数整定得到的结果,运行main2.m得到参数值
  94. parameter Kp = 12'd75;
  95. parameter Kd = 12'd51;
  96. parameter Ki = 12'd150;
  97. input i_clk;
  98. input i_rst;
  99. input signed[11:0]i_din;
  100. output signed[23:0]o_pid;
  101. reg signed[11:0]o_error;
  102. always @(posedge i_clk or posedge i_rst)
  103. begin
  104. if(i_rst)
  105. begin
  106. o_error <= 12'd0;
  107. end
  108. else begin
  109. o_error <= i_din-o_pid[23:12];
  110. end
  111. end
  112. .....................................................................
  113. 08_038_m

4.完整算法代码文件

V

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/485598
推荐阅读
相关标签
  

闽ICP备14008679号