一、什么是系统?
系统一般定义为由若干要素以一定结构形式连接构成的具有某种功能的有机整体。系统要素之间或系统与环境之间通常存在物质流、能量流和信息流的交互。系统含义广泛,宇宙万物凡是具有要素、结构和功能属性的垫体都可称为系统。系统种类繁多,可以粗分为自然系统、人工系统和复合系统,也可以分为工程系统和物理系统。工程系统也称为技术系统,一般属于人工系统,是指在工程中为实现规定功能由相互关联的若于要素以一定结构形式构成的装置。物理系统也是一个常用的相关概念,其涵义比工程系统宽泛,可以为人工系统、自然系统或复合系统。
二、什么是系统建模?
随着工业实践和科学技术的发展,现代机电产品日趋复杂,其通常是由机械、电子、液压、控制等不同领域子系统构成的复杂系统。设计是现代机电产品制造产业链的上游环节和产品创新的源头。仿真与理论、实验一起成为人类认识世界的三种主要方式,基于仿真的分析与优化逐渐成为复杂工程系统设计的重要支撑手段。而系统仿真的基础是系统建模,系统建模一般包括物理建模和数学建模两个步骤,相应的模型称为物理模型和数学模型。物理建模是由参数化的理想物理元件以一定拓扑结构形式描述真实系统的物理行为特性。数学建模是通过变量与方程的关系以数学或逻辑形式描述物理模型的物理行为和拓扑结构。
从建模方式上讲,物理建模是指与工程系统设计过程尽可能相近的建模方式,并且要求与工程师的设计习惯一致。这表示工程师在建模过程中不需要与数学方程打交道,只需要处理组件(即元件)和参数。面向对象建模、多领域统一建模、陈述式非因果建模及连续离散混合建模等典型特征,可以有效支持直接物理建模。
1、面向对象建模
面向对象建模(object-oriented modeling,OOM)的思想来源于面向对象编程(object-oriented prograraming,OOP)。对象(objeet)作为编程实体最早于19世纪60年代在Simula 67中引入,Simula67起一一种用于感教我件份真的程序语言。面向对黎编程(OOP)的完整概念在 19 世纪70年代由 Smallalk g/入, Smallualk 5y Simula 67一脉相承,但其对象是完全动态的,并引入丁缘死的恩想。1973年,瑞典 Elmovist 受 Simula 影响设计了第一个面向对象的物理建模语言Dymola。目前,面向对象建模已经成为物理建模的重要特征和支持手段,面向对象具有三个典型性质:封装性、继承性和多态性。
1.1 类与对象
类与对象是面向对象建模的基本概念。类可以认为是对一类事物的抽象,为类属;对象是类的实例,为具象。每个类可以具有数据与行为。数据主要指不同属性的变量,按可变性可以分为常量、参量与交量,按连续性和性质可以分为代数变量、状态变量与离散变量。类的行为通常采用方程描达,方程通过对变量施加不同性质的约束,从而使类通过变量在时间进程中表现出动态的行为。
1.2 封装
封裝旨在控制对于数据的访问和隐藏行为实现的细节。面向对篆编程通常将数据访问权限分为三个级别:publie、protected 和 private。面向对象建模对于数据访问权限的支持,有利于隐藏模型细节,保护模型知识。此外,封装有利于提供稳定的对外接口,保证模型代码的模块化,提高模型的重用性。
1.3 继承
继承是面向对象建模中类与类之间的一种关系。继承的类称为子类、派生类,而被继承类称为父类、基类或超类。通过继承,使得子类具有父类的数据与行为,同时子类可以通过加入新变量和方程的方法,建立新的类层次。
1.4 多态
面向对象编程中多态通常分为以下几类:子类型多态(subrype polymorphism)、参数多态(Yparamerie polmorphism)、重载(overloading)和强制转换(coercion)。面向对象建模的多态性与面向对象编程有所不同,更加侧重于表现基于多态方便地提供模型重用、类型衍生及方程灵活表示的能力。
1.2.2 多领域统一建模
物理系统中客观存在不同的领域,如机械、电子、控制、液压、热学等,不同领域的组件表现出不同的形式、结构与特性,具有不同性质的物理本构和动态行为。在数学表示上,不同领域元件的物理本构可以使用相同形式的代数方程、微分方程或偏微分方程描述,这是多领域统一建模的根本基础。但在物理建模层面,由于不同领域组件的结构与连接形式不同,并不存在直接的多领域统一建模方法。
1.2.3 陈述式非因果建模
程序设计语言通常将设计分为不同的模式,如过程式程序设计、结构化程序设计、基于对象的程序设计、面向对象的程序设计等,但其共同基础仍是冯-诺依曼体系和赋值模式,即需要告诉计算机如何做。也就是说,程序设计语言对于问题的描述仍是过程式的,但对于程序的组织可以采用不同模式。
根据问题描述因果本质的差别可以将建模区分为过程式建模和陈述式建模。
过程式建模,也称为因果建模,对于问题需要明确描述如何去做,其中每个模块具有确定的输入和输出,通常采用赋值模式来描述。支持过程式建模在物理建模中具有必要性,很多物理系统,如过程系统,本身就是过程式的,对于这种系统采用过程式描达更易于表达系统本质;再者已经存在大量采用过程式语言描述的模型代码,支持过程式描述更利于集成和重用现有资源。
陈述式建模,也称为非因果建模,对于问题只需要描述问题是什么,而不需要说明如何去做,每个模块具有明确的未知量和已知量,通常采用陈述式方程,或者通过直接描达问题的物理拓扑(元素之问的关系与属性)来表达。陈述式建模侧重于问题本身的描述,屏蔽了问题的解决方案细节,更加符合客观世界中大多数问题的认知模式。在工程物理系统建模中,陈述式建模更加有利于工程师专注于设计而非求解。
1.2.4 连续离散混合建模
根据模型中时间进程与状态改变的关系,可以将模型划分为三种类型:连续时模型(continuous-time, CT)、离散事件模型(discrete-event, DE)与离散时模型(discrete-time, DT)。
对于连续时模型,在任意给定的有限时间间隔内,存在无限次状态改变,但在离散时间点没有状态改变;对于离散事件模型,状态只在离散时间点改变,在两个相邻离散时间点之间状态保持不变;对于离散时模型,状态只在等距的时间点改变。离散时模型可以认为是离散事件模型的子集。
当前通用物理建模语言或工具往往需要支持连续离散混合建模。可以在连续时模型基础上通过非连续性特性或过程建模要素支持扩展,也可以在离散事件模型基础上通过连续系统建模功能扩展,以支持连续离散混合建模;或者直接完整地同时支持连续和离散建模。