基于Simulink和Sateflow的地铁永磁牵引变流器控制逻辑建模方法与流程

文档序号:14553726阅读:537来源:国知局
基于Simulink和Sateflow的地铁永磁牵引变流器控制逻辑建模方法与流程

本发明属于地铁变流器控制技术领域,涉及一种逻辑建模方法,尤其是一种基于simulink和sateflow的地铁永磁牵引变流器控制逻辑建模方法。



背景技术:

地铁永磁牵引变流器的控制逻辑主要负责和整车控制单元进行信息交互,接收整车控制指令并计算相应的变流器控制控制指令,并将相应的指令下发给执行单元(控制芯片或继电器),是牵引变流器控制系统的重要组成部分,具有多输入/输出变量,控制逻辑复杂,逻辑层次深等特点。随着用户功能需求的逐渐增多,变流器控制系统越来越复杂,使用传统的代码编写的方式难以清晰描述复杂的逻辑关系,且手动编写代码容易出错,已难以满足控制逻辑系统快速开发的要求。

现有的基于代码的地铁永磁牵引变流器控制逻辑建模和开发方发具有以下缺点:

1)通过子函数调用模式生成的控制程序,控制逻辑架构不清晰,无法准确的描述数据的流向,功能理解困难,可读性差,程序的可移植性差。

2)设计师必须手动编写、调试代码,因此容易造错误,影响调试进度,造成开发周期较长。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供一种基于simulink和sateflow的地铁永磁牵引变流器控制逻辑建模方法。

本发明的目的是通过以下技术方案来实现的:

这种基于simulink和sateflow的地铁永磁牵引变流器控制逻辑建模方法,包括以下步骤:

步骤1.按照功能将控制逻辑分为信号输入部分、功能控制部分和信号输出部分;其中,功能控制部分又划分为三大功能模块:分别为控制指令判定模块、保护判定和保护动作模块以及数字量输出控制模块;

步骤2.使用simulink模型库和stateflow的有限状态机对控制逻辑的子模块进行建模;

步骤3.建模完成后,对各个子模块进行仿真验证;验证通过后,对各个子模块进行封装,预留输入和输入端口,输入和输出端口均设置为总线形式;

步骤4.在simulink编译环境中,根据数据流向和前后逻辑关系,把各子模型通过总线形式进行连接,形成完成的mdl文件。

进一步,以上步骤1中,所述信号输入部分由一个子模块组成,负责采集控制功能部分所需的控制变量,所述控制变量包括:通过数字量输入电路采集的数字量控制信号,通过网络信号传递的网络控制信号,通过模拟量输入电路采集的模拟量控制信号,通过dsp芯片反馈的dsp状态信号。

进一步,在步骤1中,所述功能控制部分通过对信号输入部分送入的控制信息进行解析,判断驾驶员意图,得到相应的控制指令;所述控制指令包括:模式指令、方向指令、力矩指令和继电器动作指令。

进一步,步骤1中,信号输出部分负责功能控制部分计算得到的控制指令传送给执行单元,将通讯信号传送给上层控制单元。其中执行单元包括数字量量输出板卡,dsp控制芯片;通讯信号主要包括变流器当前的状态,包括:运行模式、力矩输出、继电器状态。

进一步的,以上步骤2在建模过程中,对连续型模型使用simulink模块进行建模,对事件驱动模型使用stateflow状态机进行建模,其中,运行模式切换、故障检测和故障复位模块是事件驱动型模型。建模过程中,使用支持matlab自动代码生成的功能模块,使用simulink下的基础模块和stateflow状态机,保证在simunlink模型下建立的控制逻辑模型通过matlab的自动代码生成功能生成可执行文件。

进一步的,以上步骤3中,各子模块按照各自的功能需求,明确输入和输出变量需求;按照系统的统一设计,使用simulink的buscreater子模块将输出变量组汇总成总线的形式。

进一步的,通过模块封装技术和总线连接形成的完整mdl文件。通过matlab的自动代码生成功能将mdl文件生成硬件可执行文件。

