万花尺matlab仿真(圆内旋轮线,异形齿轮)
0 前言
万花尺是一种常见的玩具,通常由两个齿轮组成。大齿轮固定,小齿轮在大齿轮内侧运动。小齿轮上有许多空隙点,将笔尖插入空隙点转动小齿轮,即可画出很漂亮的图形。
(网上随便找的图,如有问题请告知↑)
看着图形很好看,所以准备借此水一篇。接下来尝试用matlab进行仿真,模拟万花尺生成的曲线
1 圆形齿轮,单点
首先简单的绘制一个草图,建立数学模型:
内部小齿轮的公转角度设为 θ \theta θ,小齿轮的自转角度设为 ϕ \phi ϕ。假设小齿轮的自转角速度为 ω \omega ω,则根据理论力学知识,绿色的点为瞬心,小齿轮质心处的速度为 ω r \omega r ωr。
其中,R为大齿轮半径,r为小齿轮半径。
小齿轮质心处的公转角速度可以计算为: ω c = ω r R − r \omega_{c}=\frac{\omega r}{R-r} ωc=R−rωr
从地面坐标系上看,小圆质心可以用公转角度 θ \theta θ和公转角速度 ω c \omega_{c} ωc表示, θ 0 \theta_0 θ0为初始时刻小圆的角度。
ω c = ω r R − r \omega_{c}=\frac{\omega r}{R-r} ωc=R−rωr
θ = θ 0 + ω c t \theta=\theta_{0}+\omega_{c}t θ=θ0+ωct
因此,以大圆的圆心作为坐标原点,建立xy直角坐标系:
x c = R cos ( θ ) x_c=R\cos(\theta) xc=Rcos(θ)
y c = R sin ( θ ) y_c=R\sin(\theta) yc=Rsin(θ)
小圆初始的自转角度为 ϕ 0 \phi_0 ϕ0,则时间t后,自转的角度 ϕ \phi ϕ为:
ϕ = ϕ 0 − ω t \phi=\phi_{0}-\omega t ϕ=ϕ0−ωt
因此,圆盘上的一点,可以用小圆上的质心位置,加上一个旋转后的相对位置得到:
x b = x c + b cos ( θ ) x_b=x_c+b\cos(\theta) xb=xc