文档

设计分区

当分区设计

分区设计当它变得太复杂了,一个人知道所有的细节。复杂性增加而设计规模和团队规模,例如,

  • 设计规模和复杂性:

    • 几千块

    • 数以百计的逻辑决策

    • 数以百计的输入和输出

    • 在某些情况下数百倍行业的例子

    • 多个变量配置相同的功能

  • 团队集成:

    • 很多人在设计工作

    • 人位于不同的地方

    • 来自不同公司的人

分区设计转换为组件可以帮助您处理大规模的设计。分区设计成模块化组件给帮助你降低复杂性,合作开发,测试和重用组件,并成功与大规模的基于模型的设计。基于组件的建模可以帮助:

  • 支持高效和健壮的系统开发。

    • 总体设计的复杂性降低解决小问题。

    • 获得性能优势,规模。

    • 在多个项目中重用组件。

  • 促进合作

    • 分区算法、物理模型和测试。定义架构的结构和功能分区的设计使用定义的接口。

    • 与团队协作产品开发跨组织边界。团队可以精心设计的单个组件独立做植物建模、算法设计和开发测试。

    • 管理设计和源代码控制工具。

  • 改进的迭代、细化和验证工作流

    • 迭代速度通过更有效的测试和重用。

    • 消除对不变重新测试组件。

    • 在不同的项目重用的环境模型和算法设计。

    • 创建设计的变体。

    • 精心设计的独立组件通过定义良好的接口。

    • 使用配置管理工具管理设计进化。

基于组件的建模要求:

  • 分区机制模型和指定的接口

  • 工具和过程管理数据、模型和环境

使用以下技术基于组件的建模。

当不分区设计

组件化为大规模的设计提供了好处,但不需要对小设计。分区设计转换为组件需要设计工作和更新可以增加时间图。只有当你使用单独的组件设计足以受益于组件化。

决定是否你的设计需要分区,建议组件的大小和功能的指导方针

组件化模型设计的计划

后模型随着时间增长而大而复杂,很难将它们分为组件允许多个工程师工作并行。将仿真软件万博1manbetx®模型转换为组件更容易如果模型是专为从一开始组件化。组件化的设计可以帮助您避免这些困难:

  • 如果一个工程师自下而上的开发模型,添加块和分组成子系统模型的复杂性增加,以后很难把模型分成组件。内的子系统模型通常是“虚拟”和原子。当你将这些原子子系统,然后模型参考组件,可以引入不必要的代数环,很难诊断和解决。

  • 随着时间的推移子系统发展并不总是代表分区模型的最佳方式。“最好”这可能意味着为可重用的组件在其他模型中,最有用的结构或生成代码与遗留集成功能,或进行半实物测试,等等。

  • 如果你想扩大到并行开发没有组件化模型,很难分享在团队中工作没有耗时的和容易出错的合并子系统。

这些问题是类似于把一大块代码(C、Java或MATLAB®代码),并试图把它分成若干独立的功能。需要大量的工作和需要大量修改部分代码,如果代码没有设计成模块化的放在第一位。这同样适用于仿真软件模型。万博1manbetx

缺乏组件化的原因常见的失效模式时将仿真软件模型配置管理随着他们的成长,你想要一个以上的工程师并行工作。万博1manbetx避免这些问题的最好办法就是从一开始就设计组件。您可以使用以下的特性仿真软件设计一个适合组件化模型。万博1manbetx

如果你已经有了一个设计你想分成组件,明白了分区一个现有的设计

组件的大小和功能的指导方针

设置您的项目团队的工作,考虑下面的模型架构指南组件。有用的组件:

  • 有定义良好的接口I / O的界限。

  • 执行一组定义的功能(操作),定义的需求。

  • 形成一个更大系统的一部分。

  • 有“正确”的大小:

    • 足够大的可重用

    • 小到可以被测试

    • 只有一个工程师可能需要编辑每个模型

正确的大小可以依靠团队规模。你可以有较大的组件,如果只有一个人在每一个工作,但如果你需要在几个人之间共享组件,您可能需要将设计划分为更小的逻辑块。艾滋病这两个目标:理解设计,减少争用和时间花在合并文件。

建议:

  • 在大多数情况下,如果你有不到100块,不把设计分成组件。相反,使用如果你想创建一个视觉子系统的层次结构。例如,示例模型vdp不够大,受益于组件化。

  • 如果你有500 - 1000块,考虑创建一个组件的模型引用包含在一个单独的文件。验证的成本可以减少组件的大小。举个例子,如果你有一个小的组成部分100块测试成本高和频繁的变化,考虑分离,简化验证组件到一个单独的文件。

考虑将模型基于:

  • 物理组件(例如,植物和控制器,用于代码生成)

  • 算法逻辑

  • 可重用性在其他模型

  • 可测试性,例如,对于执行半实物测试

  • 采样率;考虑分组组件有相同的采样率

  • 仿真速度;使用不同的连接器组件与不同的数值属性可以提高仿真速度

  • 可访问性和其他团队或其他团队。

虽然你不能总是计划模型的大小,如果你希望多个人的工作设计,您可以受益于组件化技术。考虑控制使用仿真软件项目配置管理和分区设计使用模型参考,这样团队可以同时工作在单独的文件中。万博1manbetx

组件的大小 推荐组件化技术 笔记

小< 500块

使用子系统创建视觉层次。 小型设计不受益于分成单独的文件。然而,更大规模的团队,导致文件争用或高成本的验证可以值得分区更小的组件放到单独的文件中,而不是使用子系统。
大> 500块 组件分离成独立的文件或库使用模型参考。

多个工程师或团队工作设计,最佳实践是一个文件每个组件。减少争用文件,目标组件只有一个工程师需要编辑每个模型。

小< 500块,但预期增长

使用原子子系统功能块分组,而不是虚拟子系统。原子子系统组件更容易迁移到单独的文件中。

如果可能的话,从一开始计划你的组件,以避免迁移痛苦。

如果你的设计或团队足够大,受益于分离组件到单独的文件中,这个表总结了每个技术何时应用。

组件的特点 技术 好处 成本
在许多地方小,低层次的效用函数,再利用设计

库包含一个可重用的原子子系统模型

  • 上下文相关的:能适应各种接口具有不同的数据类型,样品时间,和尺寸,在不同的上下文中,而不改变设计。

  • 可以重用在其他模型吗

  • 存储为一个单独的文件,可以使用版本控制,但父母模型的每个实例适应环境,所以每个实例生成的代码可以不同。

  • 不能独立使用模拟或生成代码。需要一个父模型。

  • 环境适应不可取的大型组件在大规模模型接口管理和锁定到特定的数据类型和尺寸。在这些情况下,您可能不希望生成的代码库块不同的每个实例。

  • 需要链接管理,以避免破损问题,残疾,或参数化的链接。看到使用图书馆管理组件

在用户间共享的组块

图书馆进行分组和存储模型万博1manbetx

图书馆调色板组件的链接

  • 库用于存储块中分享的用户数量

  • 减少文件争用,使用图书馆调色板的单个组件在单独的文件的链接。每个组件存储在模型参考文件或一个子系统在一个单独的库。

  • 导致文件争论如果多个组件驻留在一个单独的库文件。文件只争用问题如果块需要频繁的更新或多用户访问。调色板可以提供帮助。

  • 需要链接管理,以避免破损问题,残疾,或参数化的链接。看到使用图书馆管理组件

大规模模型的顶层组件:> 500块

大组件:开始~ 500 - 5000块一个或几个可重用的情况下,如果许多实例或更小

组件在任何级别的模型层次结构,团队需要独立工作

模型参考
  • 组件是独立的模型文件和模型的一部分。你可以模拟和生成代码组件。

  • 独立于context-good大规模模型组件接口管理和锁定。

  • 存储为一个单独的文件可以应用版本控制的独立组件模型,使用它。

  • 可以使用加速器模式加载模型时生成的代码,以减少内存需求,提高仿真速度,而子系统或库。对于顶级组件分区。

性能可以减少略当更新模型(更新图)因为每个参考模型检查的变化,使增量构建。当组件是足够大(> 500块),更新图是在大多数情况下更快。

看到分区设计使用模型参考

为团队发展选择组件

执行并行开发,需要基于组件的建模。成功的团队开发的最佳实践是分区模型在项目中,因此只有一个用户在每个部分上工作。组件化使您能够避免或减少耗时的合并。设置您的项目团队工作,考虑下面的模型架构指导方针。

这个表比较子系统、库和模型引用团队发展。

开发过程建模 子系统 模型参考

团队的发展

不支持万博1manbetx

子系统的一个模型,仿真软件不能直接提供接口与源代码控制万博1manbetx工具。

创建或修改一个子系统,需要打开父模式的文件。这可能导致文件争论当多个人们想要工作在多个子系统模型。

合并子系统是缓慢和errorprone,所以最好避免工作流过程。然而,万博1manbetx仿真软件报告生成器™提供了一些工具来帮助你合并子系统。看到合并模型模型万博1manbetx的比较报告

万博1manbetx支持,限制

你可以在源控制库文件版本控制和配置管理。您可以使用仿真软件项目与万博1manbetx源代码控制。

