EDN首页   博客首页 用户登陆  |  注册
aaa
发表于 2008/9/10 18:20:32

5

关于投票

labview串口通信

这个是前面的LV文件http://space.ednchina.com/upload/2008/9/10/343deb8c-b19d-4470-bf2f-e9d309ccf2ba.rar

无线龙火灾报警监控软件使用说明
一, 监控软件的安装
以下3种方法任选一种
① (推荐)如果你的机子安装有NI公司的labview软件8.2及以上版本,你可以直接运行报警传感点对点LV文件夹里面的火灾报警传感点对点.vi文件。系统要求参考NI公司labview软件安装要求。
②如果你的机子安装有NI公司的run-time engine8.2和NI-VISA Version 4.1以上的驱动(本光盘有相关文件),可以直接运行可执行文件文件夹里面的火灾传感系统.exe文件。
③直接安装光盘安装文件文件夹里面的setup.exe文件,安装方法与一般安装软件一样。安装完后可以在系统开始-》程序列表里面看到。
点击开大图

点击开大图

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(2412) | 回复(9)

发表于 2008/6/28 15:37:23

5

关于投票

LabVIEW的信号分析和处理常识

LabVIEW的信号分析和处理常识

信号分析和处理(Analyzing and rocessing Signals)

1.如何把峰值对应的时间项找到 

Sine attern.vi与Sine Wave.vi的区别

sine pattern.vi可产生一个正弦波序列。 
sine wave.vi产生一个频率由数字频率设定的正弦波序列。 
用sine wave.vi 可产生连续不断的正弦信号。用一个while循环和寄存器实现,将初始相位连接到寄存器上。 

怎样从功率谱中提取峰值及其频率

于抗混叠滤波器

1、能够正确显示信号而不发生畸变的最大频率叫做Nyquist频率,它是采样频率的一半。 
2、信号中所包含的频率高于Nyquist频率的成分,将在直流和Nyquist频率之间发生畸变,称为混叠(alias) 。 
3、混频偏差(alias frequency) =ABS(采样频率的最近整数倍-输入频率) 
4、解决方案 
在A/D前加入低通滤波器,将信号中高于Nyquist频率的信号成分滤去,称为抗混叠滤波器 
5、好了现在我们知道什么是混叠、什么是抗混叠滤波器了,“如果高于采样频率的频率不被混叠到我所关心的频带附近”是不可能的,所以必须要设置低通滤波,通常NI的SCXI和SCC产品都具有滤波,而且多数的采集卡都具有滤波功能。

什么是时频分析

观察信号的时域波形可以看到信号幅度随时间的变化,但不知道信号的频率。作频域分析可以观察到信号在频域的分布,却不知道每个频率成分出现的时刻。典型的频域分析是fft,它本质上是通过选取正弦余弦函数(实际是复函数)作为基函数,观察信号在各个基上的投影。 

fft的基函数是单频函数,在频域上有限宽,在时域上无限长。时频分析就是要选取一组在时域和频域上都有限的基函数,观察信号在其上的投影。得到信号在时域和频域的联合分布。各种时频分析方法区别在于选取不同的基函数。最简单的时频分析方法就是短时复立叶变换(STFT)。小波变换本质上也属于时频分析。

一个FIR滤波幅频响应的问题

问:
我在LV中调用滤波模块进行FIR滤波处理 
采用低通或则带通滤波 
这样在滤波模块的幅频响应方面就遇到一些问题: 
当通带截止频率高而且通带宽的时候 
幅频响应接近1 
当截止频率低时候幅频响应就很小 
比如我处理这样的信号:谐波信号,峰值2-3,谷值0-1,工频25Hz左右,采样频率10KHz 
通带是21-29,则滤波后的信号峰值变成0.2左右,谷值0.1以下 
而我必须观察峰值的情况, 
所以就感觉麻烦 

答:
从10k采样的信号里,提取21~29Hz范围的信号,并不是件很容易的事情。或者说,是不合理的事情。如果你关心的是这个频率范围的信号,用100Hz采样就足够了。片面的认为采样率越高越好,只会给自己带来麻烦。 

一个能达到你所要求效果的FIR滤波器,至少在4000阶以上。如你只用了101阶,得到这样的结果,也就不足为怪了。 

下图是一个4812阶的FIR滤波器的频响。阻带截止频率为17Hz,33Hz;通带截止频率是22Hz,28Hz。通带和阻带的纹波都是0.01。
如何测量两信号的相位差?

我向你介绍一种相关法,如下: 传统的相位测量方法是利用各种电或机械式仪表,采用矢量法、二极管鉴相法、相乘器等方法,这些方法由硬件电路完成。由于电路的温漂、噪声及干扰信号的影响,使测量结果产生误差。采用虚拟仪器的相位测量,着重点在软件算法,通过软件算法消除温漂、噪声及干扰信号的影响,使测量结果更加精确。 
   测量对象的多路信号通过数据采集卡或者其他数据接口设备数字化,设备驱动程序将数字化的信号送入计算机,在labview平台调用各类信号处理函数,形成具有仪器操作面板的应用程序。 
       
      

    

   在采用虚拟仪器进行测量的时候,一共有两种方法,这里仅介绍相关法测量。 
相关法是利用两同频正弦信号的互相关函数零时刻值与其相位差的余弦值成正比的原理获得相位差。由于噪声信号通常与有效信号的相关性很小,因而该方法有很好的噪声抑制能力。 
   1 相关法分析原理: 
   假如有两个同频信号X(t)、Y,都被噪声污染,其表达式如下: 
         X(t)=Asin(ω0t+Φ0)+Nx 
         Y(t)=Bsin(ω0t+Φ1)+Ny 
式中 A B——分别为X(t) Y(t)的幅值; 
Nx Ny——分别为噪声信号。 
  对X(t)和 Y(t)进行相关运算,有: 
Rxy(τ)=1/T∫TOXy(t+τ) 
=1/T∫TO[Asin(ω0t+Φ0)+Nx]* 
[Bsin(ω0(t+τ)+Φ1)+Ny(t+τ)]dt 
当τ=0时, 
Rxy=1/T∫TO[Asin(ω0t+Φ0)+Nx]*[Bsin(ω0t+Φ1)+Ny]dt 
由于噪声和信号之间几乎不相关,且噪声之间也不相关,积分后得: 
Rxy(0)=AB/2*COS(Φ1-Φ0) 
Φ1-Φ0=arcos[2Rxy(0)/AB] 
其中,A=2Rx(0)1/2, B=2RY(0)1/2 
实际处理的信号为采样后的离散点序列,相应的离散计算公式为 
Rxy(0)=1/K* 
Rx(0)=1/k*  
Rx(0)=1/k*  
式中K为采样点。通过信号x(t)和 y(t)的自相关与互相关函数的计算,可求得它们的相位差。 
2 误差分析: 
相关分析对于采样转换信号中的直流偏移和噪声等干扰具有很强的抑制能力,测量误差来源主要是交流信号的频率不稳定。 
3 设计过程 
(1)  前面板设计: 
其设计过程如下: 
1、  放置一个输出显示型数字控件,用于显示相位差测量结果,单位为度。 
2、  放置一个输出波形显示器,用于观察两个信号X(t)和 Y(t)的波形信号。 
3、  放置一个开关型控件,用于使用者运行或者关闭仪器。 
4、  放置三个数字控件,用于设置采样点、采样频率、信号频率三个参量,为两个正弦波信号发生器所共用。 
5、  放置四个数字控件,用于分别设置两个正弦波的幅值和相位。 
其前面板如下图所示: 

