当前位置: 首页 > 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.dtcms.com/a/241068.html

相关文章:

  • 轻量级屏蔽文件管理方案
  • 深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
  • 端口扫描介绍及使用(学习笔记)
  • 苍穹外卖-day02
  • Profinet转CAN网关如何实现profinet与can协议互转
  • C++中auto和auto
  • 即梦图片 3.0 智能参考全量上线,开启 AI 设计零门槛新时代
  • 在 Windows 11 上创建新本地用户账户
  • 三元组 题解
  • 【Dv3Admin】系统视图登录日志API文件解析
  • qt 双缓冲案例对比
  • Vue 自动导入函数和变量插件 unplugin-auto-import
  • Vue动态/异步组件
  • Vue3中的computer和watch
  • tauri项目,如何在rust端读取电脑环境变量
  • 背包问题双雄:01 背包与完全背包详解(Java 实现)
  • React hook之useRef
  • 什么是Java bean的依赖注入
  • Vue3 PC端 UI组件库我更推荐Naive UI
  • Docker环境下FileRise私有云盘在飞牛NAS的部署与穿透实践
  • 《前端面试题:ES6新特性》
  • 行列视:企业数据分析新时代的利器(一)——深度解读与应用场景分析
  • 第2课 SiC MOSFET与 Si IGBT 静态特性对比
  • HarmonyOS运动开发:打造你的专属运动节拍器
  • Excel处理控件Aspose.Cells教程:在Excel 文件中创建、操作和渲染时间线
  • boost::filesystem::path文件路径使用详解和示例
  • Spring MVC执行流程简介
  • 玩转 Skia 的颜色
  • LeetCode - 543. 二叉树的直径
  • 如何开发ONLYOFFICE协作空间插件:完整教程