基于fpga的直流电机伺服系统的设计与实现内容摘要:
的实现步骤: (1):对输入和输出值进行分配 第一个输入: 位置误差 E 设定量化论域 E={10, „ „ ,10},模糊语言子集 E 为 {NB(负大 )、 NM(负中 )、 NS(负小 )、ZE(零 )、 PS(正小 )、 PM(正中 )、 PB(正大 )}。 第二个输入:位移误差变化量 设定量化论域 EC={1,0,1}, EC 模糊语言子集取 {N (负 )、 ZE (零 )、 P(正 )}。 输出: PWM 波控制信号 设定量化论域 U={10, „ „ ,10},模糊语言子集也为 {NB(负大 )、 NM(负中 )、 NS(负小 )、ZE(零 )、 PS(正小 )、 PM(正中 )、 PB(正大 )}。 11 (2):模糊控制规则 表:模糊控制规则 E Ec NB NM NS ZE PS PM PB N NB NB NM NS ZE PM PB ZE NB NB NS ZE PS PB PB P NB NM ZE PS PM PB PB (3): 模糊控制表的编制 1),求总的模糊关系 2),制备模糊编制表 (4): 模糊量跟确定量之间的转换 要对系统实现有效的控制就需要有个准确的清晰量,这 个 时候就需要对模糊量进行去模糊化的操作。 12 第四章 系统硬件 结构概况 因为本设计对硬件电路设计要求 比较低 ,主要做软件功能实现及时序仿真,所以在此附上 少量的硬件电路设计模块来加强对系统的了解。 硬件电路结构 伺服电机的硬件电路主要由 FPGA 控制器,驱动电路,数据采集电路,过流保护电路以及隔离电路等模块组成,并且各个模块在 FPGA(现场可编程门阵列 )的一致控制下协调的工作。 图 为 整个硬件系统的结构图。 驱动电路 在本设计中驱动电路采用的是单极可逆式驱动电路并有 MOSFET 构成 H 桥来控制电机的正反转。 FPGA 指令信号 指令信号 数据采集 器 AD1674 AD1674 ADC0809 系统控制器 隔离电路 驱动电路 执行机构 被控对象 位置检测传感器 电流检测传感器 图 整个硬件系统的结构图 13 此中采用单极受限式的 PWM 波控制两组 NMOS 跟 PMOS 互补电路来驱动直流电机 并分别驱动电机的正和反转。 当其中 的一组 MOSFET 工作时,另一组 MOSFET 截止。 而且 只有当电机换向时才会有两组 MOSFET 同时 导通的问题,这个问题就是 PWM 波的死区问题,所以来适当的调节死区,从而来避免可能因两组 MOSFET 同时导通而导致的过流情况。 FPGA 控制电路 本设计中采用的是 EPF10K10LC844,它是 ALTERA 公司的 FLEX10K 系列中的一种。 FLEX10K 是工业界中诞生的第一个嵌入式可编程逻辑器件。 它采用可重构的 CMOS SRAM 工艺,在其中把连续的快速通道互相连接与独特的 嵌入式相结合。 在其内部有 10W 门级电路,课实现复杂的数据运算跟逻辑运算。 在 FLEX10K 系列器件中,主要是由逻辑阵块,嵌入式阵块, I/O 单元及快速通道互连这四个部分构成的。 隔离电路 由于直流电机驱动部分对控制那部分的电路存在干扰,可以采用光电隔离式电路来对系统电路进行隔离,以此来提高系统的稳定性。 本设计使用光耦 6N173 实现隔离作用。 图 PWM1, PWM2, PWM3, PWM4 是 FPGA 生成的 PWM 信号经过电平变换之后的输入信号。 14 调理电路模块 在 PWM波加到驱动电路上时,需要对其进行调整,即需要调理电路来进行调整,来使它适合后面的驱动电路的要求。 光耦隔离后的信号经过调理电路后,作为驱动电路 MOSFET的栅极驱动电压。 PWM2 +5 PWM1 R12 390 R11 390 R10 390 R9 390 8 7 6 5 2 3 4 1 8 7 6 5 1 2 3 4 8 7 6 5 1 2 3 4 8 7 6 5 1 2 3 4 330 R6 PWM4 PWM3 Nc Vcc LED+ EN LED OUT NC GND Nc Vcc LED+ EN LED OUT NC GND Nc Vcc LED+ EN LED OUT NC GND 330 R6 330 R6 330 R6 Nc Vcc LED+ EN LED OUT NC GND 图 隔离电路原理图 15 第五章 系统软件设计原理 VHDL 语言 的 简介 VHDL 的全称 它的全称 (VeryHighSpeed Integrated Circuit Hardware Description Language)始 于 1982 年。 VHDL 语言的特点: (1)VHDL 语言功能强大,设计方式多样 它 具有 很 强大的语言结构,只需用简单的 VHDL 语言程序就可以描述 很 复杂的硬件电路 功能。 同时,它还有多层次电路设计 及电路 描述功能。 VHDL 语言能够同时支持同步、异步和随机电路的设计 与 实现,这是其他硬件描述语言所 无法 比拟的。 它的 设计方法灵活多变 ,既支持 由 顶向下的设计 模式 ,也支持 由 底向上的设计 模式,同时并兼 模块化 及 层次化设计方法。 (2)VHDL 语言含有强大的硬件描述功能 它 具有多层次电路设计 及 描述功能,既可描述系统级电路, 同时 也可以描述门级电路。 它还 支持惯性 及 传输延迟,这样 能 准确 地建立硬件电路的模型。 它 的强大描述能力还体现在 其 具有丰富的数据类型 ,它不仅 支持标准定义的数据类型, 还 支持用户 自 定义的数据类型,这样会给硬件 的 描述带来 很 大的自由 性。 (3) VHDL 语言有强大的可移植能力 它 的 可 移植 性 主要体现在: 对于 具有 同一个硬件电路 系统而言 ,它 的相同部分的代码 可以从一个模拟器移到另一个上、从一个综合器移到另一个上或从一个工作平台移到另一个上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 它 描述硬件电路时,设计人员不需要先选择进行设计的器件 ,这样做可以使设计人员集中精力进行电路 设计的优化 , 不需要考虑 别 的问题 , 当硬件电路的设计描述完成 之后, 它 允许采用多种不同的器件来实现。 (5) VHDL 语言程序便于复用与共享 16 它是 基于库 library 的设计方法 , 在设计 时 设计人员可以建立 多个 可 重复 利用的模块。 一个大规模硬件电路的设计 , 不可能从 一个个 门级电路开始进行设计,而是一些 不同 模块的累加。 这些模块可以 是 预先设计 好的,也可以 使用以前设计中的模块,将这些 常用的 模块存放在库中,就可以在以后的设计中进行 重复使用。 由于 它 是一 个 描述、优化、综合、模拟 及 布线的标准 的 硬件描述语言,因此它可以使设计者的 设计 成果在 不同的 设计人员之间方便 的 进行共享, 以此减小硬件电路设计的工作量。 Quartus II 简介 它 是 Altera 公司 的综合性 PLD 开发 软件,它 支持原理图 , VHDL, VerilogHDL 及 AHDL等多种设计输入形式, 自带 综合器 和时序 仿真器。 它 可以完成设计输入到硬件配置的完整的 PLD设计流程。 Quartus II 的特点 它具有友好的用户界面,便捷的使用方式,强大的功能,是一个完全集成化的可编程逻辑的设计环境,是一款先进的 EDA 工具软件。 它可以在多个系统上使用例如 XP 和 LINUXL, 除了可以使用 TCL 脚本完成设计流程以外,它还提供给用户完善的用户图形界面设计模式。 Quartus II 对第三方 EDA工具的支持 它对第三方 EDA工具的支持能更便于用户在设计时使用自己熟悉的第三方 EDA 工具。 Altera 的 Quartus II 是属于第四代 PLD 开发平台的可编程逻辑软件。 它支持一个工作组环境下的设计要求。 Quartus 与 Synopsys、 Cadence、 Synplicity 等 EDA 的开发工具相兼容。 增加了 FastFit 编辑选项,推进了网络的编辑性能并且提升了调试能力。 17 软件框图组成 图 系统的软件框图 否 否 否 是 是 否 是 否 是 是 开始 控制 ADC0809进行转换 控制 AD1674进行转换 进行数字滤波 电机是否过流 误差是否 1V 是否溢出 PI 控制 模糊控制 计算前馈量与反馈量之和 是否溢出 对溢出数据归类 判断电机正、反转,产生 PWM波控制信号 输出 返回 对溢出数据进行归类 反馈误差及计算 指令 控制 AD1674进行转换 计算机指令 二 次差值 计算机前馈控制量 计算机指令一次差值 是否溢出 误差滤波 生成 PWM 波屏蔽 信号 生成 PWM 波使能信号 对溢出数据进行归类 18 图 Quartus II软件绘制出整体软件原理图。 图 系统的整体软件设计原理图 19 软件系统主要控制模块 在 FPGA 中,采用 VHDL 语言进行编程。 VHDL 是一种采取自上而下设计方法的语言,我们利用其优秀的 EDA平台的通用性及优秀的可移植性和具有硬件结构无关性等等的特点,来实现系统的软件模块设计。 ADC0809 控制模块 FPGA 中使用的是一种 Moore 型的有限状态机,产生时序对 ADC0809 的模数装换进行控制,以此来完成对电流量的采样。 图 为 软件设计中 ADC0809 控制模块电路器件图。 D [7. .0]clkeocalestartoeclk nq[ 7. .0]ad c08 09 ctrlinst 图 ADC0809 控制模块电路器件图 ADC0809 代码 : library ieee。 use。 entity adc0809ctrl is port(D:in std_logic_vector(7 downto 0)。 8 位输入信号 ; clk,eoc:in std_logic。 状态机时钟和状态信号 ; ale,start,oe:out std_logic。 ADC0809 控制信号 ; clkn:out std_logic。 内部锁存信号 LOCK 的测试端 ; q:out std_logic_vector(7 downto 0))。 锁存数据输出 ; end entity adc0809ctrl。 architecture one of adc0809ctrl is type states is (st0,st1,st2,st3,st4,st5,st6)。 signal current_ state , next_state:states := st0。 状态机转换及信号控制进程 ; signal reg1:std_logic_vector(7 downto 0)。 20 signal lock:std_logic。 转换后数据输出锁存时钟信号 ; begin pro : process( current_state , eoc) 状态转换及信号控制进程 ; begin case current_state is when st0=ale=39。 0 39。 start=39。 039。 oe=39。 039。 lock=39。 039。 clkn=39。 039。 next_state = st1。 初始化; when st1=ale=39。 139。 start=39。 0 39。 oe=。基于fpga的直流电机伺服系统的设计与实现
相关推荐
么不完全符合设计者的需要。 这种矛盾来自于 FPGA 本身的结构局限性, 短期内很难得到很好的解决。 (6).尽管 FPGA 实现了 ASIC 设计的硬件仿 真,但是由于 FPGA 和门阵列、标准单元等传统 ASIC形式的延时特性不尽相同,在将 FPGA设计转向其它 ASIC设计时,仍然存在由于延时不匹配造成设计失败的可能性。 针对这个问 题,国际上出现了用 FPGA 数组对 ASIC
几十甚至上百公里,分散布局在各个山头或沟壑, 每个井场由 3~10 口井组成,每口油井独立对应一个标准储油罐。 由于各个井场 储油罐相距较远 ,目前采用的储油方法是各井场独立存油,一段时间后再 通过拉油车将原油运输到储油中心。 管理方面 当前多采用看井工人工管理和统计每日原油灌的储存量,缺少必要的监控手段,所以错报漏报甚至瞒报现象时有发 生 ,并且由于缺乏监管机制,使不法分子有机可乘
立新的连接几乎无需任何时间 (即无需为每次数据的访问建立呼叫连接 ),因而您随时都可与网络保持联系。 (3) 仅按数据流量计费 即根据您传输的数据量 (如:网上下载信息时 )来计费,而不是按上网时燕山大学本科生毕业设计(论文) 8 间计费也就是说,只要不进行数据传输,哪怕您一直 “ 在线 ”,也无需付费。 它真正体现了少用少付费的原则。 (4) 相对低廉的连接费用 资源利用率高在 GSM 网络中
扰性的高频信号,由于不须运算发大器,参数 计算容易,对系统要求不高。 因此在本设计中,利用 RC 低通滤波器就可以达到要求。 第三章 软件设计 相关软件采用 VHDL 硬件描述语言编写。 VHDL 是用于逻辑设计的硬件描述语言, 为IEEE 标准。 利用它,硬件的功能描述可完全在软件上实现。 它支持自顶向下( Top Down)和基于库( Library_Based)的设计方法,支持同步电路
码器的输出进行片选,译码器的两个地址引脚由单片机控制。 使用三块双口 RAM 的好处是可以顺利地接受单片机发送过来的数据,不必再增加额外的接口电路。 DDS 电路输出相位地址寻址波形数据存储器,波形数据存储器的输出和基准波模块的输出通过数字比较器 产生 PWM 波形。 DDS 基本原理 直接数字合成 (DDS, Direct Digital
京:科学出版社 .2020。 3. 赵俊超等 .集成电路设计 VHDL 教程 .【 M】 .北京 .北京希望电子出版社 .2020。 4. 周俊峰 陈 涛 . 基于 FPGA 的 直 接 数 字 频 率 合 成 器 的 设 计 和 实现 . 年 附录 : 顶层程序 文件名: library IEEE。 use。 use。 use。 entity top is Port (sysclk,reset