(2)  流程图设计 : 
在流程图设计中用到了Array子模板上的Index Array图标,用来获得τ=0时的互相关函数值,该值是互相关函数第n-1个输出值。互相关函数的所有的2n-1个值都输入到“Index Array”中,当它的输入端输入参数设置为n-1时,其输出即为第n-1个互相关值。

信号调理是什么意思

信号调理指对传感器的输出信号进行相应处理,使其能满足数据采集卡的输入要求,并对数据采集卡实施保护!一般包括:信号放大、限幅,滤波,整形等。严格的说,信号调理应该属于硬件处理的范畴,而加窗、数字滤波等都是由软件来完成的,更应该被称为数据处理!
怎么使用spline Interpolant使曲线平滑

点击看大图
点击看大图

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(1202) | 回复(0)

发表于 2008/6/28 15:35:32

5

关于投票

LABVIEW表格汇总

Table Control可以自定义右键菜单,但是定以后如何使用呢?
利用table的event case, the menu tag. 
GetMenuTag.vi

这个VI我是模拟了采集,当(0,1)和(1,1)这个两个单元格中采集来的数据大于6时,我就要求
这两个单元格变成红色。现在的情况是应该(0,1)变色时却跳到了(1,1),(1,1)变色时跳到了(0,1)。请问怎么解决
在你设置active cell的时候,颜色已经传给当前的active cell,也就是说,顺序反了
应该是这样的,先设置active cell,然后改颜色。

Untitled10.vi

如何在程序运行时修改 Table 的所有单元格中字体的大小?
直接使用table的属性,首先指定Active Cell,然后使用属性设置字体大小。
但是Table的属性中没有可以设置单元格字体大小的属性。
if you use "string Array", it is programable to change the font's style. 

字符型table中插入一行字符型数组 。

insert.vi

LV8Table 用Property node "Edit position"不能显示当前的编辑框

如标题,LV8Table 用Property node "Edit position"不能显示当前的编辑框,而LV7可以,请各位帮忙看看。谢谢

注意:打开文件Table7.1时,一定要用Labview7.1,否则只能看到相同的结果  

table7.1.vitable80.vitable8.0.vitesttable.vi

建立一个界面表格中有checkbox的界面 
因为表格跟checkbox不能绑一起
我要实现的温度变量有40组 想用滑动框来做 checkbox表示变量是否选定 可是checkbox又不能跟着走 怎么办哦?
不会贴图晕 希望能看明白
贴个图片附件好了 图中是20路信号的示意图,我现在要实现40路 用滑动的话checkbox不跟着走哦
scrolling checkbox array.vi

Table Control可以自定义右键菜单,但是定以后如何使用呢?我最初想可能要Creat一个Table Control的Menu Refrence,但我找了半天没有。使用这样的菜单是不是和使用自定义程序菜单用一样的方式呢?如果是的话,Table Control的Menu Refrence就是问题的关键

It is LV8.0's new function, use event case to get the menu tag

I have a new question when I used the new function.Show in the above picture,I want to delete the data that selected 

by the right click,but event case don't return which row selected,and event case don't have "right click" event. How I 

should doto get the right clicked row?

其实我想做的是让程序与一般的windows程序相似,仅以右键就可确定选项并弹出菜单。在使用时如果要先用左键确定,给人很不习惯。如果右键不能确定选项,这样容易产生误删(这是我最担心的)。 
我想了一下,可以通过比较复杂的方法实现,正如Yukee.Yang所说:获取鼠标位置,获取Table Control的位置,再获取行和列的高宽度,通过这样一个公式:     Table Control的位置-鼠标位置)/行或列的高宽度
即可得知鼠标右键点在哪行哪列。但是这牵涉到很多细节问题不说,还有一个bug,如果使用者拉动了滚动条,那么计算出的行或列就变得不准确了。因此这种方法也有缺陷。不知道是否有更好更正确的方法来解决这一问题。  

GetMenuTag.vi

GetMenuTag1.vi

[audio11]

http://www.vihome.com.cn/bbs/viewthread.php?tid=3160&extra=page%3D2

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(1033) | 回复(0)

发表于 2008/6/28 15:33:53

1

关于投票

LabVIEW中设置菜单

LabVIEW设置菜单

一、普通菜单
如果VI的窗口外观设置中选择了“Show menu bar”,VI在运行时会在前面板窗口中显示菜单条,默认的菜单是LabVIEW的标准菜单,为了适应使用的需要,我们可以定制个性化的运行菜单,并在程序中对用户的菜单作出响应。定制菜单可以在编辑程序时通过对话框进行设置,也可以在程序运行过程中通过编程实现。

使用菜单命令“Edit —Run —Time Menu”弹出菜单编辑器如图所示。 


菜单编辑器打开时工具条的Item Type 下拉列表中显示的是Default选项,表示当前菜单是LabVIEW的标准菜单,编辑器中的其它各项功能不可使用。下拉列表中的Minimal选项,表示使用LabVIEW标准菜单中的常用选项。如果需要定制VI运行菜单则要选择Custom选项。 
菜单编辑器工具条的6个按钮用来在菜单项列表中编辑菜单项,它们是 
Insert 在选定的菜单项后插入新的菜单项  
Delete  删除选定的菜单项 
Left 使选定的菜单项成为上一级菜单项  
Right 使选定的菜单项成为上一级菜单项的子菜单 
Up  向上移动选定的菜单项,如果包含子菜单,也一起移动 
Down  向下移动选定的菜单项,如果包含子菜单,也一起移动 

菜单预览区可以看到运行时的菜单条。
菜单项列表显示菜单的层次结构,用来对菜单进行编辑。
菜单项属性编辑区逐个设置菜单项的属性,包括:
Item Type 定义菜单的类型  
     User Item 用户定制菜单项,需要编辑,并需要编程响应 
Seperator 在菜单项中插入分隔符 
Application Item 从LabVIEW标准菜单中选择菜单项加入到运行菜单中 ,无需编辑和编程响应 

Item Name  菜单名,出现在菜单条上的字符串  
Item Tag 菜单标识,程序通过菜单标识引用菜单选项  
Enabled 指定该菜单项是否有效  
Checked 菜单项是否有选中标志  
Shortcut 设置访问菜单项的快捷键  


运行菜单设置完成后要将其保存在与Vi相同的位置(同一个文件路径或同一个LLB),名称后缀为..rtm。

二、右键菜单
在其它开发环境中很容易实现右键菜单功能,在LabVIEW中相对就要复杂一些,只能通过调用DLL来实现! 

