机床加工过程中,因热变形产生的热误差占机床加工总误差的40%-70%。热误差值补偿是解决热误差的主流技术,如何将神经网络建模与热误差值预测结合起来,是今天介绍的重点。
本项目研究对象为立式数控加工中心,“立式”指的是主轴竖直放置,那么主轴旋转产生的热量加上主轴自身重力的影响,热形变主要集中在Z向,也就是垂直方向。

  1. 目标值:热误差值如何测量?
    Z向的位移如何测量呢?项目通过采用主轴分析仪测量,主轴分析仪是一款根据电涡流原理测量位移的精密仪器,放置在主轴端面正下方,无限接近主轴的地方。测量值和热误差有什么关系呢?通过这张图很好地反映了。

    那么任意时刻i的测量值Li,和主轴停机初始状态下的测量值L1的差值,极为热误差值,

    在明确我们的目标值如何测量的情况下,我们接着介绍“多源异构数据”是哪些物理量。

  2. “多源异构数据”如何测量?
    本项目的数据,还有8温度数据,主轴功率、电流数据。
    研究热误差补偿,必不可少的就是温度了,温度如何测量呢?采用磁吸式或者贴片式温度传感器,安装在主轴及主轴外壳8各不同的位置,具体如下:
    温度传感器布置完后,再由数据采集卡,将数据汇总至上位机PC端,由PC端二次开发,读取8个温度数据。
    至于主轴功率、电流,熟悉机床的应该知道,可以通过数控系统二次开发实时读取数据,这两个数据容易获得。采集到的数据都是“野生数据”,要对数据预处理才能使用。

3.数据预处理
3.1 统一采集频率
项目中各数据的采集频率都不一样,例如,温度的采集频率为:0.01s/次,功率和电流的读取频率为:0.001s/次,Z向热形变量60s/次,因此,要统一各数据的采集频率。项目设计频率为:60s/次。

3.2 明确自变量和因变量,并对自变量归一化和标准化
回归问题的实质是寻求自变量x到因变量y的映射关系,

由于多源异构数据量纲不一致,有的数据10000,有的数据0.001,如果不做预处理直接输入模型,很容易导致模型训练过久,以及难以收敛。因此,归一化和标准化十分重要。归一化和标准化代码如下:

    #将数据标准化,自变量需做预处理,标签项不需要#减去特征平均值,再除以标准差,得到特征平均值为0,标准差为1mean=train_data.mean(axis=0)train_data-=meanstd=train_data.std(axis=0)train_data/=std#测试数据必须以训练数据的均值和标准差进行变换,这样两者的变换才一致test_data-=meantest_data/=std

4.ANN模型搭建
由于本项目数据集较少,一共1905组数据。数据维度(1905,11),划分输入值后的数据维度:(1905,10),输出数据维度:(1905,1)。
训练集:[ :1600],测试集:[1600:]
那么为什么没有验证集呢?
小数据集在建模时,要采用交叉验证的方式进行。
项目采用K折交叉验证,其中k取4。一般情况下k为4或5。
K折交叉验证代码如下:

for i in range(k):print('第几折:'+str(i))#验证集val_data=train_data[i*num_val_samples:(i+1)*num_val_samples]val_targets=train_targets[i*num_val_samples:(i+1)*num_val_samples]#训练集x_train_data=np.concatenate([train_data[:i*num_val_samples],train_data[(i+1)*num_val_samples:]],axis=0)y_train_targers=np.concatenate([train_targets[:i*num_val_samples],train_targets[(i+1)*num_val_samples:]],axis=0)model=build_model()#verbose=0代表训练时用的是静默模式history=model.fit(x=x_train_data,y=y_train_targers,validation_data=(val_data,val_targets),epochs=num_epochs,batch_size=1,verbose=1)#保存验证的平均绝对误差val_mae_history=history.history['val_mae']all_val_mae_histories.append(val_mae_history)#计算所有轮次中K折验证分数的平均值average_mae_history=[np.mean([x[i] for x in all_val_mae_histories]) for i in range(num_epochs)]

采用keras深度学习框架搭建3层ANN网络模型,模型层数如下:


代码如下:

def build_model():model=models.Sequential()model.add(layers.Dense(units=64,activation='relu',input_shape=(10,)))model.add(layers.Dense(units=64,activation='relu'))#回归问题的输出问题不需要激活函数,默认就为恒等函数model.add(layers.Dense(units=1))#损失函数使用均方误差 监控指标使用平均绝对误差model.compile(optimizer='rmsprop',loss='mse',metrics=['mae'])return model

接着就是训练模型,评估模型了,模型评估指标如下:

在迭代100次后,发现验证集在第57次具有最小mae,

取epoch=57,训练模型,验证集的表现为:


