首页/文章/ 详情

【技术干货】GCKontrol生成S-function函数

1年前浏览2090
01    

摘要


     


S-function是系统函数(System Function)的简称,可以十分方便地用来描述各种动态系统,尤其是复杂的动态系统,属于Simulink动态系统的核心。

它的一项关键功能是可以集成自定义模型,通过将自己编写的模型封装为 S-function,可以将其集成到Simulink中进行仿真,这意味着我们可以将GCKontrol建立的模型通过生成S-function函数功能移植到Simulink平台中,这样一来,我们能够充分利用GCKontrol和Simulink的优势,使得GCKontrol可以更灵活地在更多样化的环境中进行系统仿真,可以在Simulink中使用其强大的仿真和分析工具,与其他Simulink模块如控制器、传感器、执行器等相互配合,实现对复杂系统的全局仿真分析,适应不同的应用场景和需求。


     

     

     


图1 GCKontrol与Simulink


02    

案例介绍


     



     
GCKontrol生成S-function函数导入Simulink    

 

GCKontrol通过生成S函数功能,将建立的模型生成S-function的c文件,可以在 Matlab/Simulink中的S-Function模块中进行调用,实现与其他 Simulink 模块进行集成,比如控制器、传感器、执行器等,实现复杂系统的全局仿真分析。


 



     
GCKontrol中建立仿真模型    

在GCKontrol建立舵机模型,以及设定输入输出接口,输入为期望舵角,输出为实际舵角,然后在上方菜单栏选择生成S函数。


图2  GCKontrol舵机仿真模型


图3  S函数生成页面


生成S函数配置时选择导出路径,生成出sfcn_+模型名称的文件夹,文件夹中包含S函数的C文件。


图4  生成S函数文件夹



     
导入到Simulink中建立测试模型    

将Matlab路径切换到导出的S-function文件夹下。


图5  切换到生成的S函数文件夹



   

   

打开Simulink,在Simulink中添加S-function模块,双击导入文件,选择生成的S函数名.c文件,导入成功后将S-function名称改为与文件名一致,并搭建测试所需的模型,如下图所示。


   

   


图6  S-function导入文件


图7  选择文件夹


在Matlab中编译已经生成的脚本。在导出S-function路径下有compile.m,将该脚本拖拽到Matlab命令行执行即可。


图8  Compile文件


图9  编译完成


设置仿真步长,改为定步长。


图10  设置步长


图11  设置Simulink求解器步长


连接输入,在Simulink进行仿真。


     
仿真测试及结果    

在Simulink求解器中,选择定步长求解0.01s,仿真结果如下图所示。


图12  Simulink仿真结果


与GCKontrol仿真结果对比如下图所示:


图13  联合仿真结果


将舵机、潜艇模型、控制器三个子系统分别生成S-function函数导入到Simulink中建立潜艇自动控制模型,运行仿真对比结果。


图14  GCK仿真模型

图15  生成S函数导入到Simulink


下面是执行器舵角和潜艇实际航向角的结果在GCKontrol和Simulink中的对比,可以看出结果一致。


图16  仿真结果对比


03    

总结


     


从上述案例可以看出,通过GCKontrol可以很方便快捷地将在GCK中搭建的模型转换成S-function导入到Simulink中进行仿真,从而更好地实现对大型复杂系统进行模型集成,以及可以直接使用MATLAB的分析和优化工具,便于优化模型的性能,提高仿真效率。同时S-function是一种通用的模型表示形式,可以在多种不同的应用中使用,从而实现更广泛的应用。


   


来源:世冠科技
System系统仿真通用MATLABSimulink数字孪生控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-12-02
最近编辑:1年前
世冠科技
国内领先的系统仿真工业软件和数...
获赞 28粉丝 17文章 147课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