Bang-Bang 温度控制系统建模
此示例说明如何构建用于锅炉温度调节的 bang-bang 控制系统。此示例演示了一个用于锅炉温度调节的 bang-bang 控制系统。此系统实现了一个用于控制和计时的 Stateflow® 图,以及一个用于对锅炉行为进行建模的 Simulink® 子系统。此系统包括两个关键组件:
Bang-Bang Controller:
一个 Stateflow 图,用于控制加热循环时序,管理温度设定值,以及使用时序逻辑处理状态转换。它使用定点数据表示锅炉温度。Boiler Plant Model
:一个 Simulink 子系统,用于对锅炉在不同状态下的实时温度动态变化进行仿真。
控制逻辑的运行
Bang-Bang Controller
系统从 Off
状态开始,并按照由 Stateflow 时序逻辑控制的序列运行。初始化系统时:
Off
状态保持激活40
秒。到
40
秒时,控制器检查锅炉温度。如果温度指示低温条件,控制器转移至
On
状态。On
状态保持激活20
秒。然后,图转移回
Off
状态。这一60
秒的循环会持续到仿真停止。
On
和 Off
状态间的转移使用 after
运算符来计时。例如,after(20,sec)
会在 20 秒后触发从 On
到 Off
的转移。40 秒后,如果 cold
函数返回 true
,则转移标签 after(40,sec)[cold()]
会触发从 Off
到 On
的转移。
Off
状态包含一个名为 Flash
的子状态,后者通过自循环转移控制状态 LED
。转移标签 after(5,sec)
触发子状态的 entry 动作,并使 LED 每 5 秒闪烁一次。
温度信号处理
Boiler Plant Model
子系统对锅炉在加热或冷却期间的温度反应进行仿真。根据 Bang-Bang Controller
图的输出,子系统会在先前的锅炉温度基础上执行加减运算,加热时 +1
,冷却时 –0.1
。图随后将结果传递给 Digital Thermometer
子系统。
在 Digital Thermometer
子系统中,温度信号经过三个阶段的处理,从温度读数转换为数字控制值。
温度信号按顺序通过三个转换阶段,从原始温度读数转换为数字控制值。
Sensor 模块使用线性转换将锅炉温度转换为模拟电压,输出电压值与温度成正比。
Analog-to-Digital Converter 模块将模拟电压转换为 8 位离散值。系统将电压乘以一个转换因子,将结果限制在 8 位范围内,并在此基础上舍入至最近的整数。输出是一个量化整数。
Linear Fixed-Point Conversion 模块将 8 位整数处理成最终的温度值。该模块通过应用校准斜率和偏置来生成数字温度读数。这样可以在维持 8 位环境兼容性的同时保证测量精度。
此系统在 8 位参数下运行:输入范围为 0-255,分辨率为 1/256 满量程,所有计算都采用定点算术运算。这一处理流程可保证从传感器输入到最终控制输出整个控制系统中温度表示的一致性。
Bang-Bang Controller
图接收此数字编码温度,并将其解释为无符号 8 位定点数据。该图在 8 位环境中处理温度数据。
仿真结果
仿真结果显示锅炉在 450 秒(7.5 分钟)后达到 20°C。bang-bang 控制器随后在剩余运行时间内保持这一目标温度。
另请参阅
after
| every
| Data Type Conversion (Simulink)