基于傅里叶级数设计平面绘图机构

灵感来源

三蓝一棕做的一期关于傅里叶级数的视频里面,展示了如何使用匀速旋转的矢量相加获得任意二维图形的方法。于是我想,这东西能不能用机械的方法实现出来呢?所以这个题目就变成了我课程设计的题目。

示意图

https://www.bilibili.com/video/BV1vt411N7Ti?share_source=copy_web

傅里叶级数相关理论

假设任意二维图像可以使用复函数f\left( t \right)表示,则它等于下述傅里叶级数

\displaystyle f\left( t \right)=\sum\limits_{n=-N}^{N}{{{c}_{n}}{{e}^{2\pi int}}}

其中复系数\displaystyle {{c}_{n}}=\int_{0}^{1}{{{e}^{-2\pi int}}f\left( t \right)dt}

综上,具体做法如下:

  1. 使用复函数形式表示图形(读取svg图像、自己手写)
  2. 使用数值积分计算复系数
  3. 将所有项相加

参数计算的MATLAB实现

生成\displaystyle f\left( t \right)

keypoint = zeros(7,2);

keypoint(1,:) = [300 0];
keypoint(2,:) = [-300 1/6];
keypoint(3,:) = [-300*cos(pi/3)-300*sin(pi/3)*1i 2/6];
keypoint(4,:) = [300*cos(pi/3)+300*sin(pi/3)*1i 3/6];
keypoint(5,:) = [-300*cos(pi/3)+300*sin(pi/3)*1i 4/6];
keypoint(6,:) = [300*cos(pi/3)-300*sin(pi/3)*1i 5/6];
keypoint(7,:) = [300 1];

f = @(t) interp1(keypoint(:,2), keypoint(:,1), t);

t = 0:.001:1;
s = f(t);
s_real = real(s);
s_imag = imag(s);
plot(s_real, s_imag);
axis equal

计算系数

c = complex(201, 1);
max_n = 100;
for n = -max_n:max_n
    ef = @(t) exp(-2*pi*1i*n*t) .* f(t);
    c(n+max_n+1) = integral(ef, 0, 1);
end

data = [];
m = 1;
for n = -max_n:max_n
    if abs(c(n+max_n+1)) > 20
        data(m, 1) = c(n+max_n+1);
        data(m, 2) = n;
        m = m + 1;
    end
end

绘图验证

figure;
t = 0:.001:1;
s = f_appr(t, data(:,1), data(:,2));
s_real = real(s);
s_imag = imag(s);
plot(s_real, s_imag);
axis equal

其中f_appr()函数如下

function [ s ] = f_appr( t, c, n )
%f_appr 傅里叶级数

s = 0;
for m = 1:length(n)
    s = s + c(m) .* exp(2*pi*1i*n(m)*t);
end

end

输出必要数据

output = [abs(data(:,1)) angle(data(:,1))*180/pi data(:,2)];

计算结果如下

原始图形
输出图形
矢量长度初始角度转速
44.421756575702930.0000044776831-4
136.783594086297-60.0000075560673-1
177.68707539474830.00000350727382
输出数据

机构设计

基础单元

机构由周转轮系单元组成,如下图

周转轮系单元

设左侧大齿轮的转速为n1、连杆转速为nH、右侧大齿轮转速为n2,则可以算出传动比如下

\displaystyle i_{12}^{H}=\frac{{{n}_{1}}-{{n}_{H}}}{{{n}_{2}}-{{n}_{H}}}=\frac{{{z}_{2}}}{{{z}_{1}}}

整体设计

机构整体原理图如下

机构原理图

已知

