APP下载

汽车仪表自动化检测系统算法与功能设计研究

2023-01-10逯海燕

现代制造技术与装备 2022年12期
关键词:仪表盘线程仪表

逯海燕

(甘肃交通职业技术学院,兰州 730700)

目前,常见的汽车仪表检测软件适用环境存在一定的局限性。特别是在液晶仪表盘逐渐普及的背景下,传统的检测方式已经无法满足多功能仪表盘的检测需求,需要设计一套完整的仪表检测系统,依靠灵活的自动化检测算法实现对各种新型仪表盘的检测,提升检测系统的可兼容性和可拓展性。

1 自动检测算法设计

1.1 分析运行效率

对于仪表盘自动检测系统而言,想要在确保质量检测精准性的基础上提升检测速度,一个重要途径是优化检测算法[1]。依据现有的仪表盘质量检测流程,设计人员将控制命令的获取时间设定为ti1,将检测系统从接收指令到执行指令之间的反应时间标定为ti2,将等待检测控制要求和采集仪表状态数据的时间标定为ti3,将自动检测系统解析数据的时间标定为ti4,可以得出仪表检测总时间计算公式为

式中:i为仪表盘检测流程中每一个项目的序号;n为完整的仪表盘检测流程中检测项目的总数。想要缩短仪表盘自动检测时间,需根据Amdahl法则,在对检测流程的某个环节提速时,分析该操作对自动化检测整体性能的影响。如果将执行某一个检测环节需要的时间设为Told,并将该环节执行时间与总检测时间的比值设定为α,设性能提升比例为k,则可以得到计算提升某个检测环节效率后整个仪表盘检测系统的执行时间Tnew为

在式(2)的基础上,定义加速比S为

基于式(2)与式(3),可以得到某一个检测环节提速与完整的检测系统的加速比S,即

式中:设计人员确定变量k的取值范围为k∈[1,10]、α∈[0,1],并绘制加速比数值S与变量k、α的关系图。

当变量α是固定值时,对自动化检测系统的某一个环节进行提速。完整的检测系统得到的提速要显著小于该环节提速比例,也就是单独对某一个检测环节提速并不能有效缩短完整的检测流程花费的时间,需要对该检测系统中的多个环节进行提速。只有当大部分检测环节的检测速度得到提升,才能够实现提升仪表盘检测效率的目标[2]。

1.2 检测队列

仪表盘自动检测系统运行过程中,将子系统中储存的配置文件转变为检测队列,并将该队列加载到检测系统中。该队列具有特定的运行模式,由若干个执行过程相似的不同检测单元集合而成。

检测队列由若干个最小检测单元共同构成,其中任意一个最小检测单元都对应仪表盘的一种工作状态。系统运行时,检测队列中的各个最小检测单元依次运行,直至完成全部检测工作。

在每一个基本检测单元中,检测控制系统先要依照设定好的控制指令进行运算,实现对仪表状态的控制。某些控制单元中,通过一条控制指令就可以满足仪表盘状态采集条件。有些仪表功能较为复杂,对其进行检测时需要综合考虑多种状态。这种背景下需要为每一条控制指令设定延时功能,使得控制指令与仪表盘的实际通信条件相符。例如,在检测统一的诊断服务(Unified Diagnostic Services,UDS)通信功能时存在一个最短时间间隙,利用延时功能对连续接收信息的最小间隔时间进行限制[3]。

当全部控制指令发送完毕并根据设定调整延时后,检测系统默认仪表盘已经处于正常工作状态,检测系统自动转入待采集模式。系统会依据检测项目的不同,灵活选择数据采集方法,将采集的仪表盘信息导入解析算法,最终得到检测结果。

1.3 设计多线程检测功能

1.3.1 UI线程

用户界面(User Interface,UI)线程的主要功能是与驾驶员进行交互,利用液晶屏实时展现车辆的状态。在该功能模块中,代码为线性运算逻辑,不支持并发。实际驾驶过程中,驾驶员通过UI界面直接向系统发送指令以获取车辆智能系统的反馈信息。UI功能无法与其他功能共享一个线程,需要单独为其设计线程。

1.3.2 分配线程

所谓的分配线程,实际上是指用户预先配置好的检测队列线程,主要功能是解析检测流程,能够直接体现自动检测算法逻辑。该模块主要用于完成一些简单的检测操作,以及必须要进行同步检测的工作,自身并不会进行多任务检测。通常情况下,指针检测与灯光检测占据了仪表检测的绝大部分,在仪表空间未发生重合的情况下,同时进行UI线程和分配线程检测,能够在不相互干扰的情况下实现两种检测项目的同时检测。基于分配检测的特殊性质,设计人员尝试缩短ti3的时间,在一个检测序列中同时运行两种分配线程压缩单线程检测等待时间,提高仪表盘自动化检测效率。

