当前位置: 首页 > news >正文

基于FPGA的PID算法学习———实现P比例控制算法

基于FPGA的PID算法学习———实现P比例控制算法

  • 前言
  • 一、P比例算法控制
  • 二、FPGA仿真验证
  • 总结


前言

学习内容:参考网站:
PID算法控制
PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。也就是说,PID算法是结合这三种环节在一起的。
闭环控制:输出会影响到输入,进而逐渐逼近目标。

在这里插入图片描述

一、P比例算法控制

P比例控制算法:
核心部分,大部分作用来自于P,I和D主要控制减小误差。
目标值:Target
实际值:Pid_out
误差值:e_t
弥补值:u_t

相关公式:
误差值:e_t=Target - Pid_out
弥补值:u(t)=Kp * e(t)
输出值:Pid_out = Pid_out + u(t)

二、FPGA仿真验证

真实的K_p = K_p / 2^div

module PID_trol(input                     sys_clk  ,  input                     rst_n,   //signal  input			[7:0]			 target,output	reg	[7:0]			 Pid_out);reg		[7:0]		e_t;//目标值和现在值的差距reg		[7:0]		u_t;//补偿值parameter K_p = 8'd10;parameter div = 8'd3;always @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t <= 8'd0;endelse if(Pid_out < target)begine_t <= target - Pid_out;endelse if(Pid_out >= target)begine_t <= Pid_out - target;endelse begine_t <= e_t;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginu_t <= 8'd0;endelse beginu_t <= (e_t * K_p )>>div;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginPid_out <= 8'd0;endelse if(Pid_out < target)beginPid_out <= Pid_out + u_t;endelse if(Pid_out >= target)beginPid_out <= Pid_out - u_t;endendendmodule

Kp=10/8=1.25
在这里插入图片描述
Kp=10/16=0.625在这里插入图片描述
Kp=10/32=0.3125
在这里插入图片描述
Kp=10/64=0.157
在这里插入图片描述
Kp=10/128=0.0789
在这里插入图片描述

总结

这一篇只验证了PID中的比例系数P,其他都是0。

http://www.xdnf.cn/news/955171.html

相关文章:

  • 协同过滤算法进行电影推荐
  • java教程笔记(十三)-synchronized和ReentrantLock
  • Hilt vs Dagger2:Android 依赖注入框架对比
  • 2025年css+html面试题
  • PH热榜 | 2025-06-07
  • 有限自动机到正规文法转换器v1.0
  • 土建施工员考试:建筑施工技术重点知识有哪些?
  • Java中方法调用参数传递机制的理解和示例验证
  • NFT模式:数字资产确权与链游经济系统构建
  • 什么是VR全景展示?VR全景展示的用途
  • 微信小程序云开发平台MySQL的连接方式
  • STA(Station)模式与AP(Access Point)模式
  • LeetCode - 260. 只出现一次的数字 III
  • 镜像里切换为普通用户
  • VBA高级应用30例应用4:利用键盘设置来阻止自动运行事件
  • 研读论文《Attention Is All You Need》(14)
  • React---day11
  • 基于vue框架的多媒体教室管理系统72d6w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Redis群集
  • 沙箱虚拟化技术虚拟机容器之间的关系详解
  • 基于Springboot+Vue的办公管理系统
  • Hugo 自动化部署实战-部署 Hugo 到 Vercel
  • macOS 终端智能代理检测
  • Uncaught ReferenceError: process is not defined
  • EU 2023/1669与EU 2023/1670 的区别
  • 前端antd,后端fastapi,实现运行系统指令,并打印运行日志
  • 如何使用CodeRider插件在IDEA中生成代码
  • 6.9-字典序的第K小数字
  • 【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
  • 【标准解析】商用车CAN网络通信标准(J1939)