你可以保持一个真理,通过传播变化从一个库块的所有块链接库。

减少文件争用,使用每个库的一个子系统。

你可以链接到同一个库块从多个模型。

你可以限制写访问库组件。

适合

您可以将模型参考文件的源代码控制版本控制和配置管理。您可以使用仿真软件项目与万博1manbetx源代码控制。

你引用的模型保存在一个单独的文件从模型中引用它。使用独立的文件有助于避免争用。

你可以设计、创建、模拟和测试模型独立于模型引用,引用它。

万博1manbetx仿真软件不限制访问改变一个模型参考。

大多数大型模型使用组件化技术的结合。没有单一的方法适用于各种仿真软件的用户。万博1manbetx以下建议描述了一些典型的过程与MathWorks显示你能做什么®工具来执行团队的发展。

每一个文件并行开发的组件

执行高效的并行开发,大型模型分解成单个文件,这样团队成员就可以独立地工作,您可以将每个文件版本控制之下。组件化使您能够避免或减少耗时的合并。设置您的项目团队工作,考虑的建议组件的大小和功能的指导方针

基于组件的建模的一个关键目标是允许并行开发,不同的工程师可以在哪里工作并行组件的一个更大的系统。你可以做到这一点如果每个组件都是一个文件。然后您可以控制和跟踪每个组件的变化在仿真软件中使用源代码控制项目。万博1manbetx看到配置管理

分区一个现有的设计

如果你已经有了一个设计你想分成组件,首先决定分区模型。现有的子系统,随着时间的增长并不总是最好的方法分区模型。在考虑划分模型的基础上,建议组件的大小和功能的指导方针

达成一个接口是一个有用的第一步,决定如何将一个大系统的功能分解成子组件。你可以组信号和对数据进行分区。看到界面设计

在你决定如何分区设计,仿真软件工具可以帮助您现有的模型划分为组件。万博1manbetx

万博1manbetx仿真软件可以帮助你分区模型通过将子系统转换为文件。您可以使用模型转换为文件或库的引用。看到组件的大小和功能的指导方针建议在每个技术应用。

分区设计使用模型参考

使用模型引用的组件划分为单独的文件中,这样的团队可以同时工作在单独的文件中。你也可以重用模型在其他模型。分区模型使用模型参考,看看创建一个引用模型子系统转换为引用的模型

使用图书馆管理组件

  • 使用库包含一个子系统包含一个组件在一个单一的文件中。使用库来存储块中可以重用模型。连接块继承属性从周围的模型,如数据类型和采样率。使用这种技术对组件化的管理开销库链接,下面描述。

  • 使用库重用块在多个模型。库适合分组和共享存储模型块。万博1manbetx最佳实践库是用于存储块与多个用户分享,和街区更新的很少。作为一个粗略的指南,它是适当的使用模型库,如果其内容每隔几个月更新一次。万博1manbetx如果你更频繁地更新它,那么图书馆可能是被用来执行配置管理。在这种情况下,小心避免描述的常见问题图书馆链接管理

  • 让库文件块可以重用,同时减少争用和应用版本控制,使用图书馆的调色板。调色板是一个包含其他组件的链接库。如果每个组件都是一个子系统在一个单独的库,或者一个模型参考文件,你可以实现one-file-per-component基于组件的建模的最佳实践。您可以使用单独的为每个组件版本控制,你也可以控制面板。

    当你从图书馆一块调色板拖到你的模型,模型遵循的链接回文件子系统或模型参考实现。万博1manbetx使用组件的模型包含一个链接到组件和调色板。

图书馆链接管理

图书馆链接可以引入管理开销如果使用配置管理。照顾管理:

  • 禁用链接——会导致合并冲突,未能更新所有实例相同的模型组件。在层次结构的链接,你可以不小心禁用所有的链接在毫不知情的情况下,和只恢复一个链接而让其他的残疾人。

  • 失效链接——意外失效链接是一个难以解决的问题,因为,通过设计,不能检测失效链接链接到以前。

  • 参数化的链接数据——它可能是有用的改变参数数据的价值,如获得的价值在一块,没有禁用图书馆链接。这为该实例生成”链接数据”。然而,对于配置管理这可能会导致一个问题,如果你认为是相同的,所有实例作为一个现在有不同的属性。

万博1manbetx仿真软件工具帮助您管理图书馆的链接,以避免问题:

谨慎

这些链接管理工具可以检测链接问题,但不能防止编辑错误的文件。如果这是一个问题,然后利用模型参考作为分区机制避免与残疾相关的风险,破裂,参数化的联系。

相关的话题

这个主题有帮助吗?