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

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

时间:2023-05-27 14:56:44浏览次数:33  
标签:误差 控制器 整定 FPGA 积分 PID kp error

1.算法仿真效果

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

 

 

 

 

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

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

 

 

 

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

 

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

 

 

 

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

 

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

 

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

 

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

 

 

 

3.Verilog核心程序

 

 M=0; 
   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 

 

  

 

标签:误差,控制器,整定,FPGA,积分,PID,kp,error
From: https://www.cnblogs.com/51matlab/p/17436715.html

相关文章

  • m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
    1.算法仿真效果matlab2022a/vivado2019.2仿真结果如下:matlab仿真:0.5码率,H是4608×9216的矩阵。FPGA仿真:对比如下:2.算法涉及理论知识概要LDPC译码分为硬判决译码和软判决译码。硬判决译码又称代数译码,主要代表是比特翻转(BF)译码算法,它的实现比较简单,但是译码性能很差......
  • m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
    1.算法仿真效果matlab2022a/vivado2019.2仿真结果如下: matlab仿真: 0.5码率,H是4608×9216的矩阵。   FPGA仿真:    对比如下:   2.算法涉及理论知识概要         LDPC译码分为硬判决译码和软判决译码。         硬判决译码又称......
  • Spider理论系列--Scrapy框架介绍
    Scrapy框架一、前言无论什么技术,都是有框架的,而框架我的理解就是程序员为了简化开发而封装好的一个集合。而本次的Scrapy框架就是封装好的爬虫框架。1、介绍前面我们学习了基础的爬虫实现方法和selenium以及mongodb数据库,那么接下来会我们学习一个上场率非常高的爬虫框架:scrapy2、......
  • 基于FPGA的医学图像中值滤波verilog实现,包括testbench和MATLAB验证程序
    1.算法仿真效果matlab2022a/Vivado2019.2仿真结果如下:通过matlab产生带噪声医学图片:FPGA仿真:通过MATLAB读取FPGA的仿真数据,并显示滤波后图像:2.算法涉及理论知识概要中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信......
  • 基于FPGA的医学图像中值滤波verilog实现,包括testbench和MATLAB验证程序
    1.算法仿真效果matlab2022a/Vivado2019.2仿真结果如下: 通过matlab产生带噪声医学图片:   FPGA仿真:   通过MATLAB读取FPGA的仿真数据,并显示滤波后图像:   2.算法涉及理论知识概要       中值滤波是一种非线性数字滤波器技术,经常用于去除图像或......
  • scrapy:CrawlSpider及其案例
    1.CrawSpider介绍运行原理:2.pymysqlcondainstallpymysql3.案例-读书网爬虫&数据入库3.1案例需求3.2网页分析3.3创建爬虫项目3.4创建爬虫文件(与之前有区别)scrapygenspider-tcrawlreadhttps://www.dushu.com/book/1188.html3.5实现爬虫impor......
  • fpga 一月学习记录
    fpga一月学习记录4月初,导师突然接了一个fpga开发的项目,把我和另一个同学叫过来,让我们速成,学习了2个星期Verilog语法,了解了一下vivado的使用,虽然最终项目因故中止,但是一个月的fpga学习也值得记录一下。我的主要工作内容是实现一个数据接口转换,具体因为没有下板成功就不说了,主要是......
  • 基于状态机方法的按键消抖模块FPGA实现,包括testbench
    1.算法仿真效果vivado2019.2仿真结果如下:   系统RTL图:   2.算法涉及理论知识概要        状态机,FSM(FiniteStateMachine),也称为同步有限状态机从。指的是在同步电路系统中使用的,跟随同步时钟变化的,状态数量有限的状态机,简称状态机。 状态机分类 ......
  • 基于FPGA的HDB3编译码verilog实现,包括testbench
    1.算法仿真效果vivado2019.2仿真结果如下:  2.算法涉及理论知识概要       数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接......
  • 基于FPGA的LMS自适应滤波器verilog实现,包括testbench
    1.算法仿真效果vivado2019.2仿真结果如下:    2.算法涉及理论知识概要        自适应算法是数字信号处理(DSP)的主体。它们被用于各种应用,包括声学回声消除、雷达制导系统、无线信道估计等。         自适应算法用于估算随时间变化的信号。有许多自......