当前位置: 首页 > news >正文

第八章 应用参数为约束建模 P1|系统建模语言SysML实用指南学习

仅供个人学习记录

概述

多种类型的工程分析,如权衡研究、敏感度分析和设计优化,这些需要包括对性能、可靠性、成本和物理属性等的分析。SysML通过应用参数模型,支持该类分析。

参数化的模型约束系统的属性,可以通过合适的分析工具进行评估。约束以方程形式表示,方程中的参数与正在分析的系统属性鄉定。每个参数模型可以捕获设计的一个或多个工程分析的规范。对捕获多个工程分析的参数模型(如性能、可靠性成本)开展分析,评估设计可选方案,从而支持权衡分析,或者基于多个准则进行优化设计。

SysML通过约束块来支持构建参数模型。约束块是一类特殊块,用于定义方程,从而使这些方程可以重用、互连。约束块有两个主要特性:参数集以及约束这此参数的表达式。约束块的定义区使用与第7 章中描述的块、组成方式相似。约朿块的使用称为约束属性,与组成属性类似。约束块的定义及使用分别由块定义图及参数图来表示。

应用块定义图定义约束

与块定义方式相似,约束块及约束块之间的关系在块定义图中定义
带有约束块的块定义图示例
不明白为什么不能同时显示,而且两个Directed Composition不能并起来

参数图

参数图用于创建方程系统,从而约束块属性。完整标题形式如下:
par[model element kind]model element name[diagram name]

构建方程系统的参数图

应用约束表达式表示系统约束

SysML采用了一类通用机制,以文本表示方式来表示系统约束,这种文本表示方式可应用于任何模型元素。SysML并不提供内置约束语言,因为期望不同的约束语言(如OCL Java或MathML等)都能够用于各领城中。约束constraint定义应能够包含支持评估约束的语言。

约束可以归属于作为命名空问的任何元素,如包或者块。如果拥有约束的元素(如块)可包含分区,则约束也可以在标记为constraints的特殊分区中表示。约束还可以表示为附属于模型元素的注释标识,注释中包含了约束文本。约束语言在表达式文本前的括号中表示,尽管为避免杂乱而经常省略了该部分内容。

表示约束的两个标记示例

约束块封装约束支持重用

SysML约束块constraint block扩展了通用约束概念,使得约束被定义后能够在其他不同情境中重用,如同组成表示不同情境中块的使用。这里与组成等同的概念称为约束属性constraint property
约束表达式可以采用任意数学表示方式,也可以与时间相关,如微分方程中的时间微分。除了约束表达式,约束块也定义了一组约束参数constraint param-eter,该参数为约束表达式中的一类特殊属性。约束参数与其他参数、块属性相绑定。约束参数没有方向。相反,参数间依赖关系的表述是基于规范约束表达的语言语义。

增加的参数特征

在定义集合时。对于多重性上限大于1的属性,有两个非常有用的特征。以规范集合是否排序 order、值是否必须唯—unique

  • 排序表示集合成员与正整数值相对应:成员1、成员2 等。排序的方法根据其他约束规定,或者根据构建集合的行为规定。
  • 在一个唯一的集合中,所有的集合值必须不同。

块定义图中两个可重用约束块表示

属性的另一个有用的特征是属性能够标记为派生。如果某个属性标记为派生,则意味着其属性值是派生的,通常可以以其他属性值得到。在规范参数模型时,该特征有两个用途:一是如果方程计算作为函数实现,则派生参数可用于区分非独立变量;二是在建模人员希望引导方程解算器时,派生属性表示了给定分析中需要通过方程解算确定的值。

下图给出了块定义图中约束块的定义。图标题与其他块定义图相同,规定了图框对应的包或者块。约束块的命名分区中在名称上方有关键词《constraint》,通过该关键词将该元素与块定义图中的其他元素区分开。
在约束块的corstraints约束分区中定义了约束表达,而在parameters参数分区中通过以下字符串格式定义约束参数:
parameter name: type [ multiplicity ]

排序和唯一性作为关键词表示在括号中,列在多重性后面。排序表示为已排序或者未排序,唯一性表示为唯一或者非唯一。实际中默认关键词表示为非排序、非唯一。派生属性以/表示。

应用组合构建复杂约束块

