基于UML和Simulink的水下绞车控制系统研究*

2015-03-02 06:26綦声波刘贵杰
机电工程 2015年8期
关键词:浮球状态机绞车

綦声波,柴 瀛,刘贵杰

(中国海洋大学工程学院,山东青岛266100)

0 引 言

水下绞车是一种在水中工作无人值守的绞车。它通过控制内置电机或液压装置以实现绳缆的收放,从而控制探测浮球的升降。水下绞车可以使探测系统藏匿于深水中,远离台风、海浪或渔网的侵害,实现对温度、盐度、深度等海洋环境参数的全天候长期连续定点观测,在海洋环境监测和资源调查中有着非常广泛的应用[1-2]。

水下绞车控制系统是典型的嵌入式系统。水下绞车始终在恶劣的水下环境中工作,一旦出现工作状态异常,无法进行水下维修,导致探测任务失败,因此水下绞车控制系统需要具有较高的可靠性和稳定性。但传统的嵌入式软件设计方法则存在缺陷,软件组件之间的依赖性较大,开放性不足,软件质量和可靠性难以保证[3]。传统嵌入式软件开发过程多采用瀑布模式,对用户需求的变化难以适应,并且只有在开发后期的测试阶段才能对产品进行功能验证,存在开发风险[4]。而随着图形化工具的广泛应用,基于模型的设计方法因其具有直观性强、易于仿真和移植等优点,逐步为开发人员接受[5]。

本研究以有限状态机模型为桥梁,融合统一建模语言(UML)和Simulink 两种建模语言,形成一种协同设计方法,并利用该方法实现水下绞车控制系统的需求捕获、模型建立、功能仿真和代码生成。

1 基于UML 的模型建立

UML 是一种标准的建模语言,用于对软件系统进行可视化处理、描述、构造以及建立相关文档。UML能够捕获系统静态结构和动态行为的信息[6]。常用的UML 图包括用例图、类图、序列图、活动图、状态图等。在嵌入式软件系统中UML 软件设计方法已经得到了广泛的应用[7-10],以下将基于UML 来建立水下绞车控制系统的模型。

1.1 系统需求分析

水下绞车系统主要由绞车和控制器两部分组成。绞车部分主要由传感器浮球、电池及控制舱、液压站、排缆器等单元组成。控制器是整个控制系统的核心,位于电池及控制舱内。水下绞车系统的总体结构框图如图1 所示。

图1 总体结构框图

水下绞车系统的全部动作根据预先设定的工作参数自动完成。初始状态时绞车整机坐于海底,探测浮球停靠在绞车上。睡眠时间结束后,控制器发出放缆指令。浮球在自身浮力作用下,通过液压马达的怠速作用,以设定的速度上浮,在该过程中其上搭载的传感器可以完成各剖面参数的测量工作。为了更好地观测某些要素,控制程序可实现中途停留或指定剖面的多次重复观测。达到设定位置并停留指定时间后,液压马达反向转动,拉动浮球下降到初始位置,完成收揽过程。

1.2 系统用例模型

对系统需求进行分析后,需要描述系统所要完成的主要功能。用例图可以帮助开发人员捕获用户对系统的功能要求。水下绞车控制系统的用例图如图2 所示。水下绞车的主要使用者是海上作业人员。海上作业人员只需输入睡眠和采集时间、浮球升降速度等工作参数,绞车在算法的调度下就可以实现浮球自动升降、系统模式切换以及状态自检等功能。

图2 用例图

1.3 系统静态模型

本研究以用例图为入口,通过用例细化,明确系统应具有的属性、操作及行为等特征,抽象出系统的类。类图是一种显示类、接口、协作以及它们之间的关系的图,主要用于描述系统的静态结构。水下绞车控制系统的类图如图3 所示。

图3 类图

海上作业人员通过参数输入类将工作参数发送给浮球类、定时器类及策略类。策略类会根据收到的工作参数,综合当前浮球速度、位置、工作时间以及功耗等情况,发送相应指令给电机类和比例阀类,实现浮球自动升降。浮球类中包含速度类和位置类。电源类包含电压控制类和功耗类。电压控制类主要控制电机和比例阀的电流通断,同时也可监测各级电压值;功耗类综合当前电池电量和电机功率,通过电量估算模型预测剩余电量,策略类依据其预测值实现系统模式的切换。

1.4 系统动态行为

系统动态行为描述了系统随时间变化的行为。对行为进行建模的方式有3 种:①根据相关对象之间相互作用时的交互方式;②根据经过不同活动时执行流程的演变;③根据对象与外界发生交互的生存周期。系统动态行为模型主要包括序列图、活动图和状态图。

