动力传动系统建模工具2/6:使用SimDriveline搭建车身运动模型
任务
分析对象:
传统自行车包括车架以及前后轮,当然还有一个骑手。
环境:
自行车在这个车道上自由运动,可能还要考虑风阻的因素以及地面摩擦因素。
问题:
求车速以及车身位移。
我们来开始搭建自行车运动模型。
车身
自行车在外力作用下有两个自由度:直行与旋转(上下坡)
(Tire & Vehicles库)
相对的Vehicle Body模块可以表示车身在水平面以及斜面上的直线运动:
SimDriveline 2015 V1.1版
X轴表示车身运动方向(不知道X轴在哪,可以看Vx),Z轴垂直于地面(不是竖直向下),所以如果有坡度的时候Z轴与重力方向并不重合。
端口W和beta分别代表逆风速度(m/s)以及坡度(弧度),以带单位的物理信号的形式作为输入。作为简化,假设风阻是施加在重心上的。
H端口表示车身的水平运动接口;
NF和NR是输出端口:表示基于车身运动和模块所设置的车身结构参数算出来的施加在前后轮胎上的正压力Fzf和Fzr。这个一般都是连接到轮胎模块上去的。
V也是输出端口:表示图中的Vx;
车身的基本结构参数,比如下图。这些参数的含义可以参照上面的模型示意图。
m n,影响总的牵引力计算 a,b,h,影响前后轮正压力分配 A,Cd影响风阻计算
上述运动示意图的车身运动方程如下:
SimDriveline 2015 V1.1版
这也就是x方向的运动平衡方程,牵引力计算以及风阻计算。
加上轮胎的车身
这些模块(Scope除外)都可以在Simscape/SimDriveline相应的子库中找到,如果不熟悉可以在库浏览器中搜索它们的名字。
Tire & Vehicles库里拖入两个轮胎模型,如图上连接。这是轮胎模型的示意图:
SimDriveline 2015 V1.1版
N:轮胎受到的外界正压力Fz输入端口;
A:轮胎转轴,这里没有任何直接施加于轮胎转轴的扭矩,所以A连接到悬空端口,只是为了不出现悬空端口的警告信息;
H:轮胎的x方向运动端口,轮胎与车身的x方向运动是一致的,所以连接在一起; S:信号输出端,输出轮胎滑移率。(理论速度-实际速度)/实际速度。轮胎纯滚动时,车轮与地面不会有相对移动,理论平移位移与转轴转速成正比。但如果外力超过了静摩擦力,则会开始打滑。而动摩擦系数则表示打滑时轮胎的扭矩传递能力。
轮胎模型的基本参数如下:
其中摩擦模型(Friction model)可以如上图设置为常数,也可以如下图设置为与滑移率有关,滑移率越大扭矩传递能力越低。
还可设置轮胎的初始状态,纯滚动或者滑动:
SimDriveline库中还提供了很多其他的轮胎模型,可以参见模块说明。 这时候,运行模型,得到车速如下。
SimDriveline 2015 V1.1版
再次查看所建立的模型,分析为什么车身速度是0?
行车环境
以上模型实现了这个部分,水平地面上的一辆自行车模型。
但自行车在水平面上是不会动的,所以我们把它放到一个斜坡上:
SimDriveline 2015 V1.1版
所以我们需要知道如何将坡度和风阻添加到现有的模型里去。
如下图表示逆向风速为1m/s:在W端口(Wind)的输入常数1,不是-1。 (为了方便这里使用的常数模块是Simscape->Utility的常数模块)。
另外,通过beta端口,设置坡度为-0.5*pi/180度,表示下坡路段。这里的坡度输入的是弧度。
仿真时间设置为300s,运行模型。
可以看到在大约250秒后,自行车达到平衡,也就是匀速运动。 分析一下,这是为什么?
如果你留意到车身模块会输出速度信号,并不会直接输出位移信号。
SimDriveline 2015 V1.1版
那么怎样查看车身的位置信息?
要测量位移情况,可以直接使用Simscape的Translational Reference Sensor模块,通过H端口来直接测量车身平动信息(与地面平行)。
如何设置坡度变化的地形?
我们刚才通过beta端口设置了固定坡度,但假设我们现在如何添加变化坡度信息? 这是地形的外观:
SimDriveline 2015 V1.1版
它对应的坡度如下图,负值表示下坡段,正值表示上坡段:
所以,其实可以看出来,地形是跟车身当前位置相关的。其实我们可以用一个查表模块,来根据当前车身位置查表得到坡度信息。
为了模型看上去整洁,把原来的自行车模型(一个车身,两个车轮)变成子系统Bicycle Body,风阻与坡度为输入端口;将数据测量模块变成子系统Speedometer。
从Speedometer子系统引出当前车身位置信号(Distance)P端口,通过一个查表模块PS Lookup Table得到坡度信号,通过Terrain端口,连接到车身模块的beta。如下图:
从仿真结果来看,自行车在这个U形地面上往复运动很多次。因为这里的模块设置没有考虑滚动阻尼。
SimDriveline 2015 V1.1版
另外也可以给轮胎模型添加滚动阻力:
可以看到,滚动阻力增加后,很快就停在底端了:
SimDriveline 2015 V1.1版
关于滚动阻力的说明,在这个模块的说明文档里有:
常数模型如下:
因篇幅问题不能全部显示,请点此查看更多更全内容