技术论坛

 CAM五次多项式

返回主题列表
作者 主题
Tech.Wing
侠圣

经验值:4760
发帖数:1379
精华帖:3
楼主    2017-09-27 11:30:21
主题:CAM五次多项式 精编帖 

CAM曲线用五次多项式生成,有什么优点呢?

除了可以使用单项式获得水平段外,还有哪些用途?

唯有发展,方为不变
kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
1楼    2017-10-24 20:43:44
精编帖  主题:回复:CAM五次多项式

CAM曲线?这是说的什么地方的事?我怎么不知道呢?这个5次方的曲线在哪?是现成的块?能再说说吗?看不懂耶。


不过,工程上,我们是做过实验的,一般要模拟一个现场的运动轨迹,比如说一个物体的运动轨迹,它主要是受运行速度产生的风阻和道路摩擦阻力,简单的模拟,就是用2次方程来描述。而实际采集到的阻力曲线,用数学多项式来拟合,5次方才能算是基本接近了实际。


在控制领域,模拟一个实际的运行轨迹,基本都是多项式方程,而多项式的方程,次数越高就越接近实际。谁说没有用呢?特别有用!过去受计算机水平限制,高次方程很少被用于工程,现在,能用多高就用多高。只要满足响应速度的需求,越高次方程计算,越接近实际。

我是你的朋友
嫂子别这样!
游侠

经验值:419
发帖数:31
精华帖:1
2楼    2017-10-31 09:38:52
精编帖  主题:回复:CAM五次多项式

楼上的回答好莫名其妙啊,人家问的是凸轮的描点曲线类型

kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
3楼    2017-10-31 20:51:38
精编帖  主题:回复:CAM五次多项式

是呀,我只看到说多项式的方程,没看懂其他。凸轮的曲线就说凸轮多好呢?一看就懂了。嘻嘻。


不过更说明了多项式描述曲线的用途了。

我是你的朋友
Tech.Wing
侠圣

经验值:4760
发帖数:1379
精华帖:3
4楼    2017-11-04 11:51:53
精编帖  主题:回复:CAM五次多项式

不明白多项式,什么规律,怎么设置相关参数。

测试中,多一级参数变化,会带来更大的曲线跨越。不知道怎么跟实际需要曲线关联的。。。

唯有发展,方为不变
kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
5楼    2017-11-04 16:39:25
精编帖  主题:回复:CAM五次多项式

我是这么理解:


任何一个负载特性,它的运动轨迹,可以通过一个平面曲线来描述。作为控制或仿真,首先是要能知道或取得这个负载特性的平面曲线,然后把它拿到控制系统里,通过高次方程运动形式去实时控制。实现与真实负载特性一致的效果。


通过实践发现,对于一个真实的负载特性曲线(运动轨迹),采用高次方程来拟合,是完全可能的。拟合的精度越高,要求的多项式方程次数也越高。这是正比关系。


五次方程一般能满足这个需求。仅此而已。


至于凸轮的仿真模拟,我就不知道了,因为没做过。但我们行业用这个模拟发动机在装车以后的路谱采集。五次方程能获得相当高的曲线拟合精度了。


至于如何使用方程在控制系统里的应用?如何设置参数?这就是很简单的事情了。首先,你要已知这个控制方程,他是你的控制对象,如果不知道,无从谈起其它。控制对象的运动轨迹可以是已知的需求,可以实测一个曲线,然后通过计算机变换成高次方程。然后在控制系统里讲这个方程的自变量参数关联,并对方城中的所有系数参数化设置。就OK了。这些内容属于工艺控制范畴。

我是你的朋友
Tech.Wing
侠圣

经验值:4760
发帖数:1379
精华帖:3
6楼    2017-11-07 09:02:49
精编帖  主题:回复:CAM五次多项式

假如凸轮曲线位置关系如下:

1、X=0;Y=0;

2、X=60;Y=80;

3、X=120;Y=100;

4、X=180;Y=220;

5、X=240;Y=300;

6、X=300;Y=300;

7、X=360;Y=360。

这样的曲线,直观的点关系,用多项式如何表达?


唯有发展,方为不变
kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
7楼    2017-11-07 09:16:21
精编帖  主题:回复:CAM五次多项式

