m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算

简介: m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算

1.算法仿真效果
vivado2019.2、matlab2022a仿真结果如下:

dbc7747d159ed36555f5253360288444_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
ea873e5c5ae1019947c93d09cda4ae76_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
94f146a52c4446057fd98ed909005abb_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
b7369287624cdcdb9375121ddc11d125_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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

d230d2979d040d4e26e5d9f5be2f3890_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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

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

a443592832837f52d50e8ba1ad866f13_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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

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

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

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

3bd8d46e10806c8c3e44ee03a97c8498_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.Verilog核心程序

   switch M 
   case 0 
   case 1  %Only PID Control 
        kp(k)=kp0; 
        ki(k)=ki0;      
        kd(k)=kd0; 
   end 
    du(k)=kp(k)*xc(1)+kd(k)*xc(2)+ki(k)*xc(3);  
   u(k)=u_1+du(k); 

%Return of parameters 
   x(1)=du(k); 
   x(2)=yout(k); 
   x(3)=y_1; 


    u_1=u(k); 
   y_1=yout(k); 

   ci_3=ci_2; 
   ci_2=ci_1; 
   ci_1=ci; 

   bi_3=bi_2; 
   bi_2=bi_1; 
   bi_1=bi; 

   w_3=w_2; 
   w_2=w_1; 
   w_1=w; 

   xc(1)=error(k)-error_1;             %Calculating P 
   xc(2)=error(k)-2*error_1+error_2;   %Calculating D 
   xc(3)=error(k);                     %Calculating I 

   error_2=error_1; 
   error_1=error(k); 

   kp_1=kp(k); 
   kd_1=kd(k); 
   ki_1=ki(k);   
end
相关文章
|
1月前
|
安全 JavaScript Java
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
36 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
|
16天前
|
算法 数据安全/隐私保护
基于Big-Bang-Big-Crunch(BBBC)算法的目标函数最小值计算matlab仿真
该程序基于Big-Bang-Big-Crunch (BBBC)算法,在MATLAB2022A中实现目标函数最小值的计算与仿真。通过模拟宇宙大爆炸和大收缩过程,算法在解空间中搜索最优解。程序初始化随机解集,经过扩张和收缩阶段逐步逼近全局最优解,并记录每次迭代的最佳适应度。最终输出最佳解及其对应的目标函数最小值,并绘制收敛曲线展示优化过程。 核心代码实现了主循环、粒子位置更新、适应度评估及最优解更新等功能。程序运行后无水印,提供清晰的结果展示。
|
16天前
|
数据安全/隐私保护
基于PID控制器的双容控制系统matlab仿真
本课题基于MATLAB2022a实现双容水箱PID控制系统的仿真,通过PID控制器调整泵流量以维持下游水箱液位稳定。系统输出包括水位和流量两个指标,仿真结果无水印。核心程序绘制了水位和流量随时间变化的图形,并设置了硬约束上限和稳态线。双容水箱系统使用一阶线性微分方程组建模,PID控制器结合比例、积分、微分作用,动态调整泵的输出流量,使液位接近设定值。
|
26天前
|
算法
基于GA遗传优化的PID控制器最优控制参数整定matlab仿真
通过遗传算法优化PID控制器的参数,可以有效提高控制系统的性能。本文详细介绍了GA优化PID参数的原理、适应度函数的设计以及MATLAB实现步骤,并通过仿真验证了优化效果。希望本文能为读者在实际应用中提供参考和帮助。
60 18
|
17天前
|
自然语言处理 安全 测试技术
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
37 0
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
|
23天前
|
算法
MATLAB在风险管理中的应用:从VaR计算到压力测试
本文介绍如何使用MATLAB进行风险管理,涵盖风险度量(如VaR)、压力测试和风险分解。通过历史模拟法、参数法和蒙特卡洛模拟法计算VaR,评估投资组合在极端市场条件下的表现,并通过边际VaR和成分VaR识别风险来源。结合具体案例和代码实现,帮助读者掌握MATLAB在风险管理中的应用,确保投资组合的稳健性。
|
27天前
|
算法 数据安全/隐私保护
通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器
本课题通过MATLAB实现PID控制器、积分分离控制器和滑模控制器,对比结果显示滑模控制具有最快的收敛性能、较强的鲁棒性和较小的超调量,优于其他两种控制器。系统仿真结果无水印,核心程序基于MATLAB 2022a。PID控制器由P、I、D单元组成,积分分离PI在大误差时不进行积分,减少超调;滑模控制通过设计滑动面使系统快速收敛,抑制扰动。
基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真
本课题基于MATLAB编程实现BLDC无刷直流电机的FOC控制系统,涵盖FOC控制器、Clarke和Park变换等,不使用Simulink建模。系统通过坐标变换将三相电流转换到dq轴,独立控制励磁和转矩电流,实现高效平滑运行及高动态响应。仿真输出包括三相电流、电机转速和转子角度。版本:MATLAB2022a。
|
2月前
|
算法 JavaScript
基于遗传优化的Sugeno型模糊控制器设计matlab仿真
本课题基于遗传优化的Sugeno型模糊控制器设计,利用MATLAB2022a进行仿真。通过遗传算法优化模糊控制器的隶属函数参数,提升控制效果。系统原理结合了模糊逻辑与进化计算,旨在增强系统的稳定性、响应速度和鲁棒性。核心程序实现了遗传算法的选择、交叉、变异等步骤,优化Sugeno型模糊系统的参数,适用于工业控制领域。
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
100 17