CAN:CANape使用Function处理数据 |
您所在的位置:网站首页 › else函数功能 › CAN:CANape使用Function处理数据 |
目录
1 功能介绍2 初版程序3 更新程序4 软件下载
1 功能介绍
CANape与INCA类似,可用于车辆VCU的标定和数据采集。这里介绍辅助功能function and script,习惯称之为脚本(实际为函数和脚本)。先介绍function,可以实现简单信号a和信号b乘法,例如做能量流分析时计算功率(转速与扭矩乘)。该功能前期有专业人员做支援,当时问其编制方法,其回答看帮助文件,现在没有支援则自己动手。 功能描述:电压信号阶梯增加,每次保持1.5s,测量后0.5s位移平均值(假设信号步长10ms,需要取样50个点,但该脚本中点的数目为10个)。图示如下: 2 初版程序刚开始看CANape中Function definition→Library function,自带function MovingAverage,没理解其思路,遂自编一个,能正常编译和运行(未用Canape实测,其语法结构类似C语言): //名称: Signal_Average.cne //作者: Morven_Xie //版本: 1.0 //时间: 2020/8/19 23:11 //功能: 求取MDF文件中信号平均值 //简介: 对信号的10个点求取平均值 //Email: [email protected] function Signal_Average_Last100ms(var signal) { unsigned int data=1; double sum=0; float average; if (data) { data=0; long i; Print("Take action,Script starts/n"); for (i=sizeof(signal)-1;i>sizeof(signal)-11;i--) sum=sum+signal[i]; Write("i= %d ,signal[i]= %f ,sum= %0.2f ",i,signal[i],sum); } average=sum/10; Write("Average = %f ",average); return average; }数据使用CANape帮助文件中的MDF,运行Function后write窗口内容如下: 运行结果: 8-19-2020 23:29:29.661766 File ‘CANape.MDF’: Data for display of envelope curve in temporary file created, original file has not been replaced according to global option. 8-19-2020 23:29:34.922925 Due to the version of the currently installed Windows 64 bit operating system there can be problems when creating error report files (dump files *.dmp) in case of an application crash (-> dump file probably not created). To fix this problem, please install the Microsoft hotfix KB976038 (web link: http://support.microsoft.com/kb/976038/en-us) or install a current Windows service pack. 8-19-2020 23:30:36.757768 Take action,Script starts/n 8-19-2020 23:30:36.757999 i= 3586 ,signal[i]= -9.984415 ,sum= -99.20 8-19-2020 23:30:36.758034 Average = -9.919868 8-19-2020 23:30:36.758097 Average = -9.919868 8-19-2020 23:30:36.758129 Average = -9.919868 8-19-2020 23:30:36.758157 Average = -9.919868 8-19-2020 23:30:36.758185 Average = -9.919868 8-19-2020 23:30:36.758211 Average = -9.919868 8-19-2020 23:30:36.75824 Average = -9.919868 8-19-2020 23:30:36.758269 Average = -9.919868 8-19-2020 23:30:36.758314 Average = -9.919868 8-19-2020 23:30:36.758347 Average = -9.919868 8-19-2020 23:30:36.758376 Average = -9.919868 8-19-2020 23:30:36.758408 Average = -9.919868 8-19-2020 23:30:36.758441 Average = -9.919868 8-19-2020 23:30:36.758474 Average = -9.919868 8-19-2020 23:30:36.758507 Average = -9.919868 8-19-2020 23:30:36.75854 Average = -9.919868 8-19-2020 23:30:36.758573 Average = -9.919868 …… 3 更新程序后对CANape自带脚本梳理,其方法更好,为方便理解,增加打印按钮。其优势是可以计算线段上所有的点。原理是每次计算10个数值,计算第11个时,加上第11个,减去第一个。 function FunctAverage_System(var signal) { //! number of last measure values to be used for the calculation int smoothFactor = 10; // local variables unsigned int first = 1; double lastValues[100]; double sum; unsigned int i; unsigned int index; // initialize array with last values on start if (first) { first = 0; if (smoothFactor > 100) { write("Error: Maximum avarage window size is 100!\n"); smoothFactor = 100; } sum = smoothFactor * signal; for (i = 0; i index = 0; } return sum / smoothFactor; }运行结果: 8-19-2020 23:36:10.579441 i= 0,data= -4.811083 8-19-2020 23:36:10.579481 i= 1,data= -4.811083 8-19-2020 23:36:10.579497 i= 2,data= -4.811083 8-19-2020 23:36:10.579508 i= 3,data= -4.811083 8-19-2020 23:36:10.57952 i= 4,data= -4.811083 8-19-2020 23:36:10.579531 i= 5,data= -4.811083 8-19-2020 23:36:10.579543 i= 6,data= -4.811083 8-19-2020 23:36:10.579554 i= 7,data= -4.811083 8-19-2020 23:36:10.579565 i= 8,data= -4.811083 8-19-2020 23:36:10.579576 i= 9,data= -4.811083 8-19-2020 23:36:10.579604 Signal= -4.920971,lasrValue[index]= -4.811083 8-19-2020 23:36:10.57963 Signal= -4.920971,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579654 Signal= -5.138395,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579677 Signal= -5.138395,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579699 Signal= -5.352568,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579722 Signal= -5.458392,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579745 Signal= -5.563353,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579767 Signal= -5.563353,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579789 Signal= -5.770617,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579818 Signal= -5.872887,lasrValue[index]= -4.811083 8-19-2020 23:36:10.579852 Signal= -5.974228,lasrValue[index]= -4.920971 8-19-2020 23:36:10.579886 Signal= -6.074625,lasrValue[index]= -4.920971 8-19-2020 23:36:10.579918 Signal= -6.174060,lasrValue[index]= -5.138395 8-19-2020 23:36:10.579943 Signal= -6.174060,lasrValue[index]= -5.138395 8-19-2020 23:36:10.579973 Signal= -6.369984,lasrValue[index]= -5.352568 8-19-2020 23:36:10.579998 Signal= -6.466442,lasrValue[index]= -5.458392 8-19-2020 23:36:10.580021 Signal= -6.561876,lasrValue[index]= -5.563353 8-19-2020 23:36:10.580045 Signal= -6.561876,lasrValue[index]= -5.563353 8-19-2020 23:36:10.580069 Signal= -6.749616,lasrValue[index]= -5.770617 8-19-2020 23:36:10.580093 Signal= -6.749616,lasrValue[index]= -5.872887 8-19-2020 23:36:10.580116 Signal= -6.933084,lasrValue[index]= -5.974228 8-19-2020 23:36:10.58014 Signal= -7.023180,lasrValue[index]= -6.074625 …… 两种方法都能实现目标(average= -9.919868),运行结果示意图: 4 软件下载附:官网最新版本17附加诸多限制条件。习惯使用12版本,Vector官网历史版本下载网址: https://www.vector.com/int/en/products/products-a-z/software/canape/canape-history/?tx_vectorproducts_productdownload%5B%40widget_0%5D%5BcurrentPage%5D=6&cHash=d2639bf3a0011afdd64126b483913b27#c9976 >> 更多相关内容,点击Morven_Xie博客概览 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |