一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于贝塞尔曲线的起重机定位防摇轨迹平滑方法与流程

2023-02-04 12:19:27 来源:中国专利 TAG:


1.本发明涉及欠驱动起重机系统定位防摇控制的技术领域,特别涉及一种基于贝塞尔曲线的起重机定位防摇轨迹平滑方法。


背景技术:

2.欠驱动系统是一类系统输入少于系统自由度的系统。桥式起重机系统作为一种典型的欠驱动系统包含系统输入-台车运行力和系统自由度-负载位移和摆角。从控制理论的角度看,欠驱动系统控制输入的限制是具有挑战性的控制问题,如何根据合适的控制律设计起重机系统输入实现系统自由度的镇定,即属于该类问题。对于起重机系统一般采用反馈控制律,把跟踪误差保持在零附近,所跟踪的对象为稳态位置或参考轨迹。其中参考轨迹一般按照最优控制理论设计,跟踪参考轨迹能达到所需求的一类参数最优化。起重机系统还有非线性、参数强耦合的特点,难以设计合适的非线性反馈控制器,跟踪稳态位置设计出的控制器大多为线性控制器,而跟踪参考轨迹能在轨迹附近做一些线性化处理,能较好地处理起重机系统的非线性特性。
3.当下常用的用于定位防摇控制的参考轨迹有三段式和五段式运行轨迹,这些轨迹根据相平面分析法和分段控制策略设计,能够实现系统两自由度的快速镇定,但这些轨迹在分段点处转折生硬,未作平滑处理,在实际应用中会对电机造成冲击力,从而降低机械寿命,且冲击力的存在也会影响驱动力对起重机系统的控制,使得定位防摇效果下降。目前也有用三角函数在分段点平滑的方法,但仅用于三段式轨迹的平滑处理,且得到的轨迹表达式涉及三角函数,复杂度大幅增加。


技术实现要素:

