大学毕业设计(论文)
图3-16 电源电路
由上图可以得知,此电源电路可以将220V的交流市电转换为+15V和+5V直流电进输出。从原理上看,首先将220V交流电通过变压器转换为24V交流电,然后采用二极管桥式整流电路并通过滤波电容 C11对其进行整流,获得略低于 24V 的直流输出,经过C13滤除纹波电压后进入集成稳压源L7815产生+15V直流电压提供给L298N使用,同时此电压又作为 MC7805 的输入电压,通过 MC7805产生+5V电压供系统逻辑电路和各模块使用。这种做法的好处是只使用一个变压器,降低了成本,同时还减小了+5V 直流电源的纹波电压。 3.8 小结
本章主要介绍了系统框图与系统核心电路图,然后设计了各子模块的硬件电路。
- 17 -
液体点滴速度监控系统设计
第4章 系统的软件设计
4.1 系统软件总体设计
系统软件流程如图 4-1 所示。
单单SFT单单单单EEPROM单单单单单单单单单单单单单单单Y单单单单单单单单单单单单N单单单单单单Y单单单单单单单单单单单单单N单单单单单EEPROM单图4-1 系统软件流程图
- 18 -
大学毕业设计(论文)
4.2 主控模块设计
主控模块作为软件系统核心,在工作的时候首先对数据缓冲区和串口部分进行初始化,然后协调各子模块进行工作。本设计的初始化主要包含以下两方面,一方面是对串口进行初始化,让串口工作在方式1,波特率则由定时器T1的溢出率进行设定,设置为1200b it/s,并处于允许接收的状态。单片机外围电路中使用频率为11.0592MHz 的晶振,需将定时器1的初始值设定为 248(0E8)。因为串口数据通信过程中的发送与接收都必须通过中断来进行实现,故而还必须设定串口的中断方式;另一方面是对外部中断0的设置,在输液监控系统中,每当有液滴下落时,液滴检测电路就会将其产生的电信号捕捉,送到信号整形与A/D转换电路中,最后产生一个数字脉冲,送至单片机内部使之产生一个外部中断0。系统在此中断计数时,需要开启外部中断0,且将其设置在电平触发模式,以及用于计数的R4寄存器的清零。
4.3 点滴速度测量模块设计
点滴速度可以有以下两种方式进行测量。方式一:以点滴间隔为单位,记录一次点滴的时间,用60除以点滴单位时间就可得到每分钟的点滴数。这种方法用到除法操作,而且当点滴速度较快时,测量误差较大,因为测量单位点滴时间的误差回被60秒这样大的时间单位放大。但此法在修正点滴速度时,可以实时的测得当前的点滴的速度变化量,适合在调整滴速度使用。方式二:以单位时间记录点滴数。通过简单的乘法就可计算出点滴速度,但此法也存在单位时间内不是完整的点滴数目,从而存在一定的测量误差。但是,此法在点滴速度恒定的情况下,可以采用多个单位时间取均值,从而求得单位时间的平均点滴数,这样可以达到比较好的精度。在本设计系统中,采用将两者结合的方法进行测量。以点滴为单位,同时记录单位时间内的点滴数。通过对多个点滴测量计算出点滴速度。实现原理如图4-2。
中断计数中断计数图4-2 速度计算实现原理
使用定时器T0定时200us,当检测到第一个到来的脉冲信号时,程序进行中断处理,将计数器存储内容读出,再将计数器清零作为记录脉冲信号的初始值计为COUNT =0,当定时器定时到达200us时,程序中断检测输入信号是否有脉冲信号到来,同时计数器加1即为COUNT=1,另外设定计数器COUNT1记录检测到的脉冲信号个数,设定计数器 COUNT 1的存储单元是10,这样可以通过循环存储脉冲个数。在定时器 COUNT1中取出5个相临脉冲信号点(设起始脉冲点是x,此时对应的计数器COUNT值是n1,第五个脉冲点是x+5,此时对应的计数器COUNT值是n2)这样就能计算出5个脉冲点所需要的时间为:t = (n2- n1)×200us,进而得到相临脉冲信号时间间隔的平均值 T = t / 5,这样就可以得到点滴速度:v=60s / T =1500 / (n2-n1)。根据上面的理论分析和计算,得到点滴速度测量的程序框图如图 4-3。
- 19 -
液体点滴速度监控系统设计
开始定时200us设置计数器COUNT=0设置计数器COUNT1=0 否定时结束退出中断是COUNT加1 是检测到脉冲信号否计数器COUNT1加1 图4-3 点滴速度测量程序流程图
4.4 电机控制算法
在本系统中,采用了工业上较为流行的 PID控制算法,其原理框图如图 4-4。
-S(k)e(k)控制器图4-4 电机控制原理框图
- 20 -
U(k)被控对象Y(k) 大学毕业设计(论文)
基本的 PID算法有两种:
1) 直接计算法:就是直接计算当前所需要的控制量。公式如下: Pout?Kp?e(k)?Ki??e(k)?Kd?[e(k)?e(k?1)]
这种方法需要作累加运算,而且要保存所有的 e(k),需要的存储空间很大。 (2)增量计算法:就是相对于标准算法的两次运算之差。公式如下:
P?Pout(k)?Pout(k?1)?KP?[e(k)?e(k?1)]?Ki?e(k)?Kd?[e(k)?2e(k?1)?e(k?2)] 几个基本概念:
基本偏差: e(t)表示当前测量值与设定目标之差,设定目标是被减数,结果可以是正或负,正数表示还没有达到,负数表示已经超过了设定值。这是面向比例项用的变动数据。
累计偏差:?e(t)?e(t)?e(t?1)?e(t?2)?????e(1),这是每一次测量到的偏差值的总和,这是代数和,考虑到正负符号的运算,这是面向积分项用的变动数据。
基本偏差的相对偏差 e(t)-e(t-1) ,用本次的基本偏差减去上一次的基本偏差,用于考察当前控制的对象的趋势,作为快速反应的重要依据,这是面向微 分项的一个变动数据。
比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。
积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数 Ti ,Ti 越小,积分作用就越强。反之 Ti 大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成 PI 调节器或 PID调节器。
微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为 0。
本系统采用 PID,PD,变速积分三种算法综合运用的方案。当偏差较大时,使用 PD算法;当偏差较小时,采用 PID算法;当偏差适中时,采用变速积分算法。PID参数Kp、
Ki、Kd通过实验拟和曲线,代入算法程序中测试,得出一组较为合适的参数。在程序中,采用Kp=5,Ki=5,Kd=2的参数设定,得到了较为满意的效果。
4.5 报警模块设计
查询液滴有无及液滴过慢时的报警模块程序设计主要是依靠4s定时中断来实现的。根据前面的分析,输液过程中滴下的液滴数量是通过程序对由 INT0所传过来的信号边缘进行检测计数的,在程序中利用对R4加1来实现对液滴计数。因此,只要在4S内有液滴滴下R4中的值就一定会改变,在正常的输液情况下在4s的时间内R4的值是一定会改变的。因此,就通过判断4s内R4的值是否变化,来判断在这 4s的时间间隔中是否有液滴滴下,当R4的值有变化时就说明4s 内有液滴滴下;当判断出4R 的值没有任何变化就说明4s内没有液滴滴下,给报警标志位置1,并把单片机的 P0.7脚置1和 P3。0 脚置0,使它们分别驱动蜂鸣器和发光二极管进行声光报警。
- 21 -