PLC实验—西门子S7 1200 PID控制步进电机转速
严格讲并不是PID控制,因为并不是并不研究这个方向,研二又比较忙,时间限制只加了比例系数
这里只是抛砖引玉,希望大家可以进一步完善补充
思路
大体思路如下,根据超声波传感器测量的距离值,换算成步进电机的期望速度
HSC采集步进电机的实际转速,计算期望转速与实际转速的转速差,作为PID调节器的输入
PID调节器计算出步进电机的脉冲增量,进行叠加,去控制步进电机运动
程序
建议先阅读上一篇博客,这是基于其实现的
PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
主要的变化在main和Cyclic interrupt 200ms两个组织块中
main组织块
- 不清楚PLC里面变量怎么
初始化
,所以用move实现,启动的同时进行PTO脉冲系数的初始化
- 对距离值向上取整,乘
0.08
以换算成步进电机期望转速
- delta_ctrl是PID调节器计算出的脉冲增量,进行
累加
- 取绝对值防止脉冲数出现
负数
- 同样对脉冲数进行向上取整
- 注意设置脉冲数
上限
,这里要多次尝试,暂去100
- 实际上所谓的自动调节,就是将上一个实验的加速减速按钮变成能够自动变化的
- 这里要进行数据类型的转化,
Real→Int
- 这里加了个
互斥锁
,以使得急停按钮能够生效
- 程序段6和7没有变化
Cyclic interrupt 200ms组织块
- 添加了转速差的计算,10是比例系数
接线
较上一实验接线变化不大,接上传感器,去掉加减速按钮即可
实验结果
分为两组,第一组超声波传感器上方没有障碍物,第二组有障碍物
障碍物即将手掌置于超声波传感器上方
无障碍物
没有障碍物时超声波距离值3.8,换算为参考转速0.32
步进电机有个调节变化的过程,期间会有振动和噪声,说明运动并不平稳
稳定阶段PTO脉冲系数12,PTO frequency 600
此时实际转速稳定在0.375
有障碍物
有障碍物时超声波距离值1,换算为参考转速0.08
其实这里也可以向下取整,这样距离值有3/2/1/0四段,向上取整则是4/3/2/1四段
稳定阶段PTO脉冲系数1,PTO frequency 50
此时实际转速稳定在0.15
上述误差可能由于步进电机的步距角导致,可以先了解下步进电机及其控制
步进电机怎么控制速度?步进电机调速控制方法
步进电机控制方法,总算有人讲明白了!
如何控制步进电机?
后话
整个实验实际上还是很粗糙的,很多细节还有待推敲
PID调节器实际上可以用增量式PID实现,注意这是离散系统,实现仍然在中断组织块中
位置式PID与增量式PID
有空再搞吧,狗头保命