目录

  • 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:  morven_xie@163.comfunction 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 calculationint smoothFactor = 10;  // local variablesunsigned int first = 1;double lastValues[100];double sum;unsigned int i;unsigned int index;// initialize array with last values on startif (first) {first = 0;if (smoothFactor > 100) {write("Error: Maximum avarage window size is 100!\n");smoothFactor = 100;}sum = smoothFactor * signal;for (i = 0; i < smoothFactor; i++) {lastValues[i] = signal;Write("i= %d,data= %f",i,lastValues[i]);} index = 0;return signal;}sum -= lastValues[index];Write("Signal= %f,lasrValue[index]= %f",signal,lastValues[index]);sum += signal;lastValues[index] = signal;if (++index >= smoothFactor) {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博客概览

CAN:CANape使用Function处理数据相关推荐

  1. simulink中MATLAB function模块数据维度不正确问题

    1.首先打开MATLAB function模块 2.函数->Edit Data 3.选中数据维度不正确的变量->大小(size)进行更改(默认-1)->结束

  2. JS实现-页面数据无限加载

    在手机端浏览网页时,经常使用一个功能,当我们浏览京东或者淘宝时,页面滑动到底部,我们看到数据自动加载到列表.之前并不知道这些功能是怎么实现的,于是自己在PC浏览器上模拟实现这样的功能.先看看浏览效果: ...

  3. 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)

    这里列出 页面代码 和 Action类相关代码 供参考: 页面代码(jQuery ajax异步请求获取数据): //保存决策信息 function saveDecision() { var rowid ...

  4. layui table 分页 记住之前勾选的数据

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  5. SpringBoot处理JSON数据

    SpringBoot内置了JSON解析功能,默认使用Jackson来自动完成 当Controller返回的是一个Java对象或者是List集合时,SpringBoot自动将其转换成JSON数据 一.新 ...

  6. Spring MVC--自定义HttpMessageConverter接收JSON格式的数据

    替换默认的Jackson,使用fastjson来处理json格式的数据. index.jsp <%@ page language="java" contentType=&qu ...

  7. Spring MVC--接收JSON格式的数据

    Spring mvc使用开源的Jackson包来处理JSON格式的请求或相应消息. index.jsp <%@ page language="java" contentTyp ...

  8. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  9. data中的数据如何在innerhtml中调用_Vuex中调用state数据

    /src/store/index.js文件的所需内容state:{ //state中存在的数据 num:0, age:19, msg:"jiajia", },mutations:{ ...

  10. excel数据命令导入mysql_如何将EXCEL数据导入MYSQL

    VBA对MySql数据库进行读取和写入操作时间:2009-10-06 09:18:47来源:网络 作者:未知 点击:178次 '以下代码用于32位系统,Office 2003,环境,MySql版本5. ...

最新文章

  1. pip freeze requirements.txt 分隔 sudo pip install -r requirements.txt
  2. 数据回归分析和拟合的Matlab实现
  3. matlab 系统辨识工具箱,MATLAB系统辨识工具箱的应用.ppt
  4. android p正式版,国内首家!一加正式推送Android P正式版
  5. 找到符合条件的索引_高频面试题:MySQL联合索引的最左前缀匹配原则
  6. linux adc是什么设备,Linux 驱动--ADC驱动
  7. 【MTSP】基于matlab蚁群和粒子群算法求解多旅行商问题【含Matlab code 1156期】
  8. Python 实用技巧
  9. linux 锐捷客户端 脚本,常熟理工学院锐捷客户端 for Linux
  10. macOS下R语言入门操作教程
  11. Web Polygraph 安装
  12. 网页配色方案及方法[网上配色文章集合
  13. 缓慢变化维解决方案——拉链表实现详解
  14. Spring系列学习之Spring Data Elasticsearch数据访问
  15. excel怎么筛选?教你一个简单粗暴的筛选技巧
  16. 如何批量提取过期域名,如何批量查询权重域名、收录域名
  17. wps里为什么没有华文楷体_如何用WPS演示做电影滚动字幕
  18. 教你怎么用c++基本语法实现一个简单的五子棋小游戏
  19. c++,输入一个整数,判断它是奇数还是偶数
  20. dumpsys meminfo分析

热门文章

  1. GBaseDataStudio管理工具
  2. window包管理器
  3. AD18安装教程 附软件安装包和汉化包
  4. 第五章 PCB 设计规则设置及 PCB 绘制
  5. Funcode学习笔记:写一个维护性高、扩展性强的框架【By Myself】【C++】
  6. 如何使用IBM SPSS Statistics进行描述性分析
  7. 工具 | Virtual GPS使用实践说明
  8. RTSP视频流直播实现(海康)
  9. 关于CSDN登录没有微信二维码的问题
  10. Laravel 教程 - 实战 果酱社区 开源电商 API 系统