Simulink里怎莫编写程序的循环结构(for,while,case)?
Simulink里怎莫编写程序的for,while,case循环结构?其他程序写这个很简单,Simulink里怎莫建立这样的结构呢? 用M文件吧
在那里用循环很容易 按照楼主的提议试着做了一下,感觉挺麻烦的,效率不高
下面是个做简单加法的例子
for I=1:10
a=a+2;
end
这样做效率低,而且容易出错,还是用M文件来得简单明了
回复 #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=;
谢谢!
回复 #4 vib 的帖子
(1)因为是每次加1,所以前一时刻的值可以那样用。自己照模型仿真一下试试看(2)你的第二个问题就是其实就是s函数的使用了,看些资料吧
(3)switch模块可以完成你要的逻辑控制
不过这样的循环还是用s函数吧,用模块效率很低,本来模块库里的模型都是用m语言写的function。
[ 本帖最后由 花如月 于 2007-9-8 17:25 编辑 ]
回复 #4 vib 的帖子
你所说的问题,花兄已经给出了答案。我补充一点,m文件与simulink结合使用会提高工作效率,simulink与m文件结合有好几种方式,不光s函数一种,在有中间状态时用s函数比较方便,没有中间状态时,还是用matlab function或embedded matlab function,其模块在user-defined function中,建议你还是看看simulink仿真的书吧。仿真很灵活,每个人的方法都不一样回复 6楼 jack_boy 的帖子
请问m文件如何与simulink结合?做仿真分析时,一个是simulink建立好的模块,一个是M文件编好的程序,其中模块的输入时m文件程序的输出,而m文件的输入又是模块的输出,如此循环要200步,i=1:200,请教我怎么结合起来两部分呢? 学习学习 ,感谢楼主
页:
[1]