点击看大图

怎样修改鼠标菜单? 
An article about "Contextual op-Up Menu rogramming"
http://www.ltrpub.com/LVResource ;... 2/article_v10n2.htm
还是想用在WINDOWS和VC中习惯的用法,
修改和使用在控键上按鼠标右键弹出的菜单?

很全面的程序如下:

8.0以后的版本也可以在LabVIEW中设置各个控件的右键菜单而不用调用DLL了,具体设置可以看下面这个贴子http://www.vihome.com.cn/bbs/viewthread.php?tid=4163&highlight=%B2%CB%B5%A5& S$ \-

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(748) | 回复(0)

发表于 2008/6/28 15:32:18

1

关于投票

属性节点的Value和局部变量区别

There are some subtle differences that are detailed here.

The property node allows the reading and writing of a single control within a cluster whereas a local variable and 

terminal will always refer to the entire cluster.  A property node can update the value from a remote location, not 

on the diagram associated with the panel.  If you are using a non-strict control reference, then the datatype of the value may be a variant rather than the actual datatype of the control.

Due to these differences, there are also some performance differences. If updating something like a graph, you

 would sometimes need to position two cursors, change some colors, and write the data to the graph.  In the past

 this would require two nodes, one for properties and another (terminal or local) for the value.  This resulted in two 

graph redraws.  Adding the value property to the existing node and not using the terminal or local will result in one 

less graph redraw, which may or may not be important for your application.

On the other hand, because they can update a subset of the data, property nodes do not implement the same 

shortcuts that the locals and terminals do.  When updated with the same value over and over, a local and terminal 

will not redraw the control, but the value property will.  Additionally, for controls that are updated very quickly i.e. 

more than 50 times a second, terminals and locals have the option to amortize the redisplays and save CPU cycles

 that would otherwise be spent redrawing things you wouldn't see anyway.  There is the option to synchronize the 

display with the diagram updates, and the value property is basically stuck using this synchronized version each 

time.  This is identical to how controls and indicators updated before LabVIEW 5, and it is still how the displays 

are done on single threaded systems such as any Macintosh with OS 9.x or previous.

To see this, drop a for loop, wire i to an indicator and have the loop execute 1,000,000 times.  Initially, update the 

indicator with the terminal. Run the program and it will take a fraction of a second.  The indicator will display 0, a 

few numbers in between, then 999,999.  Move the terminal out of the loop and update with a local.  You will see 

the same.  Now popup on the indicator and choose synchronous display -- it is in the Advanced option in LabVIEW 6.x and 7.x.  Now you will probably need to abort the VI because it will 

take several minutes to run because it is drawing every single number to the screen making a nice blur of digits for 

you to look at.  Now, delete the local and use a property node instead.  Regardless of the setting of the synchronous

 display, you will see the display is showing each and every one of the updates.

The fact that the value can be set from subVIs is a great feature, but it will make your diagrams more difficult to

 debug if you make a mistake.  When a string or the indicator has the wrong value being displayed, you need to

 find the code that did the update.  If only using the terminal, there is only one place the indicator is updated, and 

you can work backwards from the terminal.  If using locals, then you have a list of places to work backwards from. 

If you are passing the control reference to the indicator to some number of subVIs, then you can have many 

potential "updaters", including dynamic ones.  So, while this is a nice feature for modularizing code and separating

 it from the display, be careful or it will have debugging expenses that you may not want.

The following link details LabVIEW performance and memory management. It includes descriptions of tools for 

profiling your VIs to see changes in memory and running time

程序和相关PPT为

20065283244261.zip

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(539) | 回复(0)

发表于 2008/6/28 15:31:21

1

关于投票

LabView文件目录操作

文件移动,复制:
1,我在用LabView 做一个文件的移动程序,用的是文件操作中的MOVE实现的,由于文件较多,请问如何做一个文件移动进度显示条. 
2,是否可以调用WINDOWS自己的移动命令实现操作,要调用WINDOWS的哪一个操作库.
答案:
1. 用Horizontal Graduated Bar可以实现类似进度条的样子,然后就在程序合适的位置给它赋值就行了。
2. 这个,估计用System Exec.vi就可以吧,然后输入DOS的移动命令就行,试试吧
对于采上来的连续信号将其不断存入一个文件(不管是文本还是二进制都行)并且,可以在另一个选项卡用波形控件回放(replay)之(如果回放到文件当前的末尾就算实时监视),而不使采集和写入文件的操作停止。
总之, 希望读取并不影响写入 
如果用中层vi有些问题,可以这样做嘛?
打开文件--存储数据--关闭文件,打开文件--读取数据--关闭文件
这样一个循环
这对于高速存储是不现实
你的方法能否把数据放在内存中呢,始终保持大小。
点击看大图
Q: 自己做一个东西,需要在程序中播放声音文件,现在通过  wave file path  可以设一个路径让其播放,很自如。问题是,如果把程序和声音文件

A:  拷到别的机子上或者干边盘符,那些路径要全部重设,很不方便,而且有时是不能实现的。所以现在的要求就是,不管那些声音文件放哪儿,程序运行就很自如的播放,或者说把vi文件和声音文件捆绑一起,只能看到vi文件,运行程序一次后,自然把声音文件记录都vi文件中了
首先引用路径通过snd read waveform 把声音文件读出,然后把读出的indicator 改成constant,这个constant就保存了原来的声音文件,如果要播放这个文件就用snd write waveform 写出这个constant。
B:  Firstly, use waveform as a indicator, write your sound data for it. 
secondary, make that waveform as a control,wire it to sound play, and make its value as default.
no matter which C uses your program, the expectation which your needing is matching!

程序如下: 

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(440) | 回复(0)

发表于 2008/6/27 0:01:45

1

关于投票

《LabVIEW 8.20程序设计从入门到精通》基础PPT课件下载(1)

《LabVIEW 8.20程序设计从入门到精通》基础PPT课件下载(1)

http://www.vihome.com.cn/bbs/viewthread.php?tid=4640&extra=page%3D1

文件下载
# S8 G. ]6 L$ p  http://labviewstudy.blog.edu.cn/- K, Z7 Z9 v5 S0 n5 t
课件针对8.2版本,应该对大家很有帮助的!

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(866) | 回复(0)

发表于 2008/6/26 23:58:23

1

关于投票

LabView文件目录操作

http://www.vihome.com.cn/bbs/viewthread.php?tid=3222&extra=page%3D1

LabView文件目录操作

文件移动,复制:
1,我在用LabView 做一个文件的移动程序,用的是文件操作中的MOVE实现的,由于文件较多,请问如何做一个文件移动进度显示条. 
2,是否可以调用WINDOWS自己的移动命令实现操作,要调用WINDOWS的哪一个操作库.
答案:
1. 用Horizontal Graduated Bar可以实现类似进度条的样子,然后就在程序合适的位置给它赋值就行了。
2. 这个,估计用System Exec.vi就可以吧,然后输入DOS的移动命令就行,试试吧
对于采上来的连续信号将其不断存入一个文件(不管是文本还是二进制都行)并且,可以在另一个选项卡用波形控件回放(replay)之(如果回放到文件当前的末尾就算实时监视),而不使采集和写入文件的操作停止。
总之, 希望读取并不影响写入 
如果用中层vi有些问题,可以这样做嘛?
打开文件--存储数据--关闭文件,打开文件--读取数据--关闭文件
这样一个循环
这对于高速存储是不现实
你的方法能否把数据放在内存中呢,始终保持大小。
点击看大图
 
