微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > Re: 请问waveform chart可以显示一个一维数组吗?

Re: 请问waveform chart可以显示一个一维数组吗?

时间:12-13 整理:3721RD 点击:

eaglebear没说他是用什么方法来求温度.考虑普通平均.用VB试验一千次1000点平均的时间
:
Dim x(1000) As Double
Dim sum As Double
For i = 1 To 1000
x(i) = Rnd
Next
a = Timer
For i = 1 To 1000
    sum = 0
    For n = 1 To 1000
    sum = sum + x(n)
    Next
    sum = sum / 1000
    Debug.Print sum
Next
Debug.Print Timer - a
时间是0.72S,机器是Piii800,192M内存.VB6 SP5.这还是VB.改成VC可以成十倍的提高速度
.
所以除非他的算法是非线性优化之类的大计算量程序, 数据处理速度不应该是瓶颈.
问题关键还是在于并行处理.找那种支持double buffer的卡.设为比如2000的缓冲区,检测
到halffull后处理.建议eaglebear测测你的数据处理消耗的时间.
.70

首先,ai-config是放在循环外面得,不需要每次都调用,否则太浪费资源了
只有ai-read是放在循环内部,但是其实与循环周期没有关系,循环周期是控制前面板
显示得,数据采集是由硬件定时产生得
另外,实时显示这个概念很模糊,这样说吧
假设你采样1000个点,那么显示总是在采样点数到达你得buffer设置得点数后向你的
waveform chart or graph批量发送。也就是说,如果你将buffer的值设成100的化,没
采集100次就会向ai-read发送一次,然后当你的while循环论寻到时,便显示一批数据。
因此,提高显示实时性就必须同时降低buffer和论寻间隔时间。
或则,你采用软件采样,(如果你的采样间隔不必严格限定,或则说不需要频域分析),这样
采集和显示的周期都是由你的while循环间隔限定。当然,由于win系统的非实时性限制,
你的采样和显示间隔不太准的(<100hz一般可以保证)
最后,显示的实时性对你这个系统我还是无法理解其重要性。控制与处理都可以在后台进行。
为何要求显示实时性高呢?
如果是我,可能会这样做:
1。设定采样频率,如果你的信号10hz,那么我可以定100hz足以
2。定好采样时间间隔,例如每10次我进行一次处理+反馈控制,可以将buffer设置为10
其时间为0.1s,接下去你就可以根据采到的10个点的数据进行你的控制算法
3。当然在进行运算的同时,速据继续在采集,如果你需要对每一个采集点都分析处理(
个人认为没有必要),那么你可以将所有的速据存放在array中,加上硬件时戳,这样就可以
数据处理时比较方便。否则,即使在这个周期里你不对采集到的数据处理,只要能够满足
系统控制的要求,完全可以在下一次采集数据周期再处理。(关键还是控制算法)
4。如果你希望在概念上简单些,那么就用论寻方式采样,这样你的逻辑会简单些,而且
对于你这套系统,其实关心的幅值,到也不必时间间隔恒定。
5。多线程的并行处理应该是合理的模式,采集与控制分开,这个也是labview的强项。
6。如果认为c+api调用效率高,那你就低估了现在计算机的能力了,这个有限的提高
并不是系统的关键,相反,大大加剧了工作量。而且在算法确定前,labview是提供了极大的
调试方便的。
7。仅仅个人意见,欢迎讨论!
.67

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top