0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Saber与Matlab联合仿真的操作过程介绍

冬至子 来源:Saber仿真 作者:Greatalent 2023-12-05 09:43 次阅读

一、 概述

我们知道,Saber软件在一开始就提供了与Matlab/Simulink的联合仿真功能,工程师们可以在Simulink中验证设计中的软件部分,同时在Saber中验证设计的硬件部分,从而实现软硬件设计验证的完美统一。

联合仿真是通过SaberHDL仿真器和Simulink之间的接口实现的,它允许用户进行交互式设计仿真。Saber协同仿真接口提供以下功能:

1、SaberRD和Simulink仿真算法耦合

2、提供用户界面,支持从Saber模型自动生成MAST模板和SaberRD符号。

Saber联合仿真接口是通过仿真引擎之间的同步通信方法启用的。在同步协同仿真方法中,每个仿真引擎在时间上独立进行,并在预定的周期内交换数据,称为协同仿真步长(dt)。

Saber与Simulink协同仿真的采用的同步方法具有以下优点:Simulink用户接口在仿真期间是活动的和可访问的,当Simulink端需要时能够有效采样。

本文通过随附的示例介绍Saber与Matlab联合仿真的操作过程。我们使用的SaberRD版本为2019.06,Matlab版本为2018b。

二、 示例简介

示例文件为throttle_controller.rar压缩包。解压后内容如下:

图片

其中:

1、Matlab_ini文件是该工程对应的Saber算法工程文件

2、Only_Saber是使用Saber算法实现的仿真工程,用于比对。

3、Saber_Matlab_ini是Saber和Saber联合仿真初始工程,需要将Saber算法导入Saber仿真工程。

4、Saber_Matlab_ini_final是Saber和Saber联合仿真最终工程,可以实现Saber和Matlab的联合仿真。

5、Saber_use_model_form_Matlab_export是将Simulink模型转换成Saber模型后的Saber工程,该工程仿真时不依赖于Simulink,独立调用Saber仿真器。

三、 Only_Saber工程演示

在Only_Saber工程中,controller_Saber算法由Saber实现,工程文件如下:

图片

打开throttle_control_system_saber.ai_dsn工程如下:

图片

controller_Saber 模型如下:

图片

对throttle_control_system_Saber.ai_dsn电路进行0s~20s瞬态仿真,打开Contrl_out(即controller_Saber模型输出)输出结果如下:

图片

四、 Saber和Simulink联合演示

第一步:设置Matlab工作路径

打开Matlab2018b,点击“设置路径”,在弹窗中点击“添加文件夹”,输入“Saber_Matlab_ini”工程所在目录,点击“选择文件夹”如下:

图片

下图中框起来的路径即为工作路径,点击“保存”,如下图所示:

图片

第二步:在Saber中配置Matlab接口

打开SaberRD2018.09软件,在model菜单中,打开Matlab配置对话框,如下图:

图片

在“Simulink Cosimulation Tool”对话框中选择 “edit-Matlab-Setup”,如下图所示:

图片

如下图,选择Simulink 9.5版本,Matlab install Root选择所在电脑安装的安装路径,Matlab Work Directory选择Matlab工作路径。设置完成后点击“OK”。

图片

选择Edit-Matlab-Start

图片

此时在Matlab work路径下会生成如下文件:

图片

设置好后,关闭对话框。

第三步:打开Saber算法文件

打开“C:UsersGT_yqDesktopthrottle_controllerSaber_Matlab_ini”路径下的“THROTTLE_CONTROLLER.mdl”文件,如下图:

图片

打开后如下图所示:

图片

第四步:添加Sabercosim模块

打开“C:Program FilesMATLABR2018bwork(Matlab2018b软件安装路径)”路径下的SaberCosim模块,并拖放到“C:UsersGT_yqDesktop throttle_controller Saber_Matlab_ini(工程所在目录)”下。在仿真工程左侧对话框中找到SaberCosim模块,双击打开,并拖放到“throttle_controller”内,如下图所示:

图片

图片

双击Sabercosim,设置“Number of input signals”为1、“Number of output signals”为3,点击“OK”,如下图所示:

图片

第五步:添加scop

在“throttle_controller”内点击“Library Browser(即图标)”打开“Saber Library Browser”对话框,在搜索框搜索“scop”,并将其拖放到“throttle_controller”内,如下图所示:

图片

第六步:添加demux

在“throttle_controller”内点击“Library Browser(即图片图标)”打开“Saber Library Browser”对话框,找到“demux”,并将其拖放到“throttle_controller”内,如下图所示:

图片

双击demux,设置“Number of outputs”为3,点击“OK”,如下图所示:

图片

第七步:保存

按照下图所示电路连接,连接完成后保存。

图片

如果算法工程不在Saber仿真工程路径下,将如下四个文件拷贝到响应仿真工程路径下。

