主要内容

动画和模型的汽车活塞

这个例子展示了如何建模的运动汽车活塞通过使用MATLAB®和符号数学工具箱™。

定义的运动汽车活塞和活塞运动创建动画模型。

步骤1:描述活塞模型

下面的图显示了模型的汽车活塞。活塞的移动部件由连杆(红线),活塞曲柄(绿线)和活塞式液压缸头(灰色矩形)。

描述活塞通过定义的属性参数:

  • 气缸行程长度 年代

  • 活塞内径 B

  • 连杆的长度 l

  • 曲柄半径 一个

  • 曲柄角度 θ

定义的坐标系统的起源O曲轴位置。标签之间最近的距离活塞头和曲轴位置下死点(BDC)。下死点的高度 l - - - - - - 一个 。标签之间的最远距离活塞头和曲轴位置上死点(TDC)。TDC的高度 l + 一个

步骤2:计算并绘制活塞高度

下图是一个曲柄和连杆的示意图。

活塞的高度相对于原点 H = 一个 因为 θ + l 2 - - - - - - 一个 2 ( θ ) 2 活塞高度定义为符号函数使用<一个href="//www.tatmou.com/au/au/help/symbolic/syms.html" class="a">信谊函数。

信谊pistHeight (L,θ)pistHeight (L,θ)= a * cosθ+√(L ^ a ^ 2 * sin(θ)^ 2);

假设连杆长度 l = 150年 毫米 曲柄半径 一个 = 50 毫米 。情节活塞高度作为曲柄角度的函数区间内的一个革命(0 2 *π)

fplot (pistHeight(150、50、θ),[0 2 *π])包含(“曲柄角(rad)”)ylabel (的高度(毫米))

图包含一个坐标轴对象。坐标轴functionline类型的对象包含一个对象。

活塞TDC活塞时最高主管和曲柄角度02 *π。活塞头最低当活塞下死点和曲柄角π

你也可以画出活塞高度不同的值 一个 θ 。创建一个表面的情节活塞高度利用<一个href="//www.tatmou.com/au/au/help/symbolic/fsurf.html" class="a">fsurf函数。显示时间间隔内的活塞高度 30. 毫米 < 一个 < 60 毫米 0 < θ < 2 π

fsurf (pistHeight(150年,θ),[30 60 0 2 *π])包含(曲柄半径(mm)的)ylabel (“曲柄角(rad)”)zlabel (的高度(毫米))

图包含一个坐标轴对象。坐标轴functionsurface类型的对象包含一个对象。

步骤3:计算活塞气缸的体积和情节

燃烧室的长度等于TDC位置和活塞高度之间的差异。活塞式液压缸的体积可以表示为 V = π ( B 2 ) 2 ( l + 一个 - - - - - - H )

活塞体积定义为符号函数和替代的表达式 H pistHeight

信谊pistVol (L,θ,B)pistVol (L,θ,B) =π* (B / 2) ^ 2 * (L + a-pistHeight)
pistVol (L, a,θ,B) =

π B 2 l + 一个 - - - - - - 一个 因为 ( θ ) - - - - - - l 2 - - - - - - 一个 2 ( θ ) 2 4

接下来,定义以下参数的值:

  • 连杆的长度 l = 150年 毫米

  • 曲柄半径 一个 = 50 毫米

  • 孔直径 B = 86年 毫米

情节活塞体积作为一个革命曲柄角的函数在区间内(0 2 *π)

fplot (pistVol(150年,50岁,θ,86),[0 2 *π])包含(“曲柄角(rad)”)ylabel (“体积(mm ^ 3)”)

图包含一个坐标轴对象。坐标轴functionline类型的对象包含一个对象。

活塞体积是最小的,当活塞上死点和曲柄角02 *π。活塞体积最大,当活塞下死点和曲柄角π

第四步:评估活塞运动角速度的变化

假定曲柄旋转30 rpm第一3秒,然后从30到80 rpm稳步增加在接下来的4秒,然后维持在80 rpm。

定义了角速度作为时间的函数使用<一个href="//www.tatmou.com/au/au/help/symbolic/piecewise.html" class="a">分段函数。乘以角速度 2 π / 60 将转速从rpm rad /秒。

信谊t0trpmConv = 2 *π/ 60;angVel (t0) =分段(t0 < = 3, 30日t0 > 3 & t0 < = 7, 30 + 50/4 * (t0-3)、t0 > 7, 80) * rpmConv
angVel (t0) =

{ π 如果 t 0 3 π 25 t 0 2 - - - - - - 15 2 30. 如果 t 0 ( 3 , 7 ] 8 π 3 如果 7 < t 0

计算曲柄角通过集成使用的角速度<一个href="//www.tatmou.com/au/au/help/symbolic/sym.int.html" class="a">int函数。假设的初始曲柄角 θ = 0 。计算积分的角速度0t

angPos (t) = int (angVel t0 0, t);

发现活塞高度作为时间的函数替换表达式angPos曲柄角。

H (t) = pistHeight (150、50、angPos)
H (t) =

{ 200年 如果 t = 0 One hundred. 如果 t = 3 20625年 + 25 如果 t = 7 50 因为 ( σ 1 ) + 22500年 - - - - - - 2500年 ( σ 1 ) 2 如果 7 < t 22500年 - - - - - - 2500年 ( σ 2 ) 2 - - - - - - 50 因为 ( σ 2 ) 如果 t ( 3 , 7 ] 50 因为 ( π t ) + 22500年 - - - - - - 2500年 ( π t ) 2 如果 t < 0 t ( 0 , 3 ] 在哪里 σ 1 = 31日 π 3 + 8 π t - - - - - - 7 3 σ 2 = π 5 t + 9 t - - - - - - 3 24

情节活塞高度作为时间的函数。注意,活塞的振荡3和7秒之间高度变得更快。

fplot (H (t) 10[0])包含(的时间(秒))ylabel (的高度(毫米))

图包含一个坐标轴对象。坐标轴functionline类型的对象包含一个对象。

第五步:创建动画的活塞移动

创建一个动画的活塞移动角速率的变化。

首先,创建一个新的数字。情节的汽缸壁固定位置。设置x设在和y设在长度相等。

图;情节(-43 [-43],[210],“k”,“线宽”,3);情节([43 43],[210],“k”,“线宽”3)图(43 [-43],[210 - 210],“k”,“线宽”3)轴平等的;

接下来,创建一个定格动画对象活塞头的使用<一个href="//www.tatmou.com/au/au/help/symbolic/fanimator.html" class="a">fanimator函数。默认情况下,fanimator创建一个动画对象通过生成10帧/单位时间内的范围t从0到10。模型的活塞头一个矩形10毫米的厚度和可变高度H (t)。通过使用阴谋活塞头<一个href="//www.tatmou.com/au/au/help/matlab/ref/rectangle.html" class="a">矩形函数。

fanimator (@rectangle“位置”,86 10][-43 H (t),“FaceColor”(0.8 0.8 0.8))

添加动画对象的连杆和活塞曲柄。添加一块文本计算运行时间。

fanimator (@ (t)情节([0 50 *罪(angPos (t)], [H (t) 50 * cos (angPos (t))),的r -,“线宽”3))fanimator (@ (t)情节([0 50 *罪(angPos (t)], [0 50 * cos (angPos (t))),“g -”,“线宽”3))fanimator (@ (t)文本(-25225年计时器:“+ num2str (t, 2)));持有;

图包含一个坐标轴对象。坐标轴对象包含7矩形,类型的对象,文本。

使用命令<一个href="//www.tatmou.com/au/au/help/symbolic/playanimation.html" class="a">那里播放动画的活塞移动。