{
  "format": "mars-scheme",
  "version": 1,
  "title": "АВО · управление охлаждением",
  "scenes": {
    "logic": {
      "blocks": [
        {
          "uid": "p_pid",
          "compId": "pid",
          "label": "ПИД · температура",
          "x": 180,
          "y": 220,
          "attrs": [
            {
              "name": "setpoint",
              "value": "40",
              "unit": "°C",
              "type": "number"
            },
            {
              "name": "Kp",
              "value": "0.12",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Ki",
              "value": "0.05",
              "unit": "1/с",
              "type": "number"
            },
            {
              "name": "Kd",
              "value": "0",
              "unit": "с",
              "type": "number"
            },
            {
              "name": "u_min",
              "value": "0",
              "unit": "",
              "type": "number"
            },
            {
              "name": "u_max",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "dt",
              "value": "1",
              "unit": "с",
              "type": "number"
            },
            {
              "name": "reverse",
              "value": "true",
              "type": "combo",
              "options": [
                "true",
                "false"
              ]
            },
            {
              "name": "Каскад",
              "value": "Нет",
              "type": "combo",
              "options": [
                "Нет",
                "Главный",
                "Промежуточный",
                "Замыкающий"
              ]
            },
            {
              "name": "ov_sign",
              "value": "-1 · закрытие снижает T (АВО)",
              "unit": "влияние резерв. актуатора",
              "type": "combo",
              "options": [
                "-1 · закрытие снижает T (АВО)",
                "+1 · закрытие повышает T"
              ]
            },
            {
              "name": "Уставка ведомого при низком спросе",
              "value": "",
              "unit": "",
              "type": "number",
              "placeholder": "напр. 45 (больше расход)"
            },
            {
              "name": "Уставка ведомого при высоком спросе",
              "value": "",
              "unit": "",
              "type": "number",
              "placeholder": "напр. 15 (меньше расход)"
            }
          ]
        },
        {
          "uid": "p_dev",
          "compId": "l_device",
          "label": "АВО · обратная связь",
          "x": 680,
          "y": 230,
          "attrs": [
            {
              "name": "device",
              "value": "e_a",
              "type": "device-ref"
            }
          ],
          "taps": [
            {
              "dir": "out",
              "side": "right",
              "bind": "detail.T_prod_out"
            },
            {
              "dir": "in",
              "side": "left",
              "bind": "fan_cmd"
            }
          ]
        },
        {
          "uid": "guide",
          "compId": "w_hint",
          "label": "Замкнутый контур температуры",
          "x": 70,
          "y": 30,
          "w": 1060,
          "h": 115,
          "attrs": [
            {
              "name": "Заголовок",
              "value": "Замкнутый контур температуры",
              "type": "string"
            },
            {
              "name": "Текст",
              "value": "Уставка задаётся в setpoint ПИД-блока. Верхняя связь — команда вентилятору; нижняя — измеренная температура. Подача на объектном слое задана граничным условием: вода при 60 °C.",
              "type": "string"
            }
          ]
        }
      ],
      "wires": [
        {
          "from": [
            "p_dev",
            0
          ],
          "to": [
            "p_pid",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 871,
                "y": 273
              },
              {
                "x": 921,
                "y": 273
              },
              {
                "x": 921,
                "y": 440
              },
              {
                "x": 130,
                "y": 440
              },
              {
                "x": 130,
                "y": 273
              },
              {
                "x": 180,
                "y": 273
              }
            ]
          }
        },
        {
          "from": [
            "p_pid",
            1
          ],
          "to": [
            "p_dev",
            1
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 350,
                "y": 273
              },
              {
                "x": 680,
                "y": 273
              }
            ]
          }
        }
      ],
      "groups": [
        {
          "id": "pid",
          "title": "Задание и регулирование",
          "color": "#527da8",
          "x": 150,
          "y": 165,
          "w": 230,
          "h": 179,
          "memberIds": [
            "p_pid"
          ]
        },
        {
          "id": "bridge",
          "title": "Измерение T и управление fan_cmd",
          "color": "#438578",
          "x": 650,
          "y": 175,
          "w": 251,
          "h": 159,
          "memberIds": [
            "p_dev"
          ]
        }
      ]
    },
    "object": {
      "blocks": [
        {
          "uid": "e_f",
          "compId": "feed",
          "label": "Подача",
          "x": 70,
          "y": 334,
          "attrs": [
            {
              "name": "Режим",
              "value": "Давление",
              "type": "combo",
              "options": [
                "Расход",
                "Давление"
              ]
            },
            {
              "name": "Значение",
              "value": "0.8",
              "unit": "кг/с или МПа",
              "type": "number"
            },
            {
              "name": "Температура",
              "value": "60",
              "unit": "°C",
              "type": "number"
            },
            {
              "name": "Состав",
              "value": "Water:1",
              "type": "composition"
            }
          ]
        },
        {
          "uid": "e_p",
          "compId": "pump",
          "label": "Насос",
          "x": 290,
          "y": 334,
          "attrs": [
            {
              "name": "Плотность",
              "value": "998",
              "unit": "кг/м³",
              "type": "number"
            },
            {
              "name": "Ном. обороты",
              "value": "1489",
              "unit": "об/мин",
              "type": "number"
            },
            {
              "name": "Время разгона",
              "value": "2",
              "unit": "с",
              "type": "number"
            },
            {
              "name": "Коэф. двигателя",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Напорная характеристика",
              "value": "{\"q\": [0.0, 100.0, 200.0, 300.0, 400.0], \"h\": [85.0, 82.0, 75.0, 62.0, 40.0], \"degree\": 4, \"coeffs\": [-4.1666666666667727e-10, -8.333333333332642e-08, -0.00014583333333333448, -0.014166666666666432, 84.99999999999996]}",
              "type": "custom-ui",
              "panel": "pump_curve"
            }
          ]
        },
        {
          "uid": "e_a",
          "compId": "avo",
          "label": "АВО",
          "x": 730,
          "y": 334,
          "attrs": [
            {
              "name": "Гидр. сопротивление",
              "value": "50000",
              "unit": "Па·с/кг",
              "type": "number"
            },
            {
              "name": "Количество аппаратов",
              "value": "2",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Пучков на аппарат",
              "value": "2",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Вентиляторов на аппарат",
              "value": "2",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Труб в одном пучке",
              "value": "344",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Длина трубы",
              "value": "9",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Внутренний диаметр трубы",
              "value": "0.02118",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Наружный диаметр трубы",
              "value": "0.0254",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Число ходов труб",
              "value": "4",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Количество рядов",
              "value": "8",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Диаметр ребра",
              "value": "0.05715",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Число рёбер на метр",
              "value": "393",
              "unit": "1/м",
              "type": "number"
            },
            {
              "name": "Толщина ребра",
              "value": "0.0004",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Шероховатость труб",
              "value": "0.000045",
              "unit": "м",
              "type": "number"
            },
            {
              "name": "Коэф. местных сопротивлений",
              "value": "67",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Коррекция температурного напора",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Коэф. тепловой эффективности",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Теплопроводность стенки",
              "value": "500",
              "unit": "Вт/(м·К)",
              "type": "number"
            },
            {
              "name": "Коэф. естественной конвекции",
              "value": "0.03",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Сопротивление загрязнений",
              "value": "0.0007",
              "unit": "м²·К/Вт",
              "type": "number"
            },
            {
              "name": "Коррекция перепада давления",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Коэф. геометрии пучка C",
              "value": "0.15",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Показатель Рейнольдса m",
              "value": "0.5",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Площадь сечения воздуха",
              "value": "45.8908056",
              "unit": "м²",
              "type": "number"
            },
            {
              "name": "Коэф. загромождения воздуха",
              "value": "0.45284",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Номинальный расход воздуха",
              "value": "144224",
              "unit": "кг/ч",
              "type": "number"
            },
            {
              "name": "Влажность воздуха",
              "value": "0.8",
              "unit": "доля",
              "type": "number"
            },
            {
              "name": "Атмосферное давление",
              "value": "101.325",
              "unit": "кПа",
              "type": "number"
            },
            {
              "name": "Температура воздуха на входе",
              "value": "26",
              "unit": "°C",
              "type": "number"
            },
            {
              "name": "Коэф. мощности вентиляторов",
              "value": "1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Жалюзи входа",
              "value": "90",
              "unit": "°",
              "type": "number"
            },
            {
              "name": "Жалюзи выхода",
              "value": "90",
              "unit": "°",
              "type": "number"
            },
            {
              "name": "Жалюзи байпаса",
              "value": "0",
              "unit": "°",
              "type": "number"
            },
            {
              "name": "Номинальные обороты вентиляторов",
              "value": "1500",
              "unit": "об/мин",
              "type": "number"
            },
            {
              "name": "Время выхода на номинал",
              "value": "5",
              "unit": "с",
              "type": "number"
            },
            {
              "name": "Начальные обороты вентиляторов",
              "value": "1500",
              "unit": "об/мин",
              "type": "number"
            }
          ]
        },
        {
          "uid": "e_s",
          "compId": "sink",
          "label": "Выход",
          "x": 1170,
          "y": 334,
          "attrs": [
            {
              "name": "Режим",
              "value": "Давление",
              "type": "combo",
              "options": [
                "Давление",
                "Расход"
              ]
            },
            {
              "name": "Значение",
              "value": "0.1",
              "unit": "МПа или кг/с",
              "type": "number"
            },
            {
              "name": "Температура",
              "value": "20",
              "unit": "°C",
              "type": "number"
            },
            {
              "name": "Состав",
              "value": "Water:1",
              "type": "composition"
            }
          ]
        },
        {
          "uid": "n104",
          "compId": "valve",
          "label": "Клапан",
          "x": 510,
          "y": 341,
          "attrs": [
            {
              "name": "Rh_min",
              "value": "1000",
              "unit": "Па·с/кг",
              "type": "number"
            },
            {
              "name": "opening",
              "value": "1",
              "unit": "доля 0..1",
              "type": "number",
              "min": 0,
              "max": 1
            },
            {
              "name": "Время хода",
              "value": "0.1",
              "unit": "с (0=мгнов.)",
              "type": "number"
            },
            {
              "name": "eps",
              "value": "0.001",
              "unit": "мин. щель",
              "type": "number"
            }
          ]
        },
        {
          "uid": "n106",
          "compId": "flowmeter",
          "label": "Расходомер",
          "x": 950,
          "y": 341,
          "attrs": []
        },
        {
          "uid": "guide",
          "compId": "w_hint",
          "label": "Охлаждение технологического потока",
          "x": 70,
          "y": 65,
          "w": 1260,
          "h": 115,
          "attrs": [
            {
              "name": "Заголовок",
              "value": "Охлаждение технологического потока",
              "type": "string"
            },
            {
              "name": "Текст",
              "value": "Насос создаёт напор, клапан меняет расход, АВО охлаждает поток. Регулятор получает выходную температуру и управляет вентилятором.",
              "type": "string"
            }
          ]
        }
      ],
      "wires": [
        {
          "from": [
            "e_f",
            0
          ],
          "to": [
            "e_p",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 178,
                "y": 370
              },
              {
                "x": 290,
                "y": 370
              }
            ]
          }
        },
        {
          "from": [
            "e_p",
            1
          ],
          "to": [
            "n104",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 450,
                "y": 370
              },
              {
                "x": 510,
                "y": 370
              }
            ]
          }
        },
        {
          "from": [
            "n104",
            1
          ],
          "to": [
            "e_a",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 581,
                "y": 370
              },
              {
                "x": 730,
                "y": 370
              }
            ]
          }
        },
        {
          "from": [
            "e_a",
            1
          ],
          "to": [
            "n106",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 838,
                "y": 370
              },
              {
                "x": 950,
                "y": 370
              }
            ]
          }
        },
        {
          "from": [
            "n106",
            1
          ],
          "to": [
            "e_s",
            0
          ],
          "wd": {
            "manual": true,
            "points": [
              {
                "x": 1047,
                "y": 370
              },
              {
                "x": 1170,
                "y": 370
              }
            ]
          }
        }
      ],
      "groups": [
        {
          "id": "feed",
          "title": "01 · Подача и напор",
          "color": "#438578",
          "x": 40,
          "y": 279,
          "w": 425,
          "h": 167,
          "memberIds": [
            "e_f",
            "e_p"
          ]
        },
        {
          "id": "cooling",
          "title": "02 · Регулирование и охлаждение",
          "color": "#527da8",
          "x": 480,
          "y": 279,
          "w": 388,
          "h": 167,
          "memberIds": [
            "n104",
            "e_a"
          ]
        },
        {
          "id": "out",
          "title": "03 · Измерение и выход",
          "color": "#8666a8",
          "x": 920,
          "y": 279,
          "w": 388,
          "h": 167,
          "memberIds": [
            "n106",
            "e_s"
          ]
        }
      ]
    },
    "visual": {
      "blocks": [
        {
          "uid": "n102",
          "compId": "w_value",
          "label": "VAL1",
          "x": 40,
          "y": 20,
          "attrs": [
            {
              "name": "Подпись",
              "value": "Температура после АВО",
              "type": "string"
            },
            {
              "name": "Аппарат",
              "value": "e_a",
              "type": "device"
            },
            {
              "name": "Параметр",
              "value": "detail.T_prod_out",
              "type": "metric"
            }
          ],
          "state": false
        },
        {
          "uid": "n103",
          "compId": "w_value",
          "label": "VAL2",
          "x": 300,
          "y": 0,
          "attrs": [
            {
              "name": "Подпись",
              "value": "Расход через АВО",
              "type": "string"
            },
            {
              "name": "Аппарат",
              "value": "e_a",
              "type": "device"
            },
            {
              "name": "Параметр",
              "value": "stream.flow_kgs",
              "type": "metric"
            }
          ],
          "state": false
        },
        {
          "uid": "n105",
          "compId": "w_input",
          "label": "INP1",
          "x": 600,
          "y": 0,
          "attrs": [
            {
              "name": "Подпись",
              "value": "Открытие клапана · 0…1",
              "type": "string"
            },
            {
              "name": "Шаг",
              "value": "0.1",
              "unit": "",
              "type": "number"
            },
            {
              "name": "Аппарат",
              "value": "n104",
              "type": "device"
            },
            {
              "name": "Параметр",
              "value": "opening",
              "type": "metric"
            },
            {
              "name": "Максимум",
              "value": "1",
              "type": "number"
            }
          ],
          "state": 1
        },
        {
          "uid": "n107",
          "compId": "w_input",
          "label": "Уставка температуры",
          "x": 350,
          "y": 190,
          "attrs": [
            {
              "name": "Подпись",
              "value": "Уставка температуры · °C",
              "type": "string"
            },
            {
              "name": "Шаг",
              "value": "1",
              "type": "number"
            },
            {
              "name": "Аппарат",
              "value": "p_pid",
              "type": "device"
            },
            {
              "name": "Параметр",
              "value": "setpoint",
              "type": "metric"
            }
          ],
          "state": 40
        },
        {
          "uid": "outlet_temperature",
          "compId": "w_chart",
          "label": "Температура продукта на выходе",
          "x": 30,
          "y": 380,
          "attrs": [
            {
              "name": "Заголовок",
              "value": "Охлаждение продукта · температура на выходе",
              "type": "string"
            },
            {
              "name": "Настройка графика",
              "value": "{\"x\":{\"source\":\"time\",\"metric\":\"\"},\"ys\":[{\"source\":\"e_a\",\"metric\":\"detail.T_prod_out\",\"derivative\":0}]}",
              "type": "chart-config"
            }
          ]
        }
      ],
      "wires": []
    }
  },
  "vlayout": {
    "logic:p_du": {
      "x": 310,
      "y": 20
    },
    "visual:n102": {
      "x": 30,
      "y": 200,
      "w": 230,
      "h": 140
    },
    "visual:n103": {
      "x": 280,
      "y": 200,
      "w": 230,
      "h": 140
    },
    "visual:n105": {
      "x": 530,
      "y": 200,
      "w": 230,
      "h": 140
    },
    "visual:n107": {
      "x": 780,
      "y": 200,
      "w": 230,
      "h": 140
    },
    "visual:outlet_temperature": {
      "x": 30,
      "y": 380,
      "w": 980,
      "h": 360
    },
    "logic:guide": {
      "x": 30,
      "y": 20,
      "w": 980,
      "h": 150
    }
  },
  "simulation": {
    "duration": "20",
    "speed": "Макс. скорость (Free run)"
  }
}