Demo中可以解压Saber_Matlab_ini压缩包,将文件拷贝进去。

图片

第八步:打开Saber_Matlab_ini下的工程

在Saber中打开“Saber_Matlab_ini”文件夹中的电路,如下图所示:

图片

此时工程中没有算法,需要操作关联Simulink算法。

图片

在“Model”选项卡中点击图片图标,在弹出的对话框中点击新建,再点击图标,选择“THROTTLE_CONTROLLER.mdl”文件,点击打开,如下图所示:

图片

可以看到如下界面,已经打开了“THROTTLE_CONTROLLER.mdl”文件,保存后点击图标图片放置器件,如下图所示:

图片

绘制最终电路如下,保存并进行仿真。

图片

第九步:运行仿真

在Simulate选项卡中设置0s~2s瞬态仿真,仿真步长1us,如下图所示:

图片

运行仿真,仿真结果如下所示:

图片

图片

五、 其它说明

Saber与Simulink协同仿真也有一定的不足:

1、仿真器之间没有错误控制。

2、对于连续或非周期的系统,仿真中需要在Saber与Simulink中设定足够小的相同仿真步长,以实现仿真的数据交互。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82997
  • MATLAB仿真
    +关注

    关注

    4

    文章

    174

    浏览量

    19640
  • 数据交互
    +关注

    关注

    0

    文章

    28

    浏览量

    10424
  • simulink仿真
    +关注

    关注

    0

    文章

    75

    浏览量

    8457
收藏 人收藏

    评论

    相关推荐

    手动移液器的使用操作过程

    手动移液器的使用操作过程  手动移液器常见于临床试验和实验室试验中,不同类型的移液器操作过程也有所不同,下面具体的解析一下。  一、使用方法:  1.根据所需取液量选择相应移液器及吸液嘴。  2.
    发表于 11-20 11:51

    【PDF】LabVIEW与Matlab联合仿真过程详解

    【PDF】LabVIEW与Matlab联合仿真过程详解
    发表于 12-04 19:50

    《LabVIEW与Matlab联合仿真过程详解.pdf》

    《LabVIEW与Matlab联合仿真过程详解.pdf》有需要的xdjm就拿去吧。
    发表于 12-23 22:59

    LabVIEW与Matlab联合仿真过程详解

    本帖最后由 vktina1 于 2016-4-4 23:14 编辑 电子书:LabVIEW与Matlab联合仿真过程详解
    发表于 04-03 01:24

    电路板手工焊接操作过程

    `哪位大神可以分享电路板手工焊接的操作过程吗?`
    发表于 02-29 15:14

    求ATmega168看门狗复位的具体操作过程

    ATmega168看门狗复位的具体操作过程
    发表于 11-18 07:17

    千万注意!纤薄器件在操作过程中损坏不得

    千万注意!纤薄器件在操作过程中损坏不得
    发表于 04-29 06:29

    C语言的平台操作过程

    两种学习C语言的平台操作过程,在后续内容学习中需要熟练应用。这两种方式分别为:keil c51编程软件+硬件调试平台台,,keilkeil c51c51编程软件编程软件+ proteusproteus软件...
    发表于 07-20 06:19

    STM32内部FLASH操作过程

    一般说STM32内部FLASH就是指主存储器区域写内部FLASH操作过程解锁在对FLASH写数据之前,需要先给解锁,因为芯片为了防止误操作修改应用程序,复位之后会给控制寄存器FLASH_CR上锁(1
    发表于 12-09 06:37

    GPIO输入完成按键扫描的操作过程是怎样的

    GPIO输入完成按键扫描的操作过程是怎样的
    发表于 02-08 07:29

    RT-Thread操作系统从开机到关机的操作过程是怎样的?

    RT-Thread操作系统从开机到关机的操作过程是怎样的?
    发表于 02-15 07:43

    遥控器集成检测系统检测CAN总线遥控器操作过程简介

    本文主要介绍的是遥控器集成检测系统检测CAN总线遥控器操作过程,具体的步骤跟随小编一起来了解一下。
    的头像 发表于 05-07 17:46 6612次阅读

    FPGA应用中部分重配置的操作过程

    Partial Reconfiguration(部分重配置)在现在的FPGA应用中越来越常见,我们这次的教程以Project模式为例来说明部分重配置的操作过程
    的头像 发表于 07-05 15:28 3211次阅读
    FPGA应用中部分重配置的<b class='flag-5'>操作过程</b>

    在线快速修复终聚釜搅拌器轴磨损的现场操作过程

    在线快速修复终聚釜搅拌器轴磨损的现场操作过程
    发表于 12-06 15:17 5次下载

    磐石测控:深圳扭转试验机操作过程是什么样的?

    磐石测控:深圳扭转试验机操作过程是什么样的?
    的头像 发表于 10-20 11:17 450次阅读
    磐石测控:深圳扭转试验机<b class='flag-5'>操作过程</b>是什么样的?