欢迎来到天天文库
浏览记录
ID:3139816
大小:532.00 KB
页数:10页
时间:2017-11-19
《fpga verilog pid控制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、PID算法及其FPGA实现PID控制器结构清晰,参数可调,适用于各种控制对象,PID控制器的核心思想是针对控制对象的控制需求,建立描述对象动态特性的数学模型,通过PID参数整定实现在比例,微分,积分三个方面参数调整的控制策略来达到最佳系统响应和控制效果,式子如下:在数字控制系统中,PID控制规律的实现必须用数值逼近的方法。当采样周期相当时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。式子3.8就是我们的位置式PID算法:下面就是我们要实现上式PID算法。PID的FPGA实现:得到:Verilog实现:viewplaincopytoclipboardprin
2、t?.`timescale 1ns / 1ps .////////////////////////////////////////////////////////////////////////////////// .// Company: .// Engineer: .// .// Create Date: 21:02:51 05/14/2014 .// Design Name: .// Module Name: pid .// Project Name: .// Target Devices: .// Tool versions
3、: .// Description: .// .// Dependencies: .// .// Revision: .// Revision 0.01 - File Created .// Additional Comments: .// .////////////////////////////////////////////////////////////////////////////////// .module pid( . input clk, . input rst_n, . input [8:0] error,
4、 . output reg [16:0] uk . ); . .//reg [16:0]uk; .wire [16:0]uk_wire; .reg [8:0]error_1,error_2; .parameter k0=5; .parameter k1=1; .parameter k2=1; .always @(posedge clk) .begin . if(!rst_n) . begin . error_1<=0; . error_2<=0; .
5、 end . else . begin . error_1<=error; . error_2<=error_1; . end .end . .// .reg [14:0]uk1; .always @(posedge clk) .begin . if(!rst_n) . begin . uk<=0; . uk1<=0; . end . else . begin .
6、 if((uk_wire>17'd15000)&&(uk_wire<17'b1000_0000_0000_00000)) . begin . uk<=17'd15000; . end . else . begin . uk1<=uk[14:0]; . uk<=uk_wire; .
7、 end . end .end . .wire [14:0] p0; .mult u1 ( . .b ( k0 ), . .a ( error ), . .p ( p0 ), . .clk(clk) .
此文档下载收益归作者所有