【E2283】FPGA智能温度PID控制器设计

2021-11-18 12:02:44      索炜达电子      521     

项目编号:E2283

文件大小:22M

源码说明:带中文注释

开发环境:Verilog

简要概述

用于调节FPGA处理器温度的直流风扇的PID控制,VHDL语言。这里使用的FPGA是Nexys4DDR

控制分析

Sampling rate of 0.01 seconds (10 milliseconds)

系统模型:

G(s)=K/(1+Tp1*s) where, K=-4.7251 Tp1=-4.4746

控制器:

1 Kp + Ki*(1/s) where, Kp=-0.303 Ki=-0.123

使用MATLAB中的系统识别工具箱,使用UART模块采集的数据计算开环传递函数。

PID增益使用MATLAB中的PID调节器工具箱计算。

在MATLAB中计算闭环传递函数。

目录│文件列表:

 └ FPGATemperaturePIDController

    │ temperaturecontrolproject.bit

    │ xadc_wiz_v2_1.ucf

    │ xadc_wiz_v2_1.vhd

    ├ DataAnalysisSource

    │  │ .DS_Store

    │  │ ClosedLoopPlotResponse.xlsx

    │  │ DATA.txt

    │  │ dataExample.asc

    │  │ FeedBackModel.slx

    │  │ feedbackPlot.m

    │  │ getdata.py

    │  │ matlabdiscreteController.mat

    │  │ OpenLoopPlotResponse.xlsx

    │  │ serialDataToHumanReadableFormat.py

    │  │ SysIdentification1.mat

    │  │ tunedC.mat

    │  │ ~$ClosedLoopPlotResponse.xlsx

    │  │ ~$OpenLoopPlotResponse.xlsx

    │  ├ ClosedLoopTests

    │  │  │ .DS_Store

    │  │  │ testone.txt

    │  │  │ testthree.txt

    │  │  └ testtwo.txt

    │  ├ html

    │  │  │ .DS_Store

    │  │  │ feedbackPlot.html

    │  │  │ feedbackPlot.png

    │  │  └ feedbackPlot_01.png

    │  └ OpenLoopTests

    │     │ .DS_Store

    │     ├ test1

    │     │  └ data.asc

    │     └ test2

    │        │ .DS_Store

    │        └ data.asc

    ├ Documentation

    │  │ .DS_Store

    │  │ DavidPaquetteECE4401FinalProject.aux

    │  │ DavidPaquetteECE4401FinalProject.log

    │  │ DavidPaquetteECE4401FinalProject.out

    │  │ DavidPaquetteECE4401FinalProject.pdf

    │  │ DavidPaquetteECE4401FinalProject.synctex.gz

    │  │ DavidPaquetteECE4401FinalProject.tex

    │  │ DavidPaquetteECE4401FinalProject.toc

    │  │ DesignPresentation.pdf

    │  │ DesignPresentation.pptx

    │  │ FinalProjectReportDavidPaquette.pdf

    │  └ images

    │     │ .DS_Store

    │     │ closed_loop.pdf

    │     │ dutyPWM.png

    │     │ dutyPWM.tiff

    │     │ hardware.JPG

    │     │ IMG_0624.PNG

    │     │ internalFlow.png

    │     │ internalFlow.tiff

    │     │ nopressMachine.png

    │     │ open_loop.pdf

    │     │ Overview.png

    │     │ Overview.tiff

    │     │ pidController.pdf

    │     │ pwmSchematic-nowords.png

    │     │ pwmSchematic.pdf

    │     │ sensorM.png

    │     │ sensorM.tiff

    │     │ uartIO.png

    │     │ uartIO.tiff

    │     │ uartState.png

    │     │ uartState.tiff

    │     │ Untitled Diagram.pdf

    │     │ vgaScreen.JPG

    │     │ vhdl arch.tiff

    │     │ vhdl_arch.png

    │     │ videoState.png

    │     │ videoState.tiff

    │     └ Exported Code Dec 18

    │        │ .DS_Store

    │        │ DCFanInterface.pdf

    │        │ MemoryWriter.pdf

    │        │ PIDController.pdf

    │        │ TemperatureControlMaster.pdf

    │        │ TemperatureControlProject.pdf

    │        │ TemperatureSensorInterface.pdf

    │        │ TemperatureSetpointControl.pdf

    │        └ ValuesToSerial.pdf

    ├ iseconfig

    │  │ FinalProject.projectmgr

    │  └ TemperatureControlProject.xreport

    ├ NexysConfigFiles

    │  └ Nexys4DDR_Master.ucf

    ├ src

    │  │ .DS_Store

    │  │ clk200.ucf

    │  │ clk200.vhd

    │  │ DCFanInterface.vhd

    │  │ GenerateHeat.vhd

    │  │ MemoryWriter.vhd

    │  │ PIDController.vhd

    │  │ SimpleAdder.vhd

    │  │ TemperatureControlMaster.vhd

    │  │ TemperatureControlProject.vhd

    │  │ TemperatureSensorInterface.vhd

    │  │ TemperatureSetpointControl.vhd

    │  ├ ButtonDebounceLibrary

    │  │  │ ButtonDebouncer.vhd

    │  │  └ ButtonOnePressFilter.vhd

    │  ├ TemperatureSensorLibrary

    │  │  │ FPGAMonitor.vhd

    │  │  └ LocalRst.vhd

    │  ├ UARTSerialLibrary

    │  │  │ .DS_Store

    │  │  │ uart.vhd

    │  │  └ ValuesToSerial.vhd

    │  ├ VGALibrary

    │  │  │ .DS_Store

    │  │  │ char8x12_lookup_table.vhd

    │  │  │ clock_divider_skeleton.vhd

    │  │  │ scancode2ascii.vhd

    │  │  │ wb_bram.vhd

    │  │  └ wb_vga640x480.vhd

    │  └ WishboneLibrary

    │     │ .DS_Store

    │     │ wb_arbiter.vhd

    │     └ wb_intercon.vhd

    ├ tmp

    │  └ _xmsgs

    │     └ pn_parser.xmsgs

    ├ xlnx_auto_0_xdb

    │  └ cst.xbcd

    ├ xst

    │  └ work

    │     │ work.vdbl

    │     └ work.vdbx

    ├ _ngo

    │  │ .DS_Store

    │  └ netlist.lst

    └ _xmsgs

       │ bitgen.xmsgs

       │ map.xmsgs

       │ ngdbuild.xmsgs

       │ par.xmsgs

       │ pn_parser.xmsgs

       │ trce.xmsgs

       └ xst.xmsgs

TAGNexys4DDR
  • 3 次
  • 10 分