Газовый смеситель

Зелёная труба - первый вход,
синяя - второй, жёлтая - выход.

## [?]

Смешивает в заданной пропорции газы, поступающие из двух трубопроводов и передаёт их в выходной трубопровод. Для работы требуется подключение к электрической сети, для автоматизации - подключение к информационной сети.

Для ручного управления на корпусе находится кнопка-индикатор в виде стрелки, нажатие на которую включает/выключает смеситель, и штурвальчик, регулирующий процентное соотношение газов из входных трубопроводов. Для точной регулировки зажмите кнопку **Alt**. Процент, указанный на штурвальчике, относится к газу, подключенному к 1 входу смесителя.

Пока хватает газов во входных трубопроводах смеситель пытается поддержать скорость перекачки такой, чтобы давление в выходном трубопроводе нарастало на 101.3 кПа за тик. Если газа на одном из входов мало, то и из второго трубопровода забирается меньше. Если из слабо наполненного трубопровода забирают газ несколько потребителей, то смеситель может дать на выходе не совсем точный состав.

**Внимание!** Смеситель не контролирует давление в выходном трубопроводе. Если его вовремя не остановить, то трубопровод может лопнуть.

## Особенности работы

На момент версии **0.2.2398.10856**  экспериментально определено, что при смешивании газов, смеситель не учитывает температуру газов. Из-за этого, при значительной разнице температур входящих газов, возникает несоответствие соотношения газов в результирующей смеси тому, что выставлено на газовом смесителе. Для получения смеси с нужным составом можно скорректировать настройку смесителя по формуле:

**Rmix = n \*t1 / (n\*t1 + (100-n) \* t2)  \* 100**

Где:

* Rmix - это тот процент первого газа, который надо выставить на смесителе
* n - это требуемый процент газа в итоговой смеси
* t1 - температура 1 газа до смесителя в °K
* t2 - температура 2 газа до смесителя в °K

Например, хотим получить топливную смесь (1 к 2) из Кислорода с температурой 20 °С и водорода с температурой -10 °С (все цифры в расчетах округляем для упрощения).

* n будет равно 34 %
* t1 = 273 + 20 = 293 °K
* t2 = 273 - 10 = 263 °K
* итого на смесителе надо будет выставить 36 % для кислорода и 64% для водорода (в зависимости от того какой именно газ подключен ко входу 1)

**Частный случай для топливной смеси:**

Для топливной смеси (2 к 1) при разных температурах входящих газов, можно использовать упрощенную формулу.

Rmix = 100 \* Th / ( Th + To / 2)

где:

* Rmix - параметр, который надо будет установить на смесителе
* Th - температура водорода (летучих веществ)
* To - температура кислорода

Важно! Простая формула требует подключения водорода строго к 1 входу газового смесителя и кислорода к 2 входу.

## Автоматизация

Получаемые параметры:

* **Power** - 0 - питание не подано или смеситель выключен, 1 - питание подано
* **Error** - 0 - нормальная работа, 1 - ошибка
* **Lock** - 0 - управление разблокировано, 1 - заблокировано
* **Setting** - процент газа, подающегося из первого трубопровода, %. Из второго подаётся 100 - Setting %.
* **Maximum** - максимальное значение, 100%
* **Ratio** - доля газа, подающегося из первого трубопровода, Setting/Maximum
* **On** - 0 - смеситель включен, 1 - выключен
* **RequiredPower** - потребляемая мощность, Вт
* **PrefabHash** - хэш префаба детали

Параметры управления:

* **Lock** - <1 - разблокировать управление, >=1 - заблокировать
* **Setting** - процент газа, подающегося из первого трубопровода, %
* **On** - <1 - выключить смеситель, >=1 - включить

## Пример программы для микропроцессора для получения топливной смеси

Данная программа вычисляет правильную уставку на газовом смесителе и устанавливает ее на смесителе. Программа автоматически определяет в каком входе смесителя какой газ. Для правильной работы необходимо подключить к порту **d0** газовый смеситель, к **d1** - резервуар или анализатор атмосферы первого входа (см. описание входов выше), к **d2** - резервуар или анализатор атмосферы второго входа. Включение самого миксера выполняется самим игроком по мере необходимости.

```
alias Mixer d0
alias Tank1 d1 # Tank on pipe 1
alias Tank2 d2 # Tank on pipe 2

# autodetect Oxygen
l r0 Tank1 RatioOxygen
select r4 r0 1 2
div r4 r4 3 # Fuel ratio

main:
yield
l r5 Tank1 Temperature
l r6 Tank2 Temperature
and r0 r5 r6
beqz r0 main

# k = n*T1 / (n*T1 + (1-n)*T2) * 100
mul r7 r4 r5
sub r8 1 r4
mul r8 r8 r6
add r1 r7 r8
div r1 r7 r1
mul r1 r1 100

s Mixer Setting r1
s db Setting r1
j main

```