vib 发表于 2007-9-6 17:11

Simulink里怎莫编写程序的循环结构(for,while,case)?

Simulink里怎莫编写程序的for,while,case循环结构?
其他程序写这个很简单,Simulink里怎莫建立这样的结构呢?

lirui0662 发表于 2007-9-6 20:29

用M文件吧
在那里用循环很容易

jack_boy 发表于 2007-9-6 22:25

按照楼主的提议试着做了一下,感觉挺麻烦的,效率不高
下面是个做简单加法的例子
for I=1:10
a=a+2;
end
这样做效率低,而且容易出错,还是用M文件来得简单明了

vib 发表于 2007-9-8 13:51

回复 #3 jack_boy 的帖子

1。你的模型中1/z不是单位延时吗?你怎莫用它来表示i=i-1?能解释一下吗?谢谢
2。你们说的M文件是指在simulink之外用m文件编写,还是说simulink里的m文件模块,我是想在simulink中实现。
3。再问一个,if。。。else在simulink里怎莫构建?如:
if(a>b)
beta=;
else if(c>d)
beta=;
else
beta=;

谢谢!

花如月 发表于 2007-9-8 17:23

回复 #4 vib 的帖子

(1)因为是每次加1,所以前一时刻的值可以那样用。自己照模型仿真一下试试看
(2)你的第二个问题就是其实就是s函数的使用了,看些资料吧
(3)switch模块可以完成你要的逻辑控制

不过这样的循环还是用s函数吧,用模块效率很低,本来模块库里的模型都是用m语言写的function。

[ 本帖最后由 花如月 于 2007-9-8 17:25 编辑 ]

jack_boy 发表于 2007-9-9 16:06

回复 #4 vib 的帖子

你所说的问题,花兄已经给出了答案。我补充一点,m文件与simulink结合使用会提高工作效率,simulink与m文件结合有好几种方式,不光s函数一种,在有中间状态时用s函数比较方便,没有中间状态时,还是用matlab function或embedded matlab function,其模块在user-defined function中,建议你还是看看simulink仿真的书吧。仿真很灵活,每个人的方法都不一样

chrisphone 发表于 2010-4-15 11:05

回复 6楼 jack_boy 的帖子

请问m文件如何与simulink结合?做仿真分析时,一个是simulink建立好的模块,一个是M文件编好的程序,其中模块的输入时m文件程序的输出,而m文件的输入又是模块的输出,如此循环要200步,i=1:200,请教我怎么结合起来两部分呢?

huangyong 发表于 2010-5-17 17:36

学习学习 ,感谢楼主
页: [1]
查看完整版本: Simulink里怎莫编写程序的循环结构(for,while,case)?