步行机器人设计说明书
机械2002级《机械设计》课程报告
(超越杯参赛作品)
机械6班
林群煦 游家训 叶强 陈世浩 祖克珂
20021780
指导老师:冯春 2005.5.31
目录
一:问题的提出,设计要求及有关数据--------------------------------------------------2 二:设计原理与方法----------------------------------------------------------------------------2
1:执行机构的型综合--------------------------------------------------------------------2 ⑴越障机构的方案确定:----------------------------------------------------------------2
⑵平地转向移动机构:-------------------------------------------------------------------4
2:执行机构的尺寸确定-----------------------------------------------------------------5
⑴越障机构的参数设计计算:------------------------------------------------------------5 ⑵平地转向移动机构的参数设计计算:--------------------------------------------------6 ⑶机器人尺寸参数确定:-----------------------------------------------------------------6
3:执行机构的运动和力分析------------------------------------------------------7
⑴平地步进机构:------------------------------------------------------------------------ 7 ⑵斜坡步进机构:-----------------------------------------------------------------------14 ⑶车轮运动和车体转向分析:----------------------------------------------------------15 ⑷分析压力角:--------------------------------------------------------------------------17
4:机械传动方案确定----------------------------------------------------------------------17 三:设计结果------------------------------------------------------------------------------------19
⑴创新点:--------------------------------------------------------------------------------20 ⑵不足之处及改进方向:-------------------------------------------------------------20 ⑶设想:-----------------------------------------------------------------------------------21 四:设计总结-----------------------------------------------------------------------------------21 五:参考书目-----------------------------------------------------------------------------------21 六:附录------------------------------------------------------------------------------------------21
一 问题的提出:现代陆地交通工具大多采用轮式和履带结构。轮式车辆具有运动灵活和速度高等特点,而履带结构的车辆具有强大的爬坡,越障和通过沼泽能力。然而,轮式车辆爬坡,越障和通过沼泽能力不强;履带结构的车辆机动性不如轮式车辆。为此,我们提出了一种集机动性和越障性以一体的机器人。
设计题目: 1 设计要求:
⑴ 基本工作要求:步行机器人既能行走又能爬楼梯,在平地的时候它还可以用轮子行驶和转向。该机器人采用无线遥控,当步行机器人加载一定的探测设备时,可以实现远距离的探测任务。遥控范围:不小于5米。尽量减小冲击。
⑵ 运动要求:平地运动速度:5米每分钟左右; 能爬过的阶级高度:8厘米左右; 爬行速度:1.5米每分钟左右;最小转向面积:80cm×80cm。
⑶ 动力要求:承载能力:机器人重量为15千克。有较好的传动性能。 2已知数据:
步行的直流减速电机:12伏,18瓦,空转20转每分钟; 驱动轮子的直流减速电机:12伏,3瓦,空转30转每分钟; 链条节距
p:10.24毫米;
; 整机尺寸范围:长*宽*高〈=500毫米*500毫米*400毫米〉 步速为30步每分钟左右,且步伐较精确。
二 设计原理: 1执行机构的型综合:
选择几种方案比较选择最优解。 ⑴越障机构的方案确定:
①同步转动机构
脚本语言4--转动副.swf
脚本语言4--转动.swf
杠BB 和杠AA 的作用是用来踏平地和爬楼梯的,它们上下运动交替前进;OO相当 于车体,它提供杠AB转动的力矩;杠AB用来联接杠BB 和杠AA,并传递转矩。 杠BB踏地时,可把它看成机架,杠AB绕着B点转动,形成了双曲柄机构,这时杠 BB不动,而杠AA向前运动;直到杠AA踏地时,杠AB绕着A点转动,形成了双曲柄 机构,这时杠AA不动,而杠BB向前运动。如此循环交替,机构整体向前运动。 杠AB绕着A点或B点转动时是同步的,并且转动距离较大,考虑到带传动的不同步
脚本语言5--同步转动机构.swf
性和齿轮不适合大距离的传动,选用链传动。
②不同步转动机构
OO相当于车体,它提供杠OA和杠OB转动的力矩;杠OA和杠OB绕O点独立 地转动。其基本原理与同步转动机构相同。
因为杠OA和杠OB能独立地转动,所以需要两个电机驱动。
选定越障机构:
两种机构的分析比较:同步转动机构简单,步伐协调一致,只需要一个电机可使之动作,因此,控制也较简单;不同步转动机构,利用了两个独立运动的转动副,可以调节步速, 但需要两个电机来驱动,控制变得复杂。
综合上述分析,选用同步转动机构较好,同时能达到设计要求。
⑵平地转向移动机构: ①两主动轮与两从动轮机构:
脚本语言8--移动.swf
车体前端有两个主动轮,后端有两个从动轮。两个主动轮的独立的前后运动带动 车体向各个方向运动。
②转向器加主动轮机构:
车体前端有一个转向器,后端有两个主动轮,并且两个主动轮同步运动。两个主动轮的 运动带动车体前后运动,转向器使车体转向。
选定平地转向移动机构:
两主动轮与两从动轮机构,转向较容易控制,也并不需要特殊的结构,只需使两个电机和两个主动轮联接即可,转向面积小;转向器加主动轮机构的前后运动较容易控制,而转向则难以把握好转向角度,转向器也需较大力矩和复杂的机构,转向面积大。
综合上述分析,选用两主动轮与两从动轮机构较好,同时能达到设计要求。
2 执行机构的尺寸综合: ⑴越障机构的参数设计计算:
①设计要求:能爬过的阶级高度:8厘米左右; 爬行速度:1.5米每分钟左右。 ②有关数据:大电机:12伏,18瓦,空转20转每分钟。
③参数设计计算:如下图所示,当杆AB处于垂直位置时,杆AA能爬上的障碍最高,同时,
杆AA上有斜板,能增加爬高高度。所以,最高爬高高度为杆AB长度和斜板高度之和。
因此,必须有lAB+h斜板≥8厘米(lAB
为杆AB的长度,h斜板为斜板高度)
脚本语言7--上下楼梯.swf
杆AB相对于点O转动一圈,机器人运动的距离为2lAB,采用大电机为动力,而考虑有负载时大电机的转速为15转每分钟,传动比采用1。因此,爬行速度为
2lAB×15转每分钟=30lAB米每分钟,有30lAB≥1.5米。
由lAB+h斜板≥8厘米和30lAB≥1.5米,得 当lAB=5厘米时,h斜板≥2厘米。 选择确定lAB=6厘米时,h斜板=4厘米。
⑵平地转向移动机构的参数设计计算:
脚本语言8--移动.swf
① 设计要求:平地运动速度:5米每分钟左右。 ②有关数据:小电机:12伏,3瓦,空转30转每分钟;
③参数设计计算:采用小电机驱动论子,而考虑有负载时大电机的转速为25转每分钟,传动
比
采
用
1
。
则
机
器
人
运
动
的
速
度
为
v=2πr×25转每分钟
有v
=50πr米每分钟(r为车论半径)。
=50πr米每分钟≥5米每分钟,得r≥3.14厘米
选r≥3.14厘米。
⑶机器人尺寸参数确定:
① 设计要求:最小转向面积:80cm×80cm。 ②参数的设计计算:
如上图所示,a表示机器人两个轮子的距离;b表示主动轮轮轴到主动轮轮轴的距离。 当两个主动轮反向时,机器人沿两个主动轮连线的中点转动,这时需要的转动范围为半径为
a
(2+b2的圆;当一个主动轮转动而另一个主动轮不转动时,机器人沿不转动的主动轮转动,2
这时需要的转动范围为半径为a2+b2的圆。
考虑最大尺寸,应有2a2+b2
3 执行机构运动和力分析 ⑴平地步进机构:
以A点为原点,建立直角坐标系,x轴的正方向为机器人的移动方向,y轴的正方向为垂直方向,当杠AB处于水平位置且杠BA指向x轴的正方向时开始计时。转角
脚本语言5--同步转动机构.swf
α=ωt=
2π
3
t(rad),lAB=0.06(m),A点,B点和O点的运动分析如下: 位置: A点:
当2kπ
≤α≤π+2kπ(k=0,1,2K)
{x
A=4kl=0.12ky
A
=0
当π+2kπ≤α≤2π+2kπ(k=0,1,2K)
2π{
xA=2l(k+1)+2lcos(ωt)=0.06(k+1)+0.06cos(3
t)
y2lsin(ωt)=−0.06sin(2π
A=−3
t)
B点: 当2k
π≤α≤π+2kπ(k=0,1,2K)
cos(ωt)=0.12k−0.06cos(2π{
xB=4kl−2l3
t)yωt)=0.06sin(2π
B=2lsin(3
t)
当π
+2kπ≤α≤2π+2kπ(k=0,1,2K)
{xB=2l+4kl=0.06+0.12k
y
B
=0
O点: 当2k
π≤α≤π+2kπ(k=0,1,2K)
{
x2πo=4kl−lcos(ωt)=0.12k−0.03cos(3
t)y=lsin(ωt)=0.03sin(2π
ot)
3
当π
+2kπ≤α≤2π+2kπ(k=0,1,2K)
{
xA=2l(k+1)+lcos(
ωt)=0.06(k+1)+0.032π
3
t)y=−lsin(ωt)=−0.032π
A3
t)
速度:
A点: 当2k
π≤α≤π+2kπ
VAx=VAy=0
当
π+2kπ≤α≤2π+2kπ
{
VAx=−2lωsin(ωt)=−0.04πsin(2π
3t)
VAy
=−2lωcos(ωt)=−0.04πcos(2π
3
t)
B点:
当2kπ≤α≤π+2kπ
{
VBx=2lωsin(ωt)=0.04πsin(2π
3t)
V=2lωcos(ωt)=0.04πcos(2π
By
3
t)
当π+2kπ≤α≤2
π+2kπ VAx=VAy
=0
O点:
当
2kπ≤α≤π+2kπ
{
VBx=lωsin(ωt)=0.02πsin(2π
3t)V=lωcos(ωt)=0.02πcos(2π
By
t)
3
当
π+2kπ≤α≤2π+2kπ
2π{
VAx=−lωsin(ωt)=−0.02sin(3t)VAy
=−lωcos(ωt)=−0.02cos(2πt)
3
加速度: A点:
当2kπ≤α≤π+2kπ
aAx=aAy=0
当
π+2kπ≤α≤2π+2kπ
{
a=2lω2cos(ωt)=0.08π
2
3cos(2πAx3
t)aAy
=−2lω2
sin(ωt)=−0.08π2
3sin(2π3
t)当
α=2kπ
{aAx=0
a
=+∞(−0.04π
Ay
3
⎯⎯→0)
当
α=π+2kπ
{aAx=0
a
=+∞(0⎯⎯→+0.04π
Ay
3
)
B点: 当
2kπ≤α≤π+2kπ
2lω2
cos(ωt)=0.08π2{aBx
=3cos(2π
3t)a
=−2lω2
sin(ωt)=−0.08π22π
By
3sin(3
t)
当
π+2kπ≤α≤2π+2kπ
10
aBx=aBy=0
当
α=2kπ
{aBx=0
a
π
By
=+∞(−
0.04⎯⎯→0)
3
当
α=π+2kπ
{aBx=0
a
By
=+∞(0⎯⎯→+
0.04π
3
)
O点:
2kπ≤α≤π+2kπ
=lω2cos(ωt)=0.04
π22π{aOx
3
cos(
3t)a
Oy
=−lω2
sin(ωt)=−0.04π2sin(
2π
3
3t)π+2kπ≤α≤2π+2kπ
{a=−lw2
cos(wt)=−0.04π22πOx
3cos(3t)
a
=lw2
sin(wt)=0.04π2Oy
3sin(2π3
t)
当
α=2kπ
{aOx=0
a
0.04π0Oy
=+∞(−.04π
3⎯⎯→+3
)
当
α=π+2kπ
当
当
11
{a
a
Ox=0
Oy
=+∞(−
0.04π0.04π ⎯⎯→+)33
构件AOB,A1OB1和BB1的整体受力图
构件一(BB1)的受力图
构件BB1受力
F21,y+F31,y−5=m1a1y
{
F21,X+F31,X=m1a1x求矩,有F21,y=F31,yF21,X=F31,X
12
解得
2π0.08π2
{
0.5×−sin(t)]+5F21,y
=F=m1a1y+5[02π31,y.02π22
=2=2.5−3sin(
3t)0.08π2
2π
F21,X
=Fm0.5×cos(t)2
1a1x31,X=0.02π2π2
=2=3cos(
3t)
M1=0.03cos(
2π2π{
3t)(F,,
oy+F13,y)+0.03sin(3t)(Fox+F13,x)F,ox=F13,x
+m3a3x+F链2
m,
3a3y+F13,y+75=Foy
0.025F链2=M1
解得:
3×10−31cos(
2πt)[−1.62×1033+2.105×1031sin(2πt)]
F,ox=
6sin(23
t)−5
{
F,
77.5−1.053sin(2πoy=3
t)
−12cos(2πt) M1=
6sin(23
t)−5
−480cos(2π
tF=
)
链16sin(23
t)−5
13
F12,Y+m2a2y+75=F0,y+F链1cos300F12,x+m2a2x=F链2+F链1sin300+F0,xM=0.025(−F链2+F链1)
M=0.03sin(2π
3
t)(F2π0,x+F12,x)+0.03cos(3t)(F0,y+F12,y)
解
F2πo,x=3×10−31cos(
3t)(−4.75×1033sin(2π3t)+8.22×1033cos(2π3t)+1.59×1034+6.32×1031sin2(2π
3t)+1.09×1032sin(2π3t)cos(2π3t))/((3sin(2π2π2π
3t)+5.196cos(3t)+5)(6sin(3
t)−5))
得
{
F10−31×(−2.3×1033sin(2πt)+4.3×1033cos(2π
t)−3.88×1033+3.16×1031sin22πo,y=−33
(3t)
+5.5×1033sin(2π3t)cos(2π2π2π
3t))/(3sin(3t)+5.2cos(3t)+5)
M=12cos(2π2π2π3t)(15sin(3t)+5.2cos(3t)−5)/((3sin(2π2π2π
3t)+5.2cos(3t)+5)(6sin(3t)−5))
F2π3t)/(3sin(2π3t)+5.2cos(2π
链1=960cos(3t)+5)
⑵ 爬行机构分析:
14
3ππt,θ= θ为常数,并且−≤θ≤。α=ωt=2644
π
π
6
,,πxAy相对于直角坐标系xAy绕A点转动了θ=的角度,所以在研究时应进行以下 直角坐标系
转换:
{
x=x,cosθ−y,sinθ=
31x,−y,
2213,,,
y=xsinθ+ycosθ=x+y,
22
⑶车轮运动和车体转向分析:
30转
a=0.35m,v=4cm×=0.04π(m/s)
分钟
A 当左右轮运动速度为
B当左轮运动速度为0,当右轮运动速度为
±0.04π(m/s)时,可以把机器人看成一个整体。
+0.04π(m/s)时,机器人沿
A点转动,
vv
vB=+0.04π(m/s),则ω车==+≈0.36(rad/s)(逆时针为正);现在
aa
以A点为原点,建立直角坐标系:
15
v
任一点C(x,y)的速度的大小为
a
x2+y2=0.36x2+y2(m/s),且
{
C
vCx=−
v
x2+y2sinθ=−0.36x2+y2sinθ(m/s)a
vvCy=x2+y2cosθ=0.36x2+y2cosθ(m/s)
a
(θ为AB与+x方向的夹角)
⎯⎯→
当左轮运动速度为0,当右轮运动速度为
−v
时,机器人沿A点转动,
vB
=
−v=
vBv
−0.04π(m/s),则ω车==−=−0.36(rad/s)(逆时针为正);
aa
D 当左轮运动速度为
+v
,当右轮运动速度为0时,机器人沿B点转动,
vA=+v=+0.04π(m/s),则ω
E 当左轮运动速度为
车
vv
=−=−=−0.36(rad/s)(逆时针为正);
aa
−v
,当右轮运动速度为0时,机器人沿B点转动,
vA=−v=
针为正);
vAv
−0.04π(m/s),则ω车=−=+=+0.36(rad/s)(逆时
aa
F 当左轮运动速度为+v
,当右轮运动速度为
−v时,机器人沿A点和B点连线的中点转动,
vA
=
+v=+0.04π(m/s)
,
vA
=
−v=−0.04π(m/s)
,则
v
ω车=+2=+0.72(rad/s)(逆时针为正)
;
a
G 当左轮运动速度为−v
,当右轮运动速度为
+v时,机器人沿A点和B点连线的中点转动,
vA=−v=−0.04π(m/s),vA=+v=+0.04π(m/s),则
16
v
ω车=−2=−0.72(rad/s)(逆时针为正)
;
a
⑷分析几个极限位置,最小压力角为,最大压力角为,当杆运动到左极限时压力角是,当运动到右极限位置时,压力角也是,当运动到与Y轴重合时得到最大压力角—— 可见,该机构传力特性比较好。
4机械传动方案确定
比较几种传动方案.传动方案一:带传动,一般适于空间较大,弹性滑动是平带传动的固有特 性,传动不精确;同步带传动精确,但制造和安装精度要求较高,中心距要求较严格。
传动方案二:齿轮传动,形闭合,效率高(0.98~0.99);结构紧凑,外廓尺寸小;瞬时i 为常
传动方案三:链传动,无弹性滑动,结构紧凑,压轴力小(啮合传动——张紧力小)。可在高温、潮湿等恶劣环境下工作。适于远距离传动。η高。 综合上述,采用链传动
① 设计要求:机器人采用链条传动,传动比是1,有三个链轮,前后轮同步驱动,实现了步伐的
17
一致和机体的平稳;链条布置与张紧合理;三轴平行,三轮共面;不可过分张紧;链轮与轴联接可靠;避免速度不均匀性和磨损,防止脱链。 ② 有关参数:链条节距③参数的设计计算:
p:10.24毫米。
A 链轮齿数:采用较多链轮齿数、较小链节距对降低动载荷有利,但容易脱链;齿数少时,速度不均匀性和磨损增大。当链速在0.6到3米每秒时,链齿数可取15到17。机器人的链速较低,故取链齿数15。 B 分度圆直径:d=
p10.24
==49.25mm 00
180sin12sin
15
18001800
=10.24mm×(0.5+cot)=53.2mm 齿顶圆直径da=p(0.5+cotz15
C中心距:当链速不变,中心距小,链节数少的传动,链的磨损较快;中心距大,链节数多的传动,链的寿命长,但会使传动不平稳。推荐中心距a=(30~50)p=307.2~512mm。因为有三个链轮,前后轮同步驱动,所以应用以下布置。同时考虑机器人长度不应过长`,选择两个从动链轮的中心距为233mm。为防止脱链,包角应接近120度。则主动链轮和从动链轮的距离接近233毫米。设h为主动链轮中心与两个从动链轮中心连线的距离。则(毫米。得,
18
2332
)+h2应接近2332
h≈163毫米。设计时,张紧方法为主动轮可以上下移动。
D 链总长和链节数: 链总长:
L总=弧FB+弧BC+弧DE+LAB+LCD+LEF
=0.04925π+0.233×3=0.8537(m)
链节数:
m=L总0.8537p=0.01024
≈83.37(取偶数84节)
E 压轴力:F≈F2π链1=
960cos(3t)/(3sin(2π2π
3t)+5.2cos(3
t)+5)
三 设计结果:
机器人的效果图和事物图如下。
19
运动和力分析结果,xA−α,yA−α,VAx−α,VAy−α,aAx−α,aAy−α
x−α,ya−α,VAx−α,VAy−α,aAx−α,aAy−α
xO−α,yO−α,VOx−α,VOy−α,aOx−α,aOy−α T−α,T1−α 从位移曲线可以看出,A,B点运动时停时动,O点几乎一直在运动。在两腿交换位置,加速度为无限大,因此产生较大冲击。力矩也出现了波动。压力角变化较大。 ⑴创新点:
步行机器人的特点是既能行走又能爬楼梯,在平地的时候它还可以用轮子行驶和转向。这样,步行机器人实现了平地快速转移和越障的功能。其行走时就象人行走一样,具有一定的仿生意义。
该机器人采用无线遥控,当步行机器人加载一定的探测设备时,可以实现远距离的探测任务。 创新是现代设计的重要因素,步行机器人以其独特的构造突破了传统的车辆结构观念,实现了新的创造。
步行机器人的创新之处在于采用曲轴带动脚板运动,使它的动作象人走路一样。该机器人采用链条传动,传动比是1,有三个链轮,前后轮同步驱动,实现了步伐的一致和机体的平稳。脚板包括平轴和斜轴,斜轴是用来踏第一阶楼梯的,平轴是用来踏上楼梯后的阶梯的。内外脚板的交替升降,产生了强烈的节奏感。在平地的时候它还可以用轮子行驶和转向。
⑵不足之处及改进方法(发现问题和解决问题):
① 振动冲击大,在交换脚板时,由于加速度大,也即脚板的急停和急动, 产生冲击力。措施:加固车体和支架,采用有一定弹性的塑料隔板,电路板垫上海绵。
② 零件加工精度不够高,设计不尽合理,装配手段差,产生相阻和松散现象。措施:加防松
垫片拧紧,调试好后再紧固。
③ 重心高,爬坡时尤为明显。措施:加长脚板,加螺钉;用电瓶平衡重量。 ④ 轮子有点打滑。措施:在轮子上加防滑钉。
⑶设想:可改进为新型轮椅,可走平地也可以爬楼梯。加设减振器,有提升装置,使人在斜坡中也能坐平;改进为探险救灾车,智能,有人体感应器。
四:设计总结
感谢冯春老师,他给予我们长期的大力的支持,还提供了许多宝贵的意见。感谢卢存光老师提供了实验场地和器材。感谢帮助过我的老师和同学。
体会:
⑴ 学会了许多许多书本上学不到的东西:如何和人交流,还价;如何减小制造的复杂程度和成本;如何寻找产品,寻找替代的标准件;如何作木工;学会了一条道理:不应该只会空想,更重要的是要动手,发现问题解决问题。 ⑵ 合作是很重要的。要经常交换意见。 ⑶ 学习更广泛知识是很必要的。
⑷ 一定要坚持,不能灰心,相信努力会有回报的。
五 参考书目:
《链条链轮产品设计与检验》 孟繁忠编著北京 机械工业出版社,,1996.8 《链条传动及制造》 张经源著 杭州:浙江大学出版社,1989.7 《链条输送机》 王义行主编 北京:机械工业出版社,,1997.3 《链传动》 郑志锋等编著 北京:机械工业出版社,1984.12 《链传动设计与应用手册》 郑志峰主编 北京:机械工业出版社,1992.9 《机械设计禁忌500例》 吴宗泽主编 北京:机械工业出版社,1997.1 《机械设计》 吴宗泽等编著 高等教育出版社 《机械设计课程设计》 陈秀宁等编著 杭州:浙江大学出版社,
六:附录
A,B,O点的位移: A点:
x坐标
x=0;t=linspace(0,1.5);plot(t,x) hold on
x=0.06+0.06*cos(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,x) ,xlabel('t(s)'),ylabel('xA(m)') y坐标
y=0;t=linspace(0,1.5);plot(t,y) hold on
y=-0.06*sin(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,y),xlabel('t(s)'),ylabel('yA(m)') B点: x坐标
x=-0.06*cos(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,x) hold on
x=0.06;t=linspace(1.5,3);plot(t,x),xlabel('t(s)'),ylabel('xB(m)') y坐标
y=0.06*sin(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,y) hold on
y=0;t=linspace(1.5,3);plot(t,y),xlabel('t(s)'),ylabel('yB(m)') O点: x坐标
x=-0.03*cos(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,x);plot(t,x),xlabel('t'),ylabel('xO') hold on
x=0.06+0.03*cos(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,x),xlabel('t'),ylabel('xO') ,xlabel('t(s)'),ylabel('xO(m)') y坐标
x=0.03*sin(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,x),xlabel('t'),ylabel('xO') hold on
x=-0.03*sin(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,x) ,xlabel('t(s)'),ylabel('xO(m)')
A,B,O点的速度:
A 点 x坐标
v=0;t=linspace(0,1.5);plot(t,v) hold on
v=-0.04*3.14159265*sin(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('Vax(m/s)') y坐标
v=0;t=linspace(0,1.5);plot(t,v) hold on
v=-0.04*3.14159265*cos(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('Vay(m/s)') B点: x坐标
v=0.04*sin(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,v),xlabel('t'),ylabel('vAx') hold on
v=0;t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('vAx(m/s)')
y 坐标
v=0.04*cos(2*3.15149265*t/3);t=linspace(0,1.5) hold on
v=0;t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('vBy(m/s)')
O点: x坐标
v=0.02*sin(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,v) hold on
v=-0.02*sin(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('vOx(m/s)') y坐标
v=0.02*cos(2*3.15149265*t/3);t=linspace(0,1.5);plot(t,v) hold on
v=-0.02*cos(2*3.15149265*t/3);t=linspace(1.5,3);plot(t,v) ,xlabel('t(s)'),ylabel('vOy(m/s)')
A,B,O点的加速度:
A点: x坐标
a=0;t=linspace(0,1.5);plot(t,a) hold on
a=-0.08*3.14159265*3.14159265*cos(2*3.15149265*t/3)/3;t=linspace(1.5,3) ;plot(t,a) ,xlabel('t(s)'),ylabel('aAx(m/s^2)') y坐标
a=0;t=linspace(0,1.5);plot(t,a) hold on
a=0.08*3.14159265*3.14159265*sin(2*3.15149265*t/3)/3;t=linspace(1.5,3);plot(t,a) ,xlabel('t(s)'),ylabel('aAy(m/s^2)') B点: x坐标
a=0.08*3.14159265*3.14159265*cos(2*3.15149265*t/3)/3;t=linspace(0,1.5);plot(t,a) hold on
a=0;t=linspace(1.5,3);plot(t,a) ,xlabel('t(s)'),ylabel('aBx(m/s^2)')
y坐标
a=-0.08*3.14159265*3.14159265*sin(2*3.15149265*t/3)/3;t=linspace(0,1.5);plot(t,a) hold on
a=0;t=linspace(1.5,3);plot(t,a) ,xlabel('t(s)'),ylabel('aAy(m/s^2)') O点: x坐标
a=0.04*3.14159265*3.14159265*cos(2*3.15149265*t/3)/3;t=linspace(0,1.5);plot(t,a) hold on
a=-0.04*3.14159265*3.14159265*cos(2*3.15149265*t/3)/3;t=linspace(1.5,3);plot(t,a) ,xlabel('t(s)'),ylabel('aOx(m/s^2)') y坐标
a=-0.04*3.14159265*3.14159265*sin(2*3.15149265*t/3)/3;t=linspace(0,1.5);plot(t,a) hold on
a=0.04*3.14159265*3.14159265*sin(2*3.15149265*t/3)/3;t=linspace(1.5,3);plot(t,a) ,xlabel('t(s)'),ylabel('aOy(m/s^2)')
F21,y
f=2.5-0.02*3.14159265*3.14159265*sin(2*3.15149265*t/3)/3;t=linspace(0,3);plot(t,f) ,xlabel('t(s)'),ylabel('F21,y(N)')
F21
,x
f=0.02*3.14159265*3.14159265*cos(2*3.15149265*t/3)/3;t=linspace(0,3);plot(t,f) ,xlabel('t(s)'),ylabel('F21,x(N)')
F0
,x
fplot('3*(10^-31)*cos(2*3.14159265*t/3)*(-4.75*10^33*sin(2*3.14159265*t/3)+8.22*10^33*cos(2*3.14159265*t/3)+1.59*10^34+6.32*10^31*sin(2*3.14159265*t/3)*sin(2*3.14159265*t/3)+1.09*10^32*sin(2*3.14159265*t/3)*cos(2*3.14159265*t/3))/((3*sin(2*3.14159265*t/3)+5.196*cos(2*3.14159265*t/3)+5)*(6*sin(2*3.14159265*t/3)-5))',[0,3]) ,xlabel('t(s)'),ylabel('Fo,x(N)')
F0,y
fplot('-10^(-31)*(-2.3*10^33*sin(2*3.14159265*t/3)+4.3*10^33*cos(2*3.14159265*t/3)-3.88*10^33+3.16*10^31*sin(2*3.14159265*t/3)*sin(2*3.14159265*t/3)+5.5*10^33*sin(2*3.14159265*t/3)*cos(2*3.14159265*t/3))/(3*sin(2*3.14159265*t/3)+5.2*cos(2*3.14159265*t/3)+5)' ,[0,3]),xlabel('t(s)'),ylabel('Fo,x(N)')
F
0,,x
fplot('3*(10^-31)*cos(2*3.14159265*t/3)*(-1.62*10^33+2.105*10^31*sin(2*3.14159265*t/3))/(6*sin(2*3.14159265*t/3)-5)' ,[0,3]),xlabel('t(s)'),ylabel('F`o,x(N)')
F
,0,y
fplot('77.5-1.053*sin(2*3.14159265*t/3)',[0,3]),xlabel('t(s)'),ylabel('F`o,y(N)') M
fplot('12*cos(2*3.14159265*t/3)*(15*sin(2*3.14159265*t/3)+5.2*cos(2*3.14159265*t/3)-5)/((3*sin(2*3.14159265*t/3)+5.2*cos(2*3.14159265*t/3)+5)*(6*sin(2*3.14159265*t/3)-5))',[0,3]) ,xlabel('t(s)'),ylabel('m(Nm)')
M1
fplot('-12*cos(2*3.14159265*t/3)/(6*sin(2*3.14159265*t/3)-5)',[0,3]) ,xlabel('t(s)'),ylabel('M1(Nm)')
压力角:
0~0.75S
fplot('abs(atan((2.5-0.02*3.14159265*3.14159265*sin(2*3.14159265*t/3))/(0.02*3.14159265*3.14159265*cos(2*3.14159265*t/3)))*180/3.14159265-90-60*t)',[0,0.75]) ,xlabel('t(s)'),ylabel('a(du)')
0.75~1.5S
fplot('abs(atan((2.5-0.02*3.14159265*3.14159265*sin(2*3.14159265*t/3))/(0.02*3.14159265*3.14159265*cos(2*3.14159265*t/3)))*180/3.14159265+90+60*t)',[0.75,1.5]) ,xlabel('t(s)'),ylabel('a(du)')
1.5~2.25S
fplot('abs(atan((2.5-0.02*3.14159265*3.14159265*sin(2*3.14159265*t/3))/(0.02*3.14159265*3.14159265*cos(2*3.14159265*t/3)))*180/3.14159265-90+60*t)',[1.5,2.25]) ,xlabel('t(s)'),ylabel('a(du)')
2.25~3S
fplot('abs(atan((2.5-0.02*3.14159265*3.14159265*sin(2*3.14159265*t/3))/(0.02*3.14159265*3.14159265*cos(2*3.14159265*t/3)))*180/3.14159265-270+60*t)',[2.25,3]) ,xlabel('t(s)'),ylabel('a(du)')
Flash原代码:
脚本语言5--转动和上下跳动Flash原代码:
onClipEvent (enterFrame) {
A = new _root.Point(100, 300, 0, 0, 0, 0); //定义A点坐标
M1 = new _root.Component(0, 0, 0, 130, 0, 0); //定义M1杠长
M2 = new _root.Component(0, 0, 0, 130, 0, 0); //定义M1杠长
B = new _root.Point(450, 300, 0, 0, 0, 0); //定义B点坐标
I = new _root.Point(600, -100, 0, 0, 0, 0); //定义I点坐标
_root.i =Number(_root.i)+Number(_root.i1); //i=i+i1
M1.beta = _root.i*Math.PI/180; // M1的转角等于iπ/180
M2.beta =Math.PI+_root.i*Math.PI/180; // M2的转角等于iπ/180+π
A.y=A.y-130*Math.abs(Math.sin(M1.beta)); //A.y=A.y−130sin(M1.beta),左边O点上下运动
B.y=B.y-130*Math.abs(Math.sin(M1.beta)); //B.y=B.y−130sin(M1.beta),右边O点上下运动 E = _root.Bar(A, M1, M1.q); //求杠AA左边点的坐标
F = _root.Bar(B, M1, M1.q); //求杠AA右边点的坐标
G= _root.Bar(A, M2, M2.q); //求杠BB左边点的坐标
H = _root.Bar(B, M2, M2.q); //求杠BB右边点的坐标
I.x=-_root.i+600; //背景运动
_root.drawline(I.x, I.y, I.x, I.y,100); //输出背景
_root.drawline(A.x, A.y, E.x,E.y,2); //输出左边AB杠
_root.drawline(B.x, B.y, F.x,F.y,4); //输出右边AB杠
_root.drawline(E.x, E.y, E.x,E.y,21); //输出右边AA杠
_root.drawline(G.x, G.y, G.x,G.y,22); //输出右边BB杠
}
上下楼梯Flash原代码:
onClipEvent (enterFrame) {
A = new _root.Point(100, 300, 0, 0, 0, 0); //定义A点坐标
M1 = new _root.Component(0, 0, 0, 130, 0, 0); //定义M1杠长
M2 = new _root.Component(0, 0, 0, 130, 0, 0); //定义M2杠长
B = new _root.Point(430, 220, 0, 0, 0, 0); //定义B点坐标
I = new _root.Point(600, -100, 0, 0, 0, 0); //定义I点坐标
_root.i =Number(_root.i)+Number(_root.i1); //i=i+i1
M1.beta = _root.i*Math.PI/180; // M1的转角等于iπ/180
M2.beta =Math.PI+_root.i*Math.PI/180; // M2的转角等于iπ/180+π
A.y=A.y-130*Math.abs(Math.sin(M1.beta)); //A.y=A.y−130sin(M1.beta),左边O点上下运动
B.y=B.y-130*Math.abs(Math.sin(M1.beta)); //B.y=B.y−130sin(M1.beta),右边O点上下运动 E = _root.Bar(A, M1, M1.q); //求杠AA左边点的坐标
F = _root.Bar(B, M1, M1.q); //求杠AA右边点的坐标
G= _root.Bar(A, M2, M2.q); //求杠BB左边点的坐标
H = _root.Bar(B, M2, M2.q); //求杠BB右边点的坐标
I.x=-_root.i+600; //背景X坐标的运动
I.y=0.25*_root.i+600; //背景Y坐标的运动
_root.drawline(I.x, I.y, I.x, I.y,100); //输出背景
_root.drawline(A.x, A.y, E.x,E.y,2); //输出左边AB杠
_root.drawline(B.x, B.y, F.x,F.y,4); //输出右边AB杠
_root.drawline(E.x, E.y, E.x,E.y,21); //输出右边AA杠
_root.drawline(G.x, G.y, G.x,G.y,22); //输出右边BB杠
}
按钮Flash原代码:
on(release){ _root.i1=-2;
}
on(release){ _root.i1=2;
}
on(release){ _root.i1=-4;
}
on(release){ _root.i1=4;
}
on(release){ _root.i1=0;
}
on(release){ _root.i1=0;
_root.i=0;}
on(release){ _root.i1=0;
_root.i= _root.i-2;}
on(release){ _root.i1=0; _root.i= _root.i+2;}
移动Flash原代码:
onClipEvent (enterFrame) {
A = new _root.Point(250, 280, 0, 0, 0, 0); //定义A点坐标
B = new _root.Point(); //定义B点
C= new _root.Point(); //定义C点
D= new _root.Point(); //定义D点
E= new _root.Point(); //定义E点
F= new _root.Point(); //定义F点
M1 = new _root.Component(0, 0, 0, 150, 0, 0); //定义M1杠长
if(_root.a==3) //复位
{
B.x=300;
B.y=280;
_root.drawline(A.x, A.y,B.x, B.y, 1); //把小车放回原位
_root.drawline(0,-100,0, 0, 2); //把箭头2放到屏幕外
_root.drawline(0,-100,0, 0, 3);} //把箭头3放到屏幕外
if(_root.a==2){ //单轮转动
_root.i1 = _root.i1+_root.i2;
M1.beta = M1.beta+_root.i1*Math.PI/180;
A.x=250-_root.i3*Math.sin(M1.beta);
A.y=280+_root.i3*Math.cos(M1.beta);
B = _root.Bar(A, M1, M1.q);
_root.drawline(A.x, A.y, B.x, B.y, 1); //把小车放到设定位置
_root.drawline(0,-100,0, 0, 2); //把箭头2放到屏幕外
_root.drawline(0,-100,0, 0, 3); //把箭头3放到屏幕外
}
if(_root.a==1){ //双轮转动
M1.beta = M1.beta+_root.i1*Math.PI/180;
_root.i3 = _root.i3+_root.i4;
A.x=250-_root.i3*Math.sin(M1.beta)
A.y=280+_root.i3*Math.cos(M1.beta);
_root.drawline(A.x, A.y, A.x, A.y, 1); //把小车放到设定位置
_root.drawline(0,-100,0, 0, 2); //把箭头2放到屏幕外
_root.drawline(0,-100,0, 0, 3); //把箭头3放到屏幕外
}
if(_root.b==1){ //双轮向前
C.x=A.x+ Math.cos(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
C.y=A.y- Math.sin(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
D= _root.Bar(C, M1, M1.q);
_root.drawline(C.x, C.y,D.x, D.y,2); //把箭头2放到左边车轮前,箭头向前
E.x=A.x+ Math.cos(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
E.y=A.y- Math.sin(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
F= _root.Bar(E, M1, M1.q);
_root.drawline(E.x, E.y,F.x,F.y,3); //把箭头3放到右边车轮前,箭头向前
}
if(_root.b==2){ //双轮向后
C.x=A.x+ Math.cos(Math.PI*0.5-Math.atan(27/52)-M1.beta)*60;
C.y=A.y- Math.sin(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
D.x= C.x+ Math.cos(1*Math.PI-M1.beta )*50;
D.y= C.y-Math.sin(1*Math.PI-M1.beta )*50;
_root.drawline(C.x, C.y,D.x, D.y,2); //把箭头2放到左边车轮前,箭头向后 E.x=A.x+ Math.cos(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
E.y=A.y- Math.sin(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
F.x= E.x+ Math.cos(1*Math.PI-M1.beta )*50;
F.y=E.y- Math.sin(1*Math.PI-M1.beta )*50;
_root.drawline(E.x, E.y,F.x,F.y,3); //把箭头3放到右边车轮前,箭头向后 }
if(_root.b==3){ //左轮向前
E.x=A.x+ Math.cos(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
E.y=A.y- Math.sin(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
F= _root.Bar(E, M1, M1.q);
_root.drawline(E.x, E.y,F.x,F.y,3); //把箭头3放到右边车轮前,箭头向前 _root.drawline(0,-100,0, 0, 2); //把箭头2放到屏幕外
}
if(_root.b==4){ // 右轮向前
C.x=A.x+ Math.cos(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
C.y=A.y- Math.sin(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
D= _root.Bar(C, M1, M1.q);
_root.drawline(C.x, C.y,D.x, D.y,2); //把箭头2放到屏幕外
_root.drawline(0,-100,0, 0, 3); //把箭头3放到右边车轮前,箭头向前 }
if(_root.b==5){ //右轮向后
C.x=A.x+ Math.cos(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
C.y=A.y- Math.sin(Math.PI*0.5 -Math.atan(27/52)-M1.beta)*60;
D.x= C.x+ Math.cos(1*Math.PI-M1.beta )*50;
D.y= C.y-Math.sin(1*Math.PI-M1.beta )*50;
_root.drawline(C.x, C.y,D.x, D.y,2); //把箭头2放到屏幕外
_root.drawline(0,-100,0, 0, 3); //把箭头3放到右边车轮前,箭头向后 }
if(_root.b==6) //左轮向后
{
E.x=A.x+ Math.cos(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
E.y=A.y- Math.sin(Math.PI*0.5 +Math.atan(27/52)-M1.beta)*60;
F.x= E.x+ Math.cos(1*Math.PI-M1.beta )*50;
F.y=E.y- Math.sin(1*Math.PI-M1.beta )*50;
_root.drawline(E.x, E.y,F.x,F.y,3); //把箭头3放到左边车轮前,箭头向后 _root.drawline(0,-100,0, 0, 2); //把箭头2放到屏幕外
} }
双轮向前:on(release) { a=1; i4=-2; b=1; }
双轮向后:on(release) { a=1; i4=-2; b=2;
}
右轮向前:on(release) { a=2; i2=-2; b=4;
}
左轮向前:on(release) { a=2; i2=2; b=3;
}
右轮向后:on(release) { a=2; i2=2; b=5;
}
左轮向后:on(release) { a=2; i2=-2; b=6;
}
on(release) { a=3; i1 = 0; i2=0; i3=0; i4=0; b=0;
} on(release) { a=1; i2=0; a=2; i4=0; b=0; }