《电气专业外文翻译基于PFGA直流电动转速控制系统的PID控制器的实现.doc》由会员分享,可在线阅读,更多相关《电气专业外文翻译基于PFGA直流电动转速控制系统的PID控制器的实现.doc(6页珍藏版)》请在三一办公上搜索。
1、吉林化工学院信息与控制工程学院毕业设计外文翻译数字随动系统设计 The Digital servo system design学生学号:学生姓名:专业班级:指导教师:职 称:起止日期:吉 林 化 工 学 院Jilin Institute of Chemical Technology基于PFGA直流电动转速控制系统的PID控制器的实现 维塔索马里 K纳加布尚拉杜 摘要: 在本文中,使用Xilinx的FPGA(XC3S400)中PID控制器的VHDL“软件模块实现对直流电动机调速系统的控制。构建和测试的软件模块中所使用的工具是赛灵思ISE9.2i和ModelSimXEIII6.3c。在对基于FPG
2、A完整的设计是使用ModelSim仿真工具进行模拟的。测试台是可以改变电机的设定速度。根据观察,电机的转速逐渐改变到设定的速度并锁定到所设定的速度。IndexTerms,现场可编程门阵列(FPGA),比例 - 积分 -微分(PID)控制器,超高速集成电路硬件描述语言(VHDL),脉冲宽度调制(PWM)。1导言硬件描述语言(HDLs)是用来描述硬件仿真,建模,测试,设计,数字系统文件为目的的。最流行的HDLs语言是VHDL(超高速集成电路)硬件描述语言和Verilog。VHDL是用来描述从抽象到具体的硬件。很多的电子设计自动化(EDA)供应商的规定VHDL语言作为他们输入和输出的工具。这些工具包
3、括仿真工具,综合工具,布局工具和测试工具。比例- 积分 - 微分(PID)控制器,在过去的五十年中,由于它的简单性,坚固性,有效性和适用性,广泛运用在一类系统中。尽管众多的控制设计方法,在文献中出现的,据估计,如今PID控制器的使用量仍然超过工厂生产量的95%。几十年来,数字PID控制器已广泛用于实时数字控制系统中。PID是广泛运用在伺服电机控制、机器人技术、温度控制及电力电子领域,它有一个很长的发展历史和非常成熟的调整规则。总体来说,PID是一个嵌入式实时数字控制设计的重要工具。他们通常使用在模拟组件的硬件或基于计算机的软件系统中。现场可编程门阵列和硬件描述语言根据并行性、可编程位宽度和绝对
4、决定性来适当增加数字PID调节器规模。PID控制器在现场可编程门阵列(FPGA)中的使用,可提高速度,精度,功率、效率,紧凑性和成本效益。随着电机和运动控制应用的日益复杂,它在性能方面,现场可编程门阵列(FPGA)提供显著的优势超过货架专用标准产品(ASSP)的解决方案越来越明显,尤其是它的灵活性和库存控制。自定义电机驱动器,如脉冲宽度调制(PWM)接口可以轻松地开发,快速,成本低廉。此外,由于它的完全可配置性,可使用相同的FPGA在不同的产品范围,降低需求量是为了维护配置多驱动器的库存。现场可编程门阵列的Spartan3系列产品是专为满足大批量,针对对成本敏感的电子应用产品消费者而特别设计的
5、。其中的八种产品有着密度从五万到五百万的系统盖茨。由于他们的成本非常低,FPGA Spartan3系列非常适合广泛的消费类电子应用群体,包括宽带接入,家庭网络,显示器/投影和数字电视设备。现代FPGA和它们的分辨能力已经被FPGA供应商广泛公布了。此外,一些期刊文章利用这些强大的芯片处理的优势。在过去的两年里,在Xilinx FPGA 从SpartanII到III已经成功运用在各种不同应用中,其中包括逆变器、通讯、嵌入式处理器、和图像处理。使用微处理器和数字信号处理器(DSP)芯片实现PID控制器这项技术是很落后并且众所周知的,可以发现如何使用FPGA实现PID控制器的说明。PWM发生器的介绍
6、。然而,只有模拟结果。作者的贡献可以被当作是目前工作的补充,由于它们所提供的帮助是完善应用现状的。开发的软件提供通过按钮,切换开关,发光二极管(LED)和七段显示板外设的用户界面,使用户可以改变电机的速度以及查看数据,在七段显示器上显示并且重置整个系统。本文的组织如下:在第二节中,一个基于FPGA的直流电动机调速系统的PID控制器的功能模块概述的解释。在第三节中,目前所设计的状态流程图被提出了。在第四节中,对该系统的试行结果进行了讨论。结论是在第五节被讨论。(中国人说话用主动语态可以吗?意译)2功能模块概述 赛灵思公司FPGA器件在目前的工作目标是生产Spartan3系列XC3S400。先进的
7、电子系统(ALS)的套件进行设计开发和调试基于一个低成本,功能齐全的原则。此板提供设计所需要的所有必要的工具和验证Spartan3平台设计。设计基于10MHz时钟。图1显示了基于FPGA的直流电动机调速系统的PID控制器实现的分层图。图2显示子模块内部和外部的信号流的PID控制器顶层模块。软件工具,用于建设和测试这些模块赛灵思ISE9.2i和ModelSimXEIII6.3c。 2.1 PID控制器顶层模块PID控制器顶层模块的主要是在顶层层次结构中的VHDL模块。它实例化的子模块ADC_interface,ADC_Data_Read和Motor_control模块。它连接所有信号和与外部世界
8、的互动。2.2 ADC接口模块这是一个前端ADC接口模块。该模块有一个状态机ADC_state给出了信号转换(SOC)和输出启用(OE)作为ADC的开始,它还生成基于三位ADC通道的地址。在板上切换开关(TS1,TS2,TS3)的输入。这些新号中断后,它等待转换(平)信号,这时第8位数据总线结束。一旦ADC接收到状态机生成ADC_Data_Ready的信号就会启用寄存器,锁存来自ADC的有效数据。相同的信号,将给予下一个模块,ADC数据读模块使用作为控制信号锁存子模块Seven_Segment的有效数据将在七段显示器显示出来,将显示的数据通过数模转换器(DAC)的硬件模块转换,实际的速度,可使
9、用PID公式计算。2.3ADC数据读取模块ADC数据读取模块ADC数据需要从ADC接口模块的控制信号ADC_data_rdy_in传送。它有一个状态机ADC_RD_State检查ADC_data_capture的开关,拨动开关输入连接到顶层模块的capture_ctrl_in(TS16)开关输入。这个开关一旦被置到下一个状态,必须检查它从ADC接口模块接收到的ADC_Data_ready的输入信号。当ADC_Data_ready信号是生效,它会等待200个周期的下一个状态,并生效ADC_AVG_DATA_Rdy信号,这将注册200个ADC数据。等到改变电机的转速后等待ADC数据的200个周期逐
10、渐稳定。被控制信号ADC_AVG_DATA_Rdy的锁存数据将被发送到下一个模块,这是电机控制模块。2.4电机控制模块电机控制模块接收从ADC数据读模块的数据,这是锁存在ADC数据读模块的ADC_AVG_DATA_Rdy控制信号。一旦数据被锁存到模块,计算目前的速度,这是10倍的ADC数据。被认为电机的最大速度为2550RPM,如果除以10得到十进制的255,相当于“11111111”在二进制,这是最大的8位ADC值。这样做是为了得到近似的当前速度。一旦按目前的速度计算,减去设定的速度值的结果,这是使用PID控制器顶层模块的切换开关Speed_Set_switch,连接到Speed_selec
11、t_in的设置值。这会产生电流误差EN。在未来的连续周期里相同的EN将成为EN - 1和EN -2。EN,EN - 1和EN -2的值连同它们的极性被输入到PID方程计算模块,这表明计算值是否是正还是负。PID公式计算模块将计算出K_equation的值,这是一个部分的PID方程,KP*(EN -EN - 1)+Ki*EN+Kd*(EN- 2 *(EN - 1)+ EN- 2。最后PID方程Vn-1+ Kp *( en - e n-1) + Ki * en + Kd *( en - 2*( en-1)+ en-2 将在计算在电机控制模块里计算。它有几个像Motor_Control_State,
12、PID_Assign_State,SW_Debounce_State和Speed_Lock_State的状态机。在Motor_Control_State机中,它是连接到Captur_ctrl_in在顶层模块的开关,开关监控。一旦控制器出现一些延误,要等到PID等式的有效数据才能计算。现在,把误差值EN的数值,EN - 1和EN -2交换,那么PID的数值VN和VN -1也会被交换。PID_Assign_State机检查为负或大于255ADC的最大价值计算的PID值。如果是负数,那么DAC分配为零,否则,如果该值是大于255,按255分配。如果值是0和255之间,那么DAC的实际价值分配。SW_
13、Debounce_State机等待有一些固定的延迟,克服速度,弹跳,选择切换开关。Speed_Lock_State机是否计算速度,是根据加上或减去100转速范围内设置的速度决定的,如果是这样,就近似看作设定的速度。这种近似计算,不考虑计算PID等式,这超出了本设计的范围是浮点运算,这是超越了这种设计的范围。一旦计算出的速度是给PID等式的准备的,这是除以使用分频器模块数值,以获得相当于DAC值10倍。这是接近基于RPM完成ADC数据计算目前的速度。一旦等效的二进制数据发送到DAC从PID公式计算。这将继续下去,直到所有的误差变成0跟VN=VN -1,目前的速度等于设定的速度,因此,电机启动运行
14、在设定的速度。2.5Coregen分频器模块这是赛灵思特定coregen模块,在目前的设计中使用。在电机控制模块实例化的划分计算的PID值VN获得等效的二进制值,它已被发送到DAC。2.6 七段显示模块此模块将产生输出显示在七段显示器上,还提供数据七段模块,这是输出到DAC。2.7 PID方程计算模块计算误差EN,EN- 1和EN -2其极性,无论是正或负的都是从电机控制模块输入到这个模块的。这个模块将计算PID公式的一部分,Vn = Vn-1+ Kp *( en - en -1) + Ki * e n + Kd *( en - 2*( e n-1)+ en-2 which is Kp *(
15、en - en-1) + Ki * en + Kd *( en - 2*( en-1)+ en-2. 常数Kp,Ki和Kd值3,2和1。他们是通过试验和错误的方法计算的。PID等式是评估的一部份。首先,KD *(EN- 2 *(EN - 1),Ki*EN值和Kp*(EN -EN - 1),单独计算保留其极性,这将决定是否计算值是正面或负面。一旦做到这一点,结合方程Kd *( en - 2*( en-1)+ en-2 and Kp *( en - en-1) + Ki * en 计算其极性。一旦这些方程评估,计算,这是最终K_equation 等于Kp *( en - en-1) + Ki * en + Kd *( en - 2*( en-1)+ en-2. 这是电机控制模块反馈K_equation极性,将确定,K方程的计算值是否是正面还是负面。在电机控制模块最终PID方程,Vn = Vn-1+ Kp *( en - en-1) + Ki * en + Kd *( e n - 2*( en-1)+ en-2 计算这里的极性电流误差和电流。PID值被传递到以前的PID和以前的错误极性举行进一步的计算极性。例如,如果错误连接和计算其极性是否定的,那么在下一个周期中的EN值分配给EN - 1和EN极性变为EN - 1极性。