模拟简化了“假设”分析

每当为自动化工厂提出一种新的控制系统时,经理、工程师或操作员总会询问该系统将如何对工厂中的某些事件或条件作出反应。当环境温度降到冰点以下会发生什么?如果输送机突然停止,控制系统会怎么做?机械臂能挤过那个有零件的开口吗?

通过Vance J.VanDoren,控制工程 一九九八年七月一日
关键字
  • 过程控制与仪表

  • 模拟

  • 建模

  • 测试

  • 系统分析或设计

栏:
模拟条件

每当为自动化工厂提出一种新的控制系统时,经理、工程师或操作员总会询问该系统将如何对工厂中的某些事件或条件作出反应。当环境温度降到冰点以下会发生什么?如果输送机突然停止,控制系统会怎么做?机械臂能抓住一个零件挤过那个开口吗?这可能是一个价值百万美元的问题,因为控制系统可以使工厂更有利可图,也可以在意外情况发生时使情况更糟。

不幸的是,从所提议的控制系统的设计来看,它是否利大于弊并不总是显而易见的。连续过程控制器可能能够平稳地处理设定值变化,但当负载扰动过程变量时,设定值会剧烈波动。一队自动引导车辆可以连续几个月向装配线运送零件而不发生事故,但当其中两辆碰巧同时到达同一地点时,就会发生灾难性的故障。

要测试所提议的控制系统如何处理各种可能的情况,唯一确定的方法是设计、安装和试用。然而,这可能是发现设计缺陷的一种非常昂贵的方法。控制系统故障可能导致工厂关闭,需要进行昂贵的改造。在最坏的情况下,整个控制系统可能不得不被废弃、重新设计和重建。

更好的方法

如果控制系统最初是在基于计算机的虚拟世界中设计的,那么测试该系统就容易得多。模拟控制系统可以安装在模拟工厂中,而不需要实际设备的费用,也没有中断实际工厂生产的风险。在这个虚拟世界中,工厂和控制系统都只是以定制代码的形式存在于某种模拟计算机中模拟器

计算机模拟允许对各种极端条件和“假设”场景进行安全测试。如果测试发现控制系统处理某种情况的方式存在缺陷,只需更新模拟器中的控制系统程序,就可以实施必要的修改并重新测试。一旦所有假设问题都得到了令人满意的回答,完全测试的控制程序就可以从模拟器中取出,并在真实的控制系统中按原样运行。

在控制系统完全调试和安装之后,仿真同样有用。当有经验的操作员运行真实的工厂时,新的操作员可以接受训练,使用模拟工厂和模拟控制系统来做同样的事情。模拟训练通常是在配备了实际操作中使用的所有操作显示器的模拟控制室中进行的。像Honeywell Hi-Spec Solutions公司的Trainer这样的模拟器可以代替真实的工厂和真实的控制系统。然而,如果模拟是真实的,受训者就不知道其中的区别。他们毕业后就可以自己经营真正的工厂了。这种训练方案在大型的、高度自动化的设施中特别有效,因为模拟的“学习经验”比在真实的工厂中犯真正的错误要便宜得多。

为流程建模

那么,如何才能实现这一切呢?使用任意数量的商业软件包,模拟可以在几乎任何计算平台上实现。然而,所有的模拟都以某种数学形式开始模型这可以量化植物的行为。

典型的植物模型包括几个方程和几个变量输入,输出,以及参数植物的。控制系统所做的任何影响工厂活动的事情都是输入。这些控制努力的可衡量结果就是产出。控制系统计算输入,它需要应用到工厂根据最近的输出测量。

相反,植物模型中的方程显示了输入如何影响输出,而参数则指示了每种输入对每种输出的影响程度。

一个特定模型的方程应该如何构造,每个参数应该赋什么值,这些都是值得研究生研究的问题。如果植物的行为明显受物理、化学或几何等自然规律的支配,建模就会相对简单(参见图1中的例子)。然而,对于更复杂的植物,可能需要基于对植物先前行为的统计观察的经验关系来产生真实的模型。

一旦建立了植物模型并对其准确性进行了测试,剩下的就很容易了。模拟器获得一组初始植物输入,并求解模型方程,以得到真实植物的输出结果。然后,它得到这些输出,并使用控制程序来计算将由实际控制系统产生的下一组输入。新的输入导致新的输出,新的输出又导致新的输入,直到无穷无尽。随着每次迭代,新的数据被记录下来,一个模拟时钟被递增以表示时间的流逝。

一个简单的模拟

