GCKontrol系统设计与仿真软件
GCKontrol系统设计与仿真软件,是一款图形化建模仿真工具,能够实现系统设计与仿真,具备丰富的控制系统建模元素,支持控制系统建模仿真、线性非线性系统建模仿真、能自动生成高效高质量的C代码,搭配ModTest 软件支持FMU导出、实时仿真、自动化测试和验证。
●图形化信号流建模
GCKontrol提供多元化模型库,库中包含丰富的信号流元素,用户将模型库中的元素拖拽至工程界面并连线,即可确立模块间的数学关系,从而实现系统模型的构建。GCKontrol支持的模型库如下:
✓标准数学函数库 | ✓四元数库 | ✓数字逻辑库 |
✓时间函数库 | ✓信号通路库 | ✓状态图建模 |
✓插值表库 | ✓系统/子系统属性配置 | ✓用户自定义模块库 |
●状态图建模
状态图建模是一种图形化编程方法,可清楚地描述复杂系统的执行逻辑、决策逻辑、计算逻辑、故障管理等。GCKontrol支持状态图建模,用户可以用状态图元素创建复杂的状态图系统/子系统。GCKontrol的状态图功能主要包括5大部分:编程、运算、数据管理、层次浏览、调试;带有状态图子系统的GCKontrol 工程支持自动生成代码,依托ModTest 软件导出FMU,封装为虚拟子系统、封装为库等。状态图功能如下:
✓状态进入、执行、转移、退出 | ✓状态图调试,实时观测状态传递 |
✓状态组合:并行执行、互斥执行 | ✓状态图做为GCKontrol工程的子系统被调用 |
✓状态嵌套、层次浏览、数据管理 |
●用户自定义算法:C-Code模块
C-Code模块支持用户将C/C++代码导入,并支持C/C++代码对第三方库或依赖的调用,提高了系统建模的灵活性、通用性、扩展性。其核心功能如下:
✓支持将已有的C/C++代码加入仿真模型 |
✓多个C-Code模块可导入相同或不同的C/C++代码文件,满足不同用户的需求 |
✓支持第三方库加载及环境变量引用,扩展和丰富C-Code模块功能 |
●用户自定义算法:M-Code模块
M-code模块支持用户将Matlab M脚本导入,并支持M脚本对其他M脚本的调用,提高了系统的灵活性、通用性、可扩展性。其核心功能如下:
✓支持将已有的Matlab M语言脚本加入仿真模型 | ✓支持通用的Matlab函数库 |
✓多个M-Code可导入相同或不同的M代码文件,满足不同用户的需求 | |
✓支持M脚本对其他M脚本的调用,扩展和丰富了M-Code模块功能 |
●模型架构和模型库:虚拟子系统
用户在建模时可控制子系统的调度周期、设置子系统的中断函数,使子系统在外部控制信号使能/触发时,子系统内部任务才可执行,从而实现对不同子系统/子任务的灵活配置与调度。虚拟子系统也有效提高了模型的可读性,维护性,复用性。虚拟子系统的核心功能如下:
✓对模型层次划分,增强可读性 | ✓子系统具有独立属性 |
✓保持各模块之间的函数关系 | ✓可单独设置子系统调度周期 |
✓可设置为条件执行子系统:可设置子系统使能、触发等,使子系统由外部信号控制执行 |
●模型架构和模型库:自定义库封装和管理
自定义库封装可以把虚拟子系统保存到库,实现子系统模型的封装,库里的子系统可被不同的工程复用或被同一个工程共享使用,也可以采用Git对模型库进行版本管理。其功能点如下:
✓支持自定义库的封装和复用 | ✓支持系统及子系统嵌套 |
✓支持子系统全局参数设置和复用 | ✓可用GIT和SVN对模型库进行版本管理 |
●高质量C代码生成,用于嵌入式系统集成
在嵌入式代码开发中,传统的流程是基于需求文件进行手写代码,这个流程迭代慢、开发慢、效率低、缺陷多,验证困难。现代开发流程是基于模型的系统设计,工程师将设计需求分为不同的功能模型,在功能模型的基础上又拆分为多个算法单元模型。基于模型自动生成嵌入式代码,在模型级别进行测试;再把多个模型代码集成、部署成到嵌入式平台,在系统级别进行测试。GCKontrol可完成代码生成、代码集成的功能。其功能如下:
✓生成C代码满足MISRA-C代码规范 |
✓模型和代码的一对一关系,满足可追溯性 |
✓生成的C代码跨平台、跨硬件、全独立,没有依赖代码和库 |
✓支持定点计算,模型自动生成定点计算C代码,满足嵌入式系统 |
✓支持代码集成(SWC):对模型配置,在代码集成时,满足多个工程模型之间的变量传递和参数访问 |
●跨平台FMU导出
基于FMI标准封装的模型文件叫FMU。FMU具有下列应用成效:系统快速集成,不需要大量开发软件定制接口,就可以进行模型的联合仿真;不同学科之间可实现模型重用;为整个系统的设计带来更丰富、更科学的分析手段,为分析跨学科和多系统交联的验证和确认提技术方法。
ModTest作为针对FMU做单元测试的专业工具,能够面向多种软件开发平台运用,测试过程便捷且自动化程度高,CSV测试用例多平台复用,图形化便捷显示测试结果。
GCKontrol与ModTest支持导出FMU,其核心功能如下:
✓导出的FMU包含源代码、输入输出配置、模型参数、内部变量 |
✓支持Co-Simulation 2.0导出FMU |
✓FMU支持跨平台,可在Windows/Linux系统运行 |
●自动化建模仿真测试-Python API
为了提高流程自动化,GCKontrol提供了一套Python API接口函数,用户可编写Python脚本,对这些API进行灵活的组合和运用,以完成多种任务。可使用户摆脱频繁手动点击工程界面进行批量操作的繁重劳动。
第一:调用Python API对工程进行仿真控制,例如打开模型、配置参数、设定步长、运行仿真等;也可以进行建模控制,例如创建模型、创建模块及连线、配置模块参数、获取仿真结果等。
第二:调用Python API实现自动化测试脚本,例如创建工程、配置模型参数、仿真参数,完成模型的大批量自动化测试,从而实现模型优化、性能评估等。
第三:调用Python API实现仿真工程后处理,例如结果分析,数据对比等。
第四:用户可在Matlab编写M脚本来调用GCKontrol API,可完成GCKontrol模型与Matlab工程的交互调用。
第五:调用Python API可实现自动化测试软件的开发,用于对GCKontrol工程进行自动化测试。
✓仿真GCK Python API可实现: | ✓建模GCK Python API可实现: |
◆打开模型,设置参数 |
◆自动化创建模块、连线 |
◆运行仿真,读结果 |
◆自动配置模块参数、数据类型 |
●模型数据调试可视化
为提高开发效率和开发质量,GCKontrol提供丰富的模型调试和分析功能。在模型调试阶段,GCKontrol支持显示信号的数据维度、数据类型、数据值等,在仿真中实时观测数据传递,仿真结束后回看仿真过程每一刻的数据。其核心要点如下:
✓显示信号数据维度、数据类型、数据值 | ✓在仿真中实时观测数据传递 |
✓仿真结束后回看仿真过程每一刻数据 |
●仿真结果可视化
系统仿真的结果需要具备丰富的显示方式,才能使用户理解复杂系统的输出,并做出分析判断和对比评估,包括不同层次的子系统输出,每个层级的各元素、各模块输出等等。GCKontrol提供的2D面板可视化,配置简单高效,功能丰富多样。其主要功能如下:
✓支持在2D面板配置所需显示的模型变量 | ✓支持把曲线导出*.svg矢量图片和*.csv数据 |
✓支持基于y(t)曲线、y(x)曲线使仿真结果可视化 |
GCKontrol产品优势
●学习成本低 |
✓GCKontrol保留Simulink操作习惯,用户可快速搭建模型 |
✓在控制系统设计领域能替代主流MBD(Model Based Design)平台-Simulink |
●自动生成代码可控 |
✓GCKontrol构建的模型能自动生成C代码,可配置为浮点/定点计算,满足实时性,可用于嵌入式系统,且代码生成过程可调可控 |
●仿真速度快 |
✓在纯虚拟仿真时,GCKontrol生成代码的运行机制,相比于Simulink,模型解算速度提高了10到20倍 |
●模型代码开源 |
✓用GCKontrol开发的所有模型,示例工程都是白盒,允许用户自定义修改 |