首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码详解——S-Function模块(一)

本系列中较早的代码均为直接在MATLAB中运行的仿真代码。

如: 白国星,公众号:Path Tracking Letters代码详解——采用控制增量作为控制输入的NMPC路径跟踪

然而当希望实现更加复杂的仿真时,则需要使用Simulink。前文中提到了Simulink中的运动学模型,该模型可以作为Simulink仿真中的被控对象。

详见 白国星,公众号:Path Tracking Letters代码详解——Simulink中的运动学模型

Simulink中,常用于编写程序的模块主要有两种,一种是MATLAB Function,另一种是S-Function。MATLAB Function结构简单,但是当代码中存在需要初始化的变量时,采用MATLAB Function较难处理,因此笔者通常采用MATLAB Function编写顺序执行的代码,如运动学模型、动力学模型等。S-Function能够很方便的对一些变量进行初始化,因此笔者认为适合用于编写MPC控制器。

在Simulink中,S-Function一般如下图所示:

双击该模块,即可打开S-Function的设置窗口:

然后点击Edit,如果仿真路径下存在与S-Function name名称相同的*.m文件,即可打开并编辑该文件(当S-Function name为如图所示的默认值system时,对应的文件为system.m)。如果仿真路径下不存在该文件,就会弹出如下对话框:

点击Open Editor,即可打开一个默认命名为untitled.m的文件,可以在该文件中编辑程序,并通过另存为或重命名对该文件命名,如命名为system.m或mpc001.m等。应该注意的是,S-Function设置窗口中的S-Function name与命名后的文件名必须完全一致,即如果函数文件命名为mpc001.m,则必须在S-Function name中也填入mpc001。

未完待续。

举报
领券