例如,考虑图1中所示的跷跷板。位置Y和速度Vy是由位置X和速度V决定的x左边女孩的比例,如方程[1]到[3]所示。因此,女孩是控制系统,男孩是植物,而板是控制系统用来影响植物的执行器。

方程[1]到[3]构成了该植物的模型。变量X和Vx输入是Y和Vy是输出,尺寸a, b, c是设备的参数。模拟器可以求解方程[1]到[3]的Y和V值y对应于X和V的最新值x.X和V的值x将根据表示控制程序的公式[4]进行计算。

可以用这个简单模拟测试的假设场景可能包括改变工厂中a、b和c维度或Y值的影响最小值在控制程序中。控制程序中的步骤也可以修改,以测试实现控制系统目标的更详细的策略。

警告

这个跷跷板模拟就是一个特别简单的例子。连续过程的植物模型通常涉及多个需要同时求解的微分方程。即使是采用简单IF-THEN-ELSE方程形式的离散制造模型,当工厂由数百个具有数千种可能工作状态的设备组成时,也会变得相当复杂。

边界条件是另一个使模拟更加困难的问题。工厂的物理限制阻止了实际输入和输出超过一定的上限和下限。在跷跷板的例子中,地面阻止X和Y假设为负值。因此,它们的上限分别限制为c(1 + a/b)和c(1 + b/a)。如果没有将这些边界条件纳入到植物模型中,两个模拟变量的无关值可能会产生。

的问题更糟未建模的行为.任何没有以某种方式包含在植物模型中的植物活动都是模拟预测结果中误差的潜在来源。由方程[1]到[3]给出的植物模型既没有考虑跷跷板的弹性,也没有考虑任何一个骑手的惯性。男孩的实际位置总是落后于植物模型预测的位置。在这个例子中,由未建模的行为产生的错误可能并不显著。然而,桥梁和建筑物曾因模拟测试中忽略的意外行为而倒塌。

即使所有最重要的植物行为都被纳入模型,如果模型包含不正确的植物参数值,模拟仍然会给出错误的结果。对无法通过分析推导出来的参数的经验估计尤其麻烦。离线验证测试通常通过对模型和真实植物应用相同的输入来检查估计参数的准确性。如果它们各自的输出也被证明是相同的,那么模型就可以在模拟中使用了。否则,将调整参数并重复测试,直到输出匹配为止。

不幸的是,即使是最广泛的验证测试仍然不能保证整个模型的准确性。该模型可能在所有测试的情况下给出正确的结果,但在更极端的条件下仍然可能不准确。模型中还可能缺少其他参数或整个方程,不能简单地通过调整现有参数来容纳。

没有看起来那么难

所有这些挑战可能使模拟设计看起来是一项艰巨的任务。然而,由于大量的商业软件包,建立一个模拟测试控制系统的性能比看起来要容易得多。

来自MathWorks (Natick, Mass.)的Simulink就是一个例子。它提供了一个图形化的环境来建模一个工厂,并模拟其与所提议的控制系统的交互。用户可以通过从标准调色板中选择预配置的元素来绘制他们的植物框图。用户只需为每个块指定参数值以及块之间的数据流。Simulink自动创建并执行相应的仿真程序。

这种面向对象的模拟设计方法通常已经取代了基于Fortran或Basic等通用编程语言的更传统的diy方法。特定于模拟的编程语言,如SSPA Maritime Consulting AB (Goteborg, Sweden)的Simnon,现在主要用于创建更复杂的模型,这些模型不适合简单的框图结构。

像Simnon一样,MGA软件公司的高级连续模拟语言(ACSL)最初是一种特定于模拟的编程语言。它提供了一个特殊用途的操作符库,可以与自己开发的Fortran、C或Ada程序相结合,以创建定制编码的模拟。然而,今天MGA提供了一个图形化编程工具—ACSL模型—允许用户通过连接ACSL编码的标准和定制功能块来绘制他们的模拟框图。不需要编程。

对于想要使用计算机代码的用户,Simulink和ACSL都提供了翻译器,可以根据相应的框图创建C程序。该特性允许模拟在其他计算平台上运行,包括控制系统本身。用户可以对控制系统进行测试,而不是在将控制程序移动到实际控制系统之前在单独的模拟器中测试原位在飞机上模拟工厂。

实时模拟

来自Xanalog公司的Xanalog模拟和控制系统设计包将这一想法更进一步。它可以包括通过安装在模拟器中的I/O端口收集的实时工厂数据。这Feature的目的是作为一种机制,通过包括实际植物的选定元素,而不是纯粹的数学模型,来创建更真实的模拟。