建模人员可以在定义块图中将复杂约束块与其他约束块相结合。块定义图用于定义约束块。约束属性语义格式:
constraint property:constraint block[multiplicity]
块定义图中的约束层级

应用参数图绑定约束块参数

块定义图中并不表示其互连约束属性的所有信息,具体地讲,它不表示约束属性参数与其父参数及同级参数之间的关系。这些增加的信息在参数图中通过綁定连接器(binding connector) 提供。
参数图中的两个约束参数可以通过鄉定连接器直接相互绑定,即表明两个参数的值必须相同。如果某个方程的参数可以与另一方程的参数绑定,则建模人员可以连接多个方程从而构建复杂方程组。

约束块参数不表示因果关系。绑定连接器表示所绑定元素的对等关系,而不表示方程组的因果关系。在求解某个方程时,假设其独立/非独立变量是确定的或者是推导出的,包括初始值设置。通常由计算方程求解器解决,求解器通常由独立分析工具提供。如果部分解的阶数已知,则派生参数或属性可用于引导方程求解器。

参数图中针对约束属性的标记与它们在块定义图中的定义相关

  • 约束块或者块定义图中拥有约束属性的块,可以指定为参数图的图框架,在图标题中有约束块或者块名称。
  • 块定义图中组合关联部件端的约束块,可以用约束属性标识表示,出现在指定组合端的约束块的框架中。标识的名称字符串采用constraint property name: constraint block name

在应用组合关联时,约束属性名称对应于关联部件端的角色名称,如同与组成对应。类型名称对应于关联部件端的约束块名称。

参数图框架对应于某个约束块或者块。如果参数图指定了某个约束块,则其参数表示为与框架内表面齐平的小矩形。每个参数的名称、类型和多重性均通过参数标识附近的文本标签表示。

在参数图中,约束属性既可以由圆角矩形标识表示,也可以由带有关键词《constrains》的矩形表示。属性的名称和类型在标识的内部表示,属性名称和类型名称可根据霝要省略。约束表达自身可以被省略,但如果显示,则其既可以显示在圆角内部,也可通过注释标识与圆角连接。约束属性的参数表示在约束属性标识的内表面。

应用参数图表示功率消耗方程的内部细节,反映了应用参数化模型,由可重用的约束块来构建更为复杂的方程
应用参数图表示功率消耗方程的内部细节

相关文章:

  • 迭代新品 | 第四代可燃气体监测仪,守护燃气管网安全快人一步
  • qt-C++笔记之treeWidget初次使用
  • Sql Server 2017主从配置之:事务日志传送
  • P3879 [TJOI2010] 阅读理解- 字典树
  • Java方法中不使用的对象应该手动赋值为NULL吗?
  • JS 新操作符 —— “?.”、“??”、“??=”
  • Excel 文件比较工具 xlCompare 11.01 Crack
  • Python编程陷阱(五)
  • 【Java并发编程二】线程的基本知识
  • YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度
  • MSYS2介绍及工具安装
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • excel用RAND函数、或者RAND.NV函数生成随机数、这两个函数的区别
  • NFTScan 正式上线 Viction NFTScan 浏览器和 NFT API 数据服务
  • OpenCV+特征检测
  • [deviceone开发]-do_Webview的基本示例
  • C# 免费离线人脸识别 2.0 Demo
  • CentOS7 安装JDK
  • Cumulo 的 ClojureScript 模块已经成型
  •  D - 粉碎叛乱F - 其他起义
  • Django 博客开发教程 16 - 统计文章阅读量
  • Java应用性能调优
  • nginx 负载服务器优化
  • Promise面试题,控制异步流程
  • Python语法速览与机器学习开发环境搭建
  • Spark学习笔记之相关记录
  • Travix是如何部署应用程序到Kubernetes上的
  • 从零开始学习部署
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端技术周刊 2019-01-14:客户端存储
  • Python 之网络式编程
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​iOS安全加固方法及实现
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #前后端分离# 头条发布系统
  • ${ }的特别功能
  • (02)Hive SQL编译成MapReduce任务的过程
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十三)Maven插件解析运行机制
  • (五)MySQL的备份及恢复
  • (转)可以带来幸福的一本书
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .CSS-hover 的解释
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET下ASPX编程的几个小问题
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • [ARM]ldr 和 adr 伪指令的区别