把‘从零开始’大侠的 ‘凸轮逆向小实例’写成了小程序
本帖最后由 米兰的小铁匠 于 2022-4-20 11:25 编辑从零开始大侠分享了详细的数学算法,原贴地址:http://jixietop.cn/forum.php?mod=viewthread&tid=44239
小程序见附件,会调用Excel读写数据,附上了两个txt版本的实例数据。
输入3601个凸轮轮廓点坐标和滚子直径,会算出滚子轨迹。右边四个按钮分别计算滚子位移,速度,加速度和跃度曲线。(假设从动件直线往复运动,且直线运动轴心延长线经过凸轮转动中心)
exe程序无需安装,直接运行。在家里台式机和公司笔记本运行都没有问题,但是在2010年买的老笔记本上报错了。
问题点:
1. 速度问题。 程序频繁调用Excel读写 3601个点坐标,运算速度比较慢。 2. 精度问题。算到位移曲线没有大问题,后面求导用微分五点公式,三阶导曲线糊了。把同样的位移曲线(angle-lift 3601个坐标点)输入到商业软件VT Design里面,精度明显好很多,速度也超快。(它用的什么算法??)
讨论: 型线正向设计目前很多软件都能做。 设定不同的分段和边界,能生成位移到跃度的四条曲线。 自己写码(基于数值算法)能正向设计这四条曲线吗? 例如,第一步生成四条简谐曲线,然后设定边界条件调整这些曲线,比如30度的速度值,90读的位移值,调整后不再是间谐了,但对应的导数关系还对应,这个难吗,有什么思路,或者读哪些资料??请大侠指教。@从零开始@螺旋线@crazypeanut@2266998
图一:由凸轮轮廓计算滚子轨迹图二:计算滚子轨迹位移-速度-加速度-跃度曲线图三:VT Design界面。 蓝色部分为是正向设计的曲线(一个周期),灰色是根据小程序逆向反推的曲线(两个周期)。把反向计算的位移/角度曲线输入到VT Design会自动生成各阶导数,可以看到1. 反向算法与原始曲线贴合度很高;2. 第3阶导数曲线明显好于小程序的结果。
如果你最终目的只是画出图表的话,建议用LabVIEW,那个读数据速度更快。你要知道excel读格子的数据的底层是面向格子这个object进行转入转出,而LabVIEW或者其他高级语言是面向stream进行转入转出,所以更快。这里推荐LabVIEW而不是其他高级语言是因为前者在图表显示上更便捷,可以避免很多坑 用matlab也可以做,而且更快更方便,图表显示功能更多 好,都快上道了, glzme 发表于 2022-4-20 11:26
如果你最终目的只是画出图表的话,建议用LabVIEW,那个读数据速度更快。你要知道excel读格子的数据的底层是 ...
想尽量不用商业软件,就用操作系统和办公软件+自己写码 正向自动生成运动曲线是可行的, 至少我手上的这个这个德国软件是可以, 可以设定和调整关键点的各种边界条件,(速度加速度等), 自动生成曲线, 可以选取和变幻关键点之间的曲线类型.满足边界的svaj连续性, 读完norton手册之后, 你会发现他绝对也可以, 他们两者的思路略有不同.稍后(或许晚上)再说他们分别是怎么实现的. .
0.1度一分没有必要,1度一分就够用了。
页:
[1]