在进行simulink仿真时,有时候函数关系比较复杂,或者懒得用单个的元件组合。比如 u = a + b ( 1 − s e c h ( c ∗ e r r o r ( t ) ) ) u=a+b(1-sech(c*error(t))) u=a+b(1−sech(c∗error(t)))之类的,用matlab function写个代码,分分钟就解决了,不需要再用基础的模块搭建。
第一步
搜索matlab function,选择红框中的这个模块
双击打开
第二步
先定义输入变量。有几个外部输入,就在fcn的括号里面写几个变量,中间用逗号隔开,比如这样。
这样写了以后,模块上就会出现两个输入接口了
第三步
写具体的公式。比如我写这个,
u
=
a
+
b
(
1
−
s
e
c
h
(
c
∗
e
r
r
o
r
(
t
)
)
)
u=a+b(1-sech(c*error(t)))
u=a+b(1−sech(c∗error(t))),a b c都是我自己定义的数,而error(t)是外部输入。记得在末尾加分号,否则会不停输出
变量名我按照自己的习惯小改了一下,实际上没啥区别。
第四步
如果想要改输出的变量名,记得第一行和最后一行的两个y都要改。
第五步
运行,发现报错
原因是,代码的运行环境有问题。
解决方法:
-
找到现在这个仿真文件的路径,复制
-
在matlab写代码的这个地方,粘贴地址
-
再次运行。成功