Q: 自己做一个东西,需要在程序中播放声音文件,现在通过  wave file path  可以设一个路径让其播放,很自如。问题是,如果把程序和声音文件

A:  拷到别的机子上或者干边盘符,那些路径要全部重设,很不方便,而且有时是不能实现的。所以现在的要求就是,不管那些声音文件放哪儿,程序运行就很自如的播放,或者说把vi文件和声音文件捆绑一起,只能看到vi文件,运行程序一次后,自然把声音文件记录都vi文件中了
首先引用路径通过snd read waveform 把声音文件读出,然后把读出的indicator 改成constant,这个constant就保存了原来的声音文件,如果要播放这个文件就用snd write waveform 写出这个constant。
B:  Firstly, use waveform as a indicator, write your sound data for it. 
secondary, make that waveform as a control,wire it to sound play, and make its value as default.
no matter which C uses your program, the expectation which your needing is matching!

程序如下: 

Q:
我需要读取多个已经保存的一维数组,然后将他们bulid为一个二维数组.但是数量很大可能会达到上百个,我想如果用openflie一个一个打开的话就太麻烦了.谁知道更好的办法么?比如:能否一次选中多个文件一起打开
A:
if you use labview 7.0 or later+ windows os,i hope the following discussion helps you to solve the problem
http://vi-lib.com/user.lib/OpenFileDialogBox.html ;
判断已经存在的文件?

在程序开始想检查文件是否存在:不存在的话给各个变量赋初值.
存在的话读取该文件,把文件中数据作为初始变量给各个变量赋初值.
这样的话文件是否存在怎么判断?用case吗?


Check the file size, if 0, not exist.
Code Interface Node function has FExist
Window has athFileExist API.


use "list directory.vi"

保存文件时候的提示对话框

怎么样把保存文件时候的提示对话框去掉?
想保存文件,
如果文件存在就open后追加进去
不存在就creat一个
但是总是提示对话框,把advisory dialog?设定成flase还是有对话框提示
怎么搞定呢

As my custom, that I will use 'list directory.vi" to find whether the file exist of not.

if not, I will create a new one, if yes, I will add the data to the existing file.

特定文件格式的问题

想把采集到的数据保存到一个特定的表格中,
1,而这个表格中包含特定的用户信息,数据只能往规定的位置里填写,填好后整张表格是不能改写的
2,可以对以前的数据进行检索

Many handles, example Excel, Database,I suggest you can use Excel, it is simply to control. they can be added

 password and limit to readonly
在excel中,我怎么一改pos offset的值程序就不能运行了呢?而且在labview8中 就没有seek,write等vi是不是在labview8中有其它的代替了?
如果我在一张空白的表格中第三行第三列中写一个数,用excel怎么实现呢

For LV7.1, write data to a solid location, that is easy, you can define cells' column and row or define a cell's name. 

20066119325942.rar

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(838) | 回复(0)

发表于 2008/6/26 23:52:47

1

关于投票

数字示波器使用中常见问题

1、如何测量直流电压?

  答:需要设置耦合方式为直流,根据大概的范围调节垂直档位到一个合适的值,然后比较偏移线跟通道标志的位移。

2、用户反应测量220V市电的时候幅度超出屏幕范围?三相电源的相位差如何测?

  答:DS5000系列最大输入峰峰值电压是400V,根据有效值换算峰峰值公式220V市电超过了400V峰峰值,幅度超出屏幕范围正常现象。用示波器测量三相电源相移的时候,可以设置触发源为市电,并使用一通道先测A-B波形,然后存储为参考波形,再使用探头连接B-C,这时可以测量出相移。

  3、什么是混淆抑制作用?

  答:混淆是指示波器采集的频率低于实际信号最大频率的2倍采集产生的一种状况。混淆抑制是为了防止混淆的产生而专门设计的,混淆抑制可判别信号的最大频率,并以2倍的最大频率采集信号。

  4、如何捕捉非周期性的信号?

  答: ①、设定触发电平至需要的值。 ②、点击主控按钮SINGLE,机器开始等待,如果有某一信号达到设定的触发电平,即采样一次,显示在屏幕上。利用此功能可以轻易捕捉到偶然发生的事件,例如幅度较大的突发性毛刺:将触发电平设置到刚刚高于正常信号电平,点击SINGLE按钮,则当毛刺发生时,机器自动触发并把触发前后一段时间的波形记录下来。拖动触发位置标志线可以得到不同长度的负延迟触发,便于观察毛刺发生之前的波形。

  5、如何观察低压直流电源的噪声?

  答:①、连接示波器探头于通道A1(或A2)与被测点之间。 ②、设定触发源(Trigger Source)为A1或A2(必须与实际被测信号输入的通道一致)。 ③、点击A1或A2按钮,选定耦合方式为AC(交流)耦合。 ④、调节采样速率及垂直灵敏度,直至得到满意的显示。  

  6、DS5000示波器的获取方式可应用在哪些场合?

  答:观察单次信号请选用实时采样方式,观察高频周期性信号可以选用等效采样方式。希望观察信号的包络避免混淆,请选用峰值检测方式。期望减少所显示信号中的随即噪音,请选用平均采样方式,平均值的次数可以选择。观察低频信号,选择滚动模式方式。希望显示波形接近模拟示波器效果,请选用模拟获取方式。

  7、触发和波形采集的关系如何?

  答:针对不同类型的示波器,示波器不同的捕获方式,触发和波形采集的关系不同。如果是采样示波器或实时示波器的等价时间采样模式,一个波形的采集需要多次触发完成的。针对实时示波器的实时采样模式,触发一次,波形肯定会采集一次,不触发,波形也可能采集,这就是触发的AUTO模式。(有三种触发模式,一种是AUTO,不触发,波形也会刷新,但波形在屏幕上会不稳定,另一种是NORMAL,只有触发才刷新,最后一种是SINGLE,第一次触发捕获波形,以后就不在捕获波形了。)。

  8、RIGOL产品保存波形后的数据能自动生成EXCEL表?
  
  答:能。Ultrascope软件能够把下载后波形数据自动保存为Excel表的文件格式。RVO虚拟仪器在软件里没有自动生成Excel表的功能,但是我们提供一个转换工具(在RIGOL的官方主页有免费下载,软件名称:DatKit for RVO3000&4000 Series)。利用这款工具可以把RVO保存为“*.dat”文件格式转换为“*.txt”的文本文件格式,修改txt为xls即可将数据保存在Excel表上。

  9、采集信号后,画面中并未出现信号的波形。怎么处理?

  答:可以按照下面步骤检查处理: 1. 检查探头是否正常接在信号连接线上; 2. 检查信号连接线是否正常接在BNC(即通道连接器)上; 3. 检查探头是否与待测物正常连接; 4. 检查待测物是否有讯号产生(可将有讯号产生的通道与有问题的通道接在一起来确定问题所在)。 5. 再重新采集信号一次。  

  10、毛刺/脉宽触发的应用场合有那些?

  答:毛刺/脉宽触发一般有两种典型应用场合,一是同步电路行为,如利用它来同步串行信号,或对于干扰非常严重的应用,无法用边沿触发正确同步信号,脉宽触发就是一个选择;另一是用来发现信号中的异常现象,如因干扰或竞争引起的窄毛刺,由于该异常是偶发显现,必须用毛刺触发来捕获(另一种方法是峰值检测方式,但峰值检测的方法有可能受其最大采样率的限制,同时,一般是能看,不能测)。若被测对象的脉冲宽度是50ns,而且该信号没有任何问题,也就是说,没有因干扰,竞争等问题引起的信号畸变或更窄的,用边沿触发就可同步该信号,无需使用毛刺触发。

  11、选择示波器时,一般考虑最多的是带宽。在什么情况下要考虑采样速率?

  答:取决于被测对象,在带宽满足的前提下,希望最小采样间隔(采样率的倒数)能够捕捉到您需要的信号细节。业界有些关于采样速率经验公式,但基本上都是针对示波器带宽得出的,实际应用中,最好不用示波器测相同频率的信号。若您在选型,对正弦波,选择示波器带宽是被测正弦信号频率的3倍,以上,采样率是带宽的4到5倍,实际上是信号的12到15倍,若是其它波形,要保证采样率足以捕获信号细节。若您正在使用示波器,可透过以下方法验证采样率是否够用: 将波形停下来,放大波形,若发现波形有变化(如某些幅值),采样率就不够,否则无碍。也可用点显示来分析,采样率是否够用。  

  12、在使用示波器时如何消除毛刺?

  答:如果毛刺是信号本身固有的,而且想用边沿触发同步该信号(如正弦信号),可以用高频抑制触发方式,通常可同步该信号。如果信号本身有毛刺,但想让示波器虑除该毛刺,不显示毛刺,通常很难做到。可以试着使用限制带宽的方法,但不小心可能也会把信号本身虑掉一部分信息。若使用逻辑分析仪器,一般来说,使用状态采集的方法,有些在定时方式下采集到的毛刺,就看不到了。

  13、DS5000示波器的各种触发的应用,比如说边沿触发,脉宽触发和视频触发,它们各适合测那种信号?

  答:边沿触发,可设触发电平,上升沿或下降沿。边沿触发也称为基本触发。 脉宽触发,可根据脉冲宽度来确定触发时刻。可以通过设定脉宽条件捕捉异常脉冲。 视频触发,即可在NTSC,PAL或SECAM标准视频信号的场或行上触发。

  14、使用DS5000系列的示波器,怎样将一次性随机出现的信号完整的捕捉并保存下来,然后重显分析?

  答:如果测的所谓随机信号为一个单次信号,那么只要设置与该信号相匹配的垂直和水平刻度,调整好触发电平,使用单次触发等待信号出现即可,然后利用STORAGE的存储类型的波形保存功能即可将捕获的波形存储,需要重显保存的波形,只需将波形调出就能重显分析了。

  15、为什么波形存储已经存储了设置,还要存储设置有什么用?

  答:首先,两者最主要的区别是波形存储占据的存储空间要比设置存储空间要大的多,因此以存储器的空间和成本考虑,就需将两者分别保存。其次,两者的调出上也存在差别。波形调出示波器处于STOP状态,设置调出时不改变保存的运行状态,可方便直接观测波形。

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(388) | 回复(0)

发表于 2008/6/24 14:00:25

2

关于投票

基于TDS示波器的高压纳秒脉冲信号的测量

点击下载点击开大图

点击开大图

点击开大图

点击开大图

 

点击下载

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(514) | 回复(0)

发表于 2008/6/24 13:49:18

8

关于投票

TDS3000示波器开机

点击开大图

TDS3000 示波器入门

先进行功能检查程序,来验证它是否正确地工作。
1.将示波器接到一个AC 电源上。
2.在示波器前面板的左下角,按ON/STANDBY按钮。等到显示屏表明示波器已经通过所有自检为止。
3.按SAVE/RECALL菜单按钮。
4.选择 (恢复工厂设置)Recall Factory Setup。5.选择OK Confirm Factory Init(确认恢复工厂设置)。
6. 在VERTICAL (垂直) 区域,按MENU按钮激活通道1 的菜单。
7. 将P6139A 无源电压衰减探头接到CH1 输入端子上。
8. 分别将CH1探头触点和地线接到PROBE COMP (探头补偿) 和地
接线柱上。
9. 在ACQUIRE (获取) 区域,按AUTOSET (自动设置) 按钮。

如果观察方波,那么,示波器就已经通过了预先的功能检查。

 

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(524) | 回复(0)

发表于 2008/6/24 0:06:07

8

关于投票

用STM32内置的1MspsADC进行数据采样,并通过ENC28J60以太网接口发送到PC上波形显示

几周来学习STM32的阶段性成果:用STM32内置的1MspsADC进行数据采样,并通过ENC28J60以太网接口发送到PC上波形显示,实现低频示波器功能,在这里特别感谢下GRANT兄:)

--------------------------------------------

    做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路、高速ADC、单片机、CPLD/FPGA、通讯、上位机程序、数据处理等等,不是一下子就能成的,慢慢一步步来呗,呵呵,好歹有个目标,一直在学习各方面的知识,也有动力:)
   由于高速ADC涉及到采样后的数据存储问题,大量的数据涌入使得单片机无法承受,因此通常需要用外部高速RAM加CPLD配合,或者干脆用大容量的FPGA做数据存储处理等,然后通知单片机将数据发送出去。这部分实在是难度比较大,电路非常复杂,自己是有心无力啊,还得慢慢地技术积累。。。
    正好ST新推出市场的以CORTEX-M3为核心的STM32,内部集成了2个1Msps 12bit的独立ADC,并且内部高达72MHZ的主频,高达1.25DMIPS/MHZ的处理速度,高速的DMA传输功能,灵活强大的4个TIMER等等,这些真是非常有吸引力,何不用它来实现一个低频的数字示波器功能呢,我的目标是暂时只要定量定性地分析20KHZ以下的低频信号就行了,目标不高吧,用STM32可以方便地实现,等有了一定经验之后慢慢再用FPGA和高速ADC搞个100Msps采样的示波器!
    说来也真是幸运,得到了GRANT兄相赠的STM32F103VB以及评估版的电路板,这些日子一直在学习STM32,不断地做实验,也算是稍微有点入门了,真是了解越多越喜欢这个芯片,呵呵。

    想来这个论坛上对数据采样以及数字示波器感兴趣的朋友很多,下面我简单描述下实现方式,发帖也跟大家分享下我的喜悦:)
