在Simscape中创建自定义阀门
今天我想分享一种我喜欢使用的技术,当我需要在Simscape中创建自定义液压元件时。
这个问题
我经常从用户那里得到类似以下的问题:
我需要一个先导式止回阀模型。块应该看起来像先导操作止回阀包括simhydraulic:
然而,我所寻找的行为略有不同。我从供应商那里得到的唯一数据如下图当导通口的压力乘以导通比小于B口的压力时,阀门应表现为曲线4,只允许流量从A流向B。当导通口的压力变大时,阀门应进入导通模式,允许两个方向的流量,遵循虚线曲线的特性
解决方案概述
因为我们所有的都是流量-压力曲线,我们将使用一种类似于在固定孔板经验.
这种方法包括感应压力和施加流量。对于一个简单的孔板,实现看起来像:
对于我们的先导阀,我们需要感知不同的压力,我们需要使用两个查找表,每个模式一个。
获取数据
我们需要做的第一件事是从数据表中获取数据。我喜欢用a文件交换提交《数据的小偷通过Adnan.
这个提交非常容易使用。如果您的数据表是PDF格式,请截取其屏幕截图并将其保存为图像文件,如PNG文件.然后,您可以通过传递图像文件的名称和曲线的极限值来调用Data Thief函数。在我的例子中,压力轴的最大值为28bar,原点为0 bar, 0 l/min,最大流量为150l /min。将弹出一个图形,在其中单击最大y,原点,最大x,然后是您想要提取的点。完成后,按enter键,函数将返回指定输出变量中的x和y值。
一旦我得到数据,我需要准备数据,这样我就可以覆盖整个范围。在试点的情况下,我需要镜像的曲线,以允许流动的两个方向。在无人驾驶的情况下,我需要将流量设置为零,所有范围低于开裂压力。代码看起来像这样:
这为我们提供了模型所需的数据。
选项1:使用块
现在我们可以用两种方式使用这些数据。如果您喜欢图形化地连接块,那么这个选项适合您。使用像这样的块压力传感器,一个Simscape查找表,和流源,以及库中物理信号部分的其他一些,我们可以得出以下结论:
当指定x和y查找表的值,注意单位。类型中的值接收和输出标准MKS系统这里表示帕斯卡和立方米每秒,而我们从数据表中得到的数据是bar和l/min。
还有一件事要注意,我插入了一个非常小的孔平行流源。这是为了确保我们定制的阀门永远不会产生零流量。这在数值上表现不好。
选项2:自定义Simscape组件
第二个有助于更轻松地管理单元的选择是Simscape复合组件。使用这种方法,在组件Section中,我们声明要使用哪些块,并在连接节,我们定义它们是如何连接在一起的。在设置部分中,我们可以使用价值函数指定传递给查找表块的值应该以Pascal和m^3/sec为单位。通过这样做,用户可以指定他想要的任何单位的值,我们会自动处理转换。
代码如下所示:
结果
为了测试阀门,我创建了一个模型,在整个有效性范围内练习阀门。
我们可以看到,当阀门有导向时,流体可以向两个方向流动,当阀门没有导向时,它在10巴时破裂。
现在轮到你了
如果你对这个话题感兴趣,我也推荐这个MATLAB中央文件交换提交.它包含了大量的资源来建立基于数据表的液压元件模型。
让我们知道您如何在simhydraulic中建模自定义组件这里的评论.
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。