声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5069|回复: 7

[基本模块类] Simulink里怎莫编写程序的循环结构(for,while,case)?

[复制链接]
发表于 2007-9-6 17:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2007-9-6 20:29 | 显示全部楼层
用M文件吧
在那里用循环很容易
发表于 2007-9-6 22:25 | 显示全部楼层
按照楼主的提议试着做了一下,感觉挺麻烦的,效率不高
下面是个做简单加法的例子
for I=1:10
a=a+2;
end
这样做效率低,而且容易出错,还是用M文件来得简单明了 11.GIF

评分

1

查看全部评分

 楼主| 发表于 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 编辑 ]

评分

1

查看全部评分

发表于 2007-9-9 16:06 | 显示全部楼层

回复 #4 vib 的帖子

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

评分

1

查看全部评分

发表于 2010-4-15 11:05 | 显示全部楼层

回复 6楼 jack_boy 的帖子

请问m文件如何与simulink结合?做仿真分析时,一个是simulink建立好的模块,一个是M文件编好的程序,其中模块的输入时m文件程序的输出,而m文件的输入又是模块的输出,如此循环要200步,i=1:200,请教我怎么结合起来两部分呢?
发表于 2010-5-17 17:36 | 显示全部楼层
学习学习 ,感谢楼主
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-21 21:18 , Processed in 0.055649 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表