注意,这种方法需要实时运行整个模拟。另一方面,纯数学模拟的运行速度与模拟器处理数字的速度一样快。只要真实设备不提供数据,一天的生产可以在几毫秒内模拟出来。另一方面,实时仿真更适合于操作员培训和测试真实控制系统原位

SST (Waterloo, Ontario, Canada)提供了一种图形模拟工具,专门用于实时测试基于plc的控制系统。SST的可编程工业控制仿真软件(PICS)在PC上运行,并使用一个模型来模拟植物的行为。它通过远程I/O点与PLC连接,接受来自控制系统的输入并将输出返回到实际工厂。这允许用户完成PLC的编程和离线测试,而无需使实际工厂在线。

HEI Corp.将这种实时模拟描述为模拟植物的。HEI的自动化主软件,如PICS,在PC上运行,并与PLC交互,就像它是真正的工厂一样。

分析结果

一旦模型建立、验证、连接到真实(或模拟)的控制系统,并运行了它的速度,用户可以期待什么样的结果来解决他们的麻烦?这在很大程度上取决于他们正在寻找的答案。如果问题很简单,比如模拟油箱的水位上升了多高,或者在模拟事故中输送机停止了多少次,那么数字显示就足够了。每个模拟包都提供了一些显示模拟时钟的每一次滴答所记录的模拟数据的方法。趋势图也广泛用于显示与模拟时间尺度相对应的历史数据点。

一些仿真包还提供了用于评估模拟控制系统和模拟工厂的整体性能的分析工具。例如,来自Visual Solutions (Westford, Mass.)的VisSim可以根据来自连续控制器或连续过程的模拟输入/输出数据生成Nyquist、Bode和根轨迹图。Simulink可以将它生成的数据导出到Matlab(也是从MathWorks导出的),以进行与Matlab可以对真实植物数据执行的相同类型的数字运算。这种分析工具对于验证工厂模型的准确性特别有用。

数字和图表并不总是能说明全部情况。有时,设计师需要观察一个控制系统的实际运行情况,以确定并纠正其设计缺陷。理论上,管道网络可能具有将一批粘性物质从A点移动到b点的能力。然而,如果传输操作的模拟显示在该过程中有一个中间罐溢出,则需要一种控制传输的新策略。

系统建模公司(Systems Modeling Corp., SM, Sewickley, Pa.)的Arena 3.0就是为此类应用设计的一个仿真包。像ACSL一样,它从图形工厂设计中生成必要的模拟代码。它还生成一个自动布局的影院,SM的动画程序。一个电影动画显示了竞技场正在模拟什么。这种组合不仅可以帮助设计人员可视化控制系统的性能,还可以用于培训操作人员来运行工厂。

并不是所有的仿真包都像Simulink、ACSL、Xanalog和VisSim一样广泛适用。有些是专门为某些应用程序和特定行业设计的。

例如,ACT GmbH (Oberwart, Austria)的ACT - top仅使用模拟来教授用户连续过程的动态、优化和控制。Framatome技术公司(弗吉尼亚州林奇堡)为化石电厂和核电站模拟提供模块化建模系统。Simulation Sciences, Inc. (Brea, california), Hyprotech (Calgary, Alberta, Canada), Aspen Technology (Cambridge, Mass)和Honeywell Industrial Automation & Control (Phoenix, arizona)都提供专门为碳氢化合物和化学加工行业设计的模拟产品。

SM的Arena软件也可以是特定于行业的,必要时甚至是特定于用户的。Arena包括用于创建可重用模块的工具,这些模块可以根据每个应用程序的特定需求定制产品。所有这些软件包,无论是通用的还是特定的应用程序,都可以使模拟工厂和拟议的控制系统更加容易。最困难的工作可能是为工作选择最好的软件产品。

模拟条件

边界条件-工厂中的物理约束,规定了测量变量的最大和最小可能值。

模拟-实时进行的模拟。

一种通过包括植物本身的选定成分而不是纯粹的数学模型来创建更真实的植物模拟的机制。

植物输入控制系统所做的任何影响工厂活动的事情。

工厂模式一组量化植物行为的数学或逻辑关系。

植物输出-控制系统努力的可测量结果。

参数-植物模型中量化植物物理特性的常数。

模拟一种通过求解描述植物组成成分行为的数学关系来预测植物行为的程序。

模拟器一种根据植物模型模拟植物输入/输出行为的计算机。

未建模的行为-植物模型中没有包括的任何植物活动。

验证测试-通过对模型和真实植物应用相同的输入并比较结果来检查植物模型的准确性的练习。