白小伟,段成刚,郭 磊
Matlab 在电气工程及牵引供电系统计算中应用广泛,尤其是在电路网络模型的构建、方程求解、数据处理等方面,具有简单、智能、高效等优点。由于牵引计算专业性强、模型复杂、数据量大,早期通过编写脚本语言进行的计算多采用过程式的编程,但是面对系统规模的增加,用户数据交互频繁,这种过程式编程在模型创建、算法分析、数据交互等方面局限性很大,无法满足工程需求。如果采用面向对象的编程(OOP)方式,将极大地简化整个工程的仿真计算,降低计算难度。
列车牵引计算仿真以研究列车牵引运动力学及电气特性为基础,借助算法实现列车牵引过程的模拟,最终得到工程预期结果。本文采用基于Matlab 的面向对象编程(OOP)方式,将机车、线路、控制策略进行抽象,采用UML 图对机车牵引仿真计算的关键步骤进行说明,其方案的代码实现相比采用C#、Java 等编程更加简单高效。
在Matlab OOP 中实现类设计,其方法与采用C#、Java 等语言类似,同样离不开类的封装、继承、多态的特性,只是代码实现上发生了变化。Matlab 的OOP 代码更加简单。
Matlab 类定义采用“classdef…end”语句,其中属性定义采用“properties...end”,方法定义采用“methods...end,最后采用脚本对类实现封装。程序中采用“<”符号实现继承,提高代码的复用性;在设计结构中,采用类的层次化设计,从虚拟到具体逐步演化,灵活应用多态增强程序的扩展性能。
采用Matlab 类实现机车类的定义示例如图1所示。由于类脚本编程中省略了变量类型的定义,相比C#和Java 要智能很多,便于用户将精力集中于本专业算法编程。

图1 Mat lab 类设计程序示意图
列车牵引计算软件的操作过程通过输入机车、线路、编组、运行等数据,实现牵引仿真计算。……