序列图表示了对象之间传递消息的时间顺序。探测浮球单次自升降过程的序列图如图4 所示。定时器唤醒系统后,向策略类发出浮球释放指令,策略类调用PID 控制算法调节比例阀开度,进而控制浮球上升速度稳定在设定值,当浮球到达指定位置时,比例阀关闭。此时浮球中的探测器开始采集工作。采集时间结束后,定时器发出回收浮球指令。策略类首先启动直流电机,待溢流阀开始溢油后,调节比例阀开度使浮球以设定速度匀速下降,当浮球到达初始位置时,比例阀和直流电机关闭。

图4 探测浮球单次升降序列图

活动图可以对系统工作流程进行建模。探测浮球的工作活动图如图5 所示。系统初始化后,接着开始睡眠。睡眠时间结束后,如果工况良好,系统开始正常工作。系统可以控制探测浮球以设定速度在各剖面之间多次采集数据。当工况出现问题时,系统快速回收浮球,将其迅速拉回初始位置,避免浮球因电量不足等原因无法回收。

2 基于Stateflow 的模型仿真

Stateflow 是一个基于状态机来构建组合和时序逻辑决策模型并进行仿真的环境。它与Matlab、Simulink紧密集成,能够为包含控制、优先级管理、工作模式逻辑的嵌入式系统提供有效的设计工具[11]。研究者在Stateflow 环境中可以直接绘制UML 状态机模型[12-15]。

图5 探测浮球工作活动图

2.1 建立状态机模型

状态机模型由对象的各个状态和连接状态的转换组成,用来描述对象们的生存周期。水下绞车控制系统的状态机模型如图6 所示。各个状态定义如下:①Sleep 状态:除定时器外的其它模块均进入低功耗模式直到睡眠时间结束;②Work 状态:包含Floating、Sinking、Float_Collection、Peak_Collection、Sink_Collection 5个子状态,它们以采集时间和当前位置等参数为条件进行状态转换;③Reclaim 状态:结束交互或工况异常时,绞车以设定的最大收揽速度将浮球拉回初始位置。

2.2 嵌入Simulink 模型

为了仿真状态机模型的运行情况,本研究在Simulink 环境中模拟了参数输入、剩余电量侦测Power_Detect、绞车液压系统Winch 等模块,其中输入参数包括睡眠时间SleepTime、采集时间CollectTime、升降速度Speed、最大速度SpeedMax、目标位置Target、交互命令Order 和电池总电量Battery,绞车液压系统的传递函数依据文献[16]提出的数学模型建立。作为逻辑控制模块的Stateflow 模型通过输入输出信号与其他模块共享数据和相应的事件。示波器模块Scope 显示了浮球的位移Displacement、速度Speed 和模型的状态State。最终建立起的完整的Simulink 仿真模型如图7所示。

2.3 调试仿真结果

通过对状态机模型反复进行调试修改,就可以得到符合期望的仿真结果。图6 说明,在仿真开始时,模型被激活在Sleep 状态,10 s 后模型迁移到Floating 状态,Speed 迅速上升到5 m/s,Displacement 上升直到20 m 处暂停,模型进入Float_Collection 状态。浮球采集数据10 s 后Displacement 继续上升,如此反复,在最高点50 m 处采集数据结束后开始下降。当Displacement 降为0 时,模型回到Sleep 状态,完成一次升降周期。

图6 Stateflow 状态机模型

图7 Simulink 仿真模型

在仿真110 s 时,模型收到结束交互命令后进入Reclaim 状态,Speed 迅速上升到最大速度20 m/s,方向向下,Displacement 迅速降为0,浮球回到初始位置,开始新一个工作周期。在仿真155 s 后,因电量不足导致工况异常,模型进入Reclaim 状态,随后进入Sleep 状态直到仿真结束。

3 基于Embedded Coder 的代码生成

Embedded Coder 通过嵌入式实时目标可以生成可读、紧凑且快速的ANSI C/C + +代码,这些产品级源代码可以在以微控制器为核心的嵌入式平台上高效实时运行。

本研究在Code Generation 选项卡中选择ANSI C为生成语言,以Cortex-M3 为目标硬件,正确配置系统时钟和函数接口后,点击Build Model 就可以将上述系统模块转换成C 代码。通过将生成的代码与微控制器的底层驱动代码相结合就得到了完整的程序代码,可以顺利地移植到特定的嵌入式平台上。

Embedded Coder 生成的代码框架如下所示:

4 测试结果及分析

为了验证自动生成的水下绞车控制系统软件的可行性,本研究在IAR 集成开发环境下对最终源代码编译链接,然后下载到以STM32F207 为主控芯片的控制器上,最后将控制器与绞车机械部分连接后进行整机的测试实验。

