河南师范大学本科毕业论文(设计)
3.5 模糊控制模块简介
安装NI光盘Tookit Software中的LabVIEW PID Control Tookit,即可在LabVIEW中生成该工具包。安装完成后打开一个新的VI,右击程序框图,在Functions Palette上选择Control Design&Simulation,即可看到Fuzzy Logic工具包,该工具包由3个VI组成(图3-5)。安装工具包后,可以使用LabVIEW创建.fc格式的文件。.fc文件是NI自定义的一种文件格式,用于仿真模糊控制器推理机中的知识库。
图3-5 Fuzzy Logic工具包
创建一个.fc文件步骤如下:打开一个新的VI,在任务栏依次点击Tools——Control Design and Simulation——Fuzzy Logic Controller Design?,接着在弹出的 Fuzzy Logic Controller Design(如图3-6)对话框的状态栏上点击File——New,即打开了一个新的.fc文件。
图3-6 Fuzzy Logic Controller Design
接着弹出一个Fuzzy Set Editor对话框,这是仿真模糊推理器中的数据库。工程师可根据专家经验绘制出输入和输出量的隶属函数图,绘制完成后点击Quit;接着弹出 Rulebase Editor对话框(图3-7),这是仿真模糊推理器的规则库。工程师根据实际情况将制定好的规则写入,完成后点击Quit;最后点击File——Save,给出保存位置和文件名,一个.fc文件就创建完成了。
15
河南师范大学本科毕业论文(设计)
图3-7 Fuzzy Set Editor
图3-8 Rulebase Editor
.fc文件使用工具包Fuzzy Logic中的Load Fuzzy Controller.vi加载,该VI加载后将数据传送到Fuzzy Controller.vi中。Fuzzy Controller.vi接收输入信号(最多可接受4维输入),根据.fc文件进行模糊推理,并计算出合适的输出信号值(图3-8)。工具包中的另一个VI是Test Fuzzy Controller.vi,它可以通过手动输入算出输出响应值,已到达调试.fc文件中规则和隶属度函数的目的。
16
河南师范大学本科毕业论文(设计)
4 以单片机为核心的下位机的设计
4.1 下位机设计方案
下位机上,本设计采用Atmega16控制DS18B20采集温度,并将采集到的温度通过串口发送到上位机,以便处理。在上位机发回控制信息后,单片机将收到的信息按照一定的规则处理后,将其送入功率控制设备。此功率设备为过零型固态继电器,在电流过零处导通或关断,易于实现PWM的控制。 4.2下位机的硬件设计
硬件部分分为四个部分:主控部分、DS18B20测温部分、通信部分、程序下载部分。 4.2.1主控部分
由于需要进行串口通信,所以单片机的晶体振荡器我们选择用的比较多的7.3728MHz的外部晶振(如图4-1)。
图4-1 主控部分
4.2.2 DS18B20测温部分
本来在DS18B20的数据脚上应该接一个4.7K的上拉电阻(如图4-2),可是由于Atmega16中的数据脚上已经有了内部的上拉电阻,我们就不需要在外部再加。这样不仅降低了成本,最大程度利用了Atmega16的强大功能,而且降低了电路的复杂性,使布线更加方便。
图4-2 测温部分
17
河南师范大学本科毕业论文(设计)
4.2.3通信部分 硬件电路如图4-3
图4-3 串口通信部分
4.2.4程序下载部分 硬件电路如图4-4
图4-4 程序下载部分
4.3 下位机的软件设计
系统模型如下图4-5. 温度 PID/模糊 加热执行设温度 输入 控制器 备 输出 图4-5 下位机系统模型
18
河南师范大学本科毕业论文(设计)
4.3.1DS18B20工作原理及应用
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前有必要了解DS18B20的内部存储器资源。DS18B20共有三种形态的存储器资源,它们分别是:
ROM 只读存储器,用于存放DS18B20ID编码,其前8是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。
RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。
EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
控制器对18B20操作流程:
(1)复位:首先必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。
(2)存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与DS18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
(3)控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。
19