S型速度曲线_博图+变频器+三相异步电机(以堆垛机控制系统举例)

1、 引入问题

在PLC+变频器+三相异步电机的控制结构下,如何实现被控制对象速度、位置的平滑过渡,并减少对机械系统造成的冲击?
本次项目采用西门子S7_1500、丹佛斯变频器FC302、SEW三相异步电机;程序的实现是基于 Sinx*Sinx 的 S 型速度曲线的生成并仿真测试运行 ,其有以下优点:
①由于 Sinx*Sinx 曲线具有的一阶二阶连续性,加速度和加加速度都符合正/余弦特性,相比传统的S曲线其加加速度并不连续而系统柔性受到一定限制的特点,尽可能的保证了加减速过程的平滑稳定。
②同时由于Sinx*Sinx 曲线加速度先增加后减小到的特征,整条曲线不用再分成七段或五段计算而采用传统速度曲线的三段速。

转载请先后台留言,大家一起支持原创!!!

2、 前置知识

前言:插补的本质是在执行环节用微小直线段来逼近曲线
1、数据采样插补又称为时间分割法:其原理是将加工一段曲线的时间划分 为若干个相等的插补周期,每经过一个插补周期就进行一次插补运算,计算出该插补周期内变频器的速度字。—本项目直接以曲线本身来进行插补,插补周期为1ms计算一次。
2、由于在[0,π /2] 内 ∫sinx*sinxdx 与 ∫(2/π )xdx 的积分是相等的,故梯形加速度与S型加速度间可以等效转换 即S_a=T_a * 2/Π (Π=3.1415926)
3、Vmin:保证堆垛机可靠停准的最小运行速度
4、滑行距离:设备接近目标点前的低速匀速运行距离
5、计算公式:

5.1、电机参数计算公式:(默认起始速度为0,加速度==减速度)
电机执行机构速度 m/s:(额定转速r/min*Π*执行轮直径/减速比)/60 
梯形速度曲线平均加速度 m/s^2:T_a=Vmax/t     
S形速度曲线平均加速度 m/s^2:S_a=T_a*2/Π  
最短减速距离mm:1000*(1/2S_a*t^2)+滑行距离 
注意:若电机为提升电机,则电机当量速度应在除以2
5.2、插补计算公式:
速度曲线V插补:v(t)=sin(x)*sin(x) == Sin(a*Π/2T)* Sin(a*Π/2T)*Vmax;
加速度曲线a插补:a(t)=sin(2x) == Sin(X*Π/T);
加加速度j插补:j(t)=2cos(2x);
加速度面积_积分:∫sin2xdx = 1/2(1-cos(2x)); x属于(0,Π/2)故积分面积为1;
位置曲线积分s(t)=∫v(t)dx=1/4(2x-sin2x);

6、曲线形状
曲线1:曲线速度能达到最大速度,曲线中存在匀速段
曲线2:曲线速度不能达到最大速度,曲线中不存在匀速段

在这里插入图片描述

3、思想及实现

1、约束输入条件在正常计算范围内有效:系统最大速度Vmax、加减速度时间t、滑行距离mm
2、使能条件满足时计算一次:
(1)依据输入电机额定转速、减速比、执行机构直径参数计算出电机运行当量速度,再转化为m/s
(2)复位计算过程中间数据:中断循环次数、积分面积、S曲线动作步等
(3)依据剩余距离,判断当前所能达到的最大速度,分三段限制不同段长下的最大运行速度
(4)依据最大速度,计算出梯形速度曲线下平均加速度、等效成S速度曲线下平均加速度、计算出最短减速距离+滑行距离
(5)依据目标位置、当前位置、最短减速距离计算出 加速停止位置、减速开始位置
3、实时判断S曲线动作步
(1)依据当前位置与加减速位置的关系,当前位置与目标位置的关系、计算出S型曲线的动作步,并产生标志位—S曲线的大致轮廓
(2)停止复位中间数据,控制数据、仿真测试数据
(3)将插补值输出到速度控制字,且限定范围,减速时不小于3HZ、最大值<=16384
(4)实时监控变频器反馈的速度值,转换为常用单位HZ、m/s
3、中断内对速度曲线进行插补
(1)不同阶段的特性选择不同插值方式:①采用1ms为一个时间周期,对加速度曲线sin2x进行积分求出加速度在[0,π /2] 内的面积,在切分成N分(N=加减速时间1000倍),中断1ms循环一次,数值加1即增加N份中的一份。②将加速度等效为速度曲线sinxsinx中的变量,即加速度每增加,则速度增加,且加速度增加曲线平滑、速度曲线增加平滑。—加减速算法一致,匀速运行部分采用直线插补法。
(2)在加速段、匀速段、加速段分别对速度曲线的位置增量计算,保证速度曲线与位置曲线内在物理公式成立