1、ADC转换:STM32增强型芯片内置的2个独立ADC,可以有16个通道,并且2个通道可以并行的同步采样,触发方式很灵活,可以通过TIMER以及外部电平等方式触发,并行方式下ADC2自动同步于ADC1;ADC在最高速采样的时候需要1.5+12.5个ADC周期,在14M的ADC时钟下达到1Msps的速度,因为我主频是72M所以4分频后稍微高了点,18MHZ的ADC时钟,采样速度应该高于1M了。ADC 采样2路同时采样方式,用TIM2 CC2来生成时钟信号触发ADC来实现指定频率的采样。ADC1/ADC2采样的结果是一个word
2、采样频率控制:由于STM32内部的4个TIMER非常强大,每个TIMER又有4个通道,再加上独立的预分配器,实际上可以实现任意分频,因此用TIM2 CC2来产生指定频率的时钟,用来触发ADC1连续采样。
3、采样数据传输及每次采样深度控制:ADC产生的转换数据通过高速DMA 通道1来传输置指定的内部RAM中,并且将DMA通道一设置成最高优先级,以保证数据准确,并且用DMA每次传输的个数来控制采样的深度,例如我要采集100个点那么就设置DMA传输100个次,每次从32位ADC转换寄存器传输一个word到RAM中,等完成了100次传输后,DMA通道自动停止(实际上ADC是一直按照要求的采样频率连续在后台采样,只是我去取数据而已),下次采集的时候我只要再设置下采样的个数使能DMA CHANNEL1就行了。
4、与上位机通讯:通讯也是个难题,要达到快速地将大量数据发给上位机的目的,传输的速率肯定低不了,开始我想先用串口,不过很快就放弃了,一则即使我用外部USB转串口的芯片最高也只能达到1M的速度,并且数据会丢失; 后来还是采用了网络传输的方式,用SPI 接口的ENC28J60芯片,这个芯片我在MEGA32和AT91SAM7S64上都用过,接口简单挺方便的,速度还可以,在SAM7S64上DMA凡是用UDP协议单向发送的速度可以达到400KB/S以上,这次用了STM32发现速度大增,经过我用STM32的DMA传输后,同样UDP协议单向发速度竟然达到了500KB/S以上,甚至最高可以达到600KB/S,这个真是意外的收获。
5、上位机程序:还是用VS2005,我还是喜欢用C#,主要是微软的C#做得是在太舒服了,编辑器智能化程度真高,我只要刚刚输个开头的字母,马上就感知出来一堆让你选择,连挨个敲字符的功夫都省了,还不用担心拼写出错到时候找原因的麻烦,呵呵,缺点就是程序执行时候CPU利用率要高点,什么时候它的C++编辑器也到这个程度我就换回C++,哈哈。波形显示还是用NI的measurementStudio8来实现,一个是漂亮方便,另外最要紧的就是MeasurementStudio8里面有一大堆数据处理的库,从简单的波形有效值计算,频率计算,到各种各样的函数滤波器功能,还有FFT频域分析,时域分析等等,但凡要用到的仪器相关处理里面都有,另外本来我打算要在模拟前端里面加一个相位锁定的电路,以固定显示的波形起点,后来发现MeasurementStudio8里面有个PeakDetector的类,用这个来实现波形的锁定连这个电路都可以省了。用MeasurementStudio8来实现实在是非常方便,并且准确。只是我没啥资料,还在探索当中

显示的界面及部分照片

点击看大图


 

点击看大图


 

点击看大图


 

点击看大图


 

点击看大图


 

点击看大图


    照片上的液晶屏是我的信号发生器的显示,显示信号的真有效值和频率。
    数据采样后输出到PC上显示的图形很精确,包括MAX038产生的正弦波上部的小尖峰也很清楚,STM32的ADC精度很稳定性相当好,对于音频范围的低频信号来说,1Msps的采样也基本够用了。只要采集足够的点送给measurementsudio提供的函数来分析,可以达到非常精确的程度,12BIT的分辨率相当于数字表的3位半的效果,用来测试信号的频率、真有效值、峰值、峰峰值等等非常方便和精确,和我用硬件实现的频率计和真有效值的读数相同(这也说明了我做的信号发生器的硬件是准确的,哈哈,之前跟数字表总对不上,看来是数字表准确度差),实现完全可以当作低频示波器来用,再加上个模拟前端电路,完全可以实用化了

上位机的程序还处在对于measuremenStudio的摸索当中,只是初步了解到了几个函数,用它来实现数据处理实在是方便,look
public void DataReceived_Proc() //UDP数据接收、数据处理、数据显示函数
        {
            
            try
            {
                while (bStates)
                {
                    
                    myudpcomm.Receive(ref CommReceiveBuffer);
                    Received_Command = Bytes2Struct(ref CommReceiveBuffer);
                    //textBox3.Text = Received_Command.SampleRate.ToString() + (acEstimate++).ToString();
                    dADC1_Result = new double[Received_Command.SampleDepth];
                    dADC2_Result = new double[Received_Command.SampleDepth];
                    //数据处理,将通讯接收区中的ADC数据传入绘图用数组中
                    for (int i = 0; i < (int)(Received_Command.SampleDepth); i++)
                    {
                        dADC1_Result[i] = (BitConverter.ToUInt16(CommReceiveBuffer, 40 + 4 * (i + 0))) * (3.3 / 4096.0);
                        dADC2_Result[i] = (BitConverter.ToUInt16(CommReceiveBuffer, 40 + 4 * (i + 0) + 2)) * (3.3 / 4096.0);
                    }

                    str = "通道A(绿色)\r\n";
                    //测试真有效值
                    Measurements.ACDCEstimator(dADC1_Result, out acEstimate, out dcEstimate);//交流(AC方式相当于信号通过一个电容隔直后进行测量)和直流(DC直通方式进行测量)真有效值测量
                    str += "AC方式有效值:" + ((int)(acEstimate * 1000)).ToString() + "mV   " + "DC方式有效值" + ((int)(dcEstimate * 1000)).ToString() + "mV\r\n"; 
                    //测试信号频率、振幅Vp
                    mySingleToneInformationADC1 = new SingleToneInformation(dADC1_Result, Received_Command.SampleRate);
                    str += "频率:" + ((int)(acEstimate * 1000)==0 ? 0:(int )mySingleToneInformationADC1.Frequency).ToString() + "Hz   " + "振幅Vp:" + ((int )mySingleToneInformationADC1.Amplitude*1000).ToString() + "mV\r\n";

                    str += "\r\n通道B(红色)\r\n";
                    //测试真有效值
                    Measurements.ACDCEstimator(dADC2_Result, out acEstimate, out dcEstimate);//交流(AC方式相当于信号通过一个电容隔直后进行测量)和直流(DC直通方式进行测量)真有效值测量
                    str += "AC方式有效值:" + ((int)(acEstimate * 1000)).ToString() + "mV   " + "DC方式有效值" + ((int)(dcEstimate * 1000)).ToString() + "mV\r\n"; 
                    //测试信号频率、振幅Vp
                    mySingleToneInformationADC2 = new SingleToneInformation(dADC2_Result, Received_Command.SampleRate);
                    str += "频率:" + ((int)(acEstimate * 1000) == 0 ? 0 : (int)mySingleToneInformationADC1.Frequency).ToString() + "Hz   " + "振幅Vp:" + ((int)mySingleToneInformationADC1.Amplitude * 1000).ToString() + "mV\r\n";
                    textBox3.Text = str;
                    
                    //ThresholdPeakDetector.Analyze用来找出从波谷到波峰上升沿顶点的数组序号
                    //可以用于固定显示波形从上升沿的某固定点开始,相当与硬件的同步触发电路功能
                    //b = ThresholdPeakDetector.Analyze(dADC2_Result, 2, 10);
                    //foreach (int k in b)
                    //{
                    //    textBox3.Text += k.ToString() + " ";
                    //}
                    //for (int i = 0; i < Received_Command.SampleDepth - b[1]; i++)
                    {
                        //dADC1_Result[i] = dADC2_Result[i + b[1]];
                    }
                    //textBox3.Text += b[b.Length - 1].ToString();
                    //bIsUdpDataReceived = true;  //表示接收到了UDP数据,允许进行再次发送
                    bIsDataReadyForPlot = true;
                    myGraphPlotProc();   //绘图输出*/
                    //myD1 = new myMethodDelegate(h);
                    //myD1(1);
                }
            }
            catch (Exception e1)
            {
                timer1.Enabled = false;
                MessageBox.Show(e1.ToString());
            }
            finally
            {
                timer1.Enabled = false;
            }
        }

        /************************************************************************************
         * 绘图输出过程函数供,mygGraphPlotThread进程调用
         * 始终循环检测bIsDataReadyForPlot,一旦为真则进行绘图,绘图完成后置标志为false
         * **********************************************************************************/
        public void myGraphPlotProc()   //绘图输出函数
        {
            //while (true )
            {
                if(bIsDataReadyForPlot)
                {
                    waveformPlot1.PlotY(dADC1_Result);
                    waveformPlot2.PlotY(dADC2_Result);
                    bIsDataReadyForPlot = false;
                }
            }
        }

 

