matlab是一种用于数值计算、可视化及编程的高级语言和交互式环境,其应用范围涵盖信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域。在各行业和学术机构中,matlab都存在大量使用的。
美中不足的是,matlab自带的图形界面开发模块功能有限,如不提供布局管理、控件种类很少、窗口不能缩放、版本兼容性差等,在开发复杂界面程序时很难满足要求。这样使得开发人员只能利用第三方语言,如java、mfc来开发软件界面,再用第三方语言调用matlab来实现计算功能,软件设计及开发难度大大增加。
matlab二次开发平台(mgdk,matlab gui development kit)无matlab版本限制、符合matlab语法的扩展库,不仅提供了图形界面开发所需的常用控件、窗口容器、布局管理、曲线显示等功能库,还提供了一套利用xml配置的开发框架,可以轻松开发与管理基于matlab的应用程序,解决了matlab在图形界面开发方面的诸多问题,如数据处理软件、制导控制设计软件的平台化与可视化工作。
产品功能
matlab二次开发平台包括开发框架和控件库,其组成如下所示。
开发框架提供了基于matlab的软件通用架构,可大大缩短此类软件的开发周期,提高软件可靠性与可扩展性,其具备以下功能:
• 工程管理,可以创建、保存、打开不同的工程文件,便于设计结果的管理
• 工作空间管理,管理基工作空间及其他模块工作空间变量,便于数据管理
• 流程配置,通过xml文件配置软件模块,便于软件工作流程管理
• 工具配置,通过配置xml文件,增加软件工作过程中独立于模块的小工具集
• 控件变量管理,自动校验界面中各控件输入量的合法性
控件库提供了种类众多的功能包,包括:
• 控件包,包括按钮、标签、表格、单选、多选、编辑框、微调框、列表等等
• 容器包,包括面板、滚动窗口、标签页、伸缩面板等等
• 布局包,包括flow、card、grid等等
• 曲线显示包,包括二维曲线、三维曲线、对数曲线、饼状图、柱状图、奈奎斯特图、根轨迹曲线等等
• 中间件包,包括文件浏览、路径浏览、按钮组、选择框等等
优势
matlab二次开发平台相比于matlab自带的图形开发库,以及常用的java/c/c++与matlab的混编软件,具备以下优势:
• 提供开发框架,迅速配置软件流程及模块
• 提供完整的布局管理功能,自动对控件进行布局,使界面更加美观
• 提供种类众多、功能齐全的控件集,可完成各类界面开发
• 提供控件输入值自动检验功能,免去程序内部对输入有效性的检验
• 提供强大的曲线显示功能,包括饼状图、柱状图、奈奎斯特图、根轨迹曲线等
• 使用语法与m语言一致,控件消息设置简单,容易学习与掌握
• 无缝集成matlab下各类处理函数
• 支持matlab2006以上各版本
客户收益
国内多家科研单位采用了北京经纬恒润科技有限公司提供的matlab二次开发平台,并根据客户自身需求,开发了具有不同专业背景的设计分析软件,如船舶重工某所采用此平台,定制开发了高级信号处理平台,可以对各类试验数据进行导入、查看,并集成了多种分析方法,如傅里叶变换、小波分析等;航天某院采用此平台,定制开发了制导控制系统设计与验证平台,对导弹的设计、仿真、验证功能进行了流程化、规范化和集成。
综上所述,本平台对客户的主要贡献如下:
• 辅助客户对现有工作进行流程化、规范化,如根据某院所客户的导弹设计流程,将其规范化为建模与验模、弹道设计、动态特性分析、控制器设计、导引律设计、滤波器设计、全弹道仿真等
• 为各类数据处理工作提供数据分类管理、算法设计与集成,利用丰富的控件库,可开发出各类可视化参数设置界面,提高工作效率,如下图中的试验数据处理软件,可以对数据进行分类,并提供多种处理分析工具
• 通过可视化界面辅助客户自动生成、修改后台simulink模型结构与参数,提高建模与仿真效率,如下图中制导控制设计与验证平台中的simulink模型自动生成工具,可自动生成导弹动力学、控制器、导引律等模型,并根据不同设计工况,对子模块实现一键替换,大大提高了设计效率