我们发现,test_ mae_score = 0.002059,这是什么意思呢?
要注意,本文热形变测量值单位是毫米(mm),这是什么意思呢?比如真实值是100mm,回归的预测误差为0.0025mm,这个效果就很好了。
因此,通过本项目可以发现,深度学习对于热误差预测、补偿都具有很高的精度。
当然在本文最后,要感谢深度学习大师,本文不少代码都是借鉴他的这篇“Keras深度学习(4)-回归问题之预测房价”

深度学习利用回归算法进行数据预测相关推荐

  1. AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟

    AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读        浣军博士,汉族,1975年出生于江苏苏州, ...

  2. 深度学习中的算法学习与记忆,利用故事联想帮助大家记忆,每个人都会

    大家好,我是微学AI,大家看过我的文章,想必是对深度学习有了一定的了解了,但是对于初学者来说,深度学习中有很多名词和数学知识.原理还是不太清楚,记忆的不牢固,用起来不熟练,今天就给大家讲一个故事,让大 ...

  3. 基于深度学习的多目标跟踪算法(上):端到端的数据关联

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的.如 ...

  4. “交通·未来”第10期:基于深度学习的动态系统复杂数据建模方法:以铁路列车晚点预测为例...

    前一阵公众号正式推出了"交通·未来"系列线上公益学术活动等你来~, 9月21日晚19:00,我们将迎来活动的第10期. 1.讲座主题 基于深度学习的动态系统复杂数据建模方法:以铁路 ...

  5. 基于机器学习与深度学习的金融风控贷款违约预测

    基于机器学习与深度学习的金融风控贷款违约预测 目录 一.赛题分析 1. 任务分析 2. 数据属性 3. 评价指标 4. 问题归类 5. 整体思路 二.数据可视化分析 1. 总体数据分析 2. 数值型数 ...

  6. 三维图形几何变换算法实验_基于深度学习的三维重建算法综述

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 00 前言 目前,三维重建技术已在游戏.电影.测绘.定位.导航.自动驾驶.VR/AR.工业制造以 ...

  7. 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式

    作者:CJB Date:2020-2-21 来源:基于深度学习的三维重建算法综述 欢迎加入国内最大的3D视觉交流社区,1700+的领域从业者正在共同进步~ 00 前言 01 基于传统多视图几何的三维重 ...

  8. 视觉感知——深度学习之YOLOv3算法

    视觉感知--深度学习之YOLOv3算法 1. 传感器融合 2. 深度学习算法 2.1 卷积神经网络CNN 2.2 YOLO算法 3. YOLO v3算法实践 3.1 官方数据集参考 3.2 环境配置 ...

  9. 基于深度学习技术的电表大数据检测系统

    基于深度学习技术的电表大数据检测系统 人工智能技术与咨询 来源:< 人工智能与机器人研究> ,作者方向 关键词: 智能电表:数据分析:深度学习时序模型: 摘要: 随着我国电厂不断发展,我国 ...

最新文章

  1. C#中的代理(delegate)[转载]
  2. Java基础-Java中的堆内存和离堆内存机制
  3. 图解WindowsXP修改MAC地址
  4. window7环境下ZooKeeper的安装运行及监控查看
  5. CI/CD 最佳实践的基本原则
  6. 《那些年啊,那些事——一个程序员的奋斗史》——42
  7. java获取文件名方法,利用Java获取文件名、类名、方法名和行号的方法小结
  8. 嘉和生物-B确定发行价每股24.00港元 公开发售获认购1247.52倍
  9. 又一款代替PanDownload的百度网盘不限速下载工具利器 – 雷鸟下载
  10. Mac修改hosts方法
  11. 华为防火墙IPSec详解与配置实验
  12. linux中qt浏览器崩溃解决,解决Firefox火狐浏览器总是崩溃问题
  13. 航班时间(计算时间差)
  14. File Based Optimizations(FBO,FBO焕新存储技术)介绍
  15. 最牛叉的街机游戏合集 模拟器
  16. 芯片验证漫游指南_IC验证入门资料
  17. kali linux 虚拟机iso 下载,Kali Linux 2016.2发布提供虚拟机以及系统镜像下载
  18. 爬虫I号 :获取免费代理服务器进行代理验证
  19. Matlab2018b任务栏图标消失且与m文件不关联
  20. 【烈日炎炎战后端】Zookeeper(0.5万字)

热门文章

  1. 求解leetcode分式化简
  2. 轴承热处理,你了解吗?
  3. 一图文带您认识磁编码器
  4. 标准成本和实际成本的比较分析
  5. 贪吃蛇 java下载_Java实现贪吃蛇游戏源码
  6. python语言程序培训
  7. windows子系统ubuntu远程桌面连接
  8. BAOCMS【QQ登录】回调地址常见问题及修改方法
  9. Dozer 轻松高效玩转DTO(Data Transfer Object)
  10. 批量删除的三种实现方式