给予FPGA的模糊控制器的设计.doc_第1页
给予FPGA的模糊控制器的设计.doc_第2页
给予FPGA的模糊控制器的设计.doc_第3页
给予FPGA的模糊控制器的设计.doc_第4页
给予FPGA的模糊控制器的设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除基于FPGA的模糊控制器的设计摘 要模糊控制器常常应用在过于复杂和难以精确描述的系统中,本设计是在可编程逻辑器件FPGA的基础上设计一种通用的双输入单输出的模糊控制器,首先对模糊控制器的工作原理进行分析,将模糊控制器分成四个模块,误差E和误差变化率EC通过A/D转换模块使模拟信号转换成为数字信号,根据信号的模糊范围用模糊化模块进行数据模糊化,由于模糊控制查询表要由专家依据以前人工操作的经验来确定操作定制控制规则表生成LPM_ROM模块,经过去模糊模块使模糊数据变成准确的数据,然后使用自顶向下的设计方法对模糊控制器的各个模块进行硬件描述语言VHDL分层设计,最后在FPGA芯片上实现了该模糊控制器。 关键词:VHDL语言,模糊控制器,FPGA,规则表 FPGA-based design of fuzzy controller Abstract Fuzzy controller is often used in too complex and difficult to describe precisely the system, the design of programmable logic device in FPGA is designed based on a common two-input single-output fuzzy controller, the first of the fuzzy controller works analysis, the fuzzy controller is divided into four modules, the error E and error change rate EC through the A / D converter module to convert analog signals into digital signals, according to the fuzzy range of the signal module with fuzzy data fuzzy, due to fuzzy control query table to be manually operated by the experts based on past experience to determine the operating rules of the table generated LPM_ROM custom control module, through to the fuzzy module so that the fuzzy data into accurate data, and then use the top-down design method of fuzzy controller of all module hardware description language VHDL hierarchical design, and finally in the FPGA chip as the fuzzy controller.Keyword: VHDL, fuzzy control, FPGA, Rule table目录 前言1第1章 概述31.1 EDA技术发展历程及应用31.1.1 EDA的概念31.1.2 EDA的发展历史41.1.3 EDA的应用51.2可编程逻辑器件51.3现场可编程门阵列FPGA的介绍61.4模糊控制发展概述71.5基于FPGA的模糊控制器的优势8第2章 模糊控制系统的理论基础92.1模糊系统基础结构92.1.1模糊控制器的结构92.1.2模糊控制的基本理论92.2模糊控制基础10第3章 模糊控制器的设计113.1模糊控制器的设计方法113.2模数转换器ADC0809的设计113.2.1 ADC0809芯片介绍113.2.2模数转换器ADC0809的状态图133.2.3模数转换器ADC0809的VHDL程序设计133.2.4 ADCINT的仿真图153.3模糊化153.3.1模糊控制的算法组成153.3.2模糊控制表163.3.3模糊控制规则和模糊控制查询表的分析173.3.4模糊化VHDL语言程序183.4定制LPM_ROM213.4.1建立.hex格式文件213.4.2 LPM_ROM定制的VHDL语言程序213.5去模糊化233.6完成顶层设计253.7顶层仿真25结论26谢 辞27参考文献28附录29外文资料翻译30此文档仅供学习与交流前言随着电子设计技术的飞速发展,专用集成电路(ASIC)和用户现场可编程门阵列(FPGA)的复杂度越来越高。数字通信、工业自动化控制等领域所用的数字电路及系统其复杂程度也越来越高,特别是需要设计具有实时处理能力的信号处理专用集成电路,并把整个电子系统综合到一个芯片上。设计并验证这样复杂的电路及系统已不再是简单的个人劳动,而需要综合许多专家的经验和知识才能够完成。由于电路制造工艺技术进步非常迅速,电路设计能力赶不上技术的进步。在数字逻辑设计领域,迫切需要一种共同的工业标准来统一对数字逻辑电路及系统的描述,这样就能把系统设计工作分解为逻辑设计(前端)和电路实现(后端)两个互相独立而又相关的部分。由于逻辑设计的相对独立性就可以把专家们设计的各种常用数字逻辑电路和系统部件建成宏单元或软核库供设计者引用,以减少重复劳动,提高工作效率。电路的实现则可借助于综合工具和布局布线工具(与具体工艺技术有关)来自动地完成。VHDL和Verilog HDL这两种工业标准的产生顺应了历史的潮流,因而得到了迅速的发展。伴随着计算机技术的突飞猛进,出现了智能控制的新趋势,即以机器模拟人类思维模式,采用推理、演绎和归纳等手段,进行生产控制,这就是人工智能。其中专家系统、模糊逻辑和神经网络是人工智能的几个重点研究热点。相对于专家系统,模糊逻辑属于计算数学的范畴,包含有遗传算法,混沌理论及线性理论等内容,它综合了操作人员的实践经验,具有设计简单,易于应用、抗干扰能力强、反应速度快、便于控制和自适应能力强等优点。近年来,在过程控制、建摸、估计、辩识、诊断、股市预测、农业生产和军事科学等领域得到了广泛应用。而在本文中主要是在模糊控制中的应用,当前用模糊算法实现控制的方式主要有两种:一是传统的数字计算机或单片机加上模糊控制算法软件;二是利用专门设计的模糊控制芯片。前者由于使用软件编程,所以有很大的灵活性,但是只能应用于低速的控制,其性能也逊于后者的硬件方式。使用硬件来实现模糊控制,具有推理速度快、实时性好、便于修改模糊规则和隶属度函数等优点。因此通过分析模糊控制的主要流程,采用模块化的设计思想,设计出一个通用模糊控制器的结构模型,并且基于FPGA技术,实现各模块的重用性和可定制性,既克服了传统硬件无法重构的缺陷,同时也弥补了软件实现时在实时性和稳定性方面的不足。而且模糊控制不需要控制对象的精确数学模型,是一种基于规则的控制,依据操作人员的控制经验和专家的知识,通过查表得到控制量。因此,模糊控制器具有响应快、超调小、鲁棒性强等特点。它能够克服系统中模型参数变化和非线性等不确定因素,在大滞后、非线性系统中得到广泛应用。随着EDA技术得发展,FPGA在数字逻辑系统中发挥越来越重要的作用,采用硬件描述语言的硬件电路设计方法得到了广泛应用。 第1章 概述1.1 EDA技术发展历程及应用 1.1.1 EDA的概念在电子设计技术领域,可编程逻辑器件(如PLD, GAL)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。当然,这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于EDA的数字系统的设计技术具有更大的应用市场和更紧迫的需求性。1.1.2 EDA的发展历史EDA技术的发展始于70年代,至今经历了三个阶段。电子线路的CAD(计算机辅助设计)是EDA发展的初级阶段,是高级EDA系统的重要组成部分。它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图;采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。80年代初期,EDA技术开始技术设计过程的分析,推出了以仿真(逻辑模拟、定时分析和故障仿真)和自动布局与布线为核心的EDA产品,这一阶段的EDA已把三维图形技术、窗口技术、计算机操作系统、网络数据交换、数据库与进程管理等一系列计算机学科的最新成果引入电子设计,形成了CAE计算机辅助工程。也就是所谓的EDA技术中级阶段。其主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。其作用已不仅仅是辅助设计,而且可以代替人进行某种思维。CAE这种以原理图为基础的EDA系统,虽然直观,且易于理解,但对复杂的电子设计很难达到要求,也不宜于设计的优化。 中国微电子网-集成电路设计,集成电路工艺,集成电路版图,半导体技术,半导体器件,芯片封装与测试,所以,90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(电子系统设计自动化),即EDA阶段、也就是目前常说的EDA.过去传统的电子系统电子产品的设计方法是采用自底而上(Bottom_ Up)的程式,设计者先对系统结构分块,直接进行电路级的设计。这种设计方式使设计者不能预测下一阶段的问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使整个系统达到既定的功能和指标,不能保证设计一举成功。EDA技术高级阶段采用一种新的设计概念:自顶而下(Top_ Down)的设计程式和并行工程(Concurrent engineering)的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。此阶段EDA技术的主要特征是支持高级语言对系统进行描述,高层次综合(High Level Synthesis)理论得到了巨大的发展,可进行系统级的仿真和综合。1.1.3 EDA的应用 中国微电子网-集成电路设计,集成电路工艺,集成电路版图,半导体技术,半导体器件,芯片封装与测试, 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也依赖于EDA技术的应用。即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。 电子设计专家认为,单片机时代已经结束,未来将是EDA的时代,这是极具深刻洞察力之言。随着微电子技术的飞速进步,电子学进入了一个崭新的时代。其特征是电子技术的应用以空前规模和速度渗透到各行各业。各行业对自己专用集成电路(ASIC)的设计要求日趋迫切,现场可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的ASIC提供了技术和物质条件。与单片机系统开发相比,利用EDA技术对FPGA/CPLD的开发,通常是一种借助于软件方式的纯硬件开发,可以通过这种途径进行专用ASIC开发,而最终的ASIC芯片,可以是FPGA/CPLD,也可以是专制的门阵列掩模芯片,FPGA/ CPLD起到了硬件仿真ASIC芯片的作用。中国微电子网-集成电路设计,集成电路工艺,集成电路版图,半导体技术,半导体器件,芯片封装与测试。1.2可编程逻辑器件逻辑器件可分类两大类:固定逻辑器件和可编程逻辑器件。一如其名,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能,一旦制造完成,就无法改变。另一方面,可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑能力、特性、速度和电压特性的标准成品部件,而且此类器件可在任何时间改变,从而完成许多种不同的功能。对于固定逻辑器件,根据器件复杂性的不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。 而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。 然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试,既节约成本又可以节省时间。而可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。与此相比,CPLD提供的逻辑资源少得多。1.3现场可编程门阵列FPGA的介绍FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: (1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 (2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 (3)FPGA内部有丰富的触发器和IO引脚。 (4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 (5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。以各种类型的FPGA芯片加上实验开发需要的外围通用电路,结合实验程序,就形成FPGA开发板,可以高效快速学习FPGA开发。1.4模糊控制发展概述模糊逻辑控制(Fuzzy Logic Control)简称模糊控制(Fuzzy Control),是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。1965年,美国的L.A.Zadeh创立了模糊集合论;1973年他给出了模糊逻辑控制的定义和相关的定理。1974年,英国的E.H.Mamdani首先用模糊控制语句组成模糊控制器,并把它应用于锅炉和蒸汽机的控制,在实验室获得成功。这一开拓性的工作标志着模糊控制论的诞生。 模糊控制实质上是一种非线性控制,从属于智能控制的范畴。模糊控制的一大特点是既具有系统化的理论,又有着大量实际应用背景。模糊控制的发展最初在西方遇到了较大的阻力;然而在东方尤其是在日本,却得到了迅速而广泛的推广应用。近20多年来,模糊控制不论从理论上还是技术上都有了长足的进步,成为自动控制领域中一个非常活跃而又硕果累累的分支。其典型应用的例子涉及生产和生活的许多方面,例如在家用电器设备中有模糊洗衣机、空调、微波炉、吸尘器、照相机和摄录机等;在工业控制领域中有水净化处理、发酵过程、化学反应釜、水泥窑炉等的模糊控制;在专用系统和其它方面有地铁靠站停车、汽车驾驶、电梯、自动扶梯、蒸汽引擎以及机器人的模糊控制等。1.5基于FPGA的模糊控制器的优势以FPGA为控制核心和VHDL 语言编程, 采用自顶向下的设计方法, 采用模块化的设计, 对功能的修改和增加, 只要修改VHDL 源程序, 而不必更改硬件电路。将硬件设计向软件化方向发展, 实现在线编程,大大简化数字系统的开发设计过程,从而有效地减少系统的体积, 增加系统的可靠性, 而且缩短开发周期, 降低研制成本。目前, 基于FPGA 芯片开发的设计方法正得到越来越多的应用。第2章 模糊控制系统的理论基础2.1模糊系统基础结构2.1.1模糊控制器的结构 图2-1模糊控制系统的结构图由图2-1可知,模糊控制器的基本结构包括A/D转换器、模糊化模块、模糊推理模块、去模糊化模块四部分,因此在本设计中将以这四个模块为主来设计,其他的不再涉及。在模糊控制系统中,首先是通过模糊输入端将A/D采样得到的误差E和误差变化率EC的精确值转换成为系统需要的模糊量。根据输入的模糊量及模糊控制规则,按模糊推理合成规则推出系统所需的模糊控制量,然后再模糊输出端将输出的模糊控制量转化成为精确的控制量,最后将精确量送入执行机构来控制被控对象。2.1.2模糊控制的基本理论 所谓模糊控制,就是在控制方法上应用模糊集理论、模糊语言变量及模糊逻辑推理的知识来模拟人的模糊思维方法,用计算机实现与操作者相同的控制。该理论以模糊集合、模糊语言变量和模糊逻辑为基础,用比较简单的数学形式直接将人的判断、思维过程表达出来,从而逐渐得到了广泛应用。应用领域包括图像识别、自动机理论、语言研究、控制论以及信号处理等方面。在自动控制领域,以模糊集理论为基础发展起来的模糊控制为将人的控制经验及推理过程纳入自动控制提供了一条便捷途径。2.2模糊控制基础模糊控制的基本思想是利用计算机来实现人的控制经验,而这些经验多是用语言表达的具有相当模糊性的控制规则。模糊控制器获得巨大成功的主要原因在于它具有如下一些突出特点: 模糊控制是一种基于规则的控制。它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。 由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取、动态特性不易掌握或变化非常显著的对象非常适用。 基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统的语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。 模糊控制算法是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。 模糊控制系统的鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,尤其适合于非线性、时变及纯滞后系统的控制。第3章 模糊控制器的设计3.1模糊控制器的设计方法根据模糊控制器设计的理论可知,模糊控制系统的设计中所选的模糊控制器的维数越高,系统的控制精度也就越高,在建立模糊控制规则的时候就变的比较困难,同时计算机实现起来也比较麻烦。因此本文主要采用设计的通用方法,采用双输入单输出的二维模糊控制器的设计。通过模糊控制系统的原理可知,模糊控制器的主要作用实际上就是通过A/D转换得到输入映射到模糊控制表的对应输出量,来转换为可以利用的控制信号进行控制。其中模糊控制表是通过我们根据实际经验首先定义误差E和误差变化率EC和输出U的隶属函数表,在通过实际操作人员的经验设计模糊控制规则表离线计算得到的。然后我们可以将得到的模糊控制表中的数据存入到计算机系统的ROM中,在实际操作中我们只需要通过软件和硬件设计电路来查找模糊控制表中的数据来进行控制的系统。 3.2模数转换器ADC0809的设计3.2.1 ADC0809芯片介绍 图3-1时序图 图3-2 ADC0809芯片(1)、模拟信号输入IN0IN7: IN0-IN7 为八路模拟电压输入线,加在模拟开关上,工作时采用时分割的方式,轮流进行A/D 转换。 (2)、地址输入和控制线:地址输入和控制线共4 条,其中ADDA、ADDB 和ADDC 为地址输入线,用于选择IN0-IN7 上哪一路模拟电压送给比较器进行A/D 转换。ALE 为地址锁存允许输入线,高电平有效。当ALE 线为高电平时,ADDA、ADDB和ADDC 三条地址线上地址信号得以锁存,经译码器控制八路模拟开关通路工作。 (3)、数字量输出及控制线(11 条):START 为“启动脉冲”输入线,上升沿清零,下降沿启动ADC0809 工作。EOC 为转换结束输出线,该线高电平表示AD 转换已结束,数字量已锁入“三态输出锁存器”。D0-D7 为数字量输出线,D7 为最高位。OE 为“输出允许”线,高电平时能使D0-D7 引脚上输出转换后的数字量。 (4)、电源线及其他(5 条):CLOCK 为时钟输入线,用于为ADC0809 提供逐次比较所需,一般为640kHz 时钟脉冲。VCC 为+5V 电源输入线,GND 为地线。REF+ 和REF- 为参考电压输入线,用于给电阻网络供给标准电压。REF+ 常和VCC 相连,REF- 常接地。ADC0809 芯片性能特点: 是一个逐次逼近型的A/D 转换器,外部供给基准电压;单通道转换时间116us;分辨率为8 位,带有三态输出锁存器,转换结束时,可由CPU 打开三态门,读出8 位的转换结果;有8个模拟量的输入端,可引入8 路等待转换的模拟量。 ADC0809 的数据输出结构是内部有可控的三态缓冲器,所以它的数字量输出信号线可以与系统的数据总线直接相连。内部的三态缓冲器由OE 控制,当OE 为高电平时,三态缓冲器打开,将转换结果送出;当OE 为低电平时,三态缓冲器处于阻断状态,内部数据对外部的数据总线没有影响。因此,在实际应用中,如果转换结束,要读取转换结果,则只要在OE 引脚上加一个正脉冲,ADC0809 就会将转换结果送到数据总线上。3.2.2模数转换器ADC0809的状态图 图3-3状态图3.2.3模数转换器ADC0809的VHDL程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT ISPORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK : IN STD_LOGIC; EOC : IN STD_LOGIC; ALE : OUT STD_LOGIC; START : OUT STD_LOGIC; OE : OUT STD_LOGIC; ADDA : OUT STD_LOGIC; LOCK0 : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4) ;SIGNAL current_state, next_state: states :=st0 ;SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK : STD_LOGIC;BEGINADDA = 1; Q = REGL; LOCK0 ALE=0;START=0;LOCK=0;OE=0;next_state ALE=1;START=1;LOCK=0;OE=0;next_state ALE=0;START=0;LOCK=0;OE=0;IF (EOC=1) THEN next_state = st3; ELSE next_state ALE=0;START=0;LOCK=0;OE=1;next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0;END CASE ;END PROCESS COM ;REG: PROCESS (CLK)BEGINIF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF;END PROCESS REG ; LATCH1: PROCESS (LOCK) BEGINIF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF;END PROCESS LATCH1 ;END behav;3.2.4 ADCINT的仿真图 图3-4仿真图 当为上升沿时,输入的数字量是03同时输出的值也是03,为12时输出亦为12则仿真正确。3.3模糊化3.3.1模糊控制的算法组成模糊控制算法的设计主要包括两部分:一是建立模糊控制查询表;二是将查询表存放到计算机中,在实时控制时,通过查找查询表得到相应的控制量。3.3.2模糊控制表在具体设计模糊控制系统时,系统的论域时根据实际情况来确定的,在本文系统设计时,假设误差E的模糊子集为PL(正大)、PM(正中)、PS(正小)、Z(零)、NS(负小)、NM(负中)、NL(负大),误差变化率EC和输出U的模糊子集均为PL、PM、PS、Z、NS、NM、NL,输入变量E(误差)、EC(误差变化率)以及输出变量U的基本论域分别为-24,24、-20,20和-30,30,假若论域元素范围都为-6,6,即E的论域为-6,-5,-4,-3,-2,-1, 0,1,2,3,4,5,6,EC和U的论域为-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6。其中在误差E的模糊子集中将零分为正零和负零主要是为了提高系统的稳态精度,以便达到理想的控制效果。在本文中我们没有采用将E、EC、U和模糊控制规则也存入内存中然后再经过模糊化、模糊推理很去模糊化的方法来设计,而是采用通过离线的方法首先定义E、EC和U,然后根据实际操作经验人员的经验设计模糊控制规则,在通过计算得到模糊控制表3-1。 表3-1模糊控制查询表输出U误差E-6-5-4-3-2-10123456误差变化率EC-612111211999876666-511111111999876666-412111211999876666-311111111101010855555-212111211997664333-112111211997644333012111211976531010199986653310102999766533101037776665341111466655433310105666554333111166665553331110由上面可知,误差E基本的论域分别为-24,24,论域元素的取值范围都是-6,6,那么我们可以将其分为-,-20、-19,-16、-15,-12、-11,-8、-7,-4、-3,-1、0、1,3、4,7、8,11 、12,15、16,19、20,总共13段。如果输入精确值为-30,那么E=-6;如果输入的是18,那么E=5。误差变化率EC基本的论域分别为-20,20,论域元素的取值范围都是-6,6,那么我们可以将其分为-,-17、-16,-14、-13,-11、-10,-8、-7,-5、-4,-1、0、1,4、5,7、8,10 、11,13、14,16、17,总共13段。如果输入精确值为-30,那么E=-6;如果输入的是13,那么E=4。输出U的基本的论域分别为-30,30,论域元素的取值范围是-6,6,那么我们可以将其分为-,-25、-24,-20、-19,-15、-14,-10、-9,-5、-4,-1、0、1,4、5,9、10,14 、15,19、20,24、25,总共13段。在内存中完全可以用4位二进制来表示E,其中0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100代表E的论域-6,-5,-4,-3,-2,-1, 0,1,2,3,4,5,6;同理也可以用4位二进制来表示EC,其中0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100代表EC的论域-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6;因此在对地址进行编码的主要由两部分组成,分别为E和EC。我们可以把误差E的编码作为高4位,把误差变化率EC的编码作为低4位,由此可以寻址的内存空间为256个,通过前面的计算得到的模糊控制表中的数据,数据的宽度完全可以用4位二进制表示。3.3.3模糊控制规则和模糊控制查询表的分析模糊控制查询表是整个控制系统的核心,它是事先依据积累的相关历史操作数据创建的。它可以看作为一个以表格形式表示的控制规则,表示模糊控制器的输入与输出的对应关系。其创建过程大致可分为三个阶段:第一阶段是对积累的大量手动控制操作数据和系统偏差数据进行分析整理,在这一阶段将手动操作数据和对象的输出数据保存在一个数据库中(称为人工操作数据库);第二阶段,由专家根据人工操作数据和操作经验确定模糊子集、相应的语言变量、隶属度函数赋值表、控制规则表;第三阶段是由模糊子集、隶属度函数赋值表和控制规则表推导计算出模糊 制查询表。在第二阶段,由于需要专家凭经验和知识确定模糊子集、相应的语言变量、隶属度函数赋值表、控制规则表, 此时在一定的主观随意性,其准确性因人而异,重复性较差。对同一系统,不同的专家可能会得出不同的控制规则表。第三阶段的模糊运算和推导相当复杂且工作量较大。很多场合,模糊控制效果不佳,主要原因就是最终得到的模糊控制查询表不准确。应用关联规则数据挖掘技术则可很好地解决上述问题。3.3.4模糊化VHDL语言程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity mohuhua is PORT(E:IN std_logic_vector(7 downto 0); EC:IN std_logic_vector(7 downto 0); CLK: in std_logic; Q: out std_logic_vector(7 downto 0);End mohuhua;architecture dingcengsheji of mohuhua isSIGNAL A :std_logic_vector(3 downto 0);SIGNAL B :std_logic_vector(3 downto 0);SIGNAL c :std_logic_vector(7 downto 0);beginprocess (E,EC,CLK) begin if clkevent and clk=1 then if E=-20 then A=-19 AND E=-16 then A=-15 AND E=-12 then A=-11 AND E=-8 then A=-7 AND E=-4 then A=-3 AND E=-1 then A=0101;elsif E=0 then A=1 AND E=3 then A=4 AND E=7 then A=8 AND E=11 then A=12 AND E=15 then A=16 AND E=19 then A=20 then A=1100;end if;if EC=-17 then B=-16 AND EC=-14 then B=-13 AND EC=-11 then B=-10 AND EC=-8 then B=-7 AND EC=-5 then B=-4 AND EC=-1 then B=0101;elsif EC=0 then B=1 AND EC=4 then B=5 AND EC=7 then B=8 AND EC=10 then B=11 AND EC=13 then B=14 AND EC=16 then B=17 then B=1100;end if;end if;end process;C=A&B;Q=C;End dingcengsheji;图3-5模糊化的仿真图 当为下降沿时无效,如E=-7,EC=-7时,不进行模糊化,当为上升沿是,E为-7,-4和EC为-7,-5,模糊化分别是0100,0100,则对应正确,由于EC到-5时结束,所以E的-4同EC的下一区域单独组成,根据前面的定义划分和实际的划分进行对比判断,结果正确同时仿真正确。3.4定制LPM_ROM3.4.1建立.hex格式文件 图3-6将波形数据填入hex文件表中3.4.2 LPM_ROM定制的VHDL语言程序LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY data_rom ISPORT (address : IN STD_LOGIC_VECTOR (8 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END data_rom;ARCHITECTURE SYN OF data_rom ISSIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncram altsyncramGENERIC( intended_device_family : STRING; width_a : NATURAL;widthad_a : NATURAL;numwords_a : NATURAL;operation_mode : STRING;outdata_reg_a : STRING;address_aclr_a : STRINGoutdata_aclr_a : STRING;width_byteena_a : NATURAL;init_file : STRING;lpm_hint : STRING;lpm_type : STRING );PORT ( clock0 : IN STD_LOGIC ; address_a : IN STD_LOGIC_VECTOR (7 DOWNTO 0);q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END COMPONENT;BEGINq Cyclone, width_a = 8, widthad_a = 8, numwords_a = 256, operation_mode = ROM, outdata_reg_a = UNREGISTERED, address_aclr_a = NONE,outdata_aclr_a

温馨提示

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

评论

0/150

提交评论