尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

新功能发布—TSMaster的MATLAB自动化控制模块

发布时间:2026/9/29 2:11:03

资讯中心
01
ARTICLE

新功能发布—TSMaster的MATLAB自动化控制模块

新功能发布—TSMaster的MATLAB自动化控制模块
前言今天我们继续来介绍TSMaster新功能—MATLAB自动化控制模块。该模块提供了大量用于MBD开发的小工具。还包含了这个可以将c代码自动转化为stateflow代码的程序。一、MATLAB的自动化对象 首先点击连接连接到matlab的自动化对象需要启动matlab的主程序一旦连上之后matlab程序就可以实时被TSMaster软件来控制。那么我们点击之后可以看到连接按钮变灰然后断开连接按钮变成高亮那么这个时候就可以通过我们的软件来控制matlab程序了。 然后我们可以点击这个c代码转stateflow点击解析会实现一个逻辑树然后再点击生成代码。这个时候我们就可以看到我们的示例代码就可以自动转换成stateflow代码该功能可以迅速的将已有的C代码的逻辑一键转换成完全等价的stateflow的逻辑从而提高MBD的开发效率。那么转化完成的效果就是这样双击chart1展开之后就可以看到跟刚才的c脚本完全对应的stateflow的逻辑。二、SIL和HIL环境的自动构建只要我们拥有可以生成代码的Simulink的仿真模型就可以通过此模块来实现该模型在TSMaster环境中的实时运行。从而让我们的算法可以在软件设计的前期就可以参与到HIL和SIL的实时仿真中来同时有了小程序的加持我们还可以对算法进行细致入微的调试、监控甚至将二进制文件发布给其他的用户进行联合仿真那么具体如何实现呢 我们还是从0开始举一个例子来说明首先我们切换到第一个页面SIL and HIL页面可以看到这个页面有4个步骤按照这4个步骤顺序执行就可以迅速搭建一个HIL环境。那么第一步是算法模型的配置他给了两个输入一个是我们的小程序的名称第二个是Simulink模型文件。对于第一个输入只要给我们的新构建的小程序起个名字就可以了比如说这个默认的Model1我们输入之后点击最右边的绿色的勾它的作用就是判断Model1是否存在。如果不存在就创建一个如果存在就使用这个Model1。 这样可以将我们新的算法集成到我们现有的小程序中在这里就需要填入现有的小程序的模型名称也就是从中可以选择我们的小程序名称。那么这一步成功之后就来到了Simulink模型文件的设置过程。在此我们需要找一个Simulink的实例程序进行讲解我们首先打开Simulink在Simulink的启动页会有很多的实例。我们找一个比如展开这个stateflow里面有空白图、简单图分层图等等。我们选择这个分层图就打开了一个名为untitled的模型我们看到这个模型包含了一个run和一个cooldown。这两个大的状态run了30秒之后会冷却 5秒然后5秒之后继续run从此循环往复而在这个run的过程中是每隔1秒就让输出在10和1之间切换这就是当前stateflow的简单逻辑。 我们按esc返回到顶层可以看到这个模型只有一个输出我们加一个示波器来看看波形。按F5运行当然这个运行需要将当前的工作目录切换掉我们可以选择随便一个目录比如说新建个文件夹然后我们回到刚才的模型按F5运行成功那么打开示波器我们可以看到输出和我们之前的推断是完全吻合的。也就是运行了30秒之后休息5秒然后继续运行。我们将这个模型另存为simple接下来将这个示波器删除并且添加一个out接口将这个模型配置成可以代码生成的模型随后我们就要配置一下代码生成的细节。 我们进入模型的设置点击代码生成首先要将这个grt改为ert.tlc。因为目标的环境是嵌入式环境同时勾选仅生成代码然后展开代码生成进入到模板中将“生成示例主程序”的勾去掉这样就不会自动生成main函数。因为这个main函数的文件往往是不会用的。至此配置完成。我们点击保存并且关闭这个模型。三、MATLAB控制模块 接下来就回到matlab控制模块中选择Simulink模型文件点击绿色的箭头按钮选中我们刚才的simple.slx那么可以看到前两步过了之后步骤1就算执行完成。接下来就到了cache文件夹和codegen文件夹的设定那么留空就表示生成到默认的位置。我们可以将这两个位置改掉还是点击绿色的按钮然后可以选择我们的cache文件夹我们可以新建一个cache并且选择这个文件夹那么cache文件夹就已经设置成功。接下来就是codegen还是一样我们可以在cache旁边建一个codegen点击选择那么这两个文件夹也就设置完毕。 然后就到了代码生成的环节。我们只要点击启动Simulink代码生成等待代码生成完毕就可以了。那么生成的代码就会存放到刚才设定的codegen这个文件夹中。第一次生成会耗费一点时间我们需要耐心的等待。那么Simulink的执行过程是同步的而且比较慢所以TSMaster可能会报警。现在我们可以看到代码生成已经完成。 那么接下去就是自动复制已生成的代码到我们的小程序的代码库里面点击之后可以显示已copy6个文件那么接下去第二步就已经完成。也就是代码生成的过程已经成功实现再往下就是代码集成。代码集成目的就是将算法给调用起来我们点击编辑小程序的源码按钮打开Model1这个小程序我们首先看一下属性然后点击代码库的路径可以看到simple.c和.h文件以及其他的一些用到的头文件。打开这两个文件首先我们看一下simple.h文件那么这个文件是一个接口文件可以看到这里面有三个函数初始化step和terminate函数我们需要分别将这三个函数的调用拷贝到Model1小程序里面。首先就是要用这个simple.h头文件。 我们回到小程序点击全局定义#includesimple.h。那么接下来就是COPY。我们双击这个simple初始化然后到小程序的初始化事件中粘贴然后再copy step到我们的小程序的step函数中粘贴然后就是terminate回到我们小程序的停止事件同样粘贴这样就实现了函数调用。那么需要注意的就是step函数的周期了默认周期是5毫秒但模型中肯定不是。我们首先还是打开这个simple.slx然后我们到模型的属性看一下这个模型的相关的求解器的属性。它是定步长并且步长是0.1秒那么0.1秒在TSMaster里面就是100毫秒双击step函数将周期改为100那么接下来我们需要观测一下out1这个信号。 我们可以直接在变量点右键添加变量输入我们这个out1那么就新建了一个out1的变量然后我们就需要在代码里找到这个变量那么可以看到这个extern这里写的是outports那就是simple y这个变量它有一个成员叫out1就是我们需要用到的变量我们可以在这里写下out1.set把刚才这个out1拷贝过来这样就实现了变量的赋值。那么小程序就算编写完毕。四、执行HIL和SIL的仿真 在此我们可以直接点击运行仿真那么我们的算法模型其实就已经实时的在运行这个时候如果需要观测信号首先要启动我们的TSMaster的仿真然后我们可以打开一个观测窗口比如说图形打开之后我们可以点右键添加系统变量通过内部变量找到model 1的out 1这个变量然后我们可以修改他的范围比如说改成1—15 -1—15那么就可以看到这个图形的显示跟我们刚才看到的Simulink示波器画面是完全一样的。 这个信号是可以设成竖线显示这样就更符合这个信号代表的逻辑含义那么这个out1的信号是实时刷新的这就意味着我们可以通过总线接口将此算法模型接入到整车网络可以与实际的控制器进行互动那么以上就是matlab控制模块进行HIL的简单的方法。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。