动态系统仿真

这是回顾各种复杂系统编程方法的五部分系列文章的最后一篇。以前的文章关注的是梯形图、功能块图、文本编程和状态图。本文探讨了一种编程模型,用于描述和模拟动态系统随时间变化的行为——这通常是系统设计中必不可少的一步。

通过凯文·霍根和里卡多·杜尼亚,国家仪器公司 二零零七年十月一日

这是回顾各种复杂系统编程方法的五部分系列文章的最后一篇。以前的文章关注的是梯形图、功能块图、文本编程和状态图。本文探讨了一种编程模型,用于描述和模拟动态系统随时间变化的行为——这通常是控制器系统设计中必不可少的一步。

许多控制工程师更喜欢用控制方框图来可视化他们的系统,而不是一组微分方程。

“动态系统”一词通常是指状态变量随时间变化的系统。在机械系统中,这些变量可能是位置、速度和加速度。在电气系统中,电流和电容电荷通常提供状态变量。在化学系统中,变量可能是各种反应物的浓度。

您可能经常想要控制动态系统,而控制算法本身就是一个具有内部状态变量的动态系统(控制器)。为了帮助设计复杂的控制算法,您可以离线模拟控制器和工厂的相互作用。

动态系统的仿真

要计算动态系统在任何给定时间的状态,只需指定系统状态变量的初始值,以及一个函数,该函数可以确定变量在任何时间的变化速度:

您可以将系统的时间演化近似为它在“时间步长”中达到的一系列状态。最简单,但通常精度最低的是欧拉法,它通过欧拉公式计算下一个时间步的状态:

还有其他更精确但更复杂的方法来逼近系统的状态,但它们的工作原理都类似于欧拉方程,并且都是在一系列的时间步长上计算系统的近似状态。

控制框图

控制工程师很少用微分方程来考虑他们的系统。更确切地说,他们更喜欢从连接在一起作为“控制框图”的一部分的独立的、相互作用的组件的角度来思考。在控制框图中,组件块的输出可能取决于组件块的物理状态和/或其输入。此外,通常需要有从工厂反馈到控制器输入的输出信号。

虽然它们看起来不同,但控制框图等价于微分方程表示。一般情况下,控制框图中的动态系统块由一个具有内部状态变量和时变输入输出变量的单个方框表示。

输入和输出变量是注入和从动态系统中提取的信号,用于解释框图中不同组件之间的相互作用。状态变量定义了系统的动态特性,系统的动态特性不仅受初始条件的驱动,还受输入变量的驱动。

请注意,输出被描述为状态变量和输入变量的函数,除了状态提供的动态之外,没有添加动态。

您可以将系统块放在一个序列中,这表明对于连续的块,前一个块的输出将成为后一个块的输入。例如,考虑一下扭摆的情况。执行器是一种电动机,它根据提供给电动机的电流提供转矩。电流由与PID控制器通信的驱动电子元件决定。PID控制器的输入是参考值(设定点在其轨迹上移动时的瞬时值)与由相机测量的植物块输出之间的差值,该相机确定了顶部圆盘的位置。

一个典型的控制回路特征是反馈交互作用,它是将后一个系统模块的输出连接到前一个系统模块的输入。在我们的示例中,工厂块输出是PID控制器的输入。计算模拟模型以自然的方式考虑反馈连接。

每个系统块都有输入和输出,以及内部状态变量。

一个控制方框图系统的仿真

包括NI MATRIXx套件,MathWorks的Simulink环境和NI LabVIEW控制设计和仿真模块在内的几个软件工具可用于使用控制框图描述系统并模拟系统的行为。

模拟控制框图的软件通常将系统作为大循环的一部分运行,循环的迭代代表系统的一个时间步长。此外,该软件还提供了几种求解图中所描述的系统的方法,包括适合快速离线仿真的高精度变步长求解器,以及适合部署到实时目标的固定步长和离散求解器。

一些动态系统仿真产品也可以很容易地直接与图中的硬件进行交互。例如,LabVIEW控制设计与仿真模块包括与数据采集设备接口的功能。

此外,许多产品提供了将模拟移植到实时实现的功能。例如,您可以使用NI LabVIEW控制设计和仿真模块将您的仿真解决方案移植到实时目标,如NI CompactRIO和PXI硬件。

在控制框图中,放置在仿真框架内的所有块都根据为仿真循环定义的集成求解器执行。块表示可以在不同采样率下执行的控制块。这种多速率执行对于确定不同机电设备的相互作用是必不可少的,因为放置在控制回路内的设备很少都以相同的采样率执行。

使用仿真模型的另一个好处是,您可以随着仿真的及时进行动态调整参数。您可以修改PID控制器增益和电机配置参数,以确定闭环响应的最佳参数。还要注意反馈互连,其中钟摆位置连接到控制器输入,自然是在仿真环路中实现的。

最后,在软件包中实现仿真也可以使创建复杂的用户界面变得容易。

优势和劣势

与所有计算模型一样,动态系统仿真在某些编程情况下更合适,而在其他情况下则不太合适。理解计算模型的优缺点并将其纳入到软件设计决策中是非常重要的。

优点:

  • 动态系统的直观、自文档化表示。创建复杂系统的描述,使其易于其他工程师阅读和理解。

  • 高级仿真求解器方法的多个选项。利用现成的和经过测试的复杂求解器方法的实现,如Runge-Kutta、Adams和BDF求解器。

  • 多速率执行能力。轻松直观地安排以不同速率运行的控制块。

  • 参数动态调整。在仿真过程中,很容易改变控制块的参数。

缺点:

  • 不完整的编程系统。为了表示仿真套件中没有直接提供的功能,必须将仿真系统与通用编程语言(如C或LabVIEW)结合起来。

  • 更多的时间花在分析上。要将一个系统分解为多个动态系统组件,您必须进行一些分析。

利用仿真计算模型,控制专家可以快速开发复杂的控制算法,以测试其与模拟植物的相互作用,并将其控制算法部署到各种目标上。

作者信息
Kevin Hogan是位于德克萨斯州奥斯汀的美国国家仪器公司LabVIEW研发中心LabVIEW控制设计和仿真模块的高级工程师。Hogan于1999年8月加入NI,拥有德克萨斯大学奥斯汀分校计算应用数学硕士学位。
Ricardo Dunia是位于德克萨斯州奥斯汀的美国国家仪器公司LabVIEW研发中心LabVIEW控制设计和仿真模块的高级工程师。他还是德克萨斯大学奥斯汀分校科克雷尔工程学院过程控制高级班的讲师。Dunia于2003年3月加入NI,在UT-Austin获得化学工程博士学位。