下位机的程序,也还在完善,现在只做到了基本的功能,还不稳定,主要问题还是在传输上的,这次为了一次传输比较多的数据,要将UDP数据包分解,分成多个小于1518字节的帧发送,因此发现当数据发送快的时候很容易导致数据停止发送,以前用MEGA32和SAM7的时候没注意过,当时的处理速度也慢,没暴露出来,想来想去可能是由于连续发送的时候速度太快导致的冲突,ENC28J60出错挂起了,还是ENC28J60没有吃透,对于里面的流控、以太网冲突检测这些还需要进一步研究。

/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
*STM32F10XXX 双通道ADC数据采集并通过ENC28J60实现UDP通讯传输
*作者:alien2006 
*环境:keil for arm mdk 3.15b 
*版本:V0.2
*时间:20071202
*说明:V0.2
*一、网络通讯部分
*                        1、先采用STM32 SPI轮询方式进行传输试验,ping 192.168.1.100 -l 1400 -n 10
*                                 在轮询方式下未改进SPI1_SendByte()函数(内部直接用ST提供的函数语句)需 avg=9ms时间
*                                 轮询方式下将SPI1_SendByte()函数中的4条语句修改为直接寄存器存取后avg提高到7ms
*                                 轮询方式下取消SPI1_SendByte()直接代之以函数中四语句avg提高到6ms
*                                 经过上述的逐步修改,传输UDP1400个字符时双向传输(接收1400个字节再发送这1400个字节)间隔4MS可达210KB/S
*                        2、enc28j60.c修改增加STM32 SPI传输DMA和非DMA编译选项,DMA方式下网络最大传输速度测试达到350KB/S
*     3、改进了ZYP_UDP.C实现了当要发送的UDP数据长度超过单帧所能容纳时,将UDP数据
*                                 自动进行分组,并可在编译时自定义每个分组长度;
*                                 改进了ENC28J60.C加入了ENC28J60DMA空闲和网络发送完毕的判断,解决了当发送速度过快时导
*                                 致传输出错问题。测试单向发送速度超过500KB/S;
*二、STM32数据采集部分
*                        1、ADC1/ADC2实现并行同时数据采集,12BIT最高可达1MSPS采样速度并通过STM32的DMA传输放入内存中
*                        2、TIM2 CC2实现对ADC采样的触发,ADC_Sample_Frequency_Set函数实现自定义TIM2 OC2频率输出,
*                        3、采样的频率和采样个数通过接收到的UDP控制命令来指定
*                           采样的频率为20HZ~1MHZ; 
*                           采样深度为1~4000个数据(受限于STM32内存20KB容量,一个数据为2个12bitADC通道读数,需一个word)
*                        4、定义了简单的UDP控制命令结构,用于实现与PC通讯和控制采样频率和采样深度
*三、其他
*     1、程序待解决问题:UDP分组发送出错问题未完全解决,有待进一步解决
*                        2、期待增加模拟前端电路,并实现放大倍数程控,通过上位机程序可以设置
*
* V0.1:最初程序,实现简单固定频率和深度的并行ADC采样和UDP通讯,并编制了简单的上位机程序,
*                                可以进行采样波形的显示 

 

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=862510&bbs_page_no=1&search_mode=1&search_text=示波器&bbs_id=9999

系统分类: 测试测量  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(1466) | 回复(0)

发表于 2008/6/23 23:20:01

5

关于投票

基于labview的汽车防抱死(abs)测试平台

点击下载点击下载相信这篇文章会给即将毕业的学子带来帮助

摘要首先对ABS 的作用做了较详细的介绍, 然后重点对
ABS 试验方法和评价方法做了较详细的论述。本文对ABS
的性能评价是以装车后进行实车道路试验的方式进行的, 在
评价方法方面, 文章提出了利用多个参数来对ABS 系统进
行综合评价, 该理论不仅适用于ABS 产品的认证, 更适用于
ABS 产品的研究及开发。
关键词ABS ABS 实现试验研究评价方法
Test Study on Vehicle Anti- lock Br ake System
Abstr act: Firstly, the ABS theory is introduced in detail in the
paper, the performance of ABS is evaluated in the mode of road
testing, and then the test method and evaluation method of ABS
are described respectively. The comprehensive evaluation of ABS
system engaged with multi - parameteris is offered in the paper,
this suggestion not only applies to ABS product but the research
and development of ABS as well.
Keywords: ABS ABS oper ation Test study Evaluation
method
引言
防抱死制动系统(Anti- lock Brake System) 简称
ABS, 是基于汽车轮胎与路面之间的附着性能随滑
移率改变的基本原理而开发的高技术系统, 它从防
止制动过程中车轮“抱死”的机理出发, 避免汽车后
轮侧滑和前轮丧失转向能力, 以达到提高汽车行驶
稳定性、操纵性和制动安全性的目的。具体来讲,
ABS 有以下作用:
1) 确保车辆制动时的方向稳定。通过防止汽车
后轮抱死而避免出现甩尾, 汽车在制动过程中以稳
定的状态行驶直至停车, 在较大程度上甚至在应急
制动过程中允许绕过障碍物转向;
2) 保持车辆制动时的转向操纵性。通过防止汽
车前轮抱死而维持对转向的有效操纵控制, 汽车在
制动过程中能够回避障碍物转弯行驶直至停车;
3) 取得最佳制动力。通过把轮胎与路面的摩擦
纵向附着系数经常性地保持在最大值附近而得到
最佳地面制动力, 使制动距离缩短;
4) 防止轮胎局部不均磨损。通过防止由于制动
滑磨而带来的不均磨损, 延长轮胎的寿命, 同时还
可避免或减轻制动噪声。
所以ABS 是目前世界上普遍公认的提高汽车
主动安全性的有效措施之一, 在乘用车和商用车市
场都得到了广泛的应用。下面将从试验的角度对

