紧急拜求:matlab中自己设定的时间间隔就是真正的时间么?比如间隔0.001就是1ms

紧急拜求:matlab中自己设定的时间间隔就是真正的时间么?比如间隔0.001就是1ms,第1张

windows不是实时系统,肯定不是准确的1ms
通常有个范围,比如说: 09ms - 11ms
这是我曾经发过的一个帖子(由于是专家身份,不能给出网址,将就看)
===============================================
已经不止一次在论坛里遇到很多帖子,一直在讨论“实时”
比如说:
在GUI上实现实时的显示
在Simulink里实时采集图像
使用DAQ卡实时采集数据
感觉部分会员对“实时”这个概念有误解,误认为实时就是很快,或者说超快之类的。
其实,实时与时间快慢没有必然关系,实时的准确意思是:准时
举个例子,我的摄像头需要每隔10秒钟采集一次图像,时间误差不得超过1ms,假如满足此条件,我就认为是实时的。
这句话什么意思?
答:我的实时系统的采样频率并不高,只需要10秒钟。但是,我对时间的误差要求很高,误差不得超过1ms。
也就是说,我现在在0秒采集一副图像,下一次采集的时间应该位于:9999-10001秒之间。
通过这个例子,大家可以区分出实时系统,不一定是采集频率很快的系统。
紧接着的问题是,Matlab/Simulink下面可以实现实时么?
答:这个跟你的系统有关系,Windows *** 作系统(不是RT windows)本身就不是实时系统,所以在windows上的程序,理论上都不是实时的。
举个例子,你电脑在运行程序,你突然插一个USB硬盘上去,电脑的CPU就会来处理这个硬件事件(默认情况下,windows *** 作系统给硬件的pritority比较高),所以你的程序就不可能实时地跑。
什么样的系统支持Real Time
答:常见的有QNX, Real-Time Linux, Real-time Labview, Real-Time Windows, Ada等
怎样把Matlab/Simulink程序转换成可以Real-Time运行的程序?
答:Matlab专门提供了Real-Time Work shop,可以帮你的程序转换成Real-time程序。
============ 补充 ===========================
你把你电脑不必要的线程都关掉
网线拔掉
然后做一下采集
plot出来,看看时间的范围,以前我都是这样做的,在没有real time系统之前。
现在我有3个实时系统,感觉QNX的范围小于0002ms非常好了。

x=1:50;
y=reshape(x,10,5);
z=y';
n=input('请输入显示次数:');
t=input('请输入间隔时间:');
for i=1:n
disp('x=1-50')
disp(z)
pause(t)
end

spline函数可以实现三次样条插值
x = 0:10;
y = sin(x);
xx = 0:25:10;
yy = spline(x,y,xx);
plot(x,y,'o',xx,yy)
另外fnplt csapi这两个函数也是三次样条插值函数,具体你可以help一下!

clc;
clear;
s=datenum('2017-10-01 0:00:00');
e=datenum('2017-12-01 0:00:00');
d=300/3600/24;
T=datestr((s:d:e)','yyyy-mm-dd HH:MM:SS')
就是这么稳!

x = 0:01:2314;
[~,nx] = size(x);
y = sin(x);
T = zeros(1,N); % N为固定时间间隔
Y = [y T y T y T y T] % 画了四个正弦波
figure(1)
plot( (nx+N)4,Y )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13042006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存