4、实验仿真测试

4.1、S曲线的数据划分
在这里插入图片描述
4.2、FC函数块内程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.3、中断插补处理
在这里插入图片描述
在这里插入图片描述
4.4、仿真测试

在这里插入图片描述

在这里插入图片描述

5、总结

前期找资料见了一些步进电机的速度曲线、MATLAB仿真的、C语言的,一直没有适合自己用的。这次做个PLC的S型曲线案例并且结合实际工厂应用,多多分享,欢迎点评!参考“一种基于sinx*sinx的S型速度曲线的生成”一文。
程序及设计资料点击链接(已上传资源),感谢支持!

注意:
①电脑仿真没有实际CPU扫描的速度快,中断间隔时间<2ms,仿真时中断程序的执行时间不会减小!
②HMI仿真刷新频率最快为100ms,仿真曲线不能按程序实际刷新速率显示!

### 堆垛 S 曲线控制概述 堆垛是一种用于自动化仓储系统的设备,其运动轨迹通常采用加减速优化设计来提高效率并减少械冲击。S 曲线作为一种常见的加速/减速策略,在堆垛控制系统中被广泛应用。它通过平滑的速度变化曲线使电运行更加平稳,从而降低振动和噪声。 #### S 曲线的特点 S 曲线的核心特点是速度随时间的变化呈现一种类似于字母"S"的形状。这种特性使得加速度逐渐增加到最大值后再逐步减小至零[^1]。相比传统的梯形速度曲线,S 曲线能够显著改善动态性能,特别是在高速度切换场景下表现出更好的稳定性和舒适性。 #### 数学模描述 对于典的五阶多项式形式的S减速函数可以表示如下: \[ v(t) = \begin{cases} a_0t^3 & (0\leq t<T_a), \\ v_{max}-b_0(T_d-t)^3 & (T_s-T_d<t\leq T_s), \end{cases}\] 其中 \( a_0, b_0\) 是常数系数;\( T_a,T_d\) 表示加速阶段结束时间和减速阶段起始时刻【未提供具体数值】[^2]。当处于匀速区间时,则保持恒定的最大速度\( v_{max}\). 以下是基于Python的一个简单模拟实现: ```python import numpy as np import matplotlib.pyplot as plt def s_curve_acceleration(max_velocity=1.0, jerk_limit=0.5, total_time=8): time_steps = np.linspace(0, total_time, num=int(total_time * 10)) acceleration_phase_duration = max_velocity / jerk_limit velocities = [] for t in time_steps: if t < acceleration_phase_duration: vel = 0.5 * jerk_limit * t ** 2 elif t >= acceleration_phase_duration and t <= total_time - acceleration_phase_duration: vel = max_velocity else: remaining_t = t-(total_time-acceleration_phase_duration) decel_factor = 0.5*jerk_limit*(remaining_t)**2 vel = max_velocity-decel_factor velocities.append(vel) return time_steps, velocities time_data, velocity_profile = s_curve_acceleration() plt.plot(time_data, velocity_profile,'r-',label='Velocity Profile') plt.title('S-Curve Velocity Profile Example') plt.xlabel('Time(s)') plt.ylabel('Velocity(m/s)') plt.legend() plt.grid(True) plt.show() ``` 上述脚本展示了如何构建一个基本的三相(S-curved)速度轮廓,并利用matplotlib库绘制成形展示出来. #### 控制算法分析 现代工业实践中,S曲线路由规划往往依赖于微处理器或者PLC中的软件模块完成实时计算处理工作。这些程序会依据预设参数如目标位置、允许误差范围以及负载惯量等因素综合考虑制定最优路径方案[^3].
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放青松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值