您当前的位置:首页 > 计算机论文>软件开发论文

推荐优秀的软件系统设计论文范例鉴赏(共7篇)

2023-12-12 00:00 来源:学术参考网 作者:未知

 

 第1篇:基于MOOS的AUV通信系统的软件系统设计


  一、AUV通信系统简介


  AUV的通信系统需要具备如下功能:1.实时接收来自岸基平台发送的控制指令;2.接收来自各传感器的实时数据,返回給岸基端进行实时处理。因此,自主式水下航行器通信系统的研发重点是与各传感器模块的配合协调、建立稳定的通信链路、具备应急处理能力。在实际工作中,AUV需要与母船控制单元、岸基平台进行通信,AUV在贴近水面工作时,通过大功率的无线电波或者铱星卫星通信系统进行数据的传输、信息的共享、控制指令的下达等工作。


  二、AUV通信系统的软件系统


  软件系统基于PaulMichaelNewman提出的MOOS-ivp体系[2],使用Linux系统的FLTK类库开发操作平台的界面,核心在于利用pMOOSBridge进程搭建AUV与岸基端的通信信道[3]。pMOODBridge是建立MOOS派生系统的重要工具,可以将AUV端与岸基端配置的MOOSDB(数据信息服务器)相连,在不同的MOOSDB之间起到桥梁的作用,首先接收来自自身所在MOOS体系的数据变量,然后根据AUV实际工作中的状态修改配置文件,最后完成已定义数据的转发,实质上就是功能模块pMOOSbridge分别与不同的MOOSDB服务器之间的通信。


  在设计中,在pMOOSBridge添加支持RS232串口的类CMOOSSerialLink(),支持数据的发送、捕获、解析、分类等功能。利用pMOOSBridge类建立的连接主要完成如下两条任务:


  (1)获取当前AUV状态信息、位置信息,从AUV端MOOSDB采集GPS数据通过串口发送到岸基端,岸基端MOOSDB讀取数据信息,分类发送给各个进程模块,并显示到岸基界面上;


  (2)岸基界面发送控制指令通过MOOSDB传输到串口后发送到AUV端,AUV端MOOSDB读取指令信息,实现对AUV的导航与控制功能。


  以无线数传电台为例,pMOOSBridge类建立其与MOOSDB的连接,使MOOSDB与传感器之间建立串口数据连接,其工作流程如图1、2所示。


  三、软件系统的实现


  MOOS体系的核心模块是MOOSDB,GPS定位模块被CMOOSCommClient实例化后与MOOSDB进行通信,实现串口通信,需要建立继承于CMOOSApp的子类,对函数OnStartUp()、Iterate()、OnNewMail()进行重载,实现传感器与MOOSDB的串口通信功能。本文采用UbloxLEA-6T型号的高精度GPS,采集GPRMC的格式数据应用于AUV的导航与定位中。


  通信系统的操作界面部分代码如图3、4所示。


  通过无线数传电台的通信信道,AUV可实时返回当前位置信息,实现了通信与定位的功能,有效的保障了AUV的正常工作,系统可自主切换通信信道,采用铱星9602装置的通信方法与无线数传电台相似。


  四、结语


  本文介绍了新型AUV通信系统的软件开发与应用,重点介绍了基于MOOS的AUV通信系统的软件设计,以pMOOSBridge为核心,介绍此进程实现通信功能的原理与应用,最后以GPS定位模块、无线数传电台的采集程序开发为例,介绍通信系统的数据采集方法,并开发软件模拟AUV的通信。


  作者:于文浩

  第2篇:一种智能农业管理软件系统设计


  智能农业是伴随社会经济、科技发展的必然产物,是指利用计算机软件采集光照、温湿度、氧气浓度等诸多影响农作物生长与产量的数据,而且能够智能控制、调节农作物生长的环境参数。笔者结合软件系统的操作环境,并咨询了具备丰富实践经验的各位农业专家、学者,最终决定从“历史数据查询”“实时数据监测”“报警及报警数据查询”“服务器远程访问”“短信”等几大功能模块进行开发与设计。


  1应用Siverlight技术


  网络信息化的时代背景下,为了满足用户的操作习惯和使用需求,各种软件编程技术层出不穷,最终通过ASP.NET技术实现了从HTML静态页面到动态页面的过渡,随着动态页面技术的普及和应用,程序员终于能够设计出梦寐以求的在线应用程序,没过多久,又拥有了A-JAX技术,将软件应用程序从计算机桌面搬上了网络。但是,上述技术都要在JavaScript代码的支持下才能实现,所以在使用中容易出现这样一个问题:页面原本在某种浏览器上能够正常运行,但是换了一个浏览器之后,即使代码完全相同,页面运行也会出现顿卡等现象。


  与计算机桌面应用程序相比,Web应用程序的响应速度较慢,于是,一种新的Silverlight技术就出现了,虽然1.0版本并没有开发出创新的应用程序,然而到了2.0版本,程序员就可以使用NET代码开发出基于互联网的应用程序,而且与浏览器无关,直至到了4.0版本,Silverlight已经可以实现隐式、打印等功能,能够很方便地调整数据位置,而且还提供了非常强大的WCFRIA服务,可以随意地把桌面应用程序转移到网络在线应用,而且对界面的运行速度不会产生任何影响。所以,笔者决定采用Silverlight技术来设计智能农业管理软件系统,设计宗旨是提高农业生产人员的效益以及农业生产效率,保证农产品的质量。


  2Blend控制软件的应用


  2.1界面美化


  以往在软件开发过程中,常会出现编程员和设计员配合不默契的情况,而Blend是一种交互性设计工具,很好地解决了这一问题。如今,用户对桌面及Web的应用操作越来越高,不仅要求软件具备实用、强大的功能,而且更追求界面的美观简洁,因此,软件的美工设计和代码设计的配合非常关键。作为一名软件开发人员,笔者深有感触,常常与美工人员反复讨论协商,修改软件框架,总要花费大量的时间才能很好地配合。而在Blend中编辑Silverlight项目UI代码,可以与VS直接绑定,从而实现双向修改代码功能,于是就完美地解决了“代码与美工”的配合问题,因此,Blend决定了该文中软件系统的UI界面设计。


  2.2自定义控件


  该系统需要使用大量的控件来设计应用程序,特别是UI界面,而Silverlight并不能支持软件所有功能的控件,比如Silverlight就不支持监控界面中的某个节点控件。所以笔者在设计节点时,首先利用Silverlight自带的控件画一个圆,继而再在圆中填进去一张与节点相似的图片。与此同时,笔者还想让这个节点具有发光效果,于是找到自定义控件代码后,将一个Effect填进去然后设置为“发光”效果。完成了自定义控件,就可以添加、引用到程序中,该系统在设计“实时监控模块”时,就会使用到各种各样的节点。


  3数据库设计


  3.1数据表的定义


  为了保证数据库的兼容性、稳定性,该文将SQLServer作为系统数据库,先做一张命名为“OldDataTable”的历史数据表(如表1所示),设定每隔5min自动把数据储存在数据库里。


  之后再做一张命名为“AlarmtDataTable”的报警数据表(如表2所示),用于存储大棚节点监测过程中超过报警值的数据。


  3.2数据库存储过程


  4结语


  该文设计的是能够实现实时监控、美化界面、数据查询等多功能的智能农业管理系统,希望为广大软件开发人员提供参考借鉴,进一步推动我国农业生产发展。


  作者:单丽娟

  第3篇:计算机辅助视觉下的英文字母识别软件系统设计与实现


  0引言


  随着计算机图像处理技术的发展,采用计算机视觉图像处理技术进行目标识别、图像特征分析和对象监控等具有广泛的应用价值。图像识别技术是建立在对图像的特征提取和轮廓信息分割基础上的,采集数字图像处理技术对原始图像进行降噪滤波和智能分割,以此为基础进行图像小波尺度分解,实现对图像的识别和监测。英文字母识别是图像处理领域研究的一个最新方向,英文字母广泛存在于车牌、广告牌、Logo等部位,通过对英文字母的准确识别,通过设计英文字母的优化识别技术和软件设计,提高对英文字母的嵌套目标对象、比如车牌、飞行器打击目标等的视觉跟踪和计算机视觉识别的能力,因此,有效的英文识别技术将在未来的车牌识别、飞行目标识别、Logo动态监测等领域都具有广泛的应用前景,相关的软件系统设计方法受到人们的重视。


  对英文字母识别的软件开发的基础在于计算机图像处理,在计算机辅助视觉系统下通过数字图像的采集、图像特征分析和提取、以及图像特征分类,实现对英文字母的视觉监测和分类识别。传统方法中,对英文字母的识别方法主要有基于小波尺度分解的英文字母识别方法、基于边缘轮廓分割的字母识别方法等[1?4]。上述方法是在计算机视觉下进行英文字母的图像特征提取,结合小波分解和边缘轮廓分割,实现对英文字母的有效识别,在此原理上,相关文献进行了图像识别系统的设计,取得了一定的成果。其中,文献[5]提出一种基于空间亮度均衡化平滑处理的英文字母识别算法,并进行了识别系统的模块化设计,提高了英文字母图像的分割精度,但是该方法计算开销较大,实时性不好。文献[6]提出一种基于图像增强和明暗对比度特征分解的字母识别方法,在缺帧环境下实现对英文字母图像的包络特征识别,并进行了软件设计,提高了字母的识别精度,但是该软件设计过程中受到环境的光线等干扰因素的影响较大,导致在信噪比低的环境下对图像的识别准确度不高[7]。针对上述问题,本文在计算机辅助视觉下进行了英文字母识别软件的优化设计,首先进行了英文字母识别的软件系统的总体设计和数据处理,分析英文字母的视觉特征信息,结合嵌入式Linux设备驱动程序,进行英文字母识别系统的交叉编译环境构建,以嵌入式Linux为平台实现软件开发,最后进行了系统调试和仿真分析,得出有效性结论。


  1软件的总体模型构建和开发环境


  1.1计算机辅助视觉下的英文字母识别软件的总体模型构建


  为了实现对计算机辅助视觉下的英文字母识别软件的优化设计,首先分析软件系统的总体结构模型,计算机辅助视觉下的英文字母识别软件是建立在对英文字母的图像特征信息采样和特征提取的基础上的,结合图像处理算法进行计算机辅助视觉设计,系统采用LabWindows/CVI进行计算机辅助视觉下的英文字母识别的图像处理和信息通信,选用“波形存储重发”模式,通过模拟预处理机将信号采样控制传输数据转换为电信号,在数据采集处理系统中实现离散数据采样和英文字母的信息评估[8?10]。计算机辅助视觉下的英文字母识别软件的总体模型结构框图如图1所示。由图1可见,英文字母识别软件系统建立在嵌入式操作系统Linux基础上的,采用嵌入式Linux系统从软件的角度进行计算机视觉特征的采样和层次划分,本文设计的英文字母识别软件共分为四个层次,分别为:


  (1)Linux內核下的英文字母的引导加载程序(Bootloader);


  (2)在FLASH设备上的文件系统内核(LinuxKernel);


  (3)嵌入式手持设备文件系统(FileSystem)计算机视觉特征分析和识别;


  (4)使用Qt/Embedded作为GUI,构建用户应用程序(Application)。


  根据上述软件的层次模型构建,在Linux中可以支持多通道的英文字母识别功能,采用VPP仪器驱动程序构建虚拟文件系统,采用PCI桥接芯片与上位机通信,计算机辅助视觉下的英文字母识别管理系统的外部I/O设备通过A/D,D/A采样进行远程控制信号加载,系统的源代码与开发工具包括初始化、配置、作用/状态。


  根据上述分析,得到计算机辅助视觉下的英文字母识别软件系统设计的功能指标描述为采样通道:8通道同步电子监控数据采样,输出信号幅度为ROMFS;D/A分辨率为12位。计算机辅助视觉下的英文字母识别中的图像信息数据传感信号的A/D转换芯片选用AD公司的AD7655。计算机辅助视觉下的英文字母识别系统的模拟转换电路接口的A0为低时,转换A通道,为高时,转换B通道。计算机辅助视觉下的英文字母识别软件的功能的实现还需要核实外围器件,FPGA通用平台系统是由大量高密度分布的处于被监测的英文字母识别对象内部或周围的传感器节点组成,相比于进程管理、内存管理和文件系统,在嵌入式Linux的系统开发中采用简单、统一的系统调用接口,由启动引导程序(BootLoader)进行程序加载,实现对英文字母的识别和视觉特征分析,根据上述系统总体设计模型,进行软件的模块化加载和设计。


  1.2基本开发流程与开发环境的建立


  在上述进行了计算机辅助视觉下英文字母识别软件的总体模型描述的基础上,进行软件开发,本文开发的计算机辅助视觉下英文字母识别软件建立在以嵌入式Linux为平台之上,结合计算机视觉图像识别技术和特征提取算法,在前期的计算机视觉图像分析算法的设计基础上,构建一个以Linux内核、文件系统、应用程序为结构组成的嵌入式系统,实现Linux操作系统对ARM硬件平台的移植和计算机视觉下的英文字母识别,采用MVB总线控制技术,进行英文字母识别过程中的帧发送收发和中断控制,面向计算机辅助视觉下英文字母识别的MVB总线控制模型如图2所示。


  在MVB总线控制过程中,利用计算机辅助视觉系统进行存储控制和英文字母的像素特征分析,充分利用开源Linux操作系统的丰富网络资源,由A/D,D/A转换器进行转换误差分析,采用交叉编译环境,即开发平台使用通用计算机,采用LabWindows/CVI实现对中断标志位输出,信息监控和识别系统设计中,主控电路的ADC要求稳定到15Hz。采用能量检测法,得到计算机辅助视觉下的英文字母识别系统D/A转换器输出为一组单帧数据信号,信号脉宽超过32KB数据时,A15为“1”,将波形特征信息通知CVI,由此实现了计算机辅助视觉下的英文字母识别的网口、串口、USB口的控制,搭建嵌入式Linux软件开发环境,得到本文设计的软件系统的开发环境硬件连接图如图3所示。


  2系统的设计与实现


  2.1英文字母识别文件系统配置和编译


  在上述构建的英文字母识别系统的开发环境的基础上,使用已有各种基于X86架构的GNU开发工具集,使用Linux和Windows之间的共享资源进行计算机辅助视觉下的英文字母识别文件系统配置,基于X86架构进行图像识别的软件编译,在主机上完成针对目标机的代码编译,编译生成的可执行代码进行目标机的代码编译,计算机辅助视觉下的英文字母识别文件编译的过程为:


  在网上下载arm920t?eabi.tgz,使用命令


  tarxvzfarm920t?eabi.tgz


  输入arm?linux?gcc?v,将最上层的Makefile文件解压,并把编译器路径加入系统环境变量,运行命令


  #gedit.Bashrc


  编辑.Bashrc文件,在最后一行加入arch/arm/boot目录


  选择退出,并选“Yes”保存


  保存退出后,重新登录系统,在计算机辅助视觉下生成交叉编译环境,如图4所示。


  命令行输入arm?linux?gcc?v,修改内核解压地址,充分考虑嵌入式Linux系统的根文件系统的源码开放性,利用Busybox的安装脚本,实现配置和剪裁。在上述生成的交叉编译环境下,新建一目录filesystem,建立YAFFS根文件系统,编译过程代码描述如下:


  BusyboxSettings???>


  EmbeddedLinuxapplication???>


  [*]Don'tuse/usr


  Appletslinks(Busyboxsourceopen)???>


  (/home/Documents/nfs)EditthercSfileundertheinit.ddirectory


  BusyboxDownloadtotargetboard???>


  [*]Supportarm?angstrom?linux


  [*]/opt/toolchains/armcommands


  [*]/dev/tty1changedtoecho


  [*]Establisharootfilesystem


  [*]productionofYAFFSimagefile


  Shells???>


  ???AshShellOptions下的选项全选


  [*]Rootfs.yaffsisgeneratedinthedirectory.


  [*]Lash(Controlhardwaredevice)


  配置完成后,分别运行make以及makeinstall访问并控制硬件设备,进行编译和安装,完成设备驱动程序是Linux内核的路径文件夹选择,在操作系统与硬件设备之间生成bin,sbin文件夹以及linuxrc文件。


  在此基础上,建立英文字母识别软件的YAFFS根文件系统,在该目录下有6个必备的文件夹/etc,/lib,


  /dev,/usr,/var和/proc,将其目录下的相关的配置脚本复制到新建根文件系统filesystem的etc下,并下载busybox1.14.2进行相应的修改。具体做法是编辑/dev,/etc等主要目录,在init.d目录下运行makemenuconfig命令,启动服务器配置文件,编辑init.d目录下的rcS文件,在36,56以及58行的內容注释掉,/lib目录下提供内核,


  /dev/tty1更改为echo“RootFileSystemLoadedSuccessfully”。


  在dev目录下建立需要的设备节点,在/lib目录下提供内核需要用到的计算机辅助视觉下的英文字母识别函数,生成一个rootfs.yaffs文件,在920t?eabi/arm下面所有的文件复制到新建的根文件系统fliesystem的lib中,建立起计算机辅助视觉下的英文字母识别的根文件系统。在VisualDSP++4.5中,得到计算机辅助视觉下的英文字母识别文件系统配置和编译集成开发环境如图5所示。


  2.2软件实现流程与驱动程序开发


  在上述进行了计算机辅助视觉下的英文字母识别文件系统配置和编译的基础上,通过设备驱动程序开发,进行软件设计优化,作为Linux内核的重要组成部分,设备驱动程序主要包括了字符设备驱动程序、块设备驱动程序和网络设备驱动程序,设备驱动程序完成如下工作:


  (1)优化存储、初始化和释放英文字母识别文件系统的配置程序和设备;


  (2)在计算机辅助视觉下进行英文字符识别软件的内核与硬件之间的数据传送,调用请求函数实现I/O操作,把数据从read(),write()等系统内核传送到计算机视觉识别器和专家系统中;


  (3)改动内核的源文件,实现应用程序与设备之间的数据传送,读取计算机辅助视觉下的识别系统的应用程序传送给设备文件,编译成未连接的模块,使用open(),release(),read()等函数实现数据和回送,在应用程序中请求计算机辅助视觉识别;


  (4)检测错误和处理中断,检测中断服务程序是否能正常工作。


  综上分析,得到计算机辅助视觉下的英文字母识别软件的设备驱动的设计和实现流程如图6所示。


  根据系统需求分别对taticints3c2440_open,控制寄存器s3c2440_pwm_close和A/D转换s3c2440_pwm_


  ioctl三个函数进行编程,处理器将读取A/D转换结果,通过计算机辅助视觉识别,完成A/D转换器的打开、关闭操作,在file_operations数据结构中的对应关系如下:


  staticstructfile_operationsdev_fops={


  owner:THIS_MODULE//调用s3c2440_adc_read()函数


  open:s3c2440_adc_open//控制寄存器进行复位


  read:AdatatransmissionontheIICbus


  release:StopCondition_adc_release//应答信号(ACK)


  }


  在进行了ZLG7290初始化操作之后,键值寄存器(Key)通过命令接口完成对计算机辅助视觉识别的间接读写,函数ZLG7290_GetKey()在中断响应中实现SD存储,设定地址00H,复位值F0H,加载SD卡的设备驱动程序,实现图像识别的程序加载,达到英文字母优化识别的目的。


  3系统测试仿真分析


  为了测试本文设计的计算机辅助视觉下英文字母识别软件的应用性能,进行仿真测试分析,实验中,采用嵌入式设备的QtC++API,Qt/Embedded的Qt/X11构建计算机视觉辅助识别系统,运行Qt/Embedded所需要的计算机视觉识别资源,编译Qt/Embedded进行程序加载和可视化的界面设计。


  在应用程序框架和窗口系统中,调用窗口管理系统和图形引擎,利用FrameBuffe图形函数库作为底层图形接口,安装完成后,生成Qt/EmbeddedforARM的开发编译环境所需要的英文字母视觉识别的编译文件,配置qt?embedded?arm、编译和安装实现英文字母的识别和识别性能分析。通过上述分析,以识别车牌中的英文字母为例,进行仿真测试,得到识别结果如图7所示。


  为了测试本文设计字母识别方法的收敛性能,以字母识别的收敛曲线为测试指标,得到仿真结果见图8。


  由图8可见,采用本文方法进行计算机辅助视觉下的英文字母识别,收敛性较好,在较短的时间内将识别误差收敛到0,能有效降低识别误差和识别时间。为了对比识别精度,采用本文方法和传统的系统方法,进行字母识别的精度测试,得到结果如图9所示,由图9可见,该识别方法精度较高,准确性较好,展示了较好的应用价值。


  4结语


  通过设计英文字母的优化识别技术和软件设计,提高对英文字母的嵌套目标对象,比如车牌、飞行器打击目标等的视觉跟踪和计算机视觉识别的能力,本文在计算机辅助视觉下进行了英文字母识别软件的优化设计,结合嵌入式Linux设备驱动程序,进行英文字母识别系统的交叉编译环境构建,使用Linux和Windows之间的共享资源进行计算机辅助视觉下的英文字母识别文件系统配置,基于X86架构进行图像识别的软件编译,实现软件开发,该研究表明,本文设计的英文字母识别软件性能较好,准确度较高。


  作者:李玉霞

  第4篇:基于数字PCR荧光检测仪的软件系统设计模型


  0引言


  社會在不断地进步,人们的生活方式在提高,物质条件也在逐步改善,越来越多的人在享受高品质生活的同时,也愈加得关注个人的身体健康。数字PCR这种分子检查技术除了用于疾病的预测及早期诊断外,还将用来指导人们的常规体检,让常规体检更具有针对性,从而改变人们的健康管理的观念。除此之外,它还可以用来指导人们管理疾病,进而指导病人安全用药,可以帮助医生规划针对个体病人的治疗措施,以便人们对疾病的治疗更加有的放矢。


  核酸分子的定量最常见的有三种方法;(1)利用核酸分子对光的吸收度的不同进行测量;(2)在PCR反应体系中添加荧光探针,用荧光信号来实时监控PCR反应过程,最后用标准曲线对未知模板处理[2];(3)数字PCR将微量样品进行大量分级的稀释和分液处理,使待测分子数不超过1个,在进行PCR的扩增,使得含有1个目标分子的样品放大至几百万倍,产生强大的荧光信号,对发生了扩增反应的样品计数[3]。


  1数字PCR检测原理


  数字PCR是一种基于单分子模板PCR扩增,进行核酸拷贝数精确定量的分析方法[4]。基础原理如图1所示:


  图1PCR检测的基础原理


  首先把样品分散到独立的反应单元,然后在一个板上进行多个独立扩增反应,如荧光定量PCR一样采用引物和荧光探针,阳性反应单元记为1,阴性反应单元记为0[5]。接着用软件进行阳性及阴性反应单元数数,最后进行泊松分布的计算,得出最终扩增的拷贝数量。如图2所示:


  黑色小点代表阳性反应单元,白的小点代表阴性反应单元。根据泊松概率分布公式进行计算:


  p=e(1)


  其中:λ表示单位反应单元中DNA分子的平均数量;


  p表示在λ的条件下,单位单元中所含有的k个DNA分子的浓度;


  设稀释系数为m,则有λ=cm,c为样品的原始数量。当k=0时,p=eλ=e-cm,与此同时,p=,n-f为没有标记荧光时的分子反应数目,n为参与反应的分子总数目。所以:


  =e-cm?陴cm=ln(1-)(2)


  2数字PCR荧光检测仪的软件模型设计


  该软件模型总体分为三个大块:USB驱动和信号的检测分析和处理模块;包含特定算法的逻辑运算模块;可视化的面板设置模块。总体模块设计如图3所示。


  其中USBManager主要功能:(1)USB数据的读取和保存操作;(2)对数据处理(调用算法),并把峰值数据等保存到wellCtrl中;(3)显示当前运行样本的信息;(4)USB读取异常处理;myMiniPlateCtrl(96孔板)主要功能:(1)选择样本;(2)更新画图和GridView显示(3)保存选取样本的设置。dataGridView主要功能:(1)把用户选中样本(孔)的每个通道的数据显示;(2)把GridView显示的样本信息导出,并保存为Excel或CSV格式的文件。fileManager主要功能:(1)读取和保存Plate文件(2)读取和保存TemplatePlate文件(3)读取和保存通道的.FCS文件(4)保存通道数据至wellCtrl类。


  concentrationPage面板中的包含循环阈值(Cyclethreshold)的设置,对于一个PCR反应,达到循环阈值时:


  Nt=N0(1+E)(3)


  其中,N0是初始模板的拷贝量,CT是循环阈值即扩增反应的循环次数,Nt是第CT个循环反应时产物的拷贝数。将上式两边分别取对数,得到:


  计算出循环阈值


  对于特定的PCR反应,理想情况下,扩增效率E和CT个循环反应的拷贝数Nt均为定值,因此CT值与初始模板拷贝数N0的对数成反比关系。


  3实验


  在实验室的环境下,分别用两组曲线图来描述理想和非理想情况下PCR的反应曲线图。理想情况下的PCR反应曲线图:Nt=N0*2,其中横坐标CT表示反应次数,纵坐标Nt是第CT个循环反应时产物的拷贝数。


  图4理想情况下的PCR反应曲线图


  非理想情况下的PCR反应曲线图:Nt=N0(1+E)CT。


  4结束语


  数字PCR的市場前景大有可观。各国科学家们致力于数字PCR的研发,已诞生了多种dPCR(DigitalPCR)装置,如液滴式、旋流片式、滑动芯片式、集成流路芯片式等。商业化的dPCR平台也在不断面世。国内一些科研单位和公司也进行了相关研发,致力于高端仪器国有化、低成本化[6]。通过把计算机技术运用在生命科学领域,能极大推动医学发展,该软件模型为用户提供了友好的人机交互,功能模块划分明确;但是系统中仍然存在一些不足之处有待改进:


  (1)实时定量PCR(qPCR)无法分辨2倍以下的基因表达差异或拷贝数变异,难以鉴定频率低于1%的等位基因[7]。


  (2)USB的串口通信不够灵敏,建议改进驱动程序的算法。


  作者:李鑫鑫等

  第5篇:基于闭环控制算法和PID优化算法的智能小车软件系统设计


  1引言(Introduction)


  智能车控制系统的设计以汽车电子为背景,涵盖自动控制、模式识别、传感技术、计算机、机械与汽车工程等多门学科,是一项新兴的综合性技术。智能车系统是智能汽车的迷你版本,二者在信息提取及处理、控制系统构成和控制方案整定方面有诸多相似之处,可以说智能车系统是智能汽车良好的实验平台。


  智能车系统主要包括三个大部分,分别为车模总体机械结构、硬件电路系统、软件算法控制系统。如果说硬件是智能车行驶的基础,那么程序算法就是灵魂。高效的程序则是智能车高速平稳自动寻迹的基础。


  2系统总体设计(Generaldesignofsystem)


  2.1概述


  智能小车控制系统采用飞思卡尔公司的16位单片机MC9S12XS128为检测和控制核心[1]。以COMS数字摄像头OV7620为路径检测传感器,以欧姆龙500线编码器为速度检测传感器,根据摄像头检测到的赛道信息[2],以及编码器采集到的小车速度信息,基于XS128单片机通过智能小车软件控制系统对小车进行舵机转向和电机驱动的控制,使智能车系统达到所需的稳定性及快速性要求,从而实现小车的智能化行驶,如图1所示。


  2.1.1需求规定


  (1)在小车功能方面


  最终完成的基于摄像头传感器的智能小车,要能够做到在此软件控制系统的支撑下,完成按规则绕赛道运行一周的任务。在准确识别赛道并稳定运行一周的基础上[3],期望小车的速度越快越好,即完成比赛的用时越短越好。


  (2)在小车性能方面


  第一,要求智能小车软件控制系统应具有良好的运行效率,行驶速度尽可能快,能够快速准确判断出不同类型的弯道,并及时躲避在赛道上的障碍物;第二,应具有良好的灵活性,使行驶速度、自身调整角度都可以灵活改变;第三,应提供良好的测试模式,使设计人员可以方便的观察、调整的小车运行模式;第四,应具有良好的可扩展性,从而为日后升级系统提供方便。


  2.1.2运行环境


  2.2系统各模块设计


  2.2.1基于核心板MC9S12XS128的主程序(main函数)设计


  (1)流程图(图2)


  PLL_Init():初始化锁相环函数;


  SCI_Init():串口初始化函数;


  PIT_Init():PIT定时器中断初始化函数;


  PWM_Init():脉冲宽度调试模块初始化函数;


  PH_Init():初始化单片机PH口函数(用于接收编码器测速信息);


  OV7620_Init():初始化摄像头函数(用于OV7620信息采集)。


  2.2.2图像采集模块


  (1)流程图(图3)


  (2)定义


  存储原始图像矩阵的二维数组:Image_Data[ROW][LIN]。


  (3)解释


  摄像头是智能车的眼睛,我们将采用数字摄像头进行赛道采集,在采集时,我们利用行、场中断进行数据采集。在每次捕捉到40个行中断之后,触发一次场中断,其中,在行中断的中断子函数中利用单片机读出图像数据。由于单片机的处理能力有限,所以不能对摄像头的一场图像中所有行的所有像素点都进行处理,但为了获得理想的赛道信息和足够的前瞻量,需要通过多次实验,需要选择出合适的行和每一行中需要采集的像素点数。最终,将所采集的数据存在一个二维数组中,得到原始的图像矩阵,以便后续处理。


  2.2.3图像处理模块


  (1)流程图(图4)


  (2)定义


  BEST_THRESHOLD():确定最佳黑白二值化阈值函数。


  (3)解释


  在图像处理模块,为了能够做到识别不同光线环境下的赛道,首先需要确定一个合适的黑白二值化阈值,确定阈值后,在保持原始图像矩阵大小不变的前提下,对其进行均值滤波,在此算法基础上对原始图像进行二值化处理,从而达到降噪的目的,最终通过摄像头的上位机获取到赛道的二值图像。


  2.2.4电机驱动模块


  (1)电机驱动模块采取速度闭环控制原理,结构示意图如图5所示。


  speed_error=setV-backV:本次速度的偏差值=设定速度值-编码器读回的小车实际速度值;


  last_speed_error:上一次的速度偏差值;


  pre_speed_error:上上次的速度偏差值;


  derta_M:经过PID控制器处理过后的速度改变量。


  (3)解释


  取三次速度偏差值,经过PID控制器的处理,得到处理后的速度改变量,作用在设定速度setV上,通过调整过后的PWM波来控制电机的转动,使小车在不同类型赛道上行驶时有一个合适的速度。


  2.2.5舵机转向模块


  (1)舵机转向模块采取运动方向闭环控制算法,结构示意图如图6所示。


  Error[S_ROW]:原始偏差数组;


  angle_error=E2:本次角度的偏差值=处理后的偏差值E2;


  last_angle_error:上一次的角度偏差值;


  pre_angle_error:上上次的角度偏差值;


  derta_S经过PID控制器处理过后的角度改变量。


  (3)解释


  通过获取到的赛道信息,提取出赛道的中线,与图像的中线进行比较,将每一行的偏差值存储在数组Error[S_ROW]中,使用加权算法得到偏差值E2,取三次角度偏差值(指E2),经过PID控制器的处理,得到处理后的角度改变量,作用在舵机的参考零点上,通过调整过后的PWM波来控制舵机的转向量。


  2.2.6调试模块


  为了能够对编码器采集到的小车速度以及摄像头采集到的赛道图像进行检测,还需要完善调试检测模块。实际使用中,我们将成品蓝牙模块与USB-TTL模块连接并连接至电脑,将另一个蓝牙模块连接至单片机的UART1组,即S2、S3口,该口定义为TXD、RXD,通过串口SCI接收与发送数据,接受到的数据我们通过上位机软件,串口助手进行接收。所接收到的图像如图7所示(以十字路口的识别为例)。


  3.1PID控制算法


  3.1.1PID控制算法简介


  PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量[4],对被控对象进行控制,故称PID控制器,原理框图如图8所示。


  在计算机控制系统中,使用的是数字PID控制器,控制规律为


  式中,:采样序号,=0,1,2,…;:第次给定值;:第次实际输出值;:第次输出控制量;:第次偏差;:第次偏差;:比例系数;:积分时间常数;:微分时间常数;:采样周期。


  3.1.2增量式PID


  由上文中公式可得


  则


  得增量式PID控制算法公式


  可以看出由于一般计算机控制系统采用恒定的采样周期T,一旦确定了KP、KI、KD,只要使用前后三次量值的偏差,即可由上式求出控制增量[5]。


  3.2图像采集时如何躲避消隐区


  在摄像头进行图像信息采集时会产生消隐区失真的问题,故使用延时函数,通过延时作用来跳过图像采集时的消隐信号,保证图像不失真。


  3.3黑白二值化阈值的确定


  要想从原始图像数组中分离出白色赛道、黑色边界和蓝色的底布,必须在程序上设置一个灰度的阈值,当像素点灰度值大于该阈值时为白色赛道,当像素点灰度值小于该阈值时为非赛道,所以要将此值设置在蓝色底布和白色赛道之间。但是由于比赛场地灯光,以及底布蓝色深浅的不同,所界定的阈值也应该相应的改变,所以采用动态阈值可以大大提高小车对比赛环境的适应性[6]。


  在此采用最大类间方差法:对原始图像矩阵,记为前景与背景的分割阈值,前景点数占图像比例为,平均灰度为;背景点数占图像比例为,平均灰度为。图像的总平均灰度为;从最小灰度值到最大灰度值遍历,当使得值最大时,即为分割的最佳阈值。


  3.4图像降噪时的均值滤波算法


  为了使获取到的图像信息更加准确,需要对原始的图像进行降噪处理,在这里我们使用均值滤波算法。均值滤波的基本原理是用平均值代替原图像中的各个像素值,即对待处理的当前像素点[7],选择一个小窗口(如一个3×3的矩阵),该窗口由其近邻的若干像素点组成,求窗口中所有像素点的平均值,再把该均值赋予当前像素点,作为处理后图像在该点上的灰度,即为该模板中包含当前像素点在内的像素总个数。


  在具体实现过程中,我们将在原始图像矩阵中依次取3*3的矩阵,采用九宫格形式[8],将每一次计算的均值赋给该矩阵的左上角元素,得到处理过后图像矩阵,根据动态设定的阈值进行二值化操作,得到最终的赛道的二值图像。


  3.5电机驱动模块Set_V的确定


  由于在不同类型的赛道上小车行驶的速度不同,故设定值Set_V不能始终为一个固定值参与到电机控制环中。


  解决方法:考虑到直道速度快,弯道速度较慢,建立Set_V


  和E2之间的二次曲线的模型关系,即,其中,,使用MATLAB仿真结果如图9所示。


  3.6赛道中线的提取


  前提:规定白色为1,黑色为0。具体操作:提取二值化赛道图像(图10)的一行,从该行数组的第一个元素开始判断,当连续的1达到一定个数时(暂时规定10个1为标准),则第一个检测到的1所在的位置确定为Left;从该行数组的最后一个元素开始倒序判断,同样,当连续的1达到一定个数时,第一个检测到的1所在的位置确定为Right,每行数组均进行此操作,将每一行的所在的位置进行存储,得到赛道中线信息,并分别与图像的中心线位置做差,得到的数据存储到Error[S_ROW]即为原始偏差数组。


  3.7对原始偏差数组的加权处理算法


  小车速度大小V对图像远近处偏差值权重大小的影响:车速慢时舵机不用提前打角,只需利用近处的图像便可跑好,但是车速快时,由于舵机要提前打角,所以即使远处的图像不够真实准确,对于快速行驶的小车来说远处的图像也显得很重要。


  因此,当获取到原始偏差数组Error[S_ROW]后,需要通过加权处理,对数组中不同行的元素乘以不同的权值,最终得到较为准确的偏差量E2,该权值分配需满足如图11所示的关系。


  图11对原始偏差数组的加权处理示意图


  Fig.11Thedeviationoftheoriginalarrayweightingdiagram


  4结论(Conclusion)


  经过调试和检测的结果证明,在基于MC9S12XS128的智能车软件控制系统的作用下,小车能够在黑色双边引导线的白色背景赛道上自动识别路径平稳行驶。通过PID控制算法的优化,实现了直道加速、弯道减速的设想;在图像采集时,使用延时函数在一定程度上解决了图像消隐区失真问题;均值滤波的降噪处理对于采集到的图像进行了进一步的完善;闭环控制算法更是保证了小车行驶的稳定性和快速性。相信通过进一步的探索与完善,这个智能小车软件控制系统会得到越来越广泛的应用。


  作者:李碧月

  第6篇:复杂网络下的软件系统设计研究


  作为对复杂系统进行高度化抽象化的复杂网络理论,为网络化的复杂软件系统提供了最新颖、最全面的数学基础。另外,复杂网络理论也根据当今的计算机网络技术等等的发展与进步,提出了一种基于复杂网络的网络化软件工程。软件系统逐渐的在向两个大方面进行了大幅度的转变。第一个方面是软件运行的平台从具有集中和封闭特点的传统单机工作转变为了具有开放、多变、以及动态等等特点的网络工作环境;第二个方面是软件系统的功能已经不再局限于只为公司或者企事业单位提供设计或者仅仅针对公司或者企事业单位提供服务的狭小服务空间,相反,软件系统的功能开发越来越向着多种应用领域转变,或者将提供的综合服务对象转变为大众。


  1网络化软件系统具有复杂网络的特征


  在计算机科学中,结构信息的度量一直都是亟待解决的问题之一,并且极度缺乏对软件本质清晰的认识。因此,开发者与设计者们必须对软件系统的复杂性进行深入、细致的研究;对软件系统的结构信息进行合理的描述和有效的量化。通过软件工程与复杂系统的学科交叉研究,从复杂系统和复杂网络的角度来对软件系统进行重新的审视,将软件系统抽象为一种人工的复杂网络,从而进行相应的研究。将兑付在网络下的软件系统的研究分为两个角度进行,分别是整体和全局的角度,以及个体和局部的角度,从而发现和探究复杂软件系统的结构特征、演变规律、以及从这个方面所产生的软件系统的相应的行为特征,为量化软件的复杂性、全面、科学、深刻的认识和了解软件系统的本质特征打下了坚实的基础。在复杂网络下的软件系统的设计中,设计者们通常将若干个复杂问题分为多个部分,再由若干位开发者进行同时的设计与运行。


  2基于复杂网络的网络化软件工程系统设计


  2.1软件建模


  建模在每一个设计中都是不可或缺、也是最为基础的组成部分之一。复杂网络的结构特征将复杂系统的根本特征和基本的共有特性进行了详细的概括,同时也鲜明的反映了经过进化形成的网络的真实优势。真实的网络系统是从很多个不同的个体经过互相的影响与作用,经过长时间的筛选与共同反应的演变过程从而形成的最终的稳定的网络结构,最终的相对稳定的网络结构通过长时间的实验与改进,从而形成一种相对合理的组织形式。老式的软件建模方法有很多,其中2002年提出的一个较为有代表性,其主要内容是,将复杂网络的方法与软件系统拓扑结构结合在一起,将面向对象软件系统中的类图作为研究对象,将软件系统的结构,也就是复杂网络的模型中的节点代表类,用无向网络来表示。随着网络技术的逐渐改善与进步,根据软件实体力度的不同,研究人员在不同的层次对大量的开源软件进行了详细精准的分析。例如,在包级对一部分软件所依赖的网络进行了详细的分析,从未得出一部分网络会具有近似幂率分布的特性;或者对软件系统的静态结构和运行时得到的软件对象网络进行分析等等。总而言之,近些年的国内或者国外的相关作者都通过建立软件网络模型,揭示了一些软件网络的普遍拓扑特性。依赖关系作为软件网络拓扑关系中最重要的识别指标之一,使用加权有向网络进行对面向对象软件系统的拓扑结构的描述是十分重要的。利用复杂网络化软件系统这种人工设计与实现的基本方法,建立基于复杂网络拓扑结构的软件系统网络,从而有效的解决在软件设计中,由于涉及的各种不可预知性而产生不具有预知性的问题。


  2.2软件设计


  复杂网络理论在软件系统的设计中拥有很重要的作用。在复杂网络下的软件系统设计可以有效的利用复杂网络理论所拥有的信息动力学等等特征,从而进行对信息传输网络的结构设计的改善;在预防控制网络上发生拥塞的概率或者提高信道上的信息的传输速率等等方面都拥有着很积极的作用。与此同时,在复杂网络下的软件系统的设计对网络化数据的知识发现和数据挖掘算法设计、提高算法和传输的准确率与运行效率,都拥有着重要的作用。


  2.3软件测试


  在复杂网络下的大多数软件系统中,软件内部的绝大多数的缺陷和问题均集中在二成的软件系统的空间地址中。由此可见,如何正确、有效的的识别和确认出这二成的软件系统空间,在软件的测试中是十分重要的。复杂网络下的软件系统中的一些无标度等等特点可以有助于对软件系统的构建形式与对象的特点进行更加深入的了解,并且可以帮助测试人员了解复杂网络下的软件系统中的各个部分之间的相互关系,并且以软件系统所具有的各类特征和规律作为根本根基,从软件系统中分支出主要的一些构件和代码段,从而对软件测试的方法、步骤、优先级等等进行适当的制定。最终,利用其相互的对应的组织关系进行有选择性的重点测试,以达到对复杂网络下的各类软件系统进行良好的软件测试的目的。良好的、快速的适应复杂的软件系统的规模,最终使得对软件的测试系统更加简单、快速,大大降低测试的成本,提高测试的效率。


  2.4软件度量


  在很多复杂网络下的软件系统多有一个共同的缺点——经常处于失控状态,这种情况的发生的一个很重要的原因正是因为复杂网络下的软件系统缺乏合理的软件复杂性的度量操作。复杂网络将传统的从局部上关注软件系统进化为强调在整体上把握系统的结构和相互作用,比较好的对软件系统的整体结构与运行操作进行了良好的、详细的描述与刻画,在很大程度上弥补了成陈旧的软件度量系统中,缺乏内部属性与外部整体特征之间良好的映射关系的缺陷。对于软件的复杂性度量是保证复杂网络下的软件系统的设计与开发科学性进行的一个主要因素。根据复杂网络下的软件系统所具有的典型特征,软件系统的复杂性度量可以得到很大的提升。例如,复杂网络下的软件系统的复杂性度量标准可以由节点间的平均距离、集聚系数、以及节点度的分布组成;通过对于节点度和分布度,可以准确而有效的刻画出软件系统的软件构件交互的复杂性,对于复用度比较大的结点,其入度必定比较大,而对于比较复杂的节点来说,其出度必定比较大;最后,由于复杂网络具有动力学特征的生长和择优连接机制等等特点,因此,可以利用这一点对复杂网络下的软件系统的复杂性进行相应的刻画以及度量。用户的多样性、网络环境的动态化进程、持续变化着的需求、具有自治性和不确定性的资源、以及各类资源之间的相互作用、具有目的性和自主性的各类软件构件以及软件之间的相互关系和作用,这些方面都会对复杂网络下的软件系统的结构、运行方式、系统的性能、以及系统的质量等等的动态演变的形成都有很大的影响,从而完成最终对软件系统的发展和进化的促进和推动。


  3结束语


  随着因特网网络技术的快速发展,以及计算机网络、自动控制技术在社会生活、社会经济、政治、军事、以及国防等等领域中的信息化应用越来越广泛,复杂网络中的软件系统应用也正在快速的发展和进化,而软件系统的设计与开发的环境也越来越具有开放性、动态性和多样性,对我国计算机的发展有着十分重要的意义。


  作者:刘定一等

  第7篇:基于MSP430单片机控制的超声波测距仪软件系统设计


  本设计是一种基MSP430单片机的超声波测距器。该测距器采用MSP430F123电路,通过主程序设计、中断程序设计、测温程序和测距程序设计,实现发射电路的控制和接收数据的处理。利用超声波检测可以快速、简便、容易做到实时控制,具有很强的实用推广价值。


  关键词超声波传感器;测距仪;MSP430F123


  中图分类号TP39文献标识码A文章编号1674-6708(2015)139-0161-01


  下图1可以简单说明超声波测距的工作过程,即超声波发生器(T)在某一时间发出超声波信号,当这个信号遇到被测物体后立刻反射回来,就被超声波接收器(R)接收到。只要计算出从发射出超声波信号到接收到返回超声波信号所用的时间差,就可以算出超声波发生器和被测物体之间的距离了。


  该距离计算公式表示为:d=s/2=(vt)/2


  其中:其中距离d就是被测物体到测距仪之间的距离,s就是超声波往返经过的距离,v就是超声波在介质当中的传播速度,t就是超声波开始发射到接收时所用时间。


  1主程序设计


  主程序完成单片机初始化,经过延时再判断是否中断,若是则进行测量数据的处理;若否则跳转回延时再判断是否中断,重复判断。数据处理后将处理过后的数据即测量的距离显示在数码显示管上。其主程序流程图如图2。


  2中断设计


  上述主程序是利用外中断0检测到返回超声波信号的,一旦接收成功返回超声波信号,就立即进入了中断程序。进入中断程序后就会立即关闭计时器T0,同时停止计时,并可以将测距成功标志字赋值为1。如果计时器溢出时候还没有检测到超声波的返回信号,那么定时器T0的溢出中断将会外中断0立即关闭,同时将测距成功标志字赋值2,表示此次测距失败。中断设计流程图如图3。


  3测温程序


  每一个DS18B20在它的内存ROM中都存在其唯一的48位序列号,出厂前都已写入内存ROM中。操作主机前,进入时必须用读取ROM(33H)命令将该DS18B20的序列号一一读出。


  图4所示为测温程序流程图。


  4测距程序


  主程序首先应该对系统环境进行初始化,设置系统定时器T0的工作模式为16位定时计数器模式,置位总的中断允许位为EA,并同时给显示端口P0口和P2口清0。紧接着立即送出一个超声波脉冲,为了避免超声波产生的直接波触发,则需要延迟0.1ms后,才可以打开外部中断0接收到的返回超声波信号。


  5结论


  本次设计的超声波测距仪具有准双向测距的功能,稳定性很高、较灵敏,盲区范围很小,分辨率<0.2m,被测量的目标不需要直接垂直于测距仪,测量的角度可以保持在正负30°,还有一个优点就是被测的目标表面可以不平坦。但是缺点还是比较多的,比如测量的距离较小,大概在5米以内;测量时的可靠性还要加强,后续很多地方还要进行改进。


  作者:邓玉良等

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页