1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJeYlp1s
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
当利用PID控制器进行串联校正时,除可使系统的型别提高一级外,还将提供两个负实零点。与PI控制器相比,PID控制器除了同样具有提高系统的稳态性能的优点外,还多提供一个负实零点,从而在提高系统动态性能方面,具有更大的优越性。因此,在工业过程控制系统中,广泛使用PID控制器。PID控制器各部分参数的选择,在系统现场调试中最后确定。通常,应使积分部分发生在系统频率特性的低频段,以提高系统的稳态性能;而使微分部分发生在系统频率特性的中频段,以改善系统的动态性能。
自适应PID控制,是指自适应控制思想与常规PID控制器相结合形成的自适应PID控制或自校正PID控制技术,人们统称为自适应PID控制。
4.部分源码
.............................................................
input i_clk;
input i_rst;
input signed[11:0]i_din;
output signed[23:0]o_pd;
output signed[11:0]Kp_adptive;
output signed[11:0]Ki_adptive;
reg signed[11:0]o_error;
.............................................................
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
o_error <= 12'd0;
end
else begin
o_error <= i_din-o_pd[23:12];
end
end
//KP
reg signed[23:0]dat1;
reg signed[23:0]dat1d;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
dat1 <= 24'd0;
dat1d<= 24'd0;
end
else begin
dat1 <= o_error*Kp;
dat1d<= dat1;
end
end
//KI
//KI
reg signed[23:0]dat3;
reg signed[23:0]dat3d;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
dat3 <= 24'd0;
dat3d <= 24'd0;
end
else begin
dat3d <= o_error*Ki + dat3;
if(dat3d[23:22] == 2'b01 | dat3d[23:22] == 2'b11)
dat3d <= dat3d;
dat3 <= dat3d;
end
end
assign o_pd = dat1d + dat3d;
endmodule
A981