学pid控制算法法和学FPGA 我应该选哪一个

来源:电子技术应用2011年第11期

钱伟康1,倪元鸿1,谢凯年2,蒋 艳1((1.上海理工大学 光电信息与计算机工程学院,上海200093; 2.上海赛灵思电子科技有限公司 大)

摘要: 介绍了利用Xilinx System Generator平台构建模型化数字PID控制算法,并通过FPGA将数字PID算法结合传感器与实际硬件控制对象快速建立控制模型,构成完整的闭环控制。通过对控制效果的实验验证,证明了其控制方法的可行性。

摘  要: 介绍了利用Xilinx 平台构建模型化数字PID控制算法,并通过将数字结合传感器与实际硬件控制对象快速建立控制模型,构成完整的闭环控制。通过对控制效果的实验验证,证明了其控制方法的可行性。

    Xilinx System Generator 是专门为数字信号算法处理而推出的模型化设计平台,可以快速、简单地将DSP系统的抽象算法转换成可综合的、可靠的硬件系统,弥补了大部分对C语言以及Matlab工具很熟悉的DSP工程师对于硬件描述语言VHDL和Verilog HDL认识不足的缺陷[1]。
    System Generator作为一个硬件设计工具包安装在Matlab软件中,提供了相当丰富的应用子模块[2]。设计者如同使用Matlab中其他模块一样,通过拖拽和连接就可以将子模块搭建成一个完整的应用系统。

 在PID控制算法的应用中有位置式和增量式两种[3-4]。位置式PID控制算法中因运用了误差的累加,控制的输出量与过去所有时间的状态有关,所以位置式PID控制算法的累积误差相对较大。而增量式PID控制算法中的调整量只是与当前及前两个状态有关,并且增量式PID算法只是控制每次的输出增量,而且一般执行机构都带有记忆功能,一旦控制器出错,能保持住原位,不会严重影响到系统的工作。

Generator中提供给DSP设计者的可编程逻辑模块,可以使用Matlab语言编写符合设计者要求的子函数。Mcode模块分别支持控制逻辑、状态逻辑、二位除法运算以及定点数运算等逻辑运算,并可灵活地定义输入输出的个数以及输出数据的类型。最终在生成硬件逻辑时自动将Mcode中的代码转换成VHDL/Verilog硬件描述语言。另外,由于生成的是逻辑控制,对设计者来说运用起来十分便利,并且该模块中的代码在生成为硬件逻辑以后,几乎是并行直接输出,速度和效率都非常高。如图2所示,在Mcode模块中写入了代码之后,会生成对应的自定义函数模块。

4 控制对象与控制算法的级联
    在PID算法模块构建完成以后,需要嵌入到实际的控制对象中以达到预期的控制目的。
    实验采用的是一阶RC控制对象,该对象在实验中可以明显有效地将控制效果反映出来。PID闭环控制系统框图如图3所示。对于一阶RC控制对象,选择电压作为输出的控制量,在设计中加入了A/D 以及D/A转换模块来完成采样和控制量的输出。

    (2)在PID算法的输入与输出端搭建数据转换模块。由于通过A/D采样得到的数据和D/A输出的数据都是二进制,而PID算法模块中使用的是十进制数据,并且小数点的位数也不一样,所以需要在PID算法的输入和输出端插入数据转换模块。另外还必须加入Gateway in和Gateway out来实现数据的前端输入和后端输出。PID控制器完整模型如图5所示。

    (4)在顶层文件中由状态机安排好各个模块之间的时序。
    (5)综合工程,分析时钟时序是否满足工程要求,工程时序分析如表1所示。需要时可添加时钟管理器(DCM)确保时序的正常进行。


    (6)连线并把BIT文件下载到开发板中,用示波器察看实际效果。

5 实验数据分析     实验中使用了D/A 4路输出信号中的2路:A路输出控制量;B路输出1 V~2 V的方波电压作为给定值,同时方波电压接到另一个完全相同的一阶RC电路上,让其与通过PID调节后的被控对象作对比。图6(a)~图6(d)表示了频率为100 Hz时,在不同参数条件下的实验结果。

    从实验结果可知,在FPGA中构建的PID控制器完全能达到预期的效果,而且实验结果是通过示波器观测到的实测结果,证明了在FPGA中实现算法硬件化是可行的,并且控制算法在硬件中运行的实测数据和仿真出来的模拟数据相比,实测数据更有说服力。
    用FPGA作为嵌入式算法平台,在算法运行速度上与其他嵌入式算法平台相比有着特定的优势,利用Xilinx的System Generator工具能够快速简单地完成算法构建并可直接完成硬件实现。虽然本文采用的是一阶RC电路作为控制对象,即使换成是二阶或者是耦合控制对象同样能够达到比较理想的控制效果。特别是对于大运算量的算法(如矩阵运算等),在FPGA资源充裕的情况下,可以达到其他控制器无法达到的处理速度,而且基于FPGA的可编程性,对于算法的修正、升级和验证都十分灵活,更使算法的硬件实现变得实用。缺点是FPGA对于时序较为严格,在工程中需要对整个工程的时序进行分析,以确保满足时序要求,而且如果是自己编写一些执行机构的驱动,仍需要将驱动部分也考虑进去,必要时需要添加约束。

参考文献 [1] 孟宪元,钱伟康.FPGA嵌入式系统设计[M].北京:电子工业出版社,2007.

}

我要回帖

更多关于 控制算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信