与现有技术相比,本发明具有以下有益效果:

1)本发明采用基于模型开发的设计理念,在simulink/stateflow模型中建立控制逻辑模型,根据功能进行子模块的划分,并通过总线的形式实现相应数据的流向,逻辑各部分功能清晰、数据流向准确,可读性增强。

2)本发明的建模的过程中以simulink基础模块和stateflow状态机,禁止使用不支持自动代码生成的模块。控制逻辑支持在simulink编译环境下通过自动代码生成的方式生成可执行代码,省去了研发人员手动编写代码的时间。各子模块均进行封装,输入和输出均为总线形式,自动生成的代码子函数清晰,功能划分准确。

3)本发明按照不同的功能进行子模块的划分,子模块预留输入和输出接口,可由不同的开发人员同时进行模型的开发和测试工作,最后通过总线的形式连接,形成完整的mdl文件,加快了控制逻辑开发的进度。

附图说明

图1为本发明的控制逻辑结构划分图;

图2为本发明调用dsp信息反馈库文件示意图;

图3为本发明的向dsp发送库文件赋值示意图;

图4为档位判定功能的simulink库文件实现示意图;

图5为模式识别功能的stateflow状态机建模示意图;

图6为控制指令判定子模块的内部封装示意图;

图7为各子模块的封装示意图;

图8为各子模型通过总线形式进行连接示意图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

本发明基于simulink/sataflow的地铁永磁牵引变流器控制逻辑建模方法,具体包含以下步骤:

步骤1,按照功能将控制逻辑分为信号输入、功能控制和和信号输出部分。其中,功能控制部分又划分为三大功能模块,分别为控制指令判定模块、保护判定和保护动作模块和数字量输出控制模块:

图1为地铁永磁牵引变流器控制逻辑的结构划分,根据用户的功能要求,以及控制硬件的实际情况,将控制逻辑划分为信号输入、功能控制和和信号输出三大部分。

其中信号输入部分负责采集控制控制功能所需的控制变量,常用的控制变量包括:通过数字量输入电路采集的数字量控制信号;通过网络信号传递的网络控制信号;通过模拟量输入电路采集的模拟量控制信号,通过dsp芯片反馈的dsp状态信号。信号输入部分由一个子模块组成。

功能控制部分负责通过对信号输入部分送入的控制信息进行解析,判断驾驶员意图,得到相应的控制指令。控制指令包括模式指令、方向指令、力矩指令、继电器动作指令。功能控制部分由指令判定模块、保护判定和保护动作模块和数字量输出控制模块三个子模块组成。

信号输出部分负责功能控制部分计算得到的控制指令传送给执行单元,将通讯信号传送给上层控制单元。其中执行单元包括数字量量输出板卡,dsp控制芯片;通讯信号主要包括变流器当前的状态,包括:运行模式、力矩输出、继电器状态。信号输出部分可由一个子模块组成。

步骤2,使用simulink模型库和stateflow的有限状态机对控制逻辑的子模块进行建模:

将与控制硬件相关的驱动子程序编写成simulink的库文件,通过调用相应的库文件,即可实现控制信息的读取和状态信息的发送。

在信号输入部分,分别调用相应的数字量数字库文件、网络通讯库文件、模拟量信号读取库文件、dsp信息反馈库文件即可读取相应的信息。如图2为调用dsp信息反馈库文件示意图。

在信号输出部分,将相应的模拟量控制信息、dsp控制信息、网络传送信息发送给模拟量输出库文件、dsp发送库文件、网络反馈库文件,即可实现信息的发送。如图3为向dsp发送库文件赋值示意图。

功能控制子模块主要通过对信号输入部分送入的控制信息进行解析,判断驾驶员意图,得到相应的控制指令。大部分功能如方向判定、继电器动作判定、功率限制、力矩计算等都是典型的连续模型,可以通过微分方程描述,进而通过simulink库基本模块实现。如图4为档位判定功能的simulink库文件实现。

而运行模式识别、故障判断与复位等模式是典型的事件驱动模型,很难使用常规的simulink库文件进行描述,因而使用stateflow状态机进行建模,如图5为模式识别功能的stateflow状态机建模。

在建模的过程中,使用支持自动代码生成的simulink子模块,这样形成完整的mdl文件后,可使用matlab的自动代码生成功能直接生成可执行的代码。

步骤3,建模完成后,对各个子模块进行仿真验证。验证通过后,对各个子模块进行封装,预留输入和输入端口,输入和输出端口均设置为总线形式:

各个子模块可以由不同的人员进行建模,加快开发速度。各子模块按照各自的功能需求,明确输入和输出变量需求。按照系统的统一设计,使用simulink的buscreater子模块将输出变量组汇总成总线的形式,避免因变量太多而引起的结构混乱。如图6为控制指令判定子模块的内部封装,输出信息通过buscreater创建为控制总线control_inf。

如图7为各子模块的封装,其中信号输入子模块(logic_in)只有输出总线tcu_inf,信号输出子模块(logic_out)子模块只有输入总线(out_inf),控制指令判定模块的输入总线为tcu_inf,输出总线为control_inf,保护判定和保护动作模块的输入总线为tcu_inf、control_inf和io_inf,输出总线为fault_inf,数字量输出控制模块的输入总线为tcu_inf、control_inf、fault_inf,输出总线为io_inf

步骤4,在simulink编译环境中,根据数据流向和前后逻辑关系,把各子模型通过总线形式进行连接,形成完成的mdl文件:

根据逻辑关系,控制指令判定模块根据信号输入子模块采集的控制信息,经过计算,得到相应的控制指令。因此控制指令判定模块的输入信息为信号输入子模块的输出总线tcu_inf。

保护判定和保护动作模块需根据变流器的运行状态,以及控制指令信息,进行故障判定和故障保护,需要通过信号输入子模块获取变流器的状态信息、通过指令判定模块获取控制指令信息、数字量输出控制模块获取数字量控制指令。因此保护判定和保护动作模块的输入信息为信号输入子模块输出总线tcu_inf、控制指令判定模块的输出总线control_inf和数字量输出控制模块输出总线io_inf。

数字量输出控制模块需结合变量器当前状态、控制指令和故障信息计算数字量输出指令,需要从信号输入子模块获取变流器当前状态,需要从控制指令与获取数字量控制指令,需要从判读判定与保护动作模块获取故障信息。其输入为信号输入子模块输出总线tcu_inf、控制指令判定模块的输出总线control_inf、和保护判定和保护动作模块的输出总线fault_inf。

信号输入子模块需将控制指令下发给执行单元,并将变流器当前信息传送给网络,上传给上级控制单元。信号输入子模块的输入信息最多,需要信号输入子模块输出总线tcu_inf、控制指令判定模块的输出总线control_inf、和保护判定和保护动作模块的输出总线fault_inf和字量输出控制模块的输出总线io_inf。为简化逻辑架构,将tcu_inf、control_inf、fault_inf、io_inf合并为out_inf,送入信号输出子模块。

按照以上逻辑关系,在simulink编译环境中把各子模型通过总线形式进行连接,形成完成的mdl文件,如图8所示。

综上所述,本发明根据功能,将控制逻辑分为信号输入,信号输出、控制指令判定、保护判定与保护动作、数字量输出五个子模块,分别使用simulink模型库和stateflow有限状态机对子模块进行建模。将子模块的输入和输出设置为总线形式,并对各子模块进行封装。各子模块通过总线进行连接,形成完整的mdl文件。本发明在建模的过程中只使用simulink基础模块和stateflow状态机,形成的mdl文件可以自动生成为硬件可执行文件。

本发明通过matlab的自动代码生成功能将mdl文件生成硬件可执行文件。同时,通过模块封装技术和总线连接形成的完整mdl文件,生成代码子函数划分更清晰,可读性强。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1