一、案例说明
电机平稳速度控制策略的核心是通过斜坡线性规划加减速过程,替代阶跃式的速度给定,从源头消除启停、调速时的速度突变带来的机械冲击和电流冲击,最终实现速度的平滑过渡,同时兼顾系统动态响应速度与运行稳定性,是伺服电机、步进电机、变频异步电机精准控制中最基础且核心的控制手段,其中斜坡给定是基础方案,T 型、S 型速度规划是进阶的精细化方案,广泛应用于机床、机器人、输送线、自动化产线等对动平稳性要求高的场景。
二、程序执行输出效果
三.线性平滑功能主要应用场景举例说明
1.大功率电机控制
大功率的电机的速度设定,不允许速度从0%直接上升到80%,需要有个斜坡,比如3%每秒的速度上升,否则会对电网造成很大冲击。
2.阀门控制
大口径的阀门,不允许打开和关闭的速度太快。造成对总管的压力突变或者水锤。
3.总结
经过上面两个案例介绍,其实都是需要个线性平滑的功能,对于功能而言实现这个功能,我们可以通过控制器去实现,例如变频器的加减速时间设定实现一个斜坡加减速的功能。
四.斜坡线性平滑算法原理
1.算法公式
2.控制示意图
五、程序编写
1.创建FB块
2.创建FB引脚参数
点击查看代码
FUNCTION_BLOCK Ramp
//PLC-Recorder | Ana
//https://hiddenmap.cn
VAR_INPUT
{attribute 'NetAccess':='readwrite'}
设置目标值: REAL;
{attribute 'NetAccess':='readwrite'}
平滑总时间: DINT;
{attribute 'NetAccess':='readwrite'}
设定最大值: REAL;
{attribute 'NetAccess':='readwrite'}
设定最小值: REAL;
{attribute 'NetAccess':='readwrite'}
执行周期: DINT;
END_VAR
VAR_OUTPUT
{attribute 'NetAccess':='readwrite'}
平滑输出值: REAL;
END_VAR
VAR
{attribute 'NetAccess':='readwrite'}
单步变化量: REAL;
{attribute 'NetAccess':='readwrite'}
步长变换系数: REAL;
{attribute 'NetAccess':='readwrite'}
偏差绝对值: REAL;
{attribute 'NetAccess':='readwrite'}
平滑输出值_T: REAL;
END_VAR
//PLC-Recorder | Ana
//https://hiddenmap.cn
3.程序
点击查看代码
//PLC-Recorder | Ana
//https://hiddenmap.cn
//单步变化量
单步变化量 := (设定最大值 - 设定最小值) / DINT_TO_REAL(平滑总时间 * 1000 / 执行周期);
//计算偏差绝对值
偏差绝对值 := 设置目标值 - 平滑输出值_T;
IF 偏差绝对值 < 0.0 THEN
偏差绝对值 := 偏差绝对值 * -1;
END_IF;
//计算平滑输出值sm_out
IF 偏差绝对值 > 单步变化量 THEN
IF 设置目标值 > 平滑输出值_T THEN
步长变换系数 := 1.0;
ELSIF 设置目标值 = 平滑输出值_T THEN
步长变换系数 := 0.0;
ELSIF 设置目标值 < 平滑输出值_T THEN
步长变换系数 := -1.0;
END_IF;
平滑输出值_T := 平滑输出值_T + 步长变换系数 * 单步变化量;
ELSE
平滑输出值_T := 设置目标值;
END_IF;
平滑输出值 := 平滑输出值_T;
//PLC-Recorder | Ana
//https://hiddenmap.cn
4.运行程序
延伸小知识:PLC-Recorder专业数据采集与分析软件可以采集字符串变量,和数值变量一样便捷。