📄 便携式多功能量水仪的研制.htm
字号:
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>2.1
</FONT>系统的软件算法</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
在明渠量水建筑物中,较为典型的是巴歇尔水槽。在自由流情况下,巴歇尔水槽的水位<FONT
face=Verdana><I>H</I></FONT>和流量<FONT
face=Verdana><I>Q</I></FONT>关系是简单的二值函数。利用回归分析技术,可以求出<I><FONT
face=Verdana>H</FONT>~<FONT face=Verdana>Q</FONT></I>
流量经验公式。为了便于分析和应用,我们在水工实验中主要是针对自由流情况的,从而得到大量的<I><FONT
face=Verdana>H</FONT>~<FONT face=Verdana>Q</FONT></I> 曲线数据组。</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
巴歇尔水槽在自由流时的流量公式为</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT
face=Verdana><I> Q</I> = <I>K</I>·<I>H
<SUP>N</SUP></I>
</FONT> (<FONT face=Verdana>2</FONT>)</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">式中,<FONT
face=Verdana><I>Q</I></FONT>为流量(<FONT
face=Verdana>m<SUP>3</SUP>/s</FONT>),<FONT
face=Verdana><I>K</I></FONT>、<FONT face=Verdana><I>N</I></FONT>为流量系数,<FONT
face=Verdana><I>H</I></FONT>为上游水头高(<FONT
face=Verdana>m</FONT>)。由于流量经验公式是指数型函数,故先对巴歇尔槽流量公式两边取对数,得</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT
face=Verdana> ln<I>Q</I> =
ln<I>K</I> + <I>N</I>·ln<I>H</I> </FONT>(<FONT
face=Verdana>3</FONT>)</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"> 设<FONT
face=Verdana><I>y</I>=ln<I>Q</I></FONT>;<FONT
face=Verdana><I>a</I>=ln<I>K</I></FONT>;<FONT
face=Verdana><I>b</I>=<I>N</I></FONT>;<FONT
face=Verdana><I>x</I>=ln<I>H</I></FONT></SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"> 式(<FONT
face=Verdana>3</FONT>)可写成</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT
face=Verdana><I> y </I>=<I> a +
b</I>·<I>x</I>
</FONT>(<FONT face=Verdana>4</FONT>)</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
然后,利用实测的大量独立(<FONT face=Verdana><I>H</I></FONT>,<FONT
face=Verdana><I>Q</I></FONT>)数据,求出回归系数<FONT
face=Verdana><I>a</I></FONT>、<FONT
face=Verdana><I>b</I></FONT>的最小二乘估计量<IMG alt="lbc-6.gif (99 字节)"
src="便携式多功能量水仪的研制.files/lbc-6.gif">(亦即为<FONT
face=Verdana><I>a</I></FONT>、<FONT
face=Verdana><I>b</I></FONT>的无偏估计量),从而得到回归函数的估计</SPAN></P>
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="90%">
<TBODY>
<TR>
<TD width="24%"><IMG alt="lbc_5.gif (162 字节)"
src="便携式多功能量水仪的研制.files/lbc_5.gif"></TD>
<TD width="42%"><SPAN style="FONT-SIZE: 9pt">(<FONT
face=Verdana>5</FONT>)</SPAN></TD>
<TD width="34%"></TD></TR></TBODY></TABLE></CENTER></DIV>
<P align=justify><SPAN style="FONT-SIZE: 9pt"> 由<FONT
face=Verdana><I>y</I> =<I> a</I> +<I> b</I>·<I>x </I>+<I> </I></FONT><FONT
face=宋体 size=4>ε</FONT>,<FONT face=宋体 size=4>ε</FONT><FONT face=Verdana>~
<I>N</I></FONT>(<FONT face=Verdana>0</FONT>,δ<FONT
face=Verdana><SUP>2</SUP></FONT>),可知<FONT
face=Verdana><I>y</I></FONT>随<FONT
face=Verdana><I>x</I></FONT>变化趋势的大小主要受参数<FONT
face=Verdana><I>b</I></FONT>的影响,故建立如下假设检验:</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT
face=Verdana><I> H</I><SUB>0</SUB> :
<I>b</I> = 0 </FONT>; <FONT face=Verdana><I>H</I><SUB>1</SUB> :
<I>b</I></FONT>≠<FONT face=Verdana>0
</FONT>(<FONT face=Verdana>6</FONT>)</SPAN></P>
<P align=justify><SPAN
style="FONT-SIZE: 9pt">用以检验线性回归效果的显著性水平。符合实际要求后,则得到流量系数<FONT
face=Verdana><I>K</I></FONT>、<FONT
face=Verdana><I>N</I></FONT>的估计值。有了流量经验公式,系统就可根据所测的水位 <FONT
face=Verdana><I>H</I></FONT>值来计算出流量值<FONT
face=Verdana><I>Q</I></FONT>。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>2.2
</FONT>系统的主程序设计</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
主程序主要用于系统的控制和管理。系统加电后,<FONT
face=Verdana>AT89C51</FONT>自动上电复位,开始运行主程序,主程序框图见图<FONT
face=Verdana>4</FONT>所示。系统首先显示“<FONT
face=Verdana>0-××××</FONT>”,表示系统在进行自检和自校零工作。此时要求操作员不断地调节调零电位器,直到校零达到精度要求时为止,然后按回车键表示校零完成(理想情况下显示为“<FONT
face=Verdana>0.00000</FONT>”)。接着显示“<FONT
face=Verdana>1-××××</FONT>”,表示系统在进行满度校正工作。同样,操作员需要不断地调节满度电位器,直到满度校正达到精度要求时为止,然后按回车键表示满度校正完成(理想情况下显示为“<FONT
face=Verdana>5.00000</FONT>”)。接着系统依次显示“<FONT face=Verdana>L</FONT>”、“<FONT
face=Verdana>E</FONT>”等提示符号,要求操作员输入流量系数<FONT
face=Verdana><I>K</I></FONT>、<FONT
face=Verdana><I>N</I></FONT>值。当输入正确后,系统进行初始化<FONT
face=Verdana>T<SUB>0</SUB></FONT>、<FONT
face=Verdana>T<SUB>1</SUB></FONT>。一切处理完毕后,系统开始正常的运作过程,并进入待机低功耗工作状态。</SPAN></P>
<P align=justify><SPAN
style="FONT-SIZE: 9pt">需要说明的是,仪器还具有简单的密码设置功能。当设置密码后,要进行流量系数修改时,必须首先输入正确的密码,否则系统不予以响应。这样能在一定程度上保证流量系数<FONT
face=Verdana><I>K</I></FONT>、<FONT
face=Verdana><I>N</I></FONT>的安全性。</SPAN></P>
<P align=center><IMG alt="LBC_4.gif (9251 字节)"
src="便携式多功能量水仪的研制.files/LBC_4.gif"></P>
<P align=center><SPAN style="FONT-SIZE: 9pt">图<FONT face=Verdana>4
</FONT>系统程序框图</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>2.3
</FONT>中断采集服务程序</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
系统在此环节完成<FONT
face=Verdana><I>V</I>/<I>F</I></FONT>信号采集、自动量程转换、流量计算及显示水位<FONT
face=Verdana><I>H</I></FONT>、流量<FONT
face=Verdana><I>Q</I></FONT>等参数。其中<FONT
face=Verdana><I>K</I>/<I>N</I></FONT>、<FONT
face=Verdana><I>W</I></FONT>(总流量)参数显示采用了复用键,由软件设计的奇偶次切换决定。一般情况下,系统自动循环地显示<FONT
face=Verdana><I>H</I>-<I>Q</I></FONT>值。</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
该模块在运行时,首先保护现场,进行初始化设置,启动<FONT face=Verdana>T<SUB>0</SUB></FONT>定时器(<FONT
face=Verdana>T<SUB>0</SUB></FONT>的定时时间为<FONT
face=Verdana>100ms</FONT>,时间常数为<FONT face=Verdana>3CB0H</FONT>)和<FONT
face=Verdana>T<SUB>1</SUB></FONT>计数器,由<FONT
face=Verdana>T<SUB>1</SUB></FONT>记录<FONT
face=Verdana><I>V</I>/<I>F</I></FONT>转换输出的脉冲数。然后,系统连续采样<FONT
face=Verdana>10</FONT>次,利用数字滤波技术得出当前的有效采样值。接着,判断系统是否已经进行了自校正,若没有,则先进行系统的自校正;若已完成了自校正工作,则继续后续程序块,计算水位<FONT
face=Verdana><I>H</I></FONT>、流量<FONT face=Verdana><I>Q</I></FONT>、总流量<FONT
face=Verdana><I>W</I></FONT>值。最后根据控制命令显示这些参数,调用功能键处理模块,巡查有无控制命令,恢复现场、中断返回。</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
此外,系统还设计了串行口通信程序,实现与上位机之间的数据通信,上传<FONT face=Verdana><I>H</I></FONT>、<FONT
face=Verdana><I>Q</I></FONT>、<FONT face=Verdana><I>K</I></FONT>、<FONT
face=Verdana><I>N</I></FONT>、<FONT
face=Verdana><I>W</I></FONT>等参数值及接受上位机对参数的修改和控制。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>3
</FONT>量水仪的精度问题</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
该仪器充分利用了<FONT
face=Verdana>AT89C51</FONT>具有高性价比的特点,在不增加硬件资源的前提下,尽量做到硬件“软化”,提高了仪器的测量精度。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>3.1
</FONT>数字调零和增益自校正</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
仪器在测量前首先进行自校正工作,即依次选通差动输入接口芯片<FONT face=Verdana>CD4052</FONT>的<FONT
face=Verdana>Y<SUB>0</SUB></FONT>、<FONT
face=Verdana>Y<SUB>1</SUB></FONT>输入端口(其中<FONT
face=Verdana>Y<SUB>0</SUB></FONT>端接地,<FONT
face=Verdana>Y<SUB>1</SUB></FONT>端接标准<FONT
face=Verdana>+5V</FONT>电源),然后调节相应的微调器使仪器自校正达到设计要求。在正式测量时,设选通<FONT
face=Verdana>Y<SUB>0</SUB></FONT>输入端时,仪器测得<FONT
face=Verdana><I>V</I>/<I>F</I></FONT>计数值为<FONT
face=Verdana><I>X</I><SUB>0</SUB></FONT>,选通<FONT
face=Verdana>Y<SUB>1</SUB></FONT>输入端时,测得计数值为<FONT
face=Verdana><I>X</I><SUB>1</SUB></FONT>,设测得传感器信号输入的计数值为<FONT
face=Verdana><I>X</I><SUB>i</SUB></FONT>,则每次测量的计算公式为</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT
face=Verdana><I> H</I><SUB>i
</SUB>=</FONT>(<FONT face=Verdana><I>X</I><SUB>i</SUB></FONT>-<FONT
face=Verdana><I>X</I><SUB>0</SUB></FONT>)<FONT face=Verdana>/</FONT>(<FONT
face=Verdana><I>X</I><SUB>1</SUB></FONT>-<FONT
face=Verdana><I>X</I><SUB>0</SUB></FONT>)<FONT face=Verdana>*
<I>H</I><SUB>st</SUB> </FONT> (<FONT
face=Verdana>7</FONT>)</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt">式中<FONT
face=Verdana><I>H</I><SUB>st</SUB></FONT>为标准<FONT
face=Verdana>5V</FONT>时的水位值。</SPAN></P>
<P align=justify><SPAN style="FONT-SIZE: 9pt"> 这样,<FONT
face=Verdana><I>H</I><SUB>i</SUB></FONT>与放大器的漂移及增益误差无关,不仅可提高仪器的测量精度,还可降低对器件精度的要求。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>3.2
</FONT>采用模糊量程档位</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
程控量程自动转换是由信号放大增益档位的选择实现的,这里采用了增益步进法,即将增益由小到大逐步提高,直至选择最佳的放大倍数。但是,由于器件转换灵敏度的局限性,测量有时会不够准确(尤其是在量程档位临界区),从而导致量程选择出现错误,甚至进入换档死循环。考虑到这一点,我们在相邻两个量程临界区设置<FONT
face=Verdana>±
5%</FONT>量程选择模糊区,当测量的输入值落入量程模糊区时,则不改变放大器的当前增益。经过实验表明,采取模糊量程区能有效地防止放大器的增益来回跳动现象。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>3.3
</FONT>数据放大处理</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
在硬件上做到使测量精度达到均一化的同时,在软件设计上也进行相应的数据“放大”处理。在计算<FONT
face=Verdana><I>H</I><SUB>i</SUB></FONT>值过程中,先将数据“放大”,精度提高到<FONT
face=Verdana>0.1mm</FONT>。然后进行二进制乘运算,最后再统一转化为三字节浮点数进行浮点数运算,从而避免精度较低的直接二进制除运算。程序运算中采用了三字节浮点数及四字节<FONT
face=Verdana>BCD</FONT>码浮点数进行流量计算,补偿修正后输出显示,使仪器的测量精度达到小数点后四位。</SPAN></P><B>
<P align=justify><SPAN style="FONT-SIZE: 9pt"><FONT face=Verdana>3.4
</FONT>信号隔离处理</SPAN></P></B>
<P align=justify><SPAN style="FONT-SIZE: 9pt">
对检测信号通过<FONT
face=Verdana>LM331</FONT>进行了硬件上的信号隔离;输入环节上增加滤波电容及输入保护电路。系统的硬件设计遵循“一点接地”的原则,减少系统因电环路形成的干扰。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -