(19)中华人民共和国国家知识产权局

(12)发明专利

(10)【授权公告号】CN110637522B
(45)【授权公告日】20180914

(21)【申请号】201618009510.5
(22)【申请日】20161207
(73)【专利权人】 上海爱韦讯信息技术股份有限公司 ; 【地址】 201203 上海市浦东新区亮秀路112号Y1座806室 ;
(72)【发明人】 王云明 ;
(74)【专利代理机构】中国兵器工业集团公司专利中心 11011【代理人】刘东升 ;
(51)【Int.CI.】 G06F 9/455 (2006.01) ;
(56)【对比文件】 【审查员】

(54)【发明名称】控制律增益模型自动生成方法及系统
(57)【摘要】本发明属于飞行控制技术领域,涉及一种控制律增益模型生成方法及系统;所示方法包括控制律增益文件定义,增益文件合法性检查,增益文件预处理,增益模型自动生成,增益信息显示和建模规范检查;所述系统包括控制律增益文件定义模块、增益文件合法性检查模块、增益文件预处理模块、增益模型自动生成模块、增益信息显示模块和建模规范检查模块。本发明提出的控制律增益模型自动生成方法及系统,能自动检查形式化语言描述的控制律增益文件,并根据正确的控制律增益文件生成SCADE增益模型。在增益模型生成后,该系统还提供了图形界面,辅助用户直观检查增益信息是否与增益描述文件一致。

【权利要求书】


1.一种控制律增益模型自动生成方法,其特征在于,所述方法包括:

步骤S1、控制律增益文件定义;

通过增益文件的设计,将自然语言描述的增益需求,转化为工具可读的、形式化文本;

步骤S2、增益文件合法性检查;

提供若干条合法性检查规则,对增益文件的合法性进行检查:

对于满足规则的增益文件,生成正确的增益模型;对于不满足规则的增益文件,给出报警信息,列出出错的增益名称、出错增益的结束行内容;

步骤S3、增益文件预处理;

对于形式化的增益文件,在正式生成SCADE增益模型之前,需要进行预处理,合并部分符合要求的逻辑行、输出量,优化增益文件;

步骤S4、增益模型自动生成步骤;

通过SCADE提供的界面扩展功能,使用TCL脚本语言,在SCADE环境中定制了用于导入增益文件、自动生成增益模型的工具栏按钮、菜单及对话框;

步骤S5、增益信息显示;

显示增益信息;

增益文件导入自动生成SCADE节点完成后,通过图形界面的方式直观的检查增益信息是否与增益文件一致;

步骤S6、建模规范检查;

检查模型是否符合规范;

SCADE工具内置了模型检查功能,同时提供开放接口,允许自定义建模规范,自动对命名规则和模型复杂度进行检查,分析并记录不符合项。

2.根据权利要求1所述的控制律增益模型自动生成方法,其特征在于,所述S3增益文件预处理步骤的处理流程包括:

步骤S31、打开增益文件;

步骤S32、读取一行数据,并记下行号;

步骤S33、判断是否是新增益,若是转向步骤S34,否则转向步骤S32;

步骤S34、开始记录当前增益数据,判断是否是分行符,若是转向步骤S35,否则合并逻辑行,转向步骤S32;

步骤S35、记录已读入的逻辑行,转向步骤S36;

步骤S36、开始记录新的逻辑行;

步骤S37、判断增益是否结束,若是转向步骤S38;否则转向步骤S32;

步骤S38、合并当前增益信息,开始新的增益信息分析,转向步骤S32。

3.根据权利要求1所述的控制律增益模型自动生成方法,其特征在于,步骤S4中,增益模型自动生成步骤中自动生成流程包括:

步骤S41、初始化步骤;包括:对一些变量进行赋值,为后面的工作做准备;

步骤S42、分析输入文件步骤;包括:对空行进行过滤;合并物理行,处理成逻辑行;检查输入的完整性及格式的正确性;将插值曲线数据进行预处理;

步骤S43、增益节点生成步骤;包括:调用AnalysisNodeInfo对节点的信息进行详细分析:为类型、常量、节点模型的生成准备信息;生成类型定义文件:autoTypes.xseade,并加入到模型中;生成常量定义文件:autoConsts.xscade,并加入到模型中;调用CreateImportedOperators生成导入操作符对应的模型文件,并加入到模型中;生成RAM变量标记节点模型文件,并加入到模型中;生成开关量计算节点文件,并加入到模型中;针对每个增益,生成增益节点文件,并加入模型;调用CreateIntegratedNodes,生成集成节点文件,并加入到模型中。

4.根据权利要求1所述的控制律增益模型自动生成方法,其特征在于,步骤S5中,通过直观的图形界面显示增益节点的相关信息,通过文字、图形、控件、警告信息指导用户操作;用户在SCADE中选择某个增益节点,点击对应显示增益信息的按键,即可观测到相关的增益信息;

自动读入SCADE中自动生成的增益节点中的comment信息,并将数据格式化,显示到图形界面;主要包括:读入comment信息和计算插值曲线两个功能;

所述增益信息显示步骤的增益信息显示过程包括:

步骤S51、对SCADE节点comment信息进行增益信息分析;

步骤S52、将经过分析的增益信息显示到图形界面;

步骤S53、进行插值计算;如果维数为0,则读入常数值;如果维数为1,则读入Value值,分别读入a、b两个系数;如果维数为2,则读入X、Y值,分别读入a、b、c、d四个系数;转向步骤S52;

一维插值曲线图形观测功能由用户在增益信息显示界面选择相应的开关量组合,对曲线进行观测的时候,由命令行启动,同时把该增益节点的信息写入临时文件,并通过命令行参数的格式带入增益信息显示模块中;

所述增益信息显示步骤包含指定数据文件读入步骤、数据及窗口初始化步骤、图形界面显示步骤、显示模式切换步骤、X值输入计算插值步骤;

所述指定数据文件读入步骤中,支持读入指定格式的文件,并分析出开关量组合、开关量、value值、系数信息;

所述数据及窗口初始化步骤中,坐标值根据数据大小自动适应极值,并根据极值绘制图形的实际坐标范围和屏幕坐标范围;

所述图形界面显示步骤中,实现2倍放大显示,曲线/折线模式切换,图形滚屏显示;

所述显示模式切换步骤中,实现图形和表格显示模式切换;

所述X值输入计算插值步骤中,实现图斯汀变换,计算一维插值,提供原始值与图斯汀变换的结果比较;

增益信息显示步骤中的图形显示过程包括:

步骤A51、读入指定格式文件;

步骤A52、数据及窗口初始化;

步骤A53、界面显示;

步骤A54、等待用户输入;若用户输入的信息对应开关量选择或显示模式切换或X值输入计算插值,则根据用户的输入信息反馈至步骤A53予以显示;若用户输入的信息对应退出,则程序终止。

5.根据权利要求1所述的控制律增益模型自动生成方法,其特征在于,步骤S6中,建模规范检查步骤包括建模规范检查步骤、复杂度检查步骤;

所述建模规范检查步骤包括检查命名规则,提供3种命名规则以供选择,并列出不符合命名规则的模块、节点、变量、常量;

建模规范检查步骤中的命名规则检查过程包括:

步骤S61、选择命名规则类型;

步骤S62、填写模块名称清单;

步骤S63、命名规则检查触发;

步骤S64、判断模块名是否为空;若是,转向步骤S65;否则转向步骤S66;

步骤S65、判断是否继续检查,若是,转向步骤S66;否则返回步骤S62;

步骤S66、判断命名是否符合所选规则;若是,转向步骤S67,否则转向步骤S69;

步骤S67、列表显示,转向步骤S68;

步骤S68、修改不符合命名,直至命名符合要求;转向步骤S70;

步骤S69、显示列表为空;转向步骤S70;

步骤S70、导出结果;

步骤S71、结束;

允许用户自定义8项复杂度:结构体成员数目、数组维数、节点被调用次数、条件组合数目、表达式括号嵌套、单维数组成员数目、最大子节点数目、switch的case数目;

复杂度检查过程包括:设定每项的复杂度;复杂度检查触发;分析KCG生成的kcg_metrics.txt;显示实际的复杂度;导出结果;结束。

6.一种控制律增益模型自动生成系统,其特征在于,所述自动生成系统包括:控制律增益文件定义模块、增益文件合法性检查模块、增益文件预处理模块、增益模型自动生成模块、增益信息显示模块和建模规范检查模块;

所述控制律增益文件定义模块用以通过增益文件的设计,将自然语言描述的增益需求,转化为工具可读的、形式化文本;所述增益文件合法性检查模块用以对增益文件的合法性进行检查;所述增益文件合法性检查模块提供若干条合法性检查规则,对于满足规则的增益文件,生成正确的增益模型;对于不满足规则的增益文件,将给出报警信息,列出出错的增益名称、出错增益的结束行内容;

所述增益文件预处理模块用以对于形式化的增益文件,在正式生成SCADE增益模型之前,需要进行预处理,合并部分符合要求的逻辑行、输出量,优化增益文件,以提高增益模型的实现效率;

所述增益模型自动生成模块通过SCADE提供的界面扩展功能,使用TCL脚本语言,在SCADE环境中定制了用于导入增益文件、自动生成增益模型的工具栏按钮、菜单及对话框;

所述增益信息显示模块用以显示增益信息;增益文件导入自动生成SCADE节点完成后,通过图形界面的方式直观的检查增益信息是否与增益文件一致;

所述建模规范检查模块用以检查模型是否符合规范;SCADE工具内置了模型检查功能,同时提供开放接口,允许自定义建模规范,自动对命名规则和模型复杂度进行检查,分析并记录不符合项。

7.根据权利要求6所述的控制律增益模型自动生成系统,其特征在于:

所述增益文件预处理模块的处理流程包括:

步骤S31、打开增益文件;

步骤S32、读取一行数据,并记下行号;

步骤S33、判断是否是新增益,若是转向步骤S34,否则转向步骤S32;

步骤S34、开始记录当前增益数据,判断是否是分行符,若是转向步骤S35,否则合并逻辑行,转向步骤S32;

步骤S35、记录已读入的逻辑行,转向步骤S36;

步骤S36、开始记录新的逻辑行;

步骤S37、判断增益是否结束,若是转向步骤S38;否则转向步骤S32;

步骤S38、合并当前增益信息,开始新的增益信息分析,转向步骤S32。

8.根据权利要求6所述的控制律增益模型自动生成系统,其特征在于:

所述增益模型自动生成模块的自动生成流程包括:

步骤S41、初始化步骤;包括:对一些变量进行赋值,为后面的工作做准备;

步骤S42、分析输入文件步骤;包括:对空行进行过滤;合并物理行,处理成逻辑行;检查输入的完整性及格式的正确性;将插值曲线数据进行预处理;

步骤S43、增益节点生成步骤;包括:调用AnalysisNodeInfo对节点的信息进行详细分析:为类型、常量、节点模型的生成准备信息;生成类型定义文件:autoTypes.xscade,并加入到模型中;生成常量定义文件:autoConsts.xscade,并加入到模型中;调用CreateImportedOperators生成导入操作符对应的模型文件,并加入到模型中;生成RAM变量标记节点模型文件,并加入到模型中;生成开关量计算节点文件,并加入到模型中;针对每个增益,生成增益节点文件,并加入模型;调用CreateIntegratedNodes,生成集成节点文件,并加入到模型中。

9.根据权利要求6所述的控制律增益模型自动生成系统,其特征在于:

所述增益信息显示模块通过直观的图形界面显示增益节点的相关信息,通过文字、图形、控件、警告信息指导用户操作;用户在SCADE中选择某个增益节点,点击对应显示增益信息的按键,即可观测到相关的增益信息;

所述增益信息显示模块用以自动读入SCADE中自动生成的增益节点中的comment信息,并将数据格式化,显示到图形界面;主要包括:读入comment信息和计算插值曲线两个功能;

所述增益信息显示模块的增益信息显示过程包括:

步骤S51、对SCADE节点comment信息进行增益信息分析;

步骤S52、将经过分析的增益信息显示到图形界面;

步骤S53、进行插值计算;如果维数为0,则读入常数值;如果维数为1,则读入Value值,分别读入a、b两个系数;如果维数为2,则读入X、Y值,分别读入a、b、c、d四个系数;转向步骤S52;

一维插值曲线图形观测功能由用户在增益信息显示界面选择相应的开关量组合,对曲线进行观测的时候,由命令行启动,同时把该增益节点的信息写入临时文件,并通过命令行参数的格式带入增益信息显示模块中;

所述增益信息显示模块包含指定数据文件读入单元、数据及窗口初始化单元、图形界面显示单元、显示模式切换单元、X值输入计算插值单元;

所述指定数据文件读入单元用以支持读入指定格式的文件,并分析出开关量组合、开关量、value值、系数信息;

所述数据及窗口初始化单元中,坐标值根据数据大小自动适应极值,并根据极值绘制图形的实际坐标范围和屏幕坐标范围;

所述图形界面显示单元用以实现2倍放大显示,曲线/折线模式切换,图形滚屏显示;

所述显示模式切换单元用以实现图形和表格显示模式切换;

所述X值输入计算插值单元用以实现图斯汀变换,计算一维插值,提供原始值与图斯汀变换的结果比较;

所述增益信息显示模块的图形显示过程包括:

步骤A51、读入指定格式文件;

步骤A52、数据及窗口初始化;

步骤A53、界面显示;

步骤A54、等待用户输入;若用户输入的信息对应开关量选择或显示模式切换或X值输入计算插值,则根据用户的输入信息反馈至步骤A53予以显示;若用户输入的信息对应退出,则程序终止。

10.根据权利要求6所述的控制律增益模型自动生成系统,其特征在于:

所述建模规范检查模块包括建模规范检查单元、复杂度检查单元;

所述建模规范检查单元用以检查命名规则,提供3种命名规则以供选择,并列出不符合命名规则的模块、节点、变量、常量;

建模规范检查单元的命名规则检查过程包括:

步骤S61、选择命名规则类型;

步骤S62、填写模块名称清单;

步骤S63、命名规则检查触发;

步骤S64、判断模块名是否为空;若是,转向步骤S65;否则转向步骤S66;

步骤S65、判断是否继续检查,若是,转向步骤S66;否则返回步骤S62;

步骤S66、判断命名是否符合所选规则;若是,转向步骤S67,否则转向步骤S69;

步骤S67、列表显示,转向步骤S68;

步骤S68、修改不符合命名,直至命名符合要求;转向步骤S70;

步骤S69、显示列表为空;转向步骤S70;

步骤S70、导出结果;

步骤S71、结束;

所述复杂度检查单元允许用户自定义8项复杂度:结构体成员数目、数组维数、节点被调用次数、条件组合数目、表达式括号嵌套、单维数组成员数目、最大子节点数目、switch的case数目;

所述复杂度检查单元的复杂度检查过程包括:设定每项的复杂度;复杂度检查触发;分析KCG生成的kcg_metrics.txt;显示实际的复杂度;导出结果;结束。

【说明书】


控制律增益模型自动生成方法及系统

【0001】技术领域

【0002】本发明属于飞行控制技术领域,涉及一种控制律增益模型生成方法及系统。

【0003】背景技术

【0004】现有飞行控制系统机载软件控制律开发过程中,基于Windows的SCADE模型开发工具已经成为整个飞行控制系统控制律开发过程中较为核心的环节。

【0005】用户现有的开发工作更多在UNIX平台下进行,其环境的特殊性导致控制律开发工作的可继承性、可读性比较差。因此,需要通过基于SCADE模型,提供辅助设计的工具和手段,达到高效地进行飞行控制系统机载软件控制律的开发,并确保生成正确的、符合编码规范的控制律代码。

【0006】0展示了传统的控制律增益建模的基本流程;现有控制律增益建模方法包括如下步骤:

【0007】S1、手动建增益模型,工程人员根据自然语言描述的控制律增益需求,人工手动在SCADE建模工具中实现增益模型的设计。其中包括增益的类型、常量、增益实现等内容;

【0008】S2、人工错误检查,工程人员在手工建立增益模型后,需要人工检查模型的正确性,包括:增益类型、增益名称、计算周期、调用周期、开关量名称、开关量组合、插值曲线的维数和类型、增益计算的数据等;

【0009】S3、建模规范检查,在确认增益模型逻辑准确后,还需要对模型进行建模规范检查,确保模型符合建模规范,才能由增益模型生成正确的代码。

【0010】S4、代码自动生成,在完成模型检查后,通过调用SCADE内置的代码生成器(KCG),直接由模型生成控制律代码。

【0011】传统的增益建模方法存在以下缺点:

【0012】(1)人工建立增益模型工作量大。针对每个控制律增益的类型及其对应的图斯汀变换类型,都需要人工在SCADE模型中建立增益模型。控制律增益类型和图斯汀变换类型的组合繁多,而每次创建的增益模型的步骤比较固定,重复的人工工作量较大。

【0013】(2)人工建立增益模型不易维护。由于控制律增益中的参数对于飞行控制系统的性能影响很大,往往在测试调试过程中,需要频繁对控制律增益参数进行调整。一旦发生调整,对应的增益需求、增益模型都必须进行同步更改。如果通过人工维护更改,工作量很大。

【0014】人工建立增益模型的检查过于繁琐。基于增益需求开发的增益模型,需要进行多种错误检查,以保证增益模型的正确性。包括:增益类型、增益名称、计算周期、调用周期、开关量名称、开关量组合、插值曲线的维数和类型、增益计算的数据等。这些检查虽然都遵循一定的规则,但完全依赖人工检查,一是加重人力成本,二是人工检查难免有所疏漏。

【0015】有鉴于此,如今迫切需要设计一种新的增益模型生成方式,以便克服现有控制方式存在的上述缺陷。

【0016】发明内容

【0017】本发明目的是:提供一种控制律增益模型自动生成方法,可自动检查形式化语言描述的控制律增益文件,并根据正确的控制律增益文件生成SCADE增益模型。

【0018】此外,本发明还提供一种控制律增益模型自动生成系统,可自动检查形式化语言描述的控制律增益文件,并根据正确的控制律增益文件生成SCADE增益模型。

【0019】为达到上述发明目的,本发明采用如下技术方案:

【0020】本发明提出的控制律增益模型自动生成方法及系统,能自动检查形式化语言描述的控制律增益文件,并根据正确的控制律增益文件生成SCADE增益模型。在增益模型生成后,该系统还提供了图形界面,辅助用户直观检查增益信息是否与增益描述文件一致。该系统实现了控制律开发过程的高度自动化:不仅能自动检查增益信息的错误,而且能实现插值曲线的自动图斯汀转换、SCADE增益模型的自动生成、自动生成控制率代码、自动计算并显示插值曲线,把开发人员从累赘的、非技术性的功能中解放出来,可以全身心投入到创造性的工作中去。

【0021】本发明与现有技术相比,具有以下优点:

【0022】(1)增益模型搭建速度快。通过将增益需求根据特定格式,转换成形式化增益描述文件,并该基于形式化的增益描述文件自动生成增益模型,整个人工建模的过程被本系统完全自动化了,大大缩减了开发模型的时间和成本。

【0023】(2)增益模型正确性提升。通过本系统提供的各种合法性检查,确保增益模型各类信息的正确性,不仅降低人工检查的工作量,而且也保证了增益模型的质量。

【0024】(3)易于调试和维护。控制律增益中的参数对飞行控制系统的性能影响很大,因此在测试调试过程中,需要频繁对控制律增益参数进行调整和更改。使用了本系统,每次只需要更改增益描述文件中的信息,或者直接通过增益图形显示功能,就可以直观获取增益参数的影响,便于调试和维护。

【0025】(4)实现了整个开发过程的高度自动化,把开发人员从累赘的、非技术性的工作中解放出来,从事创造性的工作。自动化过程包括(a)增益信息的自动错误检查;(b)插值曲线的自动图斯汀转换;(c)插值曲线的斜率和截距的自动计算;(d)SCADE增益模型的自动生成。

【0026】(5)良好的前瞻性。该发明不仅具有良好的开放性,可以使用未来新的研发流程(基于模型的开发与验证已经成为嵌入式软件开发的新方向);而且具有良好的通用性,不仅完全支持现有型号,还完全适用于未来的型号;不仅适合多速率组的开发,也适合单速率组的开发。

【0027】附图说明

【0028】图1为传统增益建模方法的流程图。

【0029】图2为本发明控制律增益模型自动生成系统的架构图。

【0030】图3为本发明方法中增益文件预处理流程图。

【0031】图4为本发明方法中增益模型工具栏界面实现流程图。

【0032】图5为本发明方法中增益自动生成流程图。

【0033】图6为本发明方法中增益信息显示功能设计流程图。

【0034】图7为本发明方法中图形显示功能流程图示意图。

【0035】图8为本发明方法中命名规则检查流程图。

【0036】图9为本发明方法中复杂度检查流程图。

【0037】图10为增益模型工具栏界面示意图。

【0038】图11为增益信息文件选择界面示意图。

【0039】图12为增益信息显示工具栏示意图。

【0040】图13为增益信息显示界面示意图。

【0041】图14为建模规范检查工具栏示意图。

【0042】图15为建模规范检查界面示意图。

【0043】具体实施方式

【0044】下面结合附图详述本发明。

【0045】实施例一

【0046】一种控制律增益模型自动生成方法,如图2所示,包括:

【0047】【步骤S1】控制律增益文件定义步骤;

【0048】通过增益描述文件的设计,将自然语言描述的增益需求,转化为工具可读的、形式化文本;

【0049】用形式化语言描述的增益文件,进行自动化的合法性检查,且直接作为输入,自动生成SCADE增益模型;

【0050】【步骤S2】增益文件合法性检查步骤;

【0051】提供若干条合法性检查规则,对增益文件的合法性进行检查:

【0052】对于满足规则的增益文件,生成正确的增益模型;对于不满足规则的增益文件,给出报警信息,列出出错的增益名称、出错增益的结束行内容;

【0053】【步骤S3】增益文件预处理步骤;

【0054】对于形式化的增益描述文件,在正式生成SCADE增益模型之前,需要进行预处理,合并部分符合要求的逻辑行、输出量,优化增益文件,以提高增益模型的实现效率;

【0055】所述增益文件预处理步骤的处理流程包括:

【0056】步骤S31、打开增益信息文件;

【0057】步骤S32、读取一行数据,并记下行号;

【0058】步骤S33、判断是否是新增益,若是转向步骤S34,否则转向步骤S32;

【0059】步骤S34、开始记录当前增益数据,判断是否是分行符,若是转向步骤S35,否则合并逻辑行,转向步骤S32;

【0060】步骤S35、记录已读入的逻辑行,转向步骤S36;

【0061】步骤S36、开始记录新的逻辑行;

【0062】步骤S37、判断增益是否结束,若是转向步骤S38;否则转向步骤S32;

【0063】步骤S38、合并当前增益信息,开始新的增益信息分析,转向步骤S32;

【0064】【步骤S4】增益模型自动生成步骤;

【0065】通过SCADE提供的界面扩展功能,使用TCL脚本语言,在SCADE环境中定制了用于导入增益文件、自动生成增益模型的工具栏按钮、菜单及对话框;自动生成流程包括:

【0066】步骤S41、初始化步骤;包括:对一些变量进行赋值,为后面的工作做准备;

【0067】步骤S42、分析输入文件步骤;包括:对空行进行过滤;合并物理行,处理成逻辑行;检查输入的完整性及格式的正确性;将插值曲线数据进行预处理;

【0068】步骤S43、增益节点生成步骤;包括:调用AnalysisNodeInfo对节点的信息进行详细分析:为类型、常量、节点等模型的生成准备信息;生成类型定义文件:autoTypes.xscade,并加入到模型中;生成常量定义文件:autoConsts.xscade,并加入到模型中;调用CreateImportedOperators生成导入操作符对应的模型文件,并加入到模型中;生成RAM变量标记节点模型文件,并加入到模型中;生成开关量计算节点文件,并加入到模型中;针对每个增益,生成增益节点文件,并加入模型;调用CreateIntegratedNodes,生成集成节点文件,并加入到模型中;

【0069】【步骤S5】增益信息显示步骤;

【0070】显示增益信息;增益描述文件导入自动生成SCADE节点完成后,通过图形界面的方式直观的检查增益信息是否与增益描述文件一致;

【0071】通过直观的图形界面显示增益节点的相关信息,通过文字、图形、控件、警告信息指导用户操作;用户在SCADE中选择某个增益节点,点击对应显示增益信息的按键,即可观测到相关的增益信息;

【0072】自动读入SCADE中自动生成的增益节点中的comment信息,并将数据格式化,显示到图形界面;主要包括:读入comment信息和计算插值曲线两个功能;

【0073】所述增益信息显示步骤的增益信息显示过程包括:

【0074】步骤S51、对SCADE节点comment数据进行增益信息分析;

【0075】步骤S52、将经过分析的增益信息显示到图形界面;

【0076】步骤S53、进行插值计算;如果维数为0,则读入常数值;如果维数为1,则分别读入X、Y值,分别读入a、b、c、d四个系数;如果维数为2,则分别读入a、b两个系数;转向步骤S52;

【0077】一维插值曲线图形观测功能由用户在增益信息显示界面选择相应的开关量组合,对曲线进行观测的时候,由命令行启动,同时把该增益节点的信息写入临时文件,并通过命令行参数的格式带入增益信息显示模块中;

【0078】所述增益信息显示步骤包含指定数据文件读入步骤、数据及窗口初始化步骤、图形界面显示步骤、显示模式切换步骤、X值输入计算插值步骤;

【0079】所述指定数据文件读入步骤中,支持读入指定格式的文件,并分析出开关量组合、开关量、value值、系数信息;

【0080】所述数据及窗口初始化步骤中,坐标值根据数据大小自动适应极值,并根据极值绘制图形的实际坐标范围和屏幕坐标范围;

【0081】所述图形界面显示步骤中,实现2倍放大显示,曲线/折线模式切换,图形滚屏显示;

【0082】所述显示模式切换步骤中,实现图形和表格显示模式切换;

【0083】所述X值输入计算插值步骤中,实现图斯汀变换,计算一维插值,提供原始值与图斯汀变换的结果比较;

【0084】增益信息显示步骤中的图形显示过程包括:

【0085】步骤A51、读入指定格式文件;

【0086】步骤A52、数据及窗口初始化;

【0087】步骤A53、界面显示;

【0088】步骤A54、等待用户输入;若用户输入的信息对应开关量选择或显示模式切换或X值输入计算插值,则根据用户的输入信息反馈至步骤A53予以显示;若用户输入的信息对应退出,则程序终止;

【0089】【步骤S6】建模规范检查步骤;

【0090】检查模型是否符合规范;SCADE工具内置了模型检查功能,同时提供开放接口,允许自定义建模规范,自动对命名规则和模型复杂度进行检查,分析并记录不符合项;

【0091】所述建模规范检查步骤包括建模规范检查步骤、复杂度检查步骤;

【0092】(一)所述建模规范检查步骤包括检查命名规则,提供3种命名规则以供选择,并列出不符合命名规则的模块、节点、变量、常量;

【0093】建模规范检查步骤中的命名规则检查过程包括:

【0094】步骤S61、选择命名规则类型;

【0095】步骤S62、填写模块名称清单;

【0096】步骤S63、命名规则检查触发;

【0097】步骤S64、判断模块名是否为空;若是,转向步骤S65;否则转向步骤S66;

【0098】步骤S65、判断是否继续检查,若是,转向步骤S66;否则返回步骤S62;

【0099】步骤S66、判断命名是否符合所选规则;若是,转向步骤S67,否则转向步骤S69;

【0100】步骤S67、列表显示,转向步骤S68;

【0101】步骤S68、修改不符合命名,直至命名符合要求;转向步骤S70;

【0102】步骤S69、显示列表为空;转向步骤S70;

【0103】步骤S70、导出结果;

【0104】步骤S71、结束;

【0105】(二)允许用户自定义8项复杂度:结构体成员数目、数组维数、节点被调用次数、条件组合数目、表达式括号嵌套、单维数组成员数目、最大子节点数目、switch的case数目;

【0106】复杂度检查过程包括:设定每项的复杂度;复杂度检查触发;分析KCG生成的kcg_metrics.txt;显示实际的复杂度;导出结果;结束。

【0107】实施例二

【0108】本发明揭示一种控制律增益模型自动生成系统,包括:控制律增益文件定义模块、增益文件合法性检查模块、增益文件预处理模块、增益模型自动生成模块、增益信息显示模块和建模规范检查模块。

【0109】(1)【控制率增益文件定义模块】

【0110】通过增益描述文件的设计,将自然语言描述的增益需求,转化为工具可读的、形式化文本。用形式化语言描述的增益文件,不仅可以进行自动化的合法性检查,而且可以直接作为输入,自动生成SCADE增益模型。

【0111】增益描述文件示例A如下:

【0112】

【0113】增益描述文件的形式化格式定义如下:

【0114】a)增益信息的分隔符:

【0115】增益信息以“#”作为起始标志,两个“#”行之间的内容即为增益的描述信息。

【0116】b)增益信息的分行符:

【0117】以%为关键字,独占一行,它表示上一语句结束,开始新的语句,允许连续出现多行%。因此在处理增益信息时,遇到%即结束上一行语句,开始新一行语句(这里一行是指逻辑行,增益信息描述文件中可能将一行具有完整意义的逻辑行信息分多行书写,从而提高可读性)。由于增益类型和增益信息是增益总体信息的不同部分,因此它们属于同一逻辑行,它们之间不能以%分隔,如果出现了%行,则会增益信息内容分析时报错。

【0118】c)增益类型:

【0119】增益类型包括:AP、CAS、CASxxx(faded)、APxxx(fadad)。因此,AP、CAS、CASxxx(faded)、APxxx(faded)均为关键字,不仅表明该增益的类型,同时也可作为多个增益组合成为一个组合节点时输入量合并的依据。如:示例A中的增益类型为cas120。

【0120】d)增益说明:

【0121】描述了增益的名称、图斯汀变换的类型、计算周期和使用周期。“增益说明”一般为一输入行(逻辑行),允许通过多行输入行完成,只要中间不包括%行。

【0122】增益名称,形式为g_xxx,必须符合C语言命名规范,长度必须小于32个字符。如:示例A中的增益名称为g_wqa。

【0123】图斯汀变换的类型,包括:c类型I、c类型II、i类型、l类型、w类型、n/d类型。如:示例A中的图斯汀变换类型为w类型。

【0124】计算周期:节点组合的依据(相同计算周期的增益合并成一个组合节点),通常为正整数,单位为ms。如:示例A中的计算周期为120ms。

【0125】使用周期:用于图斯汀变换计算,通常为正整数,单位为ms。在组合节点中,使用周期是输出量合并的依据之一。如:示例A中的使用周期为15ms。

【0126】e)增益信息开关量:

【0127】由若干个不重复的、通过空格分隔的变量名来描述开关量信息,每个变量名必须为合法的C语言变量名。如:示例A中的u_conf1 u_lgh u_swbug。

【0128】开关量行后的逻辑行为开关量的组合取值,即一个开关量取值序列,格式为:“0 1 0”,数值数目必须与开关量的数目一致,每个数值对应着相应的开关量的取值。如果某个值取“*”,则按通用值取,表明该值既可以取0,也可以取1。

【0129】在开关量组合后紧跟的是插值表的描述信息:零维、一维、二维或三维插值表的描述信息,相应的信息行的起始标志分别为“0”、“1”、“2”或“3”。

【0130】为了确保增益信息的完整和正确性,必须对开关组合情况进行封闭性检查:即对于有N个开关变量的增益,有2N种开关量组合值与它对组合值与其对应,因此必须提供相应数目的计算结果供开关组合量控制选取(对于通用情况,按两种情况考虑,即*代表了某个开关量选取0、1两种情况)。

【0131】f)线性插值表:

【0132】零维插值:零维插值信息描述由维数以及浮点常量组成。如:示例A中的“0 0.6”。

【0133】一维插值:一维线性插值的数据由两个逻辑行组成:第一个逻辑行的内容为维数(整数1)、输入变量名(合法的变量名)、分隔标志(字符n)、一系列的浮点值(即X轴的值)。算法如下:

【0134】当输入值落在X轴数值范围内,按标准的w=(x-x0)*(w1-w0)/(x1-x0)+w0的算法计算,其中x0,x1表示两个相邻的X轴值,而x落在x0和x1之间;如果输入值落在X轴数值范围外,则采用相应的边界值:即当输入值小于最小的X轴数值时,取最小值时对应的W值;当输入值大于最大的X轴数值时,取最大值时对应的W值,而不进行线性插值。

【0135】二维插值:二维线性插值的数据由三个逻辑行组成:第一个逻辑行的内容为维数(整数2)、输入变量名x(合法的变量名)、分隔标志(字符n)、一系列的浮点值(即X轴的值),这里假定数目为m。二维线性插值的第二个逻辑行的内容为维数(整数2)、输入变量名x(合法的变量名)、分隔标志(字符n)、一系列的浮点值(即Y轴的值),这里假定数目为n。二维线性插值的第三个逻辑行的内容为一系列的浮点值(即W轴的值),W轴的数据数目必须等于m*n。

【0136】三维插值:三维线性插值的数据由3、X轴插值输入变量、n、3D插值的X轴序列,3、插值输入变量、n、3D插值的Y轴序列,3、插值输入变量、n、3D插值的Z轴序列和3D插值的W轴序列组成,他们之间以%分隔。X,Y,Z轴序列均严格按照递增顺序排列,各变量值以空格分隔。假设3D插值有n个X轴变量,m个Y轴变量,k个Z轴变量,则3D插值的W轴序列的个数必须等于n*m*k,W轴序列的数值排列为每k*m个变量值为一行,共k行。

【0137】(2)【增益文件合法性检查模块】

【0138】由于增益文件以形式化语言描述,因此通过工具对增益文件的合法性进行检查,以保证增益文件的正确性;所述增益文件合法性检查模块用以对增益文件的合法性进行检查;所述增益文件合法性检查模块提供若干条合法性检查规则,对于满足规则的增益文件,生成正确的增益模型;对于不满足规则的增益文件,将给出报警信息,列出出错的增益名称、出错增益的结束行内容;

【0139】具体的规则包括但不限于:

【0140】1)增益起始符“#”之间存在非法字符

【0141】2)同一逻辑行中出现%

【0142】3)变量名称不符合C语言命名规范,长度大于32个字符

【0143】4)增益名称编译符合C语言命名规范,长度大于32个字符

【0144】5)增益类型不符合要求(AP,CAS,CASxxx(faded),APxxx(fadad))

【0145】6)增益的计算周期不是整数

【0146】7)增益的使用周期不是整数

【0147】8)开关量组合数目与定义的开关量数目不符

【0148】9)当插值量的数值数目(即插值曲线点的数目)与输入量的数值数目不符

【0149】10)开关组合量不封闭

【0150】11)零维插值的数值不等于2个

【0151】12)零维插值的第二个数据不是浮点数

【0152】13)一维线性插值的X轴输入量的值不是递增

【0153】14)二维线性插值的X轴、Y轴输入量的值不是递增

【0154】15)二维线性插值的W轴序列个数不等于n*m

【0155】16)三维线性插值的X轴、Y轴、Z轴输入量的值不是递增

【0156】17)三维线性插值的W轴序列个数不等于n*m*k

【0157】(3)【增益文件预处理模块】

【0158】对于形式化的增益描述文件,在正式生成SCADE增益模型之前,需要进行预处理,合并部分符合要求的逻辑行、输出量,优化增益文件,以提高增益模型的实现效率。

【0159】如图3所示,所述增益文件预处理模块的预处理流程包括:

【0160】步骤S31、打开增益信息文件;

【0161】步骤S32、读取一行数据,并记下行号;

【0162】步骤S33、判断是否是新增益,若是转向步骤S34,否则转向步骤S32;

【0163】步骤S34、开始记录当前增益数据,判断是否是分行符,若是转向步骤S35,否则合并逻辑行,转向步骤S32;

【0164】步骤S35、记录已读入的逻辑行,转向步骤S36;

【0165】步骤S36、开始记录新的逻辑行;

【0166】步骤S37、判断增益是否结束,若是转向步骤S38;否则转向步骤S32;

【0167】步骤S38、合并当前增益信息,开始新的增益信息分析,转向步骤S32;

【0168】(4)【增益模型自动生成模块】

【0169】通过SCADE提供的界面扩展功能,使用TCL脚本语言,在SCADE环境中定制了用于导入增益文件、自动生成增益模型的工具栏按钮、菜单及对话框。

【0170】a)增益模型工具栏的界面设计包括:

【0171】1)定义命令:cmdGainAutoGenerate()

【0172】2)定义工具栏:GainTools()

【0173】3)定义菜单:menu()

【0174】4)定义对话框:dialogGainAutoGenerate()以及相应的初始化子程序

【0175】5)定义图标文件:usrGainAutoGenerate.bmp

【0176】6)初始化命令、工具栏、菜单

【0177】界面设计的实现流程图如图4所示。增益自动生成界面如图10所示;相应的用户接口如图11所示。

【0178】界面中,增益信息文件名称通过文本框输入,也可以通过“打开文件”(FileOpenDialog-filter″Gain Input(*.txt)|*.txt|All Files(*.*)|*.*||″)对话提供图形界面供用户以选取文件的方式指定输入文件。计算/调用周期通过文本框的方式由用户输入,缺少值取“15 30 60 120”。点击“开始”按钮,即根据输入的增益信息问卷,自动生成增益模型。

【0179】b)增益模型自动生成流程如图5所示,具体包括:

【0180】步骤S41、初始化步骤;包括:对一些变量进行赋值,为后面的工作做准备;

【0181】步骤S42、分析输入文件步骤;包括:对空行进行过滤;合并物理行,处理成逻辑行;检查输入的完整性及格式的正确性;将插值曲线数据进行预处理;

【0182】步骤S43、增益节点生成步骤;包括:调用AnalysisNodeInfo对节点的信息进行详细分析:为类型、常量、节点等模型的生成准备信息;生成类型定义文件:autoTypes.xscade,并加入到模型中;生成常量定义文件:autoConsts.xscade,并加入到模型中;调用CreateImportedOperators生成导入操作符对应的模型文件,并加入到模型中;生成RAM变量标记节点模型文件,并加入到模型中;生成开关量计算节点文件,并加入到模型中;针对每个增益,生成增益节点文件,并加入模型;调用CreateIntegratedNodes,生成集成节点文件,并加入到模型中;

【0183】(5)【增益信息显示模块】

【0184】用以显示增益信息,增益描述文件导入自动生成SCADE节点完成后,可通过图形界面的方式直观的检查增益信息是否与增益描述文件一致。

【0185】a)增益信息显示界面设计

【0186】该界面以直观的图形界面显示增益节点的相关信息,通过文字、图形、控件、警告等信息指导用户操作。用户在SCADE中选择了某个增益节点,点击“增益信息显示”,即可观测到相关的增益信息。

【0187】增益信息显示界面如图12所示;相应的用户接口如图13所示。

【0188】界面中划分了红、黄、绿、蓝四个区域,分别定义如下:

【0189】

【0190】表1界面区域定义表

【0191】若插值曲线维数为一维,可通过点击图13中的“显示曲线”按钮进入图形观测,能以图形化的方式,直观显示增益信息。

【0192】界面被分为黄、绿、蓝、粉四个区域,分别定义如下:

【0193】

【0194】表2一维插值曲线界面区域定义表

【0195】b)增益信息显示功能设计

【0196】1)增益信息显示功能设计

【0197】增益信息显示功能可以自动读入SCADE中自动生成的增益节点中的comment信息,并将数据格式化,显示到图形界面。主要包括:读入comment信息和计算插值曲线2个功能,流程图如图6所示。

【0198】所述增益信息显示模块的增益信息显示过程包括:

【0199】步骤S51、对SCADE节点comment数据进行增益信息分析;

【0200】步骤S52、将经过分析的增益信息显示到图形界面;

【0201】步骤S53、进行插值计算;如果维数为0,则读入常数值;如果维数为1,则分别读入X、Y值,分别读入a、b、c、d四个系数;如果维数为2,则分别读入a、b两个系数;转向步骤S52。

【0202】2)图形显示功能设计

【0203】一维插值曲线图形观测功能由用户在增益信息显示界面选择相应的开关量组合,对曲线进行观测的时候,由命令行启动,同时把该增益节点的信息写入临时文件,并通过命令行参数的格式带入到该模块中。

【0204】该模块包含5个子功能:

【0205】●读入指定数据文件设计:支持读入指定格式的文件,并分析出开关量组合、开关量、value值、系数等信息;

【0206】●数据及窗口初始化设计:坐标值可以根据数据大小自动适应极值,并根据极值绘制图形的实际坐标范围和屏幕坐标范围;

【0207】●图形显示界面设计:支持2倍放大显示,曲线/折线模式切换,图形滚屏显示;

【0208】●显示模式切换设计:支持图形和表格显示模式切换;

【0209】●X值输入计算插值设计:支持图斯汀变换,计算一维插值,提供原始值与图斯汀变换的结果比较。

【0210】对应地,所述增益信息显示模块包含指定数据文件读入单元、数据及窗口初始化单元、图形界面显示单元、显示模式切换单元、X值输入计算插值单元;

【0211】所述指定数据文件读入单元用以支持读入指定格式的文件,并分析出开关量组合、开关量、value值、系数信息;

【0212】所述数据及窗口初始化单元中,坐标值根据数据大小自动适应极值,并根据极值绘制图形的实际坐标范围和屏幕坐标范围;

【0213】所述图形界面显示单元用以实现2倍放大显示,曲线/折线模式切换,图形滚屏显示;

【0214】所述显示模式切换单元用以实现图形和表格显示模式切换;

【0215】所述X值输入计算插值单元用以实现图斯汀变换,计算一维插值,提供原始值与图斯汀变换的结果比较;

【0216】图形显示功能的流程图如图7所示,所述增益信息显示模块的图形显示过程包括:

【0217】步骤A51、读入指定格式文件;

【0218】步骤A52、数据及窗口初始化;

【0219】步骤A53、界面显示;

【0220】步骤A54、等待用户输入;若用户输入的信息对应开关量选择或显示模式切换或X值输入计算插值,则根据用户的输入信息反馈至步骤A53予以显示;若用户输入的信息对应退出,则程序终止。

【0221】(6)【建模规范检查模块】

【0222】用以检查模型是否符合规范,SCADE工具内置了模型检查功能,同时也提供了开放接口,可以允许自定义建模规范,自动对命名规则和模型复杂度进行检查,分析并记录不符合项。

【0223】a)建模规范检查界面设计

【0224】建模规范检查工具栏如图14所示,用户通过点击“建模规则检查”按钮,打开图形界面,可以直观显示建模规范检查的相关信息,通过文字、控件、警告等信息知道用户操作,如图15所示。

【0225】b)建模规范检查功能设计

【0226】1)命名规则检查功能:提供3种命名规则以供选择(NamingRuleDefinition,Naming_Rule_Definition,naming_rule_definition),并列出不符合命名规则的模块、节点、变量、常量。

【0227】命名规则检查流程图如图8所示;建模规范检查步骤中的命名规则检查过程包括:

【0228】步骤S61、选择命名规则类型;

【0229】步骤S62、填写模块名称清单;

【0230】步骤S63、命名规则检查触发;

【0231】步骤S64、判断模块名是否为空;若是,转向步骤S65;否则转向步骤S66;

【0232】步骤S65、判断是否继续检查,若是,转向步骤S66;否则返回步骤S62;

【0233】步骤S66、判断命名是否符合所选规则;若是,转向步骤S67,否则转向步骤S69;

【0234】步骤S67、列表显示,转向步骤S68;

【0235】步骤S68、修改不符合命名,直至命名符合要求;转向步骤S70;

【0236】步骤S69、显示列表为空;转向步骤S70;

【0237】步骤S70、导出结果;

【0238】步骤S71、结束;

【0239】2)复杂度检查功能:允许用户自定义8项复杂度:结构体成员数目、数组维数、节点被调用次数、条件组合数目、表达式括号嵌套、单维数组成员数目、最大子节点数目、switch的case数目。

【0240】复杂度检查流程图如图9所示,复杂度检查过程包括:设定每项的复杂度;复杂度检查触发;分析KCG生成的kcg_metrics.txt;显示实际的复杂度;导出结果;结束。

【0241】综上所述,本发明提出的控制律增益模型自动生成方法及系统,能自动检查形式化语言描述的控制律增益文件,并根据正确的控制律增益文件生成SCADE增益模型。在增益模型生成后,系统还提供了图形界面,辅助用户直观检查增益信息是否与增益描述文件一致。系统实现了控制律开发过程的高度自动化:不仅能自动检查增益信息的错误,而且能实现插值曲线的自动图斯汀转换、SCADE增益模型的自动生成、自动生成控制率代码、自动计算并显示插值曲线,把开发人员从累赘的、非技术性的功能中解放出来,可以全身心投入到创造性的工作中去。

【0242】这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

【说明书附图】


【0001】


图1

【0002】


图2

【0003】


图3

【0004】


图4

【0005】


图5

【0006】


图6

【0007】


图7

【0008】


图8

【0009】


图9

【0010】


图10

【0011】


图11

【0012】


图12

【0013】


图13

【0014】


图14

【0015】


图15