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

北京石景山网站建设站长统计性宝app

北京石景山网站建设,站长统计性宝app,河北招投标信息服务平台,电商平台网站基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…

基于FPGA的PID算法学习

  • 前言
  • 一、PID算法分析
  • 二、PID仿真分析
    • 1. PID代码
    • 2.PI代码
    • 3.P代码
    • 4.顶层
    • 5.测试文件
    • 6.仿真波形
  • 总结


前言

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

在这里插入图片描述

一、PID算法分析

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

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

增量式PID:

在这里插入图片描述

二、PID仿真分析

1. PID代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/06/10 17:09:23
// Design Name: 
// Module Name: PID
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
module PID(input                     sys_clk  ,  input                     rst_n,   //signal  input		 signed	[7:0]  target,output reg signed	[7:0]  Pid_out);reg	signed	[15:0]		e_t;//目标值和现在值的差距reg	signed	[15:0]		e_t_1;//上一时刻差距reg	signed	[15:0]		e_t_2;//上一时刻差距reg	signed	[32:0]		u_t;//补偿值parameter signed K_p = 32'd100;parameter signed div_p = 8'd3;parameter signed K_i = 32'd250;parameter signed div_i = 8'd3;parameter signed K_d = 32'd50;parameter signed div_d = 8'd3;
//	 assign e_t = target - Pid_out;always @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t <= 16'd0;endelse begine_t <= target - Pid_out;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t_1 <= 16'd0;endelse begine_t_1 <= e_t;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t_2 <= 16'd0;endelse begine_t_2 <= e_t_1;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginu_t <= 32'd0;endelse beginu_t <= ((e_t - e_t_1) * K_p )/1000 + ( e_t * K_i)/1000 +  ( (e_t -(2* e_t_1) + e_t_2 ) * K_d)/1000 ;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginPid_out <= 8'd0;endelse beginPid_out <= Pid_out + u_t;endendendmodule

2.PI代码

module PID_control(input                     sys_clk  ,  input                     rst_n,   //signal  input		 signed	[7:0]  target,output reg signed	[7:0]  Pid_out);reg	signed	[15:0]		e_t;//目标值和现在值的差距reg	signed	[15:0]		e_t_1;//上一时刻差距reg	signed	[32:0]		u_t;//补偿值parameter signed K_p = 32'd200;parameter signed div_p = 8'd3;parameter signed K_i = 32'd310;parameter signed div_i = 8'd3;
//	 assign e_t = target - Pid_out;always @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t <= 16'd0;endelse begine_t <= target - Pid_out;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)begine_t_1 <= 16'd0;endelse begine_t_1 <= e_t;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginu_t <= 32'd0;endelse beginu_t <= ((e_t - e_t_1) * K_p )/1000 + ( e_t * K_i)/1000 ;endendalways @(posedge sys_clk or negedge rst_n)beginif(!rst_n)beginPid_out <= 8'd0;endelse beginPid_out <= Pid_out + u_t;endendendmodule

3.P代码

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

4.顶层

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/06/10 13:45:03
// Design Name: 
// Module Name: top
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module top(input                     sys_clk  ,  input                     rst_n,   //signal  input		  signed	[7:0]  target,output wire signed	[7:0]  P_out,output wire signed	[7:0]  Pi_out,output wire signed	[7:0]  Pid_out);PID u_PID (.sys_clk   (sys_clk),.rst_n     (rst_n),.target    (target),.Pid_out   (Pid_out) );PID_control u_PI (.sys_clk   (sys_clk),.rst_n     (rst_n),.target    (target),.Pid_out   (Pi_out) );PID_trol u_P(.sys_clk   (sys_clk),.rst_n     (rst_n),.target    (target),.Pid_out   (P_out)
);
endmodule

5.测试文件

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/06/10 13:48:03
// Design Name: 
// Module Name: tb_top
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//`timescale 1ns / 1psmodule tb_top();// 输入信号reg         sys_clk;reg         rst_n;reg signed [7:0] target;// 输出信号wire signed [7:0] P_out;wire signed [7:0] Pi_out;wire signed [7:0] Pid_out;// 实例化顶层模块top u_top (.sys_clk (sys_clk),.rst_n   (rst_n),.target  (target),.P_out   (P_out),.Pi_out  (Pi_out),.Pid_out (Pid_out));// 时钟生成(100MHz)initial beginsys_clk = 0;forever #10 sys_clk = ~sys_clk;  // 10ns周期 = 100MHzend// 测试激励initial begin// 初始化并复位rst_n = 0;target = 0;#20;  // 等待两个时钟周期// 释放复位rst_n = 1;#10;// 测试场景 1:正目标值target = 8'd100;   // +50endendmodule

6.仿真波形

在这里插入图片描述

在这里插入图片描述

总结

简单测试,有问题欢迎交流

http://www.dtcms.com/wzjs/222692.html

相关文章:

  • 高青网站建设全网关键词搜索工具
  • 郑州网站建设搜q.479185700网络广告营销策划方案
  • 浙江省台州市做网站多少钱收录网站查询
  • 淄博做网站的公司都有哪些百度浏览器网站入口
  • 个人网站设计文字内容模板江西省水文监测中心
  • p2p网站建设应注意的问题百度退款客服电话
  • 四合一网站建设链爱生态怎么交易
  • 用什么软件做楼盘微网站市场宣传推广方案
  • 汉口网站建设 优帮云南宁seo推广
  • wordpress dux主题公司seo是什么职位
  • 帝国cms做网站怎样维护官方百度app下载安装
  • 做网站需要懂什么技术广州网络推广公司有哪些
  • 网站怎么自适应如何创建网站教程
  • 微信小程序开发常见问题360优化大师历史版本
  • 关于做ppt的网站有哪些内容吗十大最靠谱it培训机构
  • 旅游网站的建设的意义百度官网电话
  • 可以优化网络的软件班级优化大师
  • 海报设计图片简单seo优化入门教程
  • 城乡建设和住房建设部八大员重庆seo按天收费
  • 网站登录系统内部错误广州全网推广
  • 开封做网站seo和sem是什么
  • 网站开发 绩效考核企业网站推广有哪些
  • WordPress表情问题seo在哪可以学
  • 做网站的可以黑客户的网站吗百度营销推广登录
  • 请简述常用的网页制作工具seo营销怎么做
  • 做赌场网站代理微信推广广告在哪里做
  • 做网站的时候会用 鸟瞰图吗营销网站建设专家
  • 惠州网站建设企业百度搜索入口官网
  • 采集网站图片如何做seo搜索优化
  • 网站网页区别是什么代刷网站推广免费