1.4 设计解析线程池

在实际开展仪表盘检测的工作过程中,如果在采集到仪表盘状态数据后立刻使用同步方式解析数据,会延长自动化检测系统的运行时间。为了解决这一问题,设计人员尝试利用多核、多线程检测模式,异步解析仪表盘检测内容,将仪表盘状态数据分配给独立进行解析任务的不同线程,减少分配线程解析工作量。创建解析线程池,利用对固定数目线程的控制,实现对现有算力的合理分配,缩短ti4运行时间。

分配线程与解析线程池之间存在“生产者—消费者”结构模型。前者主要的责任是收集仪表状态数据信息,并将该信息传输给解析线程池,完成信息传输工作后分配线程会进入下一个工作循环,不再涉及后续信息解析与执行环节。它读取并传送的信息会暂时储存在自动化检测系统的缓冲区数据队列中,并由解析线程池分配目前处于空闲状态的线程解析数据并生成检测结果,具体工作流程如下。

步骤1:创建一定数量的线程。自动化检测系统进行初始化时,线程池借助设定好的函数创建相应数量的线程,并将这部分线程调整为等待状态,避免线程过多而占用中央处理器(Central Processing Unit,CPU),将其统一集中到相应的管理模块,随时准备调用。

步骤2:创建任务队列。线程池中内嵌有数据缓冲区,未被解析的数据可以先存储在该区域。可以将缓冲区视为两个相邻检测环节之间的连接点,借助其实现待解析数据的内部交流。

步骤3:以预先设定好的算法作为依据分配线程,正常状态下可以从线程池中挑选处于空闲状态的线程解析仪表盘状态数据。特殊情况下也可以根据解析任务的具体需求,选择特定的线程处理仪表盘状态数据。

2 仪表盘自动化检测系统功能设计

2.1 统计过程控制

统计过程控制功能的实现主要依靠过程受控判断技术和过程能力分析技术。两项技术的主要作用是判断仪表盘生产线的稳定性,进而评定仪表盘生产能力。例如,针对仪表盘指针类型检测项目,其检测结果的判断需要依靠具体的检测值。具体的检测值需要利用计量型控制图得出。本文设计中相关工作人员使用均值-极差控制图进行计量型检测结果的统计工作[4]。

制作均值-极差控制图时,需要确定子组的体积、数据以及频率。将所有待检测数据分为若干个子组,需确保每一个子组中的检测数据数量相等。一般情况下,一个子组内含有2~5组连续数据,数据的个数即子组体积的大小。频率即采集数据的周期。子组的数量越多,检测到质量问题的概率越大。一般情况下,仪表盘检测的子组数量为25。利用公式对子组的均值和极差进行计算,如

式中:xi为子组中第i组数据;n为子组数据总数;xmax与xmin为数据的最大值与最小值。此外,需要计算子组的过程均值和平均极差。

式中,为第i个子组的均值;k为子组的数量。

利用公式得到控制系数与子组个数的关系,并利用过程能力指数对自动检测系统的过程能力进行分析。借助这种方式可自动判断控制过程是否达到设定的阈值,再结合仪表盘实际生产需求升级生产线。

2.2 生产控制功能设计

采用上述方法对仪表盘生产线进行质量控制,借助均值-标准差控制图和过程能力指数,判断仪表盘生产线生产状态。第一步,确定子组的数据规格极值和判断参数。第二步,针对数据库中的待检测数据进行抽样检测。第三步,根据抽样数据绘制均值-标准差控制图,计算子组数据的过程能力指数。

借助以上步骤能够解析与判断仪表生产质量检测工作中的大部分检测项数据。针对具备具体检测结果的检测项,如仪表盘指针读数和断式灯段数等功能,可以直接利用上述方法判定其质量。针对没有具体参数可供参考的检测项,如显示灯形状完整性或者指示灯亮度等检测项,可以截取计算参数的某一部分判断该功能是否正常[5]。

自动化检测系统中还搭载了历史数据搜索模块,依据仪表信号检测时间段等指标过滤和筛选数据,快速锁定符合特定要求的待检测数据,进一步压缩数据检测时间。

3 结语

想要提高汽车仪表盘检测效率,要积极尝试使用自动化检测系统代替传统的手工与半自动检测方式。根据仪表盘功能和生产流程设计自动化检测算法,使自动化检测系统设计符合检测需求的功能,缩短各个检测环节占用的时间,提高仪表盘检测效率。

猜你喜欢

仪表盘线程仪表
浙江中控自动化仪表有限公司
浙江中控自动化仪表有限公司
基于C#线程实验探究
仪表堂堂
Dashboard的10个实现原则
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
福特探险者车仪表盘上多个故障灯点亮
奔驰E260车行驶过程中仪表灯熄灭
宝马745Li车制动灯常亮且组合仪表上多个故障灯点亮