马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 Slimming 于 2022-12-10 19:02 编辑
1.简介
codesys底层的凸轮功能,使用的是5次函数曲线,对于曲线规划时可能会存在异常情况,例如位置曲线越界、速度曲线反向等问题。
针对于此类问题,在凸轮表中已有最大位置、速度、加速度的提示,但是配置参数灵活性不高,本文的功能就在于在凸轮规划参数时,实时刷新这些参数,可以起到保护和报警的判断。
2.公式计算
公式计算之前,先考虑位置、速度、加速度直接的极值求解关系,根据定义可知,加速度是速度的导数,速度是位置的导数,5次方曲线为位置曲线,5次曲线相关计算在之前文章中已给出。
若要求得位置(5次函数)的极值,则要求速度(4次函数)=0的解;
若要求的速度(4次函数)的极值,则要求加速度(3次函数)=0的解;
若要求的加速度(3次函数)的极值,则要求加加速度(2次函数)=0的解;
2.1 四次函数-费拉里公式
费拉里公式的核心在于将四次方程化简为一个三次方程和两个二次方程。一元四次方程的根是两个二次方程的根。
一元四次方程 :
一元二次方程:
z是一元三次方程的任一实根。
一元三次方程:
所以只要使用盛金公式解出三次方程的其中一个根z,将z代入两个二次方程中即可求出四次方程的四个根。
2.2 三次函数-盛金公式
一元三次方程 :
重根判别式:
总判别式:
- (1) A=B=0
- (2) Δ> 0
- (3) Δ= 0
- (4) Δ < 0
使用盛金公式对三次方程求解后,保留不含虚数i的解,即为所需要的。
3.案例演示
将上述计算公式写到程序的fc中,对5次方程的系数进行判断,分别计算出5次函数的位置、速度、加速度的极值。
程序源码开源,已经上传至附件中,纯数学函数关系,完全个人独立建模解算,需要自取,不太建议小白学习,演示案例如下。
|