仿真:用或不用,这是个问题。在部署之前,花时间创建仿真模型并测试设计,或者在部署期间花时间测试设计,是否更好或者更高效?虽然我不能代表莎士比亚,但我可以说,在我近40年的职业生涯中,在部署之前完善设计,总是更有成效的。我已经成功地将仿真应用于包括许多不同类型工业控制系统、电子印刷电路板设计和现场可编程门阵列(FPGA)设计的应用。
仿真带来的回报
基于以下5个原因,让仿真物有所值:
1.仿真模型所提供的洞察,无法在实际工厂或设备中测量或观察到。
2.能够确定替代方法的优点,并选择具有最低总成本或最佳整体性能的选项。
3.能够测试危险或异常工况,这对实际设备这是不可能实现的。
4.设计的高度可信,相应地可以确保将调试过程中遇到的任何问题限制在车间或设备中。
5.能够在工厂或设备的建设过程中完善控制。这样可以减轻焦虑的项目经理所承受的不可避免的压力,不用请求关键路径末端的人加班加点来弥补项目早期的延误。
利用现代开发和仿真环境,包括可加速开发的面向对象工业编程(OOIP),以及先进的调试功能,可加快洞察时间,使投资回报率变得更大。
工业控制仿真环境
良好的工业控制仿真环境的特征看上去与良好的工业控制开发环境非常相似:
●多样和强大的编程语言。
●全功能语言编辑器。
●全套调试工具,包括代码和数据断点;单步、步进、步出等;实时模式(显示瞬时变量值,而不仅仅是循环值的结束);写入和强制变量并移动执行点;在控制器循环时间采样的虚拟数字示波器。
●内置人机界面,用于创建测试控制面板。
●完整的控制器运行环境,在开发计算机上作为服务运行。
●支持面向对象工业编程。
在这样的环境中创建仿真代码,就像创建原始代码一样简单,它可以作为基于软件的可编程逻辑控制器(PLC)运行,这与工业控制器原始设备制造商在其硬件上部署的完全相同。 此运行环境安装为独立于开发环境的微软视窗服务。在集成开发环境中创建和编译控制代码,并以与PLC或分布式控制系统(DCS)相同的方式部署到此运行环境中。
面向对象工业编程
以简单反应罐仿真为例,该罐具有可变速度出口泵,不管入口流速如何都可以将流体液位保持在预设水平。这些概念可以推广到更大的系统和其它行业。
第一步是设计控制系统。使用面向对象工业编程技术,从工厂对象库中实例化4个对象:罐体的液位仿真输入、设定值的减法、比例-积分-微分(PID)回路控制,以及用于泵电机的变频器(图1)。
图1:控制设计可以在Codesys CFC中实现。 图片来源:ControlSphere 公司
使用面向对象工业编程技术,所有剩余功能都封装在这些对象中,例如仿真输入的缩放和报警,以及变频器的现场总线通信。
在这个例子中,工厂有一个料罐,需要10秒才能以100%的流速填充,相当于极点在0.0Hz,增益为1 /(10 * 2πf)。对于1.0 Hz的回路带宽,应用10 * 2π的比例增益。这提供了接近90度的相位裕度和高水平的稳定性。
下一步是设计工厂仿真器。仿真器程序通过变频器输入、料罐模型以及仿真输出对象来镜像控制,它们都来自仿真对象库。
同样,每个对象都封装了执行对象功能所需的所有功能。例如,料罐集成了输入流量和输出流量之间的差异www.cechina.cn,并将积分限制在料罐满或料罐空之间(图2)。料罐模型显示了建立仿真对象是多么简单,并将增加仿真的简单性扩展到工作流程中。
图2:料罐仿真器(TANK_SIM):料罐集成了输入流量和输出流量之间的差异www.cechina.cn,并将积分限制在料罐满或料罐空。
在该示例中,配置输入以及控制和仿真程序中的I/O映射是硬编码的。在更大规模的面向对象工业编程设计中,则是在中央SQL服务器或CSV文件中进行配置,这样设计就可以复用。
请注意,仿真器输入映射到控制输出,仿真器输出映射到控制输入。使用相同的完整路径名称以相同的方式映射物理I/O地址。
接下来就是创建测试平台。 就像创建物理工作台一样www.cechina.cn,虚拟测试平台提供系统所需的所有输入,包括:上游过程输入、运行人员输入和配置输入。 这些过程输入可以从用于手动测试的人机界面屏幕产生,也可以从自动测试程序生成。
同样,人机界面输入可以以编程方式生成以进行自动测试,也可以从实际人机界面屏幕生成。在这种情况下,仿真系统可以兼作工厂运行人员的培训工具。 此示例使用顺序功能图程序以编程方式生成激励,该程序首先执行阶跃响应,然后是稳定状态(图3)。此顺序功能图还提供执行伯德循环分析的选项,以搜索控制回路的极点和零点。
图3:可以在Codesys SFC中使用ST输入和活动来测试平台。
测试平台还可以包括程序化测量和分析,以创建自动化测试平台。 自动化测试平台允许系统在多种情况下进行验证,并允许系统在未来所做的任何修改后进行自我测试。 对于那些不熟悉系统原始设计的工程师所进行的修改来讲CONTROL ENGINEERING China版权所有,尤其应该如此。
下一步是将这些对象加入到任务中(图4)。 控制分配给它的正常任务,循环时间是20毫秒。 由于仿真器和测试平台需要仿真实时运行的工厂和工厂运行人员,因此仿真器任务的循环时间比控制任务快得多。 潜在的同步问题,可能较掩盖潜在控制问题,为了避免这种可能,还为仿真器任务分配了控制任务的非整数子速率(3毫秒)。
图4:创建任务列表是仿真项目的一部分。
最后一步是在内置的、基于软件的PLC上下载并运行程序。就像在物理测试平台中一样,各种测量设备用于验证系统的正常运行。 其中一种虚拟仪器是伯德回路分析仪,它测量控制回路的极点、零点以及增益和相位裕度。将仪器接入到回路中,可用于在仿真过程中测试各种控制方案,以及验证和调整实际工厂中的控制回路。该分析的结果显示交叉频率为1.0Hz,相位裕度为82度(图5)。
图5:一阶控制回路伯德分析CONTROL ENGINEERING China版权所有,找到控制回路的极点和零点。
另一个有用的测试仪器是虚拟示波器,它显示了反应系统的步进和动态响应(图6)。应当注意www.cechina.cn,这个示波器在目标硬件上运行,因此可以确保在每个周期捕获样本,甚至在微秒循环时间内。
图6:在Codesys Trace 中显示稳态和动态响应。
如果这个一阶控制回路性能不符合系统要求,则可以用0.0 Hz的极点和1.0 Hz的零点来增强PID,以稳定(需要缓解措施)为代价提高精度(图7)。这个二阶系统提供更高的回路增益和37度的相位裕度; 并提供一个更好的稳态动态响应(图8)。
图7:伯德回路分析仪显示二阶控制回路。
图8:二阶控制回路稳态和动态响应可以提供更高的回路增益。
除了连续流程,仿真技术还可以应用于批处理和离散过程,以及移动、嵌入或任何其它工业自动化应用。例如可以为传送机、灌装机、干燥成分螺旋钻、管道和阀门系统以及许多其它应用创建仿真模型。几乎任何工业过程都可以充分建模以允许仿真。
本文中这个简单的例子展示了可以通过仿真获得的洞察力,通过仿真进行测量和选择所能获得的权衡和置信度,以及在实际硬件可用之前可以完成的有价值的过程仿真。这些技术可以应用于几乎任何工业应用,并且可以扩展到任意大小或复杂度的系统。(作者:Gary Pratt)