4.为了克服现有技术中的不足,本发明提供一种基于贝塞尔曲线的起重机定位防摇轨迹平滑方法,解决现有技术中起重机定位防摇功能的参考轨迹在分段处轨迹转折生硬,会对起重机系统造成强大冲击力,降低控制性能,减少机器寿命的技术问题。
5.为了达到上述发明目的,解决其技术问题所采用的技术方案如下:
6.一种基于贝塞尔曲线的起重机定位防摇轨迹平滑方法,包括以下步骤:
7.步骤1:根据拉格朗日方程构建二维桥式起重机动力学模型,并分析模型特性;
8.步骤2:根据二维桥式起重机动力学模型,选取常用的离散参考轨迹和连续参考轨迹,并用贝塞尔曲线进行平滑处理;
9.步骤3:根据平滑处理原理,进行软件和硬件设计,主要包括数据收发层和数据处理层的协议和调用函数、硬件选型和接口设计。
10.进一步的,步骤1中,选取二维桥式起重机作为研究对象,所述动力学模型表达式如下:
[0011][0012]
q=(x l θ)
t
[0013][0014][0015]
g(q)=(0-mgcosθmglsinθ)
t
[0016]
τ=(f
x f
l 0)
t
[0017]
其中,m(q)为二维桥式起重机系统的惯量矩阵,为柯氏力矩阵,g(q)为重力因子向量,τ为控制输入向量,q为起重机系统的状态向量,x为行车位移距离,l为负载到小车间的绳长,θ为负载摆动角度,g为重力加速度,μ
x
为水平运动的摩擦系数,μ
l
为提升运动的摩擦系数,f
x
为行车水平运动的控制驱动力,f
l
为绳子提升的拉力。
[0018]
进一步的,步骤2中,选取的基于相平面分析的起重机系统三段式运行轨迹为:
[0019][0020][0021][0022][0023]
其中,v(t)为桥式起重机系统中行车的速度,a
max
为行车规定的最大加速度,t为起重机从运行到停止的总时间,ta为起重机运行的加速段和减速段的时间,二者时间相等,tc为起重机运行的恒速段的时间,xd为行车位移距离,ωn为负载摆动频率。
[0024]
进一步的,步骤2中,选取的基于分段轨迹规划的起重机系统五段式运行轨迹为:
[0025][0026]
[0027][0028][0029][0030]
t4=t1[0031][0032]
其中,v(t)为桥式起重机系统中行车的速度,ωn为负载摆动频率,v
max
为行车规定的最大速度,v
min
为行车运行的制动速度,a0为求得对应的行车运行的最大加速度,t1为起重机运行的加速段的时间,t2为起重机运行的高速恒速段的时间,t3为起重机运行的高速减速段的时间,t4为起重机运行的制动恒速段的时间,t5为起重机运行的制动减速段的时间,其中t1、t4相等,s1、s3、s4、s5分别为对应时间段起重机运行的距离,xd为行车位移距离。
[0033]
进一步的,步骤2中,使用贝塞尔曲线对起重机运行轨迹优化,其原理为:
[0034]
二阶贝塞尔曲线ac由数据点a和c、控制点b来描述曲线状态,用直线连接ab、bc,并在ab上取d,在bc上取e,用直线连接de,并在de上取f,使e、f满足:
[0035][0036]
当d点从a点运动到b点时,f点从a点运动到c点,f点的运动轨迹即为贝塞尔曲线。
[0037]
进一步的,步骤2中,对于连续的起重机运行轨迹,规定贝塞尔曲线的处理方式为:
[0038]
对连续运行轨迹作平滑处理,连续运行轨迹由分段函数表达式组成,三段分段函数的表达式为:
[0039][0040]
且f1(0)=0,f1(a)=f2(a),f2(b)=f3(b),
[0041]
其中,需要平滑处理的各个分段点为x1=0,x2=a,x3=b;
[0042]
令平滑处理区间长度d为单位横坐标,以点x1为例,需要在该点左侧选取一点x
1s
,右侧选取一点x
1e
,使其满足:
[0043]
x
1s
d=x
1e
,d=1
[0044][0045][0046]
[0047]
其中,l
x1sx1
、l
x1ex1
分别为x
1s
、x
1e
到x1的距离,二者相等;
[0048]
对每个分段点平滑处理之后,得到的分段函数表达式为:
[0049][0050]
其中,x
2s
、x
2e
为点x2=a左右两侧选取的点,x
3s
、x
3e
为点x3=b左右两侧选取的点,bezier(x)为生成的贝塞尔曲线。
[0051]
进一步的,步骤2中,对于离散的起重机运行轨迹,规定贝塞尔曲线的处理方式为:
[0052]
对离散运行轨迹作平滑处理,离散运行轨迹由多组点的横纵坐标组成,按横坐标等距离散的三段分段函数的表达式为:
[0053]
pn=(xn,yn)
[0054]
xn=nt,n∈n
*
[0055]yn
=f(xn)
[0056]
其中,pn为轨迹上的点,xn、yn为该点横纵坐标,t为采样周期,f(x)为连续函数表达式;
[0057]
给出离散函数表达式上的手动控制点x0=0,xa=a,xb=b,在采样周期t=20ms下,平滑处理区间长度nd为50,以点xa为例,则有:
[0058]
x
as
=x
(a-25)
[0059]
x
ae
=x
(a 25)
[0060]
其中,x
as
、x
ae
为点xa左右两侧贝塞尔曲线的起点和终点,给出两侧点后,对起点到终点的51个点之间作平均插值处理,以x
as
到xa之间的插值点为例,有:
[0061][0062][0063]
……
[0064][0065]
插值完毕后,对照二阶贝塞尔曲线原理,x
as
即为a的移动轨迹,xa即为b的移动轨迹,x
ae
即为c的移动轨迹,x(a-24.5)到x(a-0.5)即为d的移动轨迹,x(a 0.5)到x(a 24.5)即为e的移动轨迹,则可求得平滑处理后的点序列f。
[0066]
进一步的,步骤3中,所述平滑模块的软件设计包括数据收发层、处理层的协议和调用函数、硬件选型和硬件接口设计,其中:
[0067]
软件设计的数据收发层的协议定义数据类型的组成为:包起始、模式段、数据段、ack段、包结束,其中:
[0068]
所述包起始,用于表明该数据包为给平滑模块处理的数据类型;
[0069]
所述模式段紧接在包起始之后,用于表明该段设置平滑模块处理数据的模式类型;
[0070]
所述数据段接在模式段之后,包含轨迹参数数据;
[0071]
所述ack段,用于通知发送端和接收端发出应答信号,两端口数据传输结束;
[0072]
所述包结束,用于表明该平滑模块的数据包传输结束;
[0073]
软件设计的数据处理层的协议定义起重机轨迹平滑处理在程序上的过程,分为:
[0074]
模块和片上外设初始化;
[0075]
为主要参数分配内存;
[0076]
根据sm_sr状态寄存器选择平滑函数的处理方式;
[0077]
从sm_rdr读轨迹参数,完成平滑处理;
[0078]
写sm_tdr,等待发送。
[0079]
进一步的,步骤3中,所述平滑模块的硬件设计包括:
[0080]
根据软件设计,所选型的硬件需要具有如下功能:
[0081]
支持运算和逻辑控制的运算器或cpu;
[0082]
不少于8个、可用于模拟接口的i/o口;
[0083]
3个数据寄存器sm_sr、sm_rdr、sm_tdr;
[0084]
数据存储器ram;
[0085]
1个可编程定时器;
[0086]
根据软件设计和硬件选型,规定接口通信方式:
[0087]
当平滑处理单元与上位机通信时:
[0088]
当使用以太网接口通信时,需要在mcu端的gpio端口外接rs232接口;
[0089]
当使用usb接口通信时,需要在mcu端的uart口外接ch340c芯片;
[0090]
当平滑处理单元与控制单元通信时:
[0091]
常用的传输数据到控制单元的通信协议有iic、can,这些通信协议均可以在平滑处理单元用io口模拟。
[0092]
本发明由于采用以上技术方案,使之与现有技术相比,具有以下的优点和积极效果:
[0093]
本发明能够对用于起重机定位防摇控制的运行轨迹进行平滑处理,能有效减少不平滑轨迹在转折点对起重机机器造成的冲击力,从而保证起重机的控制性能,避免机器寿命损耗问题。且本发明提供软件部分的逻辑,基于各项要求和成本考虑给出硬件选型,为本技术领域的普通技术人员提供设计思路。
附图说明
[0094]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附
图中:
[0095]
图1为本发明所述的使用贝塞尔曲线的起重机定位防摇轨迹平滑模块的流程示意图;
[0096]
图2为本发明所述的用于起重机定位防摇控制的三段式运行轨迹速度时间图像和平滑处理效果示意图;
[0097]
图3为本发明所述的用于起重机定位防摇控制的五段式运行轨迹速度时间图像和平滑处理效果示意图;
[0098]
图4为本发明所述的贝塞尔曲线绘制的原理图;
[0099]
图5为本发明所述的平滑处理模块的数据收发层的处理流程图;
[0100]
图6为本发明所述的平滑处理模块的数据处理层的处理流程图。
具体实施方式
[0101]
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0102]
如图1-6所示,本实施例公开了一种基于贝塞尔曲线的起重机定位防摇轨迹平滑方法,包括以下步骤:
[0103]
步骤1:根据拉格朗日方程构建二维桥式起重机动力学模型,并分析模型特性;
[0104]
步骤2:根据二维桥式起重机动力学模型,选取常用连续参考轨迹和离散参考轨迹,并用贝塞尔曲线进行平滑处理;
[0105]
步骤3:根据贝塞尔曲线平滑处理原理,进行软件和硬件设计,主要包括数据收发层和数据处理层的协议和调用函数、硬件选型和接口设计。
[0106]
进一步的,步骤1中,考虑实际运输过程中的滑轨间摩擦力及风阻,利用拉格朗日动力学方程构建二维桥式起重机数学模型,并分析其特性。所述二维桥式起重机动力学模型表达式如下:
[0107][0108]
q=(x l θ)
t
[0109][0110][0111]
g(q)=(0-mgcosθmglsinθ)
t
[0112]
τ=(f
x f
l 0)
t
[0113]
其中,m(q)为二维桥式起重机系统的惯量矩阵,为柯氏力矩阵,g(q)为重
力因子向量,τ为控制输入向量,q为起重机系统的状态向量,x为行车位移距离,l为负载到小车间的绳长,θ为负载摆动角度,g为重力加速度,μ
x
为水平运动的摩擦系数,μ
l
为提升运动的摩擦系数,f
x
为行车水平运动的控制驱动力,f
l
为绳子提升的拉力。
[0114]
对于上述起重机系统,可以分析得知:
[0115]
该二维桥式起重机系统有一个系统控制输入变量,为行车水平运动的控制驱动力,有两个系统广义变量,为行车位移距离和负载摆动角度。其中,系统控制输入变量个数小于系统广义变量,该系统为典型非线性欠驱动系统,且两个系统广义变量高度耦合。
[0116]
参照图2,选取的基于相平面分析的起重机系统三段式运行轨迹为:
[0117][0118][0119][0120][0121]
其中,v(t)为桥式起重机系统中行车的速度,a
max
为行车规定的最大加速度,t为起重机从运行到停止的总时间,ta为起重机运行的加速段和减速段的时间,二者时间相等,tc为起重机运行的恒速段的时间,xd为行车位移距离,ωn为负载摆动频率。
[0122]
参照图3,选取的基于分段轨迹规划的起重机系统五段式运行轨迹为:
[0123][0124][0125][0126][0127]
[0128]
t4=t1[0129][0130]
其中,v(t)为桥式起重机系统中行车的速度,ωn为负载摆动频率,v
max
为行车规定的最大速度,v
min
为行车运行的制动速度,a0为求得对应的行车运行的最大加速度,t1为起重机运行的加速段的时间,t2为起重机运行的高速恒速段的时间,t3为起重机运行的高速减速段的时间,t4为起重机运行的制动恒速段的时间,t5为起重机运行的制动减速段的时间,其中t1、t4相等,s1、s3、s4、s5分别为对应时间段起重机运行的距离,xd为行车位移距离。
[0131]
进一步的,参照图4,使用贝塞尔曲线对起重机运行轨迹优化,其原理为:
[0132]
二阶贝塞尔曲线ac由数据点a和c、控制点b来描述曲线状态,用直线连接ab、bc,并在ab上取d,在bc上取e,用直线连接de,并在de上取f,使e、f满足:
[0133][0134]
当d点从a点运动到b点时,f点从a点运动到c点,f点的运动轨迹即为贝塞尔曲线。
[0135]
针对起重机运行轨迹,需要明显平滑的地方为各个分段点。使用贝塞尔曲线平滑时,可令分段点为控制点,左右各取一个数据点,数据点之间即为优化区间。优化之后的运行轨迹在折点处对机械的冲击力明显减小。
[0136]
进一步的,步骤2中,对于连续的起重机运行轨迹,规定贝塞尔曲线的处理方式为:
[0137]
对连续运行轨迹作平滑处理,连续运行轨迹由分段函数表达式组成,三段分段函数的表达式为:
[0138][0139]
且f1(0)=0,f1(a)=f2(a),f2(b)=f3(b),
[0140]
其中,需要平滑处理的各个分段点为x1=0,x2=a,x3=b;
[0141]
令平滑处理区间长度d为单位横坐标,以点x1为例,需要在该点左侧选取一点x
1s
,右侧选取一点x
1e
,使其满足:
[0142]
x
1s
d=x
1e
,d=1
[0143][0144][0145][0146]
其中,l
x1sx1
、l
x1ex1
分别为x
1s
、x
1e
到x1的距离,二者相等;
[0147]
对每个分段点平滑处理之后,得到的分段函数表达式为:
[0148][0149]
其中,x
2s
、x
2e
为点x2=a左右两侧选取的点,x
3s
、x
3e
为点x3=b左右两侧选取的点,bezier(x)为生成的贝塞尔曲线。上述表达式成立的一个必要条件为各个分段点所在的平滑区间不重叠,以点x2、x3为例,则有x
2e
《x
3s
。当不满足不重叠条件即x
2e
》x
3s
时,平滑模块将对两控制点、起点、终点这四个点作三阶贝塞尔曲线。模块不支持更高阶的贝塞尔曲线平滑处理,假如有更多控制点重叠,则需要重新设置平滑处理区间长度d。
[0150]
平滑处理过后的函数表达式的起点为x
1s
,需要将整个函数曲线右移|x
1s
|个单位,再赋给运行轨迹表达式输出。
[0151]
进一步的,步骤2中,对于离散的起重机运行轨迹,规定贝塞尔曲线的处理方式为:
[0152]
对离散运行轨迹作平滑处理,离散运行轨迹由多组点的横纵坐标组成,按横坐标等距离散的三段分段函数的表达式为:
[0153]
pn=(xn,yn)
[0154]
xn=nt,n∈n
*
[0155]yn
=f(xn)
[0156]
其中,pn为轨迹上的点,xn、yn为该点横纵坐标,t为采样周期,f(x)为连续函数表达式;
[0157]
离散函数表达式需要手动给出控制点,给出离散函数表达式上的手动控制点x0=0,xa=a,xb=b,在采样周期t=20ms下,平滑处理区间长度nd为50,以点xa为例,则有:
[0158]
x
as
=x
(a-25)
[0159]
x
ae
=x
(a 25)
[0160]
其中,x
as
、x
ae
为点xa左右两侧贝塞尔曲线的起点和终点,给出两侧点后,对起点到终点(包括该两点)的51个点之间作平均插值处理,以x
as
到xa之间的插值点为例,有:
[0161][0162][0163]
……
[0164][0165]
插值完毕后,对照二阶贝塞尔曲线原理,x
as
即为a的移动轨迹,xa即为b的移动轨迹,x
ae
即为c的移动轨迹,x(a-24.5)到x(a-0.5)即为d的移动轨迹,x(a 0.5)到x(a 24.5)即
为e的移动轨迹,则可求得平滑处理后的点序列f。
[0166]
参照上述处理连续轨迹的重叠必要条件,离散轨迹的处理同样仅支持三阶以下的贝塞尔曲线生成。假如有更多控制点重叠,则需要重新设置平滑处理区间长度nd。
[0167]
进一步的,步骤3中,所述平滑模块的软件设计包括数据收发层、处理层的协议和调用函数、硬件选型和接口设计,其中:
[0168]
软件设计主要包括数据收发层和数据处理层的协议和调用函数,支持接口和参数自定义以及模式选择,其中:
[0169]
参照图5,数据收发层的协议和调用函数为:
[0170]
对于上位机通过任意常用接口发送到模块的数据,将其保存在平滑模块数据接收寄存器sm_rdr。发送数据从平滑模块数据发送寄存器sm_tdr发出。
[0171]
软件设计的数据收发层的协议定义数据类型的组成为:包起始、模式段、数据段、ack段、包结束,其中:
[0172]
所述包起始占1字节8位,用于表明该数据包为给平滑模块处理的数据类型;
[0173]
所述模式段紧接在包起始之后,占1~5字节,用于表明该段设置平滑模块处理数据的模式类型,提供如下模式选择:
[0174]
位0:数据收发模式,置1时处于数据接收模式,置0时处于数据发送模式。该位写入平滑模块状态寄存器sm_sr。
[0175]
位1:轨迹类型模式,置1时处于连续轨迹模式,置0时处于离散轨迹模式。该位写入sm_sr。
[0176]
位3~2:选择起始点、结束点位置模式,位4控制起始点,位3控制结束点,置1时点到临近控制点的距离延长1倍,置0时保持不变。该位写入sm_sr。需要注意的是,选择模式为10或01时,离散轨迹下处于1状态的位置点序列不需要抽样处理。
[0177]
位35~4:自定义长度参数模式,所有全部置0时使用默认参数,有位置1将该4字节数据以浮点数形式(连续轨迹使用)或无符号整型形式(离散轨迹使用)赋给平滑处理区间长度。
[0178]
所述数据段接在模式段之后,内存占用视数据长度而定,主要包括:
[0179]
数据起始位占1字节8位,表明数据部分开始。
[0180]
数据段内包含轨迹参数等主要数据。离散轨迹的参数主要为点位置序列,连续轨迹的参数主要为分段函数形式。在离散轨迹处对于控制点需要额外置位,以将该点位置赋给用于平滑函数的控制点。在连续轨迹中,平滑函数会对分段点求左右导数,如果左右导数不等则该点位置赋给用于平滑函数的控制点。
[0181]
数据结束位占1字节8位,表明数据部分结束。
[0182]
所述ack段,用于通知发送端和接收端发出应答信号,两端口数据传输结束;具体的,ack段占1字节8位,高4位为ack段发送端信号位,通知接收端请求应答;低4位为ack段接受端信号位,通知发送端接受结束。
[0183]
所述包结束,占1字节8位,用于表明该平滑模块的数据包传输结束;
[0184]
软件设计的数据处理层的协议定义起重机轨迹平滑处理在程序上的过程,参照图6,分为:
[0185]
模块和片上外设初始化;
[0186]
为主要参数分配内存,参数包括控制点位置和平滑处理区间长度;
[0187]
根据sm_sr(smoothing module_state-register)状态寄存器选择平滑函数的处理方式;
[0188]
从sm_rdr(smoothing module_receive-data-register)读轨迹参数,完成平滑处理;
[0189]
写sm_tdr(smoothing module_transimit-data-register),等待发送。
[0190]
sm_rdr状态寄存器占用1字节8位,有效位为低4位,分别为:位0:数据收发模式;位1:轨迹类型模式;位3~2:选择起始点、结束点位置模式。
[0191]
进一步的,步骤3中,硬件设计主要包括硬件选型和接口设计,其中需要说明的是,
[0192]
对于硬件选型,针对软件功能的描述,可以得知硬件类型需要如下功能:
[0193]
支持运算和逻辑控制的运算器或cpu;不少于8个、可用于模拟接口的i/o口;3个数据寄存器sm_sr、sm_rdr、sm_tdr;数据存储器ram;1个可编程定时器。基于功能需求选用的解算单元为8位微控制器stc89c52rc。
[0194]
根据软件设计和硬件选型,规定接口通信方式:
[0195]
当平滑处理单元与上位机通信时:
[0196]
对于起重机系统而言,常用的上位机接口为以太网接口和usb接口。当使用以太网接口通信时,需要在mcu端的gpio端口外接rs232接口;当使用usb接口通信时,需要在mcu端的uart口外接ch340c芯片;
[0197]
当平滑处理单元与控制单元通信时:
[0198]
对于起重机系统而言,常用的传输数据到控制单元的通信协议有iic、can,这些通信协议均可以在平滑处理单元用io口模拟。
[0199]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献