人在仿真软件金宝app

金宝appSimulink &基于模型的设计

在Simscape中创建自定义阀

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

这个问题

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

我需要做一个先导操作止回阀的模型。街区应该像先导式止回阀附带SimHydraulics:

液压先导式止回阀

然而,我正在寻找的行为是略有不同。我从供应商那里得到的唯一数据是下图。当先导端口上的压力乘以先导比小于端口B上的压力时,阀门的行为应类似于曲线4,只允许从A到B流动。当先导端口上的压力变大时,阀门应以先导模式运行,并按照虚线曲线的特征向两个方向流动

先导式止回阀数据表

解决方案概述

因为我们所有的都是流量-压力曲线,所以我们将使用一种类似于固定孔经验

该方法包括感应压力和施加流速。对于简单的孔板,实现方式如下所示:

经验孔板实现

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

获得数据

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

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

一旦我得到数据,我需要准备数据,这样我就可以覆盖整个范围。在这种情况下,我需要镜像曲线以允许双向流动。在非先导情况下,我需要将裂化压力以下的所有范围的流量设置为零。代码如下:

准备数据

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

选项1:使用块

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

阀子系统

当指定xY对于查找表的值,请小心使用单位。查找表需要在中接收和输出值标准MKS系统,这里是指帕斯卡和米立方每秒,而我们从数据表中获得的数据是以巴和l/min为单位的。

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

选项2:自定义Simscape组件

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

代码如下所示:

使用复合组件创建的阀门

结果

为了测试这个阀门,我创建了一个模型来测试阀门的整个有效性范围。

测试模型

我们可以看到,当阀门被引导时,流体可以朝两个方向流动,当不被引导时,它在10bar处破裂。

试验模型结果

现在轮到你了

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

通过留下评论这里

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。