AnyMath 文档

模型的架构 AnyMath

本文介绍了使用特定块构建模型体系结构的实用建议。 与模型架构的实际工作 AnyMath.

任何模型,即使是最复杂的模型,都可以由单独的块组装而成。 然而,随着它们数量的增加,不可避免地会出现困难。 因此,如果模型由许多块组成,那么理解必要元素的位置及其相互作用就会成为问题。 在这种情况下,维护和修改模型所需的时间太长。 因此,为了清晰和简化,建议使用子系统将复杂模型划分为语义同质的部分。

子系统是一个块 Subsystem,旨在在模型中创建层次结构。 例如,使用子系统,您可以在其中实现一个模型:

*描述车轮行为的20块连接在一个子系统中 «轮子»; *连接到发动机的300块连接在一个子系统中 «发动机»; *负责外壳的50块连接到一个子系统 «身体».

这种关联创建了一个中间抽象级别,其中使用逻辑对象而不是单个块。 结果,我们得到以下条件模型:

subsystem model example 1

在子系统的帮助下,这种向某些抽象层次的过渡允许:

*以真实物体(发动机,变速箱,底盘)而不是信号和块来思考; *将一些子系统分组到其他更大的子系统中,增加抽象级别; 使用单个操作禁用或替换整个子系统,而不是手动修改块。

这反过来又创造了许多优势。:

*独立调试-由于子系统,可以隔离和测试模型的各个部分。 例如,首先确保发动机工作正常,然后检查它如何与变速器相互作用。; *子系统内的逻辑-子系统不再只是另一个块内的一组块。 它们成为具有自己逻辑的对象:它们可以对外部信号做出反应并在某些条件下激活(有关更多信息,请参阅 与模型架构的实际工作 AnyMath); *口罩的使用 — 掩码允许您隐藏子系统的复杂内部细节,并仅取出重要参数或在子系统之上配置附加功能。; *灵活性和重用-块可以 重用在不同的模型。 您还可以通过更改块或其参数来试验结构以评估结果。

在 AnyMath 不仅子系统可以使用。 子模型(块 Model)是下一阶段,允许您将模型作为单独的对象使用,这允许您:

*实现并行开发—使用*Model*块时,您可以在不同专家之间分配开发。 例如,一个工程师处理一个子系统 «轮子» 而另一个 — «发动机». 与此同时,它们不会在彼此的子系统中引入潜在的错误或不必要的编辑,只负责他们感兴趣的领域。 它们的变化可以很容易地在 «主要型号» 通过简单地更新所需模型中的*Model*块; *版本控制和重用块-*模型*块非常适合保存整个模型以供进一步重用或集成。

从子系统/子模型创建模型的主要阶段

  1. 初始阶段是从单独的块建模。 这种方法适用于细节比结构更重要的小型模型。

  2. 向子系统的过渡-模型开始分组到功能模块中。 例如,几个子系统由100块制成:发动机,变速箱,底盘。

  3. 使用子模型和面罩-有机会:

    1. 1. 组件的重用。

    1. 2. 隐藏实现细节(掩码)/添加新功能。

    1. 3. 简化模块(子系统或子模块)之间的交互。

  4. 最后一个阶段是创建一个结合了几个子模型的通用系统。 这是一个多层次的设计方法,典型的 模型导向设计。

创建模型的建议

块数

尝试在同一嵌套级别使用不超过10个块以保持模型可读性。

子系统的组织

将模型划分为逻辑节点:每个子系统块应表示系统的一个功能元素。

在子模型中放什么

对于具有高细节的复杂组件,请使用子模型,将子系统留给功能节点。

灵活性和模块化

创建一个模型,以便通过替换组件或修改逻辑来轻松修改它。

一般建议:

-将模型分解为逻辑部分。 -使用蒙版隐藏复杂细节并简化交互。 -遵循分层方法:顶层应该简单而合乎逻辑。 -检查和测试每个阶段的子系统,以确保模型正常工作。

有用的连结