ARM传送皮带秤计量配料控制器设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
封面
作者:PanHongliang
仅供个人学习
西南科技大学
毕业设计(论文)题目名称:基于ARM的传送皮带秤计量配料控制器的设计
年级:2003级 本科□专科
学生学号:20035333
学生姓名:陈昊指导教师:李众立罗亮
学生单位:信息工程学院技术职称:教授讲师
学生专业:自动化教师单位:信息工程学院
基于ARM的传送皮带秤计量配料控制器的设计
摘要:嵌入式系统是一种面向具体应用的将底层硬件,实时操作系统和应用软件相结合的专用计算机系统,其广泛应用于控制领域,消费电子产品等行业,已成为现代电子领域的重要研究方向。
也越来越多的应用于工业控制领域中。
水泥厂的生料配料是将经过粗加工的水泥原料按一定比例混合在一起的过程,提高生料配料的精度在水泥生产过程中是保证水泥煅烧质量的重要条件,但是目前我国很多的中小水泥厂由于资金不足采用人工配料,无法快速,准确,实时的控制生料配料,本文设计了一种采用基于ARM内核的LPC2132单片机作为核心控制器的水泥配料控制系统,该系统主要能够完成对原料的配送,检测,管理和自动控制。
控制算法采用PID 算法,数字滤波采用中值平均算法,能够有效改善系统的控制性能,达到快速,实时,精确的对水泥原料进行配比。
关键词:皮带秤;ARM单片机;数字滤波;PID
The Desgin of automatic cement burden Controllor
and ARM Realized
Absract:Embeded system is the speciality computer system ,which the bottom hardware,
the Rtos and the application software are united ,it has been used in the fields of control ,consumer electronic product and etc .it has been one of the most important research aspect of the electron field.and it has been more and more used in the industry control fields too. The cement burden system is a process which mixed raw materials.I t’s very important that inhance the accurate of cement burden system in process which mix the raw materials.But now many small and medium-sized factory due to insufficient funds, so theyhave to used artificial ingredients, not rapid, accurate, Real-time control these raw ingredients.This paper introduce aotomatic cement burden system which used ARM LPC2132 as a core controllor. The feeding of row matierals,detection,management and automatic control are accomplished by the system.the control algorithm used PID algorithm. Digital filter used ,the control performance of system can be improved by them. achieve rapid, real-time, accurate right raw materials for cement ratio. The cement burden system is a process which mixed raw materials.I t’s very important that inhance
the accurate of cement burden system in process which mix the raw materials. Keyword:ARM MCU,belt weigher,digital filter,PID
目录
第一章绪论1
1.1 课题的背景目的及意义1
1.1.1 课题的背景1
1.1.2 课题的目的及意义1
1.2 系统设计内容1
第二章控制器设计概述3
2.1 水泥配料系统的工作原理3
2.2 系统硬件概述3
2.3 系统软件设计概述5
2.4 系统的功能6
2.4.1 手动运行6
2.4.2 自动运行6
第三章ADS集成开发环境及EasyJTAG仿真器介绍8
3.1 ADS集成开发环境8
3.2 EasyJTAG 仿真器8
第四章控制器的软件设计10
4.1 系统软件概述10
4.2 A/D采样模块10
4.2.1 A/D动态采样10
4.2.2 A/D静态采样15
4.3 D/A输出模块18
4.4 数据处理方法18
4.5 速度脉冲模块24
4.6 控制策略(PID算法)25
第五章调试31
5.1 调压31
5.2 动态调试31
5.2.1 零点电压校正31
5.2.2 采样数据修正31
5.3 静态调试:32
5.3.1 零点电压校正32
5.3.2 数据修正32
5.4 参数整定方法32
结论35
致谢36
参考文献37
附录138
附录250
第1章绪论
1.1 课题的背景目的及意义
1.1.1 课题的背景
目前我国中小型水泥厂在水泥生产中的比重越来越大,在企业生产工艺过程中,需要将各种原料按照一定的比例配成混合物料,配比的准确性以及配料系统的可靠性都将直接影响产品的质量和企业的经济效益。
目前我国大部分中、小水泥厂在水泥生产过程控制和生产管理上仍然比较原始或落后。
生产的质量很不稳定,生产环境恶劣。
究其原因,由于市场竞争激烈,它们的产品质量、价格难以和大型水泥厂如海螺集团抗衡,另外也由于国家的政策调控如关停能耗高、污染重的企业的原因,这些厂进入一种恶性循环,效益低下,技改资金紧缺,技术力量不足,技术人才相当缺乏。
在工业生产中,很多情况下是通过现场操作人员按照配比,人工调节给料机的给料量。
其缺点是给料量的大小完全靠操作人员的经验或人工跑盘的结果来决定,配比精度较差,操作人员劳动强度大,自动化水平极低。
因此实现高精度自动配料对工业企业生产具有重要的意义。
1.1.2 课题的目的及意义
通过设计水泥配料自动系统,能够在中小水泥企业中推动技术革新,提高广大中小水泥企业的生产效率,减小现场操作人员的劳动强度,快速,实时,精确的进行水泥物料的配比,提高中小水泥企业在市场竞争中的竞争力,获得更高的经济效益。
此外本课题需要完成一个完整系统的设计,涉及到电子技术、传感器技术、计算机应用与控制技术,数字滤波等多学科性知识,是一个硬软件相结合的设计性题目。
本课题能提高我的检索资料的能力、电子系统设计的能力、实际动手的能力、分析排除故障的能力以及创新设计的能力等。
并且,可以通过此次设计,很好的掌握系统设计的工作流程、开发步骤,熟悉ARM单片机开发的编程语言。
1.2 系统设计内容
该系统主要是针对水泥生产的配料过程进行自动配料,以达到配比精度高,减少操作人员工作强度的目的,系统设计的详细任务如下:
(1)数据采样,该控制器能够对传感器传上来的电压信号进行准确的采样。
(2)数据显示,分为编辑和统计功能,可显示编辑台时配比调整系统和皮
重。
(3)能够通过改变变频器的电压值来改变皮带速度。
(4)能够根据实时流量和设定值的差值自动进行流量调整。
实现所有的硬件、软件设计、系统整体调试、形成可以正常运行的产品为本次设计的最终目标,但我所做的工作主要是对A/D采样,D/A输出,对采样数据进行处理以及用PID控制策略对系统进行控制。
第2章控制器设计概述
2.1水泥配料系统的工作原理
水泥生产原料经过磨碎后分别存入原料库中,库底由棒状卸料阀进行卸料,并安装一台皮带称,当系统启动运行时,需要下料的原料库卸料阀门打开,原料流到皮带称上,电机带动皮带按照设定的速度转动,随着皮带的转动,下料口的原料被皮带拉出,系统通过对皮带机上的原料称重和皮带转动的线速度计算出流量,并与设定的流量比较,若有偏差则调整皮带机的转速,以达到按一定的比例和流量进行配料的目的。
2.2系统硬件概述
系统硬件构成:
由四路独立的定量计量系统构成,每路都包含动态申克皮带调速称、静态斗式称,每条路都可以实现“动态”、“静态”、“动态加静态称”构成四路独立的、双称高精度的、三种模式的定量计量控制系统,可以组合成2-4个组分,构成1或2个微机配料系统。
控制系统能实现对系统内所有设备的启、停控制(如外围输送设备)和管理。
皮带秤:本系统共有4台皮带秤,每台皮带秤的最大流量是0.5吨/小时,在皮带秤的右方安装有1台电机,用于拖动皮带转动,为了满足要求,因此在电机上安装了齿轮变速装置,用于降速。
(转速较慢)
提升机:有2抬提升机,分别将水泥原料从地下的储料室提升到皮带秤上方的储料仓里,用于向皮带秤提供物料。
动态秤荷重传感器:安装在皮带秤上靠近出料口的下方,测量范围从0到50公斤,采集得到的电压信号为5伏。
静态秤荷重传感器:安装在静态秤出料口的下方,测量范围从0到33公斤,
采集得到的电压信号为5伏。
测速电机:安装在皮带秤的电机上,能够将电机的转速以脉冲的形式传送给变换器,齿轮转动时,每过1个齿,发出1个脉冲,输出的脉冲电压信号为12伏。
变频器:变频器安装在电气控制柜中,能够将给定的电压信号传送给皮带秤上的电机,用于调整皮带的转速。
线性电源:也就是1台变压器,安装在电气控制柜中,由于电气控制柜中安装有很多A/D或D/A变换器,因此需要提供工作电压,线性电源能够将220伏转换为12伏作为这些变换器工作的基准电压。
该称配料系统可以进行手动操作或自动运行,简单方便。
整个系统由4台电气控制柜分别对4台皮带秤进行控制。
电气控制柜:该系统共有4台电气控制柜,用于控制4台皮带秤,可手动或自动,其面板图见附录二。
在每台电气控制柜中安装有很多变换器,用于将上述3种传感器采样得到的电压信号转换为LPC2132可以承受的电压3.3伏,此外变频器,线性电源也安装在里面。
我要完成的主要是水泥称配料系统的自动运行控制器的设计。
系统原理框图如图2-1所示:
该控制器是采用基于ARM架构的单片机LPC2132,对传感器输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块,使智能化程度更高、结构更紧凑、功能更丰富。
该系统的粗略框图如下图所示,模拟量通过传感器经过变送器和滤波器变为0~3.3V,再由A/D转换器变为数字信号后,送给单片机2132和LED显示器,一旦测得的流量与设定值有偏差,则单片机2132就通过D/A向变频器发出电压信号,改变皮带转速,以达到调整流量的目的。
2.3系统软件设计概述
系统软件采用模块化设计,功能组态方便。
基本软件模块包括以下几大模块。
(1)A/D采样模块
(2)LED显示模块
(3)D/A输出模块
(4)PID
(5)速度脉冲模块
其中PID控制算法模块是整个软件的核心。
2.4 系统的功能
定量配料实践教案系统是由西南科技大学制造学院与绵阳市盛实自动化有限公司共同研究开发的集实验教案与生产实践于一体的新装备。
该装备以当前水泥生产现场定量配料的真实的多台皮带秤和斗式秤为基础,以自主研究开发的ARM嵌入式定量配料控制器为核心,完成真实的定量配料生产过程控制任务。
系统要求4台秤以两台为1组,1组流量为2吨/小时,1组流量为0.5吨/小时系统要求要能完成以下操作:
2.4.1 手动运行
1.将操作面板左上方的“变频秤”旋钮打至“手动”状态,此时可通过调节动,静态系数进行校秤。
2.往上打开操作板右方的“校秤”开关,指示灯亮,动、静态秤LED显示表亮,第1位显示“A”(表示现在显示的是动、静态秤系数调节),后面3位是调节量,转动LED显示表下方相应的滑动变阻器调节,则动,静态秤LED 显示表后3位调节量会发生相应变化,可调节系数直到满意为直到满意为止,往下关闭“校秤”开关,指示灯灭。
(注意:“变频秤”旋钮打至“手动”状态时才能调节,打至“自动”状态时不能调节。
)
2.4.2自动运行
1.将操作面板左上方的“变频秤”旋钮打至“自动”状态。
2.若要调节给定流量,打开操作面板右上方的“流量给定”按钮,指示灯亮,动、静态秤LED显示表亮,第1位显示“b”(表示现在显示的是动、静态秤给定量),后面3位是调节量,转动LED下方相应的滑动变阻器, 则动,静态秤LED显示表后3位调节量会发生相应变化,可调节给定量直到满意为止,关闭“给定”按钮,指示灯灭。
(注意:“变频秤”旋钮打至“自动”状态时才能调节,打至“手动”状态时不能调节。
)
3.确定校秤和给定设置好后,将操作面板上的变频器旋钮打至“手动”状态,同时打开操作面板右下方的“手动计量”按钮,动、静态秤开始自动运行,若“手动计量”关闭,则动、静态秤停止自动运行。
该系统能提供很强的供学生学习、操作的定量配料功能,每路定量计量系统可以实现手动、自动和有DCS网络控制等多种控制功能。
整个微机配料系统能提供使学生通过仪表或者软件,采集或测试系统工作的基本参数的能力(如调速电机的控制电压、带速、称重传感器的电源信号等等)。
提供基于PC机的带JTAG接口的在线仿真系统控制软件开发平台,使任何一台普通PC都可用于系统控制;提供研究该系统的部分样例程序(如外围接点采样、控制,以及设备应用的样例程序)以供学生学习、研究。
达到学生能通过学习利用软件开发平台,自行编制控制软件(或部分控制软件)对系统中的各个硬件设备乃至整个系统的工作进行控制。
第3章ADS集成开发环境及EasyJTAG仿真器介绍3.1ADS集成开发环境
ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARMDeveloperSuite,成熟版本为ADS1.2。
ADS1.2支持ARM10之前的所有ARM 系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000以及RedHatLinux上运行。
ADS1.2集成开发环境的组成
ADS1.2由6个部分组成,如表3-1所示:
表3-1 ADS 1.2 的组成部分
3.2EasyJTAG仿真器
EasyJTAG仿真器是广州周立功单片机发展有限公司开发的LPC2000系列ARM7 微控制器的JTAG仿真器,支持ADS1.2集成开发环境,支持单步、全速及断点等调试功能,支持下载程序到片内FLASH和特定型号的片外FLASH,采用ARM公司提出的标准20脚JTAG仿真调试接口。
其主要特点如下:采用RDI通讯接口,无缝嵌接ADS1.2和其它采用RDI接口的IDE调试环境。
高达1M速率的JTAG时钟驱动。
采用同步Flash刷新技术(synFLASH),同步下载用户代码到Flash中,即下即调。
采用同步时序控制技术(synTIME),仿真可靠稳定。
支持32位ARM指令/16位THUMB指令的混合调试。
增加映射寄存器窗口,方便用户查看/修改寄存器数值。
微型体积设计,方便用户灵活使用。
第4章控制器的软件设计
4.1系统软件概述
作为该系统的主要部分,系统的软件设计是该系统是否具备自动配料功能的重要条件,通过对皮带自动配料系统工作原理的分析,该系统主要包括以下几?大功能,因此对系统软件采取模块化设计,功能组态方便,基本程序模块包括初始化程序,中断服务程序等,其中中断服务程序又包括
(1)A/D采样模块
(2)D/A输出模块
(3)PID控制算法模块
(4)LED显示模块
(5)脉冲测试模块
以上模块就是能够实现系统功能的软件模块,在编程语言方面采用了我们教为熟悉并且应用很广泛的C语言,还有少量汇编语言(仅作初始化用)。
4.2 A/D采样模块
作为皮带配料系统,其工作原理首先要求的就是能够对正在皮带称上运动的水泥原料进行质量测试,通过对皮带称的结构分析得出,需要质量采样的地方有两处,一处是皮带上运动的物料,另一处则是皮带称出料口出料仓里所装的物料,因此整个A/D采样模块可分为动态采样和静态采样两大部分。
4.2.1 A/D动态采样
这一模块主要针对随皮带运动的水泥物料的质量检测,在皮带称下方安装有一台压力传感器,它能将在皮带上运动的物料的压力信号转化为电压信号,传给控制器。
为了能够获取其传出的电压值,有以下工作要完成,其程序结构如下:
①初始化管脚
②进行ADC模块设置
③定时器初始化
④中断设置
⑤中断服务程序(A/D动态采样)
⑥返回
(1)初始化管脚
PINSEL0 = 0x00000000。
设置管脚连接GPIO
PINSEL1 = 0x15400000。
p0.27,p0.28,p0.29 p0.30设置为AIN0,AIN1,AIN2,AIN3
(2)ADC模块设置
由于开发板自带有A/D转换电路,因此,不需要再接外接电路,只需在软件中进行设置即可,由于A/D转换器ADC(A/D converters)的基本时钟由VPB 时钟提供,每个转换器包含一个可编程分频器,可将时钟调整至逐次逼近转换所需的4.5MHz,完全满足精度要求的转换需要11个转换时钟。
使用ADC模块时,先要将测量通道引脚设置为AINx 功能,然后通过ADCR寄存器设置ADC 的工作模式,ADC 转换通道和转换时钟(CLKDIV时钟分频值),并启动ADC 转换。
可以通过中断的方式等待ADC 转换完毕,转换数据保存在ADDR寄存器中。
ADC转换时钟分频值计算公式如下:CLKDIV=Fpclk / Fadclk -1
其中:Fadclk为所要设置的ADC时钟,其值不能大于4.5MHz。
因此,取转换时钟设置为1MHz,使用AIN0进行10位ADC 转换的初始化程序如下:
/*进行ADC模块设置,其中x<<n表示第n位设置为x(若x超过一位,则向高位顺延) */
ADCR = (1 << 0) // SEL = 1 ,选择通道0
((Fpclk / 1000000 - 1) << 8) // CLKDIV = Fpclk / 1000000 -
//1 ,即转换时钟为1MHz
(0 << 16) // BURST = 0 ,软件控制转换操作
(0 << 17) // CLKS = 0 ,使用11clock转换
(1 << 21) // PDN = 1 ,正常工作模式(非掉
电转换模式)
(0 << 22) // TEST1:0 = 00 ,正常工作模式
//(非测试模式)
(1 << 24) // START = 1 ,直接启动
//ADC转换
(0 << 27)。
// EDGE = 0 (CAP/MAT引脚
//下降沿触发ADC转换) (3)定时器初始化
由皮带配料系统采样原理可知,需要每25ms采样一次,因此可采用定时器匹配的工作方式,每25ms匹配一次,当匹配成功,此时就产生中断。
其基本操作流程为:
1.计算定时器的时钟频率,设置PR进行分频操作
2.设置比较匹配通道的初值及其工作模式
3.若使用定时器的相关中断,则设置VIC,使能中断
4.设置TCR,启动定时器
其中要使用的寄存器为T0PR ,T0MCR,T0MR0,T0TCR
void Time0Init(void)
{ /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
T0PR = 99。
// 设置定时器0分频为100分
//频,得110592Hz
T0MCR = 0x03。
// 匹配通道0匹配中断并复位
T0MR0 = 110592*0.025。
// 比较值(25mS定时值) T0TCR = 0x03。
// 启动并复位T0TC
T0TCR = 0x01。
}
(4)中断设置
LPC2132通过向量中断控制器(VIC)管理中断,使用VIC的IRQ中断处理过程如下:
(1)用户程序首先要初始化(VIC)使能相关中断,然后正常运行用户程序(2)有IRQ中断产生时,VIC将会根据中断源设置VICVectAddr寄存器为相应中断服务程序地址
(3)切换处理器工作模式为IRQ模式,并跳转到异常向量表的IRQ的中断入口0x00000018处
(4)读取VICVectAddr寄存器的值,然后放入PC程序指针,跳转到相应中断服务程序
(5)中断服务中执行相应的中断处理,清除中断标志
(6)中断服务完成后,切换原来的模式,并返回原中断点
整个中断处理过程见下图4-1:
因此,对定时器0在25ms匹配设置中断的初始化的程序如下:
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00。
// 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x24。
// 定时器0中断通道分配
最高优先级(向量控制器0)
VICVectAddr0 = (uint32)IRQ_Time0。
// 设置中断服务程序地址向量
VICIntEnable = 0x00000010。
// 使能定时器0中断
(5)中断服务程序
根据皮带秤A/D采样原理得出,每当经过25ms,定时器0匹配后回产生一个中断,此时程序将跳入中断服务程序中,执行诸如A/D转换,数据处理等工作,因此,这部分程序将是整个模块功能的体现者,其采样程序如下:ADCR = (ADCR&0xFFFFFF00)|0x02|(1 << 24)。
// 切换通道并进行第一次转换,
采样AIN1
while( (ADDR&0x80000000)==0 )。
// 等待转换结束
ADCR = ADCR | (1 << 24)。
// 再次启运转换
while( (ADDR&0x80000000)==0 )。
ADC_Data[count] = ADDR。
ADC_Data[count] = (ADC_Data[count]>>6) & 0x3FF。
ADC_Data[count] = ADC_Data[count] * 3300。
ADC_Data[count] = ADC_Data[count] / 1024。
这样就得到了压力传感器传回的电压信号,在这里其实际电压ADC_DaTa 为式(4-1):
(4-1)
式中,V ALUEad0dr表示从A/D转换寄存器读到的电压值
整个A/D动态采样的程序流程图见下图4-2:
4.2.2 A/D静态采样
这一模块主要针对出料仓中的水泥物料的质量检测,它的过程和A/D动态采样过程基本上一样,都是每25ms定时器匹配一次,产生中断,然后主程序
跳转至中断服务程序,执行采样,一直到每200ms 8个采样值采样结束,然后排序,取中间值,1s钟内重复以上过程,得到5个采样值,对这5个采样值求和,再取平均值,就能够得到接近于出料仓中真实值的采样值,其程序结构与动态采样的结构是一样的,有如下结构:
(1)初始化管脚
(2)进行ADC模块设置
(3)定时器初始化
(4)中断设置
(5)中断服务程序(静态)
(6)返回
(1)初始化管脚
PINSEL0 = 0x00000000。
// 设置管脚连接GPIO
PINSEL1 = 0x15400000。
//p0.27,p0.28,p0.29 p0.30
//设置为AIN0,AIN1,AIN2,
//AIN3
(2)ADC模块设置
这里的ADC模块设置与动态时对ADC的设置是一样的,具体过程就不在详述。
ADCR = (1 << 0) // SEL = 1 ,选择通道0 ((Fpclk / 1000000 - 1) << 8) // CLKDIV = Fpclk /
//1000000 - 1 ,即转换时
//钟为1MHz
(0 << 16) // BURST = 0 ,软件控制转
//换操作
(0 << 17) // CLKS = 0 ,使用11clock
// 转换
(1 << 21) // PDN = 1 ,正常工作模
//式(非掉电转换模式)
(0 << 22) // TEST1:0 = 00 ,正常工作
//模式(非测试模式)
(1 << 24) // START = 1 ,直接启动ADC
//转换
(0 << 27)。
// EDGE = 0 (CAP/MAT引脚下降
//沿触发ADC转换) (3)定时器初始化
静态A/D采样的定时器0的初始化与动态时一样,其源代码如下:
void Time0Init(void)
{ /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
T0PR = 99。
// 设置定时器0分频为100分
//频,得110592Hz T0MCR = 0x03。
// 匹配通道0匹配中断并复位
T0MR0 = 110592*0.025。
// 比较值(25mS定时值) T0TCR = 0x03。
// 启动并复位T0TC
T0TCR = 0x01。
(4)中断设置
当定时器0的25ms匹配时间到时,此时定时器应产生中断,以便主程序跳转到中断服务程序,对定时器中断进行设置的源代码如下:
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00。
// 所有中断通道设置为IRQ中
//断
VICVectCntl0 = 0x24。
// 定时器0中断通道分配最高
//优先级(向量控制器0) VICVectAddr0 = (uint32)IRQ_Time0。
// 设置中断服务程序地址向量
VICIntEnable = 0x00000010。
// 使能定时器0中断
(5)中断服务程序
中断服务程序的主要功能就是对采样模块传输回来的电压值进行采样,以得到此时皮带上流动的水泥物料的质量。
其采样程序的源代码如下:
ADCR = (ADCR&0xFFFFFF00)|0x02|(1 << 24)。
// 切换通道并进行第一次
//转换,采样AIN1
while( (ADDR&0x80000000)==0 )。
// 等待转换结束
ADCR = ADCR | (1 << 24)。
// 再次启运转换
while( (ADDR&0x80000000)==0 )。
ADC_Data[count] = ADDR。
ADC_Data[count] = (ADC_Data[count]>>6) & 0x3FF。
ADC_Data[count] = ADC_Data[count] * 3300。
ADC_Data[count] = ADC_Data[count] / 1024。
4.3D/A输出模块
对DAC模块进行设置
{
DACR=(Da_data<<6)&0x0000ffc0。
//设置DA转换
}
int main (void)
{// add user source code
uint32 DA_data。
DA_data = 400。
PINSEL1 |= 1<<19。
//P0.25选择DA有效
DAtrans(DA_data)。
4.4数据处理方法
由于有各种各样的干扰,如环境温度、电场、磁场等,会使采样值偏离真实值,为了降低采样数据的干扰,提高系统的性能,因此需要将干扰滤掉,也就是进行滤波。
对于计算机系统,其滤波非常容易实现,就是设计一些计算程序,称为数字滤波器,数字滤波可以实现各种各样的滤波。
数字滤波器与模拟RC滤波器相比,具有以下优点:
(1)不需要增加硬件设备
(2)可靠性高
(3)可多通道共享
(4)可以对频率很低(如0.1Hz)的信号滤波
(5)使用灵活、方便,如可选择不同的滤波器和参数
克服由外部环境偶然因素引起的突变性扰动或控制器内部不稳定引起误码等造成的尖脉冲干扰,是仪器数据处理的第一步。
通常采用简单的非线性滤波法。
如下列几种常用的数字滤波法。
1.限幅滤波法
限幅滤波法(又称程序判别法)通过程序判断被测信号的变化幅度,从而消除缓变信号中的尖脉冲干扰。
具体方法是,依赖已有的时域采样结果,将本次采样值与上次采样值进行比较,若它们的差值超出允许范围,则认为本次采样值受到了干扰,应予删除。
2.限速滤波
限速滤波也是滤掉采样值变化过大的信号。
限速滤波有时需要三次采样值来决定采样结果。
(1)限速滤波的方法当|Y(2) - Y(1)| > ⊿Y 时,不是取Y(1)作为本次的采样值,而是再采样一次,取的Y(3),然后根据|Y(3) - Y(2)| 与⊿Y 的大小关系,来决定本次的采样值。
设顺序采样时刻t1、t2、t3所采集到的数据分别为Y(1)、Y(2)、Y(3)
当|Y(2) - Y(1)|≤⊿Y 时,采用Y(2)
当|Y(2) - Y(1)| > ⊿Y 时,不采用Y(2) ,但保留,继续采样取得Y(3)
当|Y(3) - Y(2)|≤⊿Y 时,采用Y(3)
当|Y(3) - Y(2)| > ⊿Y 时,则取(Y(3) + Y(2))/2为采样值
(2)限速滤波的特点:既照顾了采样的实时性,有顾及了采样值变化的连续性。
不足之处:一是不够灵活,二是不能反映采样点数大于3时各采样数值受干扰情况。
故应用受到限制。
3.中值滤波
中值滤波是对某一参数连续采集n次(一般n取奇数),然后把n次的采样值从小到大、或从大到小排序,取其中间值作为本次采样值。
中值滤波的功能
对于去掉偶然因素引起的波动、或采样器不稳定而造成的误差所引起的脉动干扰有效。
中值滤波的应用系统
适用与信号变化比较缓慢的系统,对于变化快速的信号,如流量、快速运
动的位移、角度等不适用。
中值滤波的程序设计
程序设计流程图如左图所示,为冒泡法排序(最后大数在前,小数在后)求中值。
4.算术平均值滤波
(1)算术平均值滤波是要寻找一个Y(k),使该值与各采样值之间误差的平方和为最小,见式(4-2):
(4-2)
(2)算术平均值滤波公式
由一元函数求极限值原理,得算术平均法数字滤波公式,见式(4-3):
(4-3)
式中-----为第k次采样N个采样值的算术平均值
X(i) -----第i个采样值N-----采样次数
(3)算术平均值滤波的实质是把一个采样周期内N次采样值相加,然后再除以采样个数N,得到该周期的采样值主要用于对压力、流量等周期脉动的信号采样值进行平滑处理。
不适用脉冲性干扰较严重的场合。
N的取值,N大,平滑度提高、灵敏度降低。
通常对流量系统N取12次,对压力系统N取4次;对于如无噪声干扰可不用平均滤波。
从上面诸多数字滤波方法中我们可以看出,为了获取准确的采样数值,单纯依靠一种滤波方法不能够获取尽可能准确的采样值,因此,在这个水泥配料系统中,我们采取中值滤波和算术平均值滤波两种不同的方法复合形成的滤波方法,组成复合数字滤波器,既能够对周期性的脉动信号作平滑处理,也能够消除脉冲干扰。
其方法是
如采样20个数据,经过排序后可表示为,见式(4-4):
X(1)≤X(2)≤X(3)……≤X(N)1≤N≤20(4-4)
则去掉2个最大值和2个最小值后,其采样值取见式(4-5):
(4-5)
该式也称为防干扰的平均值滤波器。
根据上述原理,因此对于水泥自动配料系统,采取每25ms中断一次,对压力传感器进行一次A/D采样,这样连续采样8次,获得8次采样值,a1, a2, a3,。