定时取值的问题
在mdl中,我的步长是10ms,我需要对得到的数据每一秒(也就是每100个数据作为一组)计算一次,这应该通过什么实现啊?是if的那个模块吗,还是有什么更好的方法,望赐教 zero-order
完整的记不住了,大概就是这个模块,你是想要采样的时间设置的吧? 那个采样的模块确实是zero-order,改一下参数就可以实现10ms采样,这个我已经做好了
我的问题是:我设定的仿真时间是10s,10ms采样也就是1000个数据,我要对每100个进行计算,还要保证实时性这个怎么做,是不是要用到if那些东西啊,我还没看过呢:@L 这个计算我知道的有个FFT分析,但不知道是否用在这里
那么一般的对数据的处理方法都是先把数据导出,然后再用指令在MATLAB里面进行分析. 感谢cdwxg的热情回复
实在没有办法就只能倒到matlab里进行分析了
不过问题就出来了,我仿真时间是10s,但是我要对100个数据也就是1s内的数据分析,我取出这一秒内的数据分析时,剩下的数据怎么办?这个实时性该如何保证啊,期待cdwxg和各位热心高手的回答啊 你只取就可以了,你的数据是在数据文件里面,包括所有时刻的。
你取值是取到了workspace而不影响数据文件。
这个数据你可以取前100个后100个,中间100个等等都是可以的
不过具体的命令我是忘记了:@L 这个东西是好早以前接触过的。
至于你的实时性指的什么?
是说你这100个处理完接着自动处理下100个?
我觉得这样做可能麻烦了点,所以我估计有别的方法可以做,看看大家吧。 Rate Transition模块将输出设定为1S The Zero-Order Hold and Unit Delay blocks also enable transfer of data between blocks operating at different rates. However, you should use the Rate Transition block for this purpose because it offers a wider range of options and is easier to use!
但问下YZ350你的这个模块实现了"我需要对得到的数据每一秒(也就是每100个数据作为一组)计算一次"功能么?只能是后来采样时间是一秒,但是这个100个数据怎么办? 回cdwxg大大的话:我说的意思是我的整个仿真时间是10s,但是我得到100个数据后要进行计算来改变一下simulink中的一个参数,在这个参数(已经被改变)的影响下得到又100个数据(也就是第二秒的数据),然后对这100个数据再分析再次改变那个参数......
我对simulink还不大熟悉,敢问cdwxg,simulink中有没有实现计数的模块,就像c语言中的if count=100
then....这样功能的模块,再次感谢:handshake 原帖由 mengyu55 于 2007-5-15 09:45 发表 http://www.chinavib.com/forum/images/common/back.gif
回cdwxg大大的话:我说的意思是我的整个仿真时间是10s,但是我得到100个数据后要进行计算来改变一下simulink中的一个参数,在这个参数(已经被改变)的影响下得到又100个数据(也就是第二秒的数据),然后对这100个数据 ...
如果要编程来实现的话当然有,S函数,关于S函数的帖子很多,你可以搜索下哈。可以用m文件来写,也可以用c来写,但c写要变成mex文件等等,相关的你可以查阅一下,希望你能搞定:) 明白,谢谢cdwxg,我已经在看s函数的资料了,有问题有成果都会随时汇报哈:lol 原帖由 mengyu55 于 2007-5-16 08:49 发表 http://www.chinavib.com/forum/images/common/back.gif
明白,谢谢cdwxg,我已经在看s函数的资料了,有问题有成果都会随时汇报哈:lol
:handshake 希望能解决,希望分享,无论结果如何:)大家共同学习共同讨论。
页:
[1]