ok,把这7个点放在一个y = f(x)坐标系里,描绘出一条曲线,然后把这套曲线用多项式方程来表示。这样的处理方法有很多,而且有专门的软件去做变换。或者自己写程序来实现。现在的计算机高级语言做这个都不是难事。


windows里的excel也能把曲线变换成多项式方程。一般我们都是通过VB.NET程序来实现这个转换的。这是软体工程师的事。

我是你的朋友
kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
8楼    2017-11-07 14:17:21
精编帖  主题:回复:CAM五次多项式

回复5楼的评论:


在自动化与驱动控制工艺里,利用数学模型仿真和模拟被控对象的运动轨迹,经常会遇到。这种方法应该了解和掌握。


过去上学时,总是很不解,为什么自动化专业学的数学要比其他专业更多,更难?特别是工程数学,矩阵,概率等等呢,搞得云山雾罩。现在通过工作才理解,搞控制数学是基础,是门槛。

我是你的朋友
lxm650
至圣

经验值:13622
发帖数:856
精华帖:103
9楼    2017-11-07 14:38:03
精编帖  主题:回复:CAM五次多项式

五次多项式能保证位置轨迹在拐角处的速度,加速度连续平滑,没有冲击,减小震动。 

Tech.Wing
侠圣

经验值:4760
发帖数:1379
精华帖:3
10楼    2017-11-08 21:34:41
精编帖  主题:回复:CAM五次多项式

这个议题,觉得有必要把它理理清,否则用不好这个数学定论功能。

唯有发展,方为不变
holdkcsxyz
至圣

经验值:13008
发帖数:1814
精华帖:22
11楼    2017-11-08 22:02:20
精编帖  主题:回复:CAM五次多项式

1:你提到的方法是很经典,很成熟的处理方法,计算上全化成无量纲的0.0-1.0的实数参与运算(类似电力系统的标幺值计算)。

2:位置-时间的函数关系化成主位置(Y)-从位置(X)的关系。

3:解5次多项式的系数时缺少一个方程,加上跃度连续且可微这个约束刚好解出所有的系数,间接证明5次多    项式可以使跟随运动更平滑。

4:一般需要曲线非对称以达到加速范围小减速范围大,所以选择3,5,7而非2,4,6多项式。

5:也有用7次的或者Fourier多项式的(Fourier理论上优于Taylor的)。

芳季
至圣

经验值:66574
发帖数:14746
精华帖:100
12楼    2017-11-08 22:56:20
精编帖  主题:回复:CAM五次多项式

这么个由浅入深的理解。

y=kx+b这条直线只能经过两个点。你给出的这数组可以用这个方程拟合这些点成为一条曲线。直接就是直线连接相邻的两个点可以了。这曲线显然只是一条折线。

y=ax^2+bx+c这条线抛物线一定可以经过你给出的三个点。同样可以用这条曲线拟合你的数组。

y=ax^3+bx^2+cx+d可以经过四个点。

y=ax^4+bx^3+cx^2+dx+e可以经过五个点。这条式是不是有五个不能再合并的项?五项式的来历。

用这条式的曲线去拟合你给出的任意五个点,这意味着图形虽然仅仅显示两个点之间的曲线,但是它可以一直延伸到以后的三个点。也就是它的趋势;趋势的趋势;趋势的趋势的趋势已经延伸到很远。

你连接AB两点用这条曲线,AB点之间已经有这条曲线了,它的极限是到达E点,但是此时仅仅画出AB两点之间的这部分曲线。

连接BC两点的时候,又用另外的一条五项式,它又可以在与前面那条曲线一部分基本重合的情况下可以延伸到F点。这样的话,两道曲线之间的相交处的变化率就趋于相等了。也就是平滑。

一直用这个规律,用现成的两个点加上未来的3个点做一条五项式,拟合当前两个点之间的曲线,就可以把你数组里的点连成一条曲线。

这只是一个很入门很入门的原理。绝对不代表实际。

这个好处是由于运算简单,运算速度快,生成曲线容易。

例子这样的方程曲线是有限制的,你别弄个迂回曲线就可以了。就是说一个Y值有两个X的可能,或者一个X值有两个Y的可能。(不过凸轮是不存在这样的曲线的)

楼主提到的单项式可以生成水平段,其实就是y=k,这就是一条水平线。这就是只有一项,连X都没有。

Tech.Wing
侠圣

经验值:4760
发帖数:1379
精华帖:3
13楼    2017-11-09 15:47:34
精编帖  主题:回复:CAM五次多项式

谢谢芳季先生的引浅入深,大概知道多项式计算有什么优势了,类似前馈,在未到达的时候,已经规划好了到达后面2~3个点的路径,不会显得非常急加减速去走直线。


实际应用中,运用多项式,调试运行,花的时间会比直线段多很多吧。


但是能把系统最高的效率发挥出来,平滑顺畅。。。


至于多项式,还是需要工具计算参数的,如Excel。

唯有发展,方为不变
kdrjl
至圣

经验值:136373
发帖数:34920
精华帖:435
14楼    2017-11-09 16:42:00
精编帖  主题:回复:CAM五次多项式

@Tech.Wing 回复你对7楼发言的回复:


多项式模拟方程,有两种形式,适用于传动控制工艺。一种是,已知曲线坐标的几个点,把它变换成多项式的方程,然后再把方程系数置于控制系统的相应多项式参数里;一次性的曲线设置植入;另外一种是,上位机(工控计算机)自己通过编程软件把已知的几个点,换算成多项式方程,由通讯形式输入控制器的相关参数里。这样的做法,更多的是用于实时更新曲线参数。自动化的多项式方程通讯控制。

我是你的朋友
VX2006
侠圣

经验值:3145
发帖数:229
精华帖:11
16楼    2017-12-21 00:35:48
精编帖  主题:回复:CAM五次多项式

因为位置,速度,加速度的要求,所以用5次多项式拟合。11楼也说了方程能解出多项式的系数。

努力学习,提高技术
VX2006
侠圣

经验值:3145
发帖数:229
精华帖:11
17楼    2017-12-21 10:21:11
精编帖  主题:回复:CAM五次多项式

龙格现象

在计算方法中,有利用多项式对某一函数的近似逼近,这样,利用多项式就可以计算相应的函数值。例如,在事先不知道某一函数的具体形式的情况下,只能测量得知某一些分散的函数值。例如我们不知道气温随日期变化的具体函数关系,但是我们可以测量一些孤立的日期的气温值,并假定此气温随日期变化的函数满足某一多项式。这样,利用已经测的数据,应用待定系数法便可以求得一个多项式函数f(x)。应用此函数就可以计算或者说预测其他日期的气温值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越准确。

中文名

龙格现象

外文名

Runge phenomenon

发现者

龙格

定义

利用多项式对某一函数的近似逼近

简介

例外发生了:龙格在研究多项式插值的时候,发现有的情况下,并非取节点(日期数)越多多项式就越精确。著名的例子是f(x)=1/(1+25x^2).它的插值函数在两个端点处发生剧烈的波动,造成较大的误差。究其原因,是舍入误差造成的。

具体的情况可参考下列Mathematica程序:

n = 10; x = Range[-1, 1, 2/n]; y = 1./(1 + 25 x^2); p =

Transpose[{x, y}];

Clear[t]; f = LagrangeInterpolation[x, y, t];

Show[

Plot[{1./(1 + 25 t^2), f}, {t, -1, 1}],

ListPlot[p, PlotStyle -> PointSize[0.02]]

]

程序演示

Matlab 程序演示 (一)

代码

>> f=inline('1/6-y/30','t','y'); 

[t,y]=ode45(f,[0,5],[0]); 

plot(t,y) 

>> hold on 

plot(t,5-5*exp(-t/30),'r*')

下面是MATLAB中演示插值的M文件:


演示结果

%演示龙格函数的插值情况

for i=3:2:11

x=linspace(-1,1,i);

y=1./(1+25*x.^2);

p=polyfit(x,y,i-1);

xx=-1:0.01:1;

yy=polyval(p,xx);

plot(xx,yy,'b');

hold on;

grid on;

end;

plot(x,1./(1+25*x.^2),'r');

运行效果如右图

图中红色的才是真正的函数图形。一般把这种次数越高而插值结果越偏离原函数的现象称为龙格现象。所以在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值。

努力学习,提高技术
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。