Engee 文档
Notebook

空气温度控制系统的模型

此示例的目的是演示图表块在形成管理各种对象的逻辑方面的能力。 特别是,在这个例子中,我们将考虑控制房间空气温度的选项。


操作原理

的模型(AirCond_Chart.engee)由几个子系统组成。 外部温度由随机信号产生,并在外部温度块中实现。 房间内部的热力学在子系统-房间热力学。 它模拟外部热流的影响,并计算当前空气温度,同时考虑到空调器的影响系数-热流,其值在图表块中确定。 您可以通过双击感兴趣的子系统来了解有关模型实现的更多信息。

acFlowChart--1711368039318.png

图表块实现控制房间内空气温度的逻辑。

acFlowChart--1711188821557.png

流程图的算法如下。 图表输入接收信号:

*temp-房间内的当前空气温度,F;
*tempDesired-所需的空气温度,F;

接下来,在块内部比较两个参数。 如果当前温度高于所需温度,则heatFlow参数将设置为-1,温度将开始降低。 如果当前温度低于所需温度,则heatFlow参数将设置为1,温度将上升。 如果当前温度在可接受的范围内,则热流量设置为0。

让我们运行模型并查看结果。

In [ ]:
# Подключение вспомогательной функции запуска модели.
function run_model( name_model, path_to_folder )
    
    Path = path_to_folder * "/" * name_model * ".engee"
    
    if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
        model = engee.open( name_model ) # Открыть модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
    else
        model = engee.load( Path, force=true ) # Загрузить модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
        engee.close( name_model, force=true ); # Закрыть модель
    end

    return model_output
end
Out[0]:
run_model (generic function with 1 method)
In [ ]:
run_model("AirCond_Chart",@__DIR__) # Запуск модели.
Building...
Progress 100%
Out[0]:
Dict{String, DataFrames.DataFrame} with 3 entries:
  "Chart.heatFlow" => 202×2 DataFrame…
  "T"              => 202×2 DataFrame…
  "T_ext"          => 202×2 DataFrame
In [ ]:
# Считывание из simout залогированных сигналов
T_ext = simout["AirCond_Chart/T_ext"];
T_ext = collect(T_ext);

heatFlow = simout["AirCond_Chart/Chart.heatFlow"];
heatFlow = collect(heatFlow);

T = simout["AirCond_Chart/T"];
T = collect(T);
In [ ]:
using Plots
plot(T_ext.time, T_ext.value, label = "T_ext")
plot!(T.time, T.value, label = "T")
Out[0]:

正如您所看到的,随着外部温度的跳跃,房间内部的温度也开始变化,但是,由于控制逻辑,它保持在可接受的值范围内。 让我们绘制heatFlow参数的变化,以确保图表块正在工作。

In [ ]:
plot(heatFlow.time, heatFlow.value, label = "heatFlow")
Out[0]:

结论

在这个例子中,我们研究了一种使用有限状态机库的图表块实现控制逻辑的方法。 简化了实现选项,但仿真结果表明该模型在保持温度方面做得很好。