Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

在Simscape中创建自定义阀门

今天我想分享一个技巧,当我需要在Simscape中创建自定义液压组件时,我喜欢使用。

这个问题

我经常从用户那里得到类似以下的问题:

我需要建模一个先导操作止回阀。块应该看起来像先导操作止回阀SimHydraulics包括:

simhydraulic先导操作止回阀

然而,我所寻找的行为略有不同。我从供应商那里得到的数据只有下图。当先导口压力乘以先导比小于B口压力时,阀门应表现为曲线4,只允许从A流向B。当先导口压力变大时,阀门应进入先导模式,按照虚线曲线的特征,让两个方向流动

先导操作止回阀数据表

解决方案概述

由于我们只有流量-压力曲线,我们将使用类似于在固定孔经验

这种方法包括感知压力和施加流量。对于一个简单的孔口,实现如下所示:

经验孔板实施

对于我们的先导阀,我们将需要感知不同的压力,我们将需要使用两个查找表,每个模式一个。

获取数据

我们需要做的第一件事是从数据表中获取数据。我喜欢用a文件交换提交《数据的小偷通过Adnan

这个提交非常容易使用。如果您的数据表为PDF格式,请截取其屏幕截图并将其另存为图像文件,例如PNG文件.然后,您可以通过传递图像文件的名称和曲线的限值来调用Data Thief函数。在我的例子中,压力轴的最大值为28 bar,原点为0 bar, 0 l/min,最大流量为150 l/min。将弹出一个图形,在其中单击最大值y、原点、最大值x,然后单击想要提取的点。完成后,按enter键,函数将在指定的输出变量中返回x和y值。

一旦我得到了数据,我就需要准备数据,这样我就可以覆盖整个范围。在引导的情况下,我需要镜像的曲线,以允许流动在两个方向。在非驾驶情况下,我需要将所有低于开裂压力的范围内的流量设置为零。代码如下:

准备数据

这为我们的模型提供了所需的数据。

选项1:使用块

现在我们可以用两种方式使用这些数据。如果您喜欢以图形方式连接块,则此选项适合您。使用像这样的块压力传感器,一个Simscape查找表,以及流源,以及库中物理信号部分的其他一些内容,我们可以得出以下结论:

阀子系统

当指定x而且y查找表的值,注意单位。中的值需要接收和输出标准MKS系统,这里表示帕斯卡和米立方每秒,而我们从数据表中得到的数据是巴和l/min。

还有一件事要注意,我插入了一个非常小的孔与流源平行。这是为了确保我们的定制阀门永远不会产生完全为零的流量。这在数值上表现得很糟糕。

选项2:自定义Simscape组件

有助于更轻松地管理单元的第二个选项是Simscape复合组件。使用此方法,在组件节中,我们声明要使用哪些块,并且在连接节中,我们定义它们如何连接在一起。在设置部分中,可以使用价值函数指定传递给查找表块的值应该以Pascal和m^3/秒为单位。通过这样做,用户可以指定他想要的任何单位的值,我们将自动处理转换。

代码如下所示:

使用复合组件创建的阀门

结果

为了测试阀门,我创建了一个模型,在整个有效范围内练习阀门。

测试模型

我们可以看到,当阀门被引导时,流量可以向两个方向流动,而当阀门未被引导时,它在10巴处开裂。

测试模型

现在轮到你了

如果你对这个话题感兴趣,我也推荐这个MATLAB中心文件交换提交.它包含了大量基于数据表的液压元件建模资源。

让我们知道您如何在SimHydraulics中建模自定义组件这里的评论

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。