ABS 作进一步的阐述。
设计开发一套ABS 装置要考虑多种因素, 而且
不同车型其控制参数值不同, 即使同一种车型也存在
ABS 匹配的问题, 而ABS 的性能好坏主要是以装车
后的实车道路试验的方式来评价的, 因此道路试验就
显得非常重要。以下介绍比较典型的ABS 试验过程。
1 ABS 测试传感器
传感器主要包括车速传感器、轮速传感器、管
路压力传感器、前后制动器温度传感器、加速度传
感器及制动踏板力传感器等。
2 ABS 试验方法
GB/T 13594- 2003“机动车和挂车防抱制动性
能和试验方法”从产品认证的角度对装有ABS 的车
辆提出了试验项目及要求。但从产品开发及研究的
角度来讲, 这些项目及所测参数是远远不够的, 因
此, 我们现在既考虑了产品认证的要求, 又兼顾着
开发和研究的目标, 对ABS 的试验及评价作了进一
步的探讨。
2.1 试验路面
试验路面要求见表1。
2.2 试验项目
试验项目要求见表2。
3 ABS 的试验和评价
ABS 的性能主要是以装车后进行实车道路试

点击开大图

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(524) | 回复(0)

发表于 2008/6/23 23:19:12

1

关于投票

基于LabVIEW 的数据采集与处理软件编程技巧

(石家庄铁道学院)燕延 马增强 杨明

摘要: 针对基于LabVIEW 平台的数据采集和数据处理程序设计中.常遇到的典型应用中的问题如:基于TCP的网络传输、软件滤波、数组组合、波形振幅统计、超限报警等问题,本文给出了较详细的解决方案和实用程序设计技巧。

关键字:LabVIEW ;数据采集;数据处理

中图分类号:1M 93 文献标识码:A

文章编号:1008-0570(2O05)O5—0153—02


Abstract:The typical problems,such as networking transmissionbased on TCP protocols、filtering by software array combination、 amplitude Statistic、alarming for overtake and etc, are often met in the software programming based on LabVIEW for data acquisition and processing and the paper ves a detailed introduction
to the resolving schemes and progr amming skills for these ques—
tions、

Keywords: LabVIEW ;data acquisition;data processing



描述:基于LabVIEW 的数据采集与处理软件编程技巧
附件: 基于LabVIEW的数据采集与处理软件编程技巧.pdf (155 K)

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(605) | 回复(1)

发表于 2008/6/20 22:08:58

12

关于投票

无线温湿度传感系统

点击下载

点击看大图

上面的图片是数据转换说明的截图

 

数据和数据格式

 

数据格式

终端发送至网关数据格式如表1

1

数据长度

地址(终端ID

温度数据

湿度

数据

工作

电压

模拟数据通道

数字数据通道

校验

XX0C

XX

XX

XX

XX

7个字节

XX

XX

校验:除“数据长度”外的所有字节的异或。

模拟数据通道:

字节1

字节2

字节3

字节4

字节5

字节6

字节7

模拟数据口1数据

模拟数据口2数据

模拟数据口3数据

模拟数据口4数据

模拟数据口5数据

模拟数据口6数据

模拟数据口7数据

模拟数据口0的数据默认为终端电池电压。

电池电压计算:1)读取终端上报电池电压数据,此时数据为16进制。

2)将读取的16进制数据转换为10进制数据,设此时的10进制数据为N

3)电池电压的计算公式为:VCC= N×14.85Mv。当上报的16进制电压数据为FF时,VCC的电压达到最大3.787V

数字数据通道:数字通道由低到高依次为

数字通道

0数据

数字通道

1数据

数字通道

2数据

数字通道

3数据

数字通道

4数据

数字通道

5数据

数字通道

6数据

数字通道

7数据

例:如果数字数据通道上报数据为0F,则表示

数字通道

0数据

数字通道

1数据

数字通道

2数据

数字通道

3数据

数字通道

4数据

数字通道

5数据

数字通道

6数据

数字通道

7数据

1

1

1

1

0

0

0

0

其中通道数据“1”表示相应的端口为高电平,通道数据“0”表示相应的端口为低电平。

 

 温湿度传感器数值的计算

终端采集的温湿度传感器数据为两个字节,其中一个字节为温度,一个字节为湿度。温度和湿度都是十六进制的数,需要进行计算才能得到实际的数值。

1温度值的计算

1)读取出终端温度传感器上报的温度数据,此时的数据为16进制(设此时的数据为W1)。

2)将W1转换为2进制(设此时的数据为W2),并在W2后面补“011111 (设此时的数据为W3

3)将W3再次转换为10进制数据。设此时的10进制数据为SO

4)根据传感器温度计算公式:Temperature= -39.60+0.01×SO  ,计算得到实际温度。

例:设读取出的温度传感器上报的16进制温度数据为55

W1=55 

W2=1010101

W3=1010101011111

SO =5471

Temperature= -39.60+0.01×SO =-39.60+54.71=15. 11

2相对湿度值计算

1)读取出终端温度传感器上报的湿度数据,此时的数据为16进制(设此时的数据为S1)。

2)将S1换为2进制(设此时的数据为S2),并在转换后的2进制数据后面补“0111 (设此时的数据为S3

3)将S3再次转换为10进制数据。设此时的10进制数据为SO

4)根据传感器湿度计算公式:RH =-4+0.0405×SO -2.8×10 ×SO  ,计算得到相对湿度。

例:设读取出的温度传感器上报的16进制温度数据为55

S1=55 

S2=1010101

S3=10101010111

SO =1367

RH =-4+0.0405×SO -2.8×10 ×SO =-4+55.36-5.23=46.13

5)如果需要根据测得的温度数值对湿度进行修正。那么根据公式:RH =T-25)×(0.01+0.00008×SO + RH  可以得到湿度修正后的值。

例:如果需要通过以上的温湿度值来计算修正后的值,则

RH =T-25)×(0.01+0.00008×SO + RH  

      =-9.89×0.11936+46.13

    =44.95

 

系统分类: 虚拟仪器  |  用户分类: 虚拟仪器  |  标签: 无标签  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(712) | 回复(2)

2Next >Total , Page /