FPGA-VERILOG-PID控制主要内容_第1页
FPGA-VERILOG-PID控制主要内容_第2页
FPGA-VERILOG-PID控制主要内容_第3页
FPGA-VERILOG-PID控制主要内容_第4页
FPGA-VERILOG-PID控制主要内容_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PID算法及其FPGA实现PID控制器结构清晰,参数可调,适用于各种控制对象,PID控制器的核心思想是针对控制对象的控制需求,建立描述对象动态特性的数学模型,通过PID参数整定实现在比例,微分,积分三个方面参数调整的控制策略来达到最佳系统响应和控制效果,式子如下:在数字控制系统中,PID控制规律的实现必须用数值逼近的方法。当采样周期相当时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。式子3.8就是我们的位置式PID算法:下面就是我们要实现上式PID算法。PID的FPGA实现:得到:Verilog实现:viewplaincopytoclipboardprint?`timescale

1ns

/

1ps

//////////////////////////////////////////////////////////////////////////////////

//

Company:

//

Engineer:

//

//

Create

Date:

21:02:51

05/14/2014

//

Design

Name:

//

Module

Name:

pid

//

Project

Name:

//

Target

Devices:

//

Tool

versions:

//

Description:

//

//

Dependencies:

//

//

Revision:

//

Revision

0.01

-

File

Created

//

Additional

Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module

pid(

input

clk,

.a

(

s1

),

.b

(

s2

),

.s

(

uk_wire[16:0]

),

.clk

(clk)

);

endmodule

Testbench:viewplaincopytoclipboardprint?`timescale

1ns

/

1ps

////////////////////////////////////////////////////////////////////////////////

//

Company:

//

Engineer:

//

//

Create

Date:

21:34:28

05/14/2014

//

Design

Name:

pid

//

Module

Name:

J:/xilinx_project/pid/test.v

//

Project

Name:

pid

//

Target

Device:

//

Tool

versions:

//

Description:

//

//

Verilog

Test

Fixture

created

by

ISE

for

module:

pid

//

//

Dependencies:

//

//

Revision:

//

Revision

0.01

-

File

Created

//

Additional

Comments:

//

////////////////////////////////////////////////////////////////////////////////

module

test;

//

Inputs

reg

clk;

reg

rst_n;

reg

[8:0]

error;

//

Outputs

wire

[16:0]

uk;

//

Instantiate

the

Unit

Under

Test

(UUT)

pid

uut

(

.clk(clk),

.rst_n(rst_n),

.error(error),

.uk(uk)

);

initial

begin

//

Initialize

Inputs

clk

=

0;

rst_n

=

0;

error

=

0;

//

Wait

100

ns

for

global

reset

to

finish

#40

rst_n=1;

#20

error=9'b001111111;

#200

error=9'b000111111;

#200

error=9'b000011111;

#200

error=9'b000001111;

#200

error=9'b000000111;

#200

error=9'b000000011;

#800

error=0;

#200

error=9'b111000000;

#200

error=9'b111110000;

#200

error=9'b111111111;

#800

error=0;

//

#200

error=9'b100000001;

//

Add

stimulus

here

end

always

#10

clk=~clk;

endmodule

中途中mult的实现可以使用LUT或者DSP资源(上一篇博客也有说)另外在modelsim安装和编译xilinx库时,后面那个是在modelsim建立工程才要指定的,我这里是直接从xilinx中启动modelsimse的,(前提是要将xilinx的编译库添加进modelsim)。Project-》designpropertiesEdit-》PreferencesProcess-》ProcessProperties仿真结果:不同于altera-modelsi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论