首页 上一页 1 2 下一页 尾页

电子齿轮的分子分母怎么选 点击:6805 | 回复:28



芳季

    
  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2009-04-22 22:53:21
楼主

伺服驱动器中的电子齿轮比α/β要求等于一个无理数时或其他数。在分子和分母最大取值32767内怎么拼凑才可以得到一个最极限接近目标值的分数值呢?比如π。我选22/7估计是比较接近了。但是有人又选到330/105更加接近。然而以后陆续有更接近的比值出现。直到一个极限接近值的出现。

现在我们怎么可以方便地算出这个极限值呢?




甲丁

  • 精华:0帖
  • 求助:0帖
  • 帖子:31帖 | 136回
  • 年度积分:0
  • 历史总积分:382
  • 注册:2006年12月12日
发表于:2009-04-22 23:04:35
1楼
各个牌子的伺服都有设置软件,输入几个参数即可得到答案

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2009-04-24 18:47:47
2楼
22/7是号称是约率,至少也用密率355/113.你问的,完全是一个数学问题啊.

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2009-04-24 19:28:34
3楼

对!非常对。完全仅属于一个数学问题,因为工作上用到。也只能在此借题发挥。相信一定也有人遇到过的。

刘生。我相信在32767的范围内一定还有比355/133精确的取值。我印象中有书籍记载,从两位数到6位数的分数π值。是供机械分度时计算挂轮用的。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-22 21:27:06
4楼

今天我又遇到这个问题了。好久了。一直没有解决。我不找他,他找我了。

自己顶起一下了。

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-23 00:31:07
5楼

      毫无疑问,在分子/分母值都被限定在1~32767的整数值范围内时,355/113是最接近于无理数π值的齿轮比,有兴趣的可以自己在Excel中做以下求解:

      假设目标电子齿轮比值为x,分子为n,分母为m,则分别对m取1到ROUND(32767/x,0)的整数值,计算y=ABS(n*m-x))结果并作排序(升序)处理,此时最小y值所对应的m值即为所求分母值,而n=ROUND(x*m,0)则为所求分子值。(  注:函数ABS、ROUND的功能可参见Excel中的帮助。)

      运动控制是一门综合性多学科交叉技术,要想真的玩转吃透,(高等)数学、物理、模电、数电、电力电子、电力拖动等等方面的基础知识都是不可或缺的。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-23 19:55:48
6楼
我先试试你的方法。再说。还有话说的。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-23 20:18:05
7楼

我试过了。试验是仅对π值实验。结果正确。但是在PLC上又有什么可能这样做呢?

我当初也再想。用Excel应该可以做。但是因为上面的原因没有深入看。

很感谢您的回帖。我少花很多时间。

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-24 01:59:07
8楼

算法都写清楚了,PLC程序总能写出来吧?

找一款能支持浮点数四则运算,并有取整、取绝对值、For循环、IF判断等函数功能的PLC就可以搞定,ST语言最适合做这种运算。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-07-24 17:24:46
9楼

刚查了一下,圆周率π的前几个渐近分数依次为: 3/1 , 22/7 , 333/106 , 355/113 , 103993/33102

另有说法:现今数学上己不难证明,在所有分母不超过16500的分数中,密率355/113是当之无愧的冠军,那么分母超过16500到103993之间,难道就没有比355/113更接近于π的渐近分数了吗?

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-24 19:55:56
10楼

瞎猜无益,波恩不妨用一段仿真程序把分母值从1到103993跑一遍,“有还是没有”的问题即可释然。

 

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-07-24 21:09:57
11楼
哈哈,布置作业了!?

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-24 21:40:46
12楼

我现在在用224做这个程序。分子分母最大值是32767。1.0~32767.0之间任意实数,做最接近的比值。离开这个范围暂时用不上。

程序已经初具规模了。下面程序快照:

 

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2010-07-26 18:03:05
13楼

还不如在网上找找看,找个几十位的π值,用PC来算,分母从1开始,乘以高精度的π,取整,再除以分母,比较误差大小就好分母从1开始,逐个试到103993,总可以找得出来最小偏差的值的.现在的PC,算它几个小时,不可能算不出来吧.

所有的计算要有几十位的精度,编程麻烦一点而已.

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-26 19:27:26
14楼
不单是π值的。只是举个例。在实用上发生的。比如算到了一个值1.938271。那应该取分子多少分母多少呢?19382/10000吗?

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-26 20:33:49
15楼

非也,想获得1.938271的比值,当分子/分母取值均在1~32767时,157/81才是最接近的。

用穷举法,在程序中对分母值值1~上限值循环比较(穷举至分母或分子值之一超限即可),取最小偏差值所对应的分子/分母值。

限于运算速度,一般的PLC穷举1~32767之间的数值都已不易,要是想穷举到103993,还是那些基于PC的控制器要更合适一些。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-26 22:29:43
16楼

我暂时不知道你的157/81是怎样得到的。但是首先我相信这个值。(使用EXCEL做吗?)

但是我用224运行我做的这个程序可以最多在10秒得到最接近的结果。

我不用穷举。原理是斜率的逼近。从1/1开始逼近。

但是明确一点。在单精度下我的程序未必能得到157/81这个值。但是就可以得到单精度下误差(假)等于0.0的结果。因为这是PLC浮点计算的能力了。

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-27 01:48:02
17楼

不好意思,Excel表格中的公式录入有点错误,目标值1.938271的最佳齿轮比应为32687/16864,其次是32530/16783。

10秒钟的运算速度,对于PLC控制来说已经够呛了。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-27 07:07:32
18楼
看需要情况啦。假如是要实时算电子凸轮这类型的是不可能的。但是想稍微改动比值修正系统运动就足够的了。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-07-27 08:53:17
19楼

我用上面的例子又试了一次计算。程序最终结果是32530/16783,偏差是1.192093e-7。用时23.8秒。

但是我又复核过结果。偏差是1.3067e-7。用计算器算的。不知道为什么PLC算出来的结果有差异。或者是单精度的结果吧。丁喜的结果是对的。

丁喜

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 924回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2002年8月30日
发表于:2010-07-27 12:57:07
20楼

闲来无事,编了段基于CodeSys V3.4的程序仿真跑了跑,对π值取3.14159265358979(小数点后12位),分子/分母取值范围1~2147483647(对应欧系伺服32位分子/分母值),程序跑了3分半钟,得出个结果144029661/45846065,此时误差值为2.76615175209827E-10。

对于32位的分子/分母值而言,能取得这样的精度基本能够满足大部分的应用,如果再要计算64位的分子/分母值,那就得更牛x的控制器才能算得过来了。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页