S-Function 和 M-Function
作为一个学控制(越来越偏离轨道)的学生,使用simulink的小部分功能是在频繁不过的了,但是我本科到硕士一年级,用simulink调用自建函数,不是简单S函数就是复杂m-function,基本都会避开S-Function(一开始感觉贼麻烦)。其实,M-Function和S-Function同时用到复杂的地方,M-Function更麻烦…
用S-Function是在一个小型机械臂仿真的demo需求上完成,由于需要完成正逆向运动学建模以及simulink调用,所以自己写函数嵌入simulink。
这里面主要设计了一个问题:循环迭代以及判断,这是M-Function很难完成的一个任务,不是不能完成,以前试过用M-Function循环迭代求解,但是要设置许多的全局变量值,类似以前写的一个保存变量值的方法,不过要用global代替persistant以及在菜单栏上面编辑变量,这样非常麻烦,而且simulink对M-Function语法的结构非常严格,频繁报错。
S-Function实在是不得不接触才用上的(其实早该用这个了,这才是正道)
S-Function主要特点是符合simulink逻辑,分为初始化阶段和执行输出阶段(细节在介绍部分),这样的好处是可以设置和simulink契合的步