由于采用阀控液压马达调速,水下绞车系统具有转速低、扭矩大、响应滞后的特点[17-18],本研究在实际测试中设定最大位移为10 m,升降速度为0.35 m/s,睡眠及采集时间均为10 s,在第2 个升降周期中向绞车发送一次交互命令,快速回收速度为0.5 m/s。测试结束后,对获取的实测数据与指令数据相比较可得到的结果如图8 所示。实验结果表明,该控制系统既满足UML 模型的需求,又符合功能仿真得出的相应结果,并且具有较高的可靠性和稳定性。

5 结束语

(1)本研究从面向对象的角度用UML 语言对水下绞车控制系统的功能需求、静态结构以及动态行为进行了明确的描述,建立起可靠的系统模型,使得不同阶段的开发人员能够清晰直观地理解系统,避免因沟通不畅和理解偏差造成的错误,保证开发的一致性。

图8 实验数据处理

(2)本研究通过Simulink 仿真工具验证了系统模型的准确性和有效性,嵌入式代码的自动生成工具缩短了开发周期,节约时间和人力成本,提升了代码质量,避免手工编码易犯的错误,保证设计的可靠性。开发人员可以更专注于产品功能的设计。

(3)本研究将UML 与Simulink 结合起来,提出了在模型建立、仿真验证、代码生成和测试实验各阶段的方法,完成了水下绞车控制系统的整体设计与实现,达到了预期的性能指标,实现了快速高效地设计可维护性强、可靠性高的软件系统的开发目的。

[1]黄高扬,聂晓敏.无人值守式水下绞车系统研究[J].水雷战与舰船防护,2010(1):14.

[2]徐良波,于文峰.水下绞车及其在海洋内波现场测量系统的应用[J].舰船科学技术,2009,31(11):132-133.

[3]綦声波,张承瑞,罗 映.基于SOPC 和量子框架的电控机械式变速器电控系统[J]. 农业机械学报,2011,42(10):13-19.

[4]LIGGESMEYER P,ROMBACH D. 张 聚,汪慧英,贾虹,等译.嵌入式系统软件工程:基础知识、方法和应用[M].北京:电子工业出版社,2009.

[5]张俊智,薛俊亮,潘 凯.混合动力系统控制软件的开发[J].机械工程学报,2009,45(5):115-120.

[6]RUMBAUGH J,JACOBSON I,BOOCH G. The Unified Modeling Language Reference Manual[M]. 2nd ed. New Jersey:Addison-Wesley Professional,2004.

[7]綦声波,纪风磊,于敬东. 电控机械式变速器控制系统UML 建模与实现[J].农业机械学报,2013,44(4):8-14.

[8]刘兴华,曹云峰.一种模型驱动的嵌入式控制软件设计技术研究[J].系统仿真学报,2013(7):17.

[9]MATTSSON A,FITZGERALD B,LUNDELL B,et al. An approach for modeling architectural design rules in UML and its application to embedded software[J].Acm Transactions on Software Engineering and Methodology,2012,21(2):1-47.

[10]VANDERPERREN Y,MUELLER W,DEHAENE W.UML for electronic systems design:a comprehensive overview[J]. Design Automation for Embedded Systems,2008,12(4):261-292.

[11]刘 杰.基于模型的设计及其嵌入式实现[M].北京:北京航空航天大学出版社,2010.

[12]胡丽楠,陈国金,陈慧鹏,等.基于模型的线控转向执行电机测试研究[J].机电工程,2014,31(3):330-333.

[13]刘玉良,李 刚,康 凯. 基于MATLAB 的嵌入式系统软件开发[J].天津大学学报:自然科学与工程技术版,2008,41(5):593-596.

[14]梁东方,王宇英,周兴社,等. 基于异构模型融合的CPS系统仿真建模方法研究[J]. 计算机科学,2012,39(11):24-28.

[15]HINNERICHS A. An Integrative Approach for Embedded Software Design with UML and Simulink[C]// Computer Software and Applications Conference,2009. Seatele:[s.n.],2009:516-521.

[16]胡建军,杨尚平,赵光波,等.直动式比例阀控液压马达数学建模及研究[J].现代制造工程,2008(6):99-102.

[17]石 磊,周一届.卸荷回中阻尼孔对溢流阀动态特性的影响[J].轻工机械,2014,32(6):37-39.

[18]张宗成,袁锐波,何 敏,等.基于AMEsim 的阀控液压马达特性研究[J]. 科学技术与工程,2010,10(13):3222-3225.

猜你喜欢
浮球状态机绞车
《在气流中悬浮定向自转的浮球会失重 自转速度越快失重越多》
核电厂缆式浮球液位开关选型及安装方式的改进
基于有限状态机的交会对接飞行任务规划方法
不同配重的浮球覆盖下干旱区平原水库的节水效率对比分析
浅析矿用无极绳连续牵引绞车选型计算
固体清洁剂自控装置
谈调度绞车的安全性
斜巷变频绞车二次安装的研究与实施
基于模糊自适应PID的水下某型拖带绞车张力控制方法研究
FPGA设计中状态机安全性研究