\displaystyle \left\{ \begin{matrix} {{n}_{1}}=0 \\ {{n}_{3}}=2\omega \\ {{n}_{4}}=-\omega \\ {{n}_{5}}=-4\omega \\ \end{matrix} \right.

可以算出

\left\{\begin{matrix} \displaystyle i_{13}^{H}=\frac{{{n}_{1}}-{{n}_{4}}}{{{n}_{3}}-{{n}_{4}}}=\frac{1}{3} \\ \displaystyle i_{46}^{H}=\frac{{{n}_{4}}-{{n}_{3}}}{{{n}_{6}}-{{n}_{3}}}=\frac{1}{2} \\ \end{matrix} \right.

容易看出,在所有齿轮中,惰轮2、5相比起其他齿轮结构更简单,更便于更换,故这两个齿轮在不发生根切的前提下,应采用较小的齿数,以保证其他齿轮的寿命较长。

设齿轮1、2、3的模数为2,齿数分别为72、17、24,则齿轮1、2、3的螺旋角为

\displaystyle {{\beta }_{123}}={{\cos }^{-1}}\left( \frac{\frac{{{m}_{123}}}{2}\left( {{z}_{1}}+{{z}_{3}} \right)+{{m}_{123}}{{z}_{2}}}{{{a}_{123}}} \right)=18.120156745567645

设齿轮4、5、6的模数为2,齿数分别为90、17、45,则齿轮4、5、6的螺旋角为

\displaystyle {{\beta }_{456}}={{\cos }^{-1}}\left( \frac{\frac{{{m}_{456}}}{2}\left( {{z}_{4}}+{{z}_{6}} \right)+{{m}_{456}}{{z}_{5}}}{{{a}_{456}}} \right)=17.990033046426266

机构平衡

从原理图可以看出

  • 机构静止时,机构自重会产生较大的倾覆力矩,这些力矩很大程度上由连杆的转轴承担
  • 机构在运动时,由于每一级都会进行平面运动,并且每增加一级,角速度会成倍增加,故会产生严重的附加动载荷

解决这两个问题的方法为:增加配重块使机构的质量分布平衡

通过在每一级连杆相对于齿轮方向上添加配重块,使得该级轮系的重心位于该级输入轴的轴线上

如此一来,每级轮系的输入轴就只需要承担下述载荷

  • 由机构自重产生沿轴向的正压力(主要)
  • 驱动轮系加减速、克服机构运动阻力的扭矩(次要)

可见通过机构平衡设计,轴的受力状况明显改善,故可以采用较细的轴进行驱动

零件设计

图纸

连杆1零件图

三维模型

齿轮1
齿轮2
齿轮3
齿轮4
齿轮5
齿轮6
轴1
盖板1
套筒1
连杆1
连杆2
连杆3
配重块1
配重块2

装配图

图纸

装配图

三维模型

正三轴测图
俯视图

运动仿真

运动仿真视频

总结

机构创新点

  • 可绘制任意二维图形
  • 图形精度可控
  • 机构无冲击、无附加动载荷
  • 零件复用程度高

目前尚存在的不足

  • 机构平衡需要通过人工进行补偿
  • 当选取级数增加时,机构尺寸成倍变小,造成设计困难
  • 由于缺乏明确的应用场景,难以对机构各部件强度进行校核
  • 目前配重块以串联形式叠加,当其数目较多时易发生弯曲变形

感想

通过三周的专业课程设计,我完整体验了从寻找创新思路、设计机构原理、设计各零件、整体装配到最后的运动仿真这一系列过程,将自己大学四年学到的机械工程知识综合运用到其中,我受益匪浅。

但是,在设计过程中,也碰到了不少的困难。首先是一开始选题的迷茫,机械设计体现在生活的方方面面,给我一种眼花缭乱的感觉,常常觉得自己想出来的设计思路早就有人实现过了。其次是在进行零件设计的时候,感觉机械设计课程上的知识很难应用到具体的设计中,主要体现在:课堂上学习的设计、校核方法仅适用于少数典型零件;并且各自为块,当机构整体零件数目增加时让人无从下手;减速箱的设计是这四年中唯一一次成体系进行设计的工程,很大程度上依赖于课程设计指导书的指引,难以泛化到一般的设计过程。

虽然困难重重,但是最终能够设计到目前的水平我觉得也已经很满足了。在进行原理设计的时候,将傅里叶级数应用到设计过程使我实实在在体验到创新的乐趣;另外,图纸、三维模型、运动仿真的制作也觉得得心应手,完成之后颇有成就感。在最后看见自己设计的机构按照预期工作之后,我就知道这三周的努力非常值得。

1人评论了“基于傅里叶级数设计平面绘图机构”

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据