dselection.ru

Ректификационная колонна своими руками. Процесс ректификации

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

Однако правильно, качественно и со стабильным результатом провести ректификацию дома можно только при наличии автоматики, о которой дальше и пойдет речь.

Теория

Если объяснять просто, то принцип ректификации похож на обычную дистилляцию. Пары от нагрева ТЭНом поднимаются по колонне из перегонного куба и конденсируются в холодильнике . Отличие состоит в том, что при дистилляции в приемную емкость сразу отбирается вся жидкость, а при ректификации отбирается только небольшая часть, а остальное, сконденсированное дефлегматором , отправляется обратно в куб. В ректификационной колонне находится наполнитель (или тарелки) , так называемая насадка, которая увеличивает поверхность соприкосновения пара и жидкости. Таким образом по колонне снизу вверх идет пар, а сверху вниз идет жидкость. Данный процесс позволяет, в отличие от дистилляции, выстроить компоненты, содержащиеся в исходном спирте-сырце последовательно, и отобрать их по очереди в виде различных фракций через регулятор отбора .

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

Не вдаваясь в детали, среднестатический спирт-сырец состоит из трех основных групп веществ: головные фракции, товарный спирт, хвостовые фракции. Цель ректификации состоит в том, чтобы сначала отделить головные фракции, а потом отобрать товарный спирт, причем не допуская попадания в него хвостовых фракций. Головные фракции обычно отделяют, ориентируясь на их объем (5-10%) от общего количества спирта-сырца. Начало хвостовых фракций обычно контролируют с помощью термометра, находящегося в колонне снизу.

Несмотря на простоту процесса, на практике домашний винокур всегда сталкивается с частными вопросами, которые в итоге и определяют чистоту отобранного товарного спирта. Все эти вопросы в большинстве решаются двумя устройствами: регулятором мощности для точной установки паспортной мощности нагрева конкретной колонны и устройством отбора для обеспечения равномерного отбора продукта определенным способом.

Специфика ректификации состоит в том, что даже при обеспечении стабильного нагрева колонны весь успех работы, а значит и чистота продукта зависит только от разделяющей способности колонны, которая зависит главным образом от двух факторов. Первый фактор заложен в самой конструкции колонны, в ее высоте, диаметре и виде насадки, от чего зависит и ее цена. Второй фактор состоит в количестве отведенной в отбор жидкости, а проще говоря, в скорости отбора. Чем больше скорость, тем хуже разделяющая способность колонны и наоборот. Кроме того очень важно обеспечивать равномерную скорость отбора на всех этапах ректификации, причем скорость на каждом этапе разная.

Казалось бы достаточно пережимать силиконовый шланг отбора с разной силой, например с помощью зажима Гоффмана.

Но проблема в том, что силикон в контакте со спиртом постепенно начинает разбухать, тем самым меняется сечение, а следовательно и скорость отбора. Этих недостатков лишен игольчатый кран, но даже с ним, установить точную скорость отбора (до 1 мл/ч) несколько раз подряд не получится.

Этих недостатков лишены устройства отбора на основе электромагнитного клапана.


Клапан открывается и закрывается в ШИМ-режиме, т.е. через определенные промежутки времени, изменяя которые можно регулировать скорость отбора. Промежутки времени задаются очень точно, поэтому из раза в раз скорость отбора будет одинакова.


Кроме того, если головные фракции мы можем отделить, просто контролируя объем, то для контроля хвостовых фракций мы должны контролировать температуру в колонне. При отборе товарного спирта эта температура при правильно выбранной мощности нагрева, скорости отбора и достаточном утеплении колонны должна быть стабильна с точностью до 0.1 градуса цельсия. Повышение этой температуры означает, что из куба начинают прорываться хвостовые фракции. При этом отбор нужно прекратить, тем самым переводя колонну в режим максимального разделения, что в итоге отправит их обратно в куб, что приведет к возврату температуры к прежним значениям. Данная технология получила название старт-стоп. Данная операция требует постоянного присутствия оператора возле колонны, что мягко-говоря неудобно, учитывая то, что среднестатическая ректификация длится около 10 часов.

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

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

Практика

Ректификация состоит из следующих этапов

1. Установка времени работы на себя для стабилизации колонны
В системе предусмотрена установка времени работы на себя (счетчик), т.е. задержка на стабилизацию колонны для концентрации головных фракций вверху колонны, после которого начнется отбор головных фракций.

2. Отбор головных фракций
Принцип ШИМ-управления клапаном, как уже было описано ранее, позволяет абсолютно точно устанавливать любую скорость отбора каждый раз. Прибор оперирует шкалой от 0 до 999, где значением шкалы является время в секундах между открытиями клапана. Например при значении 10, между открытиями клапана пройдет 10 секунд. Время на которое приоткрывается клапан так же задается в настройках прибора в десятых долях секунды.
Обычно на практике, прежде чем переходить к отбору товарного спирта, оператору нужно отобрать определенный объем головных фракций. Система позволяет с помощью звукового излучателя контролировать на слух объем отобранных головных фракций. Т.к. скорость отбора всегда одинакова при одинаковых значениях шкалы отбора, то определенный объем отобранных головных фракций соответствует определенному количеству открытий клапана. Систему можно настроить таким образом, чтобы например через каждые 10, 20, 30 и т.д. раз открытия клапана, подавался сигнал. Например если установить, чтобы сигнал срабатывал через каждые 40 открытий клапана, то через 40 открытий система подаст один сигнал, через 80 открытий два сигнала, через 120 открытий 3 сигнала. Таким образом, на слух можно проконтролировать достижение необходимого объема головных фракций. Данная функция может быть отключена. Также могут быть отключены вообще все звуковые оповещения.

3. Отбор товарного спирта
После отбора головных фракций и смены тары, прибор переводится в режим отбора товарного спирта, при этом автоматически запоминается так называемая температура стабилизации, от которой и фиксируется отклонение температуры при прорыве хвостовых фракций. Необходимое отклонение (0.1, 0.2, и т.д. градусов) может задаваться в параметрах прибора. При фиксации выхода температуры за определенные оператором рамки, клапан запирается и система ждет возврата температуры в заданный диапазон, тем самым не допуская попадания хвостовых фракций в товарный спирт. В зависимости от настроек, если температура не возвращается в заданный диапазон, возможно как окончание отбора, так и снижение скорости отбора на определенное количество процентов (старт-стоп с декрементом).
Возможен также отбор с уменьшением скорости отбора пропорционально температуре куба. При данном методе отбора контролируется температура не в колонне, а в кубе. При увеличении температуры с определенного значения (задается пользователем) на каждые 0.1 градус, отбор будет уменьшаться на определенное оператором количество процентов. Например установив начало снижения отбора на 84 градуса и установив процент снижения отбора на 0.6 градусов, получим 96% снижение отбора к 100 градусам или 90% снижение отбора к 99 градусам. Температура, при которой отбор должен быть прекращен тоже настраивается оператором из соображений экономии электроэнергии.

4. Исполнительное устройство окончания процесса
Иногда бывает удобно, чтобы при окончании процесса не только прозвучал сигнал, но и произошло некоторое действие. Для этого в системе предусмотрено маломощное электромагнитное реле (гальванически развязано с самим прибором, эквивалентно механическому замыканию 2х кусков провода), которое например может выключать питание или включать сигнализацию. Также его можно использовать для выключения питания напимер через твердотельное реле.

Исходный код проекта (ATMEGA8 фьюзы )

#define F_CPU 16000000UL

#include
#include
#include
#include

unsigned char number = {

0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f, //9

0x00, // 10
0x40, //- 11
0x08, //6bup_ 12

0x23, //up 13
0x1c, //down 14
0x50, //r 15
0x58, //c 16
0x5e, //d 17
0x74, //h 18
0x63, //oup 19
0x5c, //o 20
0x6b, //Ob 21
0x54, //n 22
0x79, //E 23
0x36 //|| 24

char param_dot ={ 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0 };
int param_min = { 0, 0, 1, 0, 1, 1, 1, 1, 1, 80, 0, 0};
int param_max = { 999, 999, 3, 99, 99, 99, 99, 99, 99, 99, 99,99 };

unsigned char data1 = 0, data2 = 0, data3 = 0, fv = 0, fp = 0, fp2 = 0, fl = 0,
status = 0, mtype = 0, is_menu = 0, vcount = 0, fvz = 0, kk = 0, sf = 0, resbutt = 0, count = 0, jj = 0, pi, upState,
downState, OldState, NewState, isok = 0;
int x = 0, curr_temp = 0, temp_temp = 0, stab_temp = 0, tic_h = 0, xtic_voice =
0, xtic_sil = 0, tic_reg = 0, heads_kol = 0, tic_voice = 0, tic_sil = 0,
theads_kol = 0, total_kol = 0, temp_total_kol = 0, tic = 0,
tic_m = 0, kol_stop = 0, quadro = 0, t3pr = 0;
long tic_w = 0,vkoeff = 0, param, tparam,reg_k=1000;

unsigned int fparam EEMEM;

#define W1_PORT PORTC
#define W1_DDR DDRC
#define W1_PIN PINC
#define W1_BIT 3

ISR(TIMER1_OVF_vect) {
cli();

TCNT1H = 0xF9;
TCNT1L = 0xE4; //16mhz

if ((PINB & 0b00000001) == 1) {
resbutt++;
if (resbutt > 30) {
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
tic_w=0;
fvz = 0;
reg_k=1000;
pi = 2;
}
} else {
resbutt = 0;
}

if (quadro>0&¶m == 2&&pi > 14 && pi < 17&®_k > param*10&& stab_temp + param < curr_temp)
{
if (quadro>0)
{
quadro--;
}
if (quadro==0)
{
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
pi = 18;
}
}

if (isok > 0) {
isok--;
} else {
isok = 0;
}

if (fv == 1 && x > 0 && param < 99) {
if (tic_voice > 0) {
PORTC |= (1 << PC4);
tic_voice--;
} else {
PORTC &= ~(1 << PC4);
fv = 0;
tic_sil = 10;
}
}
if (fv == 0 && x > 0) {
if (tic_sil > 0) {
tic_sil--;
} else {
x--;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
}
}

if (x == 0) {
kk = 0;
fv = 0;
}

if (pi > 10) {
tic++;
}
if (pi == 13) {
tic_w++;
}
if (pi == 17) {
tic_reg++;
}

if (pi == 16&¶m<3) {
tic_h++;
if (tic_h > param * 60) {
if (param == 1) {
tic_h = 0;
pi = 18;
}
if (param == 2) {
reg_k = reg_k - param*10;
pi = 17;
x = 1;
xtic_voice = 30;
xtic_sil = 5;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;

if (reg_k <= param*10) {
tic_h = 0;
pi = 18;
}
}

}
if (pi == 0 || pi == 1) {
tic_m++;
if (tic_m > 40) {
tic_m = 0;
pi = pi + 14;
}
}

if ((vcount == 0 && pi == 14) | (vcount == 0 && pi == 0)) {
vkoeff++;
if (vkoeff < param) {
PORTC |= (1 << 5);
} else {
vcount = 1;
vkoeff = 0;
}

}
if ((vcount == 0 && pi > 14 && pi < 17) | (vcount == 0 && pi == 1)) {
vkoeff++;
if (vkoeff < param) {
PORTC |= (1 << 5);
} else {
vcount = 1;
vkoeff = 0;
}

if ((vcount == 1 && pi == 14) | (vcount == 1 && pi == 0)) {
vkoeff++;
if (vkoeff < param * 10) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
heads_kol++;
}

}
if ((vcount == 1 && pi == 15) | (vcount == 1 && pi == 1)) {
vkoeff++;

if (fvz == 0) {
if (param==3)
{
reg_k=1000-t3pr;
}
if (vkoeff < param * 1000 / reg_k) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
}

} else {
if (vkoeff < param * 30) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
fvz = 0;
}
}
}

if (pi == 19) {
PORTC |= (1 << 5);
}
if ((pi > 1 && pi < 14) || (pi > 16 && pi < 19)) {
PORTC &= ~(1 << 5);
}

ISR(TIMER0_OVF_vect) {
cli();

TCNT0 = 0xbc; //16mhz

PORTC &= ~((1 << 2) | (1 << 1) | (1 << 0));

if (count == 0) {
PORTD = number;
PORTC |= (1 << 0);
}
if (count == 1) {
PORTD = number;
PORTC |= (1 << 1);
if (param_dot == 1) {
PORTD |= (1 << 7);
}
if (param_dot == 0) {
PORTD &= ~(1 << 7);
}
}
if (count == 2) {
PORTD = number;
PORTC |= (1 << 2);
if (pi == 14) {
PORTD |= (1 << 7);
} else {
PORTD &= ~(1 << 7);
}
}
count++;
if (count == 3)
count = 0;

ISR(TIMER2_OVF_vect) {
cli();

if ((PINB & 0b00000001) == 1 && isok == 0) //
{

if (pi >= 2 && pi <= 11) {
pi++;
}

for (unsigned char pj = 2; pj < 12; pj++) {
if (param > tparam || param < tparam) {

}
}
}

jj = 0;
if (pi == 15 || pi == 16) {
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
pi = 14;
jj = 1;
}

if (pi == 14 && jj == 0) {
stab_temp = curr_temp;
pi = 15;
sf = 0;
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
}

if (pi == 19) {
kol_stop = 0;
pi = 2;
}

if (pi == 18) {
pi = 19;
}

NewState = PINB & 0b00000110;
if (NewState != OldState) {
switch (OldState) {
case 4: {
if (NewState == 6)
upState++;
if (NewState == 0)
downState++;
break;
}

case 0: {
if (NewState == 4)
upState++;
if (NewState == 2)
downState++;
break;
}
case 2: {
if (NewState == 0)
upState++;
if (NewState == 6)
downState++;
break;
}
case 6: {
if (NewState == 2)
upState++;
if (NewState == 4)
downState++;
break;
}
}
OldState = NewState;
}

if (upState >= 4) {
tic_m = 0;

if (pi <= 11) {
param++;
if (param > param_max) {
param = param_min;
}
}

if (pi > 13 && pi < 16) {
tic_m = 0;
param++;
if (param > param_max) {
param = param_min;
}

pi = pi - 14;
}

upState = 0;
}

if (downState >= 4) {
tic_m = 0;

if (pi <= 11) {
if (param == param_min) {
param = param_max;
} else {
param--;
}

if (pi > 13 && pi < 16) {
tic_m = 0;
if (param == param_min) {
param = param_max;
} else {
param--;
}

pi = pi - 14;
}

downState = 0;
}

void show_seg(int data, int literal) {
if (literal == 0) {
data3 = data / 100;
data2 = (data - data3 * 100) / 10;
data1 = (data - data3 * 100) % 10;
} else {
if (literal == 12) {
data3 = literal;
data2 = literal;
data1 = literal;
} else {
data3 = literal;
data2 = data / 10;
data1 = data % 10;
}
}

unsigned char w1_find() {
unsigned char device;
W1_DDR |= 1 << W1_BIT;
_delay_us(485);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(65);
if ((W1_PIN & (1 << W1_BIT)) == 0x00)
device = 1;
else
device = 0;
_delay_us(420);
return device;
}

void w1_sendcmd(unsigned char cmd) {
< 8; i++) {
if ((cmd & (1 << i)) == 1 << i) {
W1_DDR |= 1 << W1_BIT;
_delay_us(2);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(65);
} else {
W1_DDR |= 1 << W1_BIT;
_delay_us(65);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(5);
}
}
}

unsigned char w1_receive_byte() {
unsigned char data = 0;
for (unsigned char i = 0; i < 8; i++) {
W1_DDR |= 1 << W1_BIT;
_delay_us(2);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(7);
if ((W1_PIN & (1 << W1_BIT)) == 0x00)
data &= ~(1 << i);
else
data |= 1 << i;
_delay_us(50);
}
return data;
}

int temp_18b20() {
unsigned char data;
int temp = 0;
if (w1_find() == 1) {
w1_sendcmd(0xcc);
w1_sendcmd(0x44);
_delay_ms(750);
w1_find();
w1_sendcmd(0xcc);
w1_sendcmd(0xbe);
data = w1_receive_byte();
data = w1_receive_byte();
temp = data;
temp = temp << 8;
temp |= data;
temp = temp * 0.625;
if (temp > 0 && temp < 999) {
temp_temp = temp;
} else {
temp = temp_temp;
}
}
return temp;
}

DDRC |= (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
DDRB |= (1 << 5) | (1 << 4);

DDRD = 0xff;
PORTD = 0xff;

TCCR0 = (1 << CS02) | (0 << CS01) | (1 << CS00);
TCCR1B = (1 << CS02) | (0 << CS01) | (1 << CS00);
TCCR2 = (1 << CS02) | (0 << CS01) | (1 << CS00);

TIMSK |= (1 << TOIE0);
TIMSK |= (1 << TOIE2);
TIMSK |= (1 << TOIE1);

TCNT1H = 0xF9;
TCNT1L = 0xE4; //16mhz

pi = 2;
mtype = 1;

< 12; pj++) {
param = eeprom_read_word(&fparam);
tparam = param;
}

PORTC &= ~(1 << PC5);

if (pi == 0||pi == 1) {
show_seg(param, 0);
}
if (pi < 12&&pi>1) {
show_seg(param, pi + 13);
}
if (pi == 12 || pi == 14) {
show_seg(curr_temp, 0);
}
if (pi == 13) {
show_seg(param * 6 - tic_w / 600, 0);
}
if (pi == 15&¶m<3) {
if (curr_temp >= stab_temp) {
if (curr_temp - stab_temp > 99) {
show_seg(99, 10);
} else {
show_seg(curr_temp - stab_temp, 10);
}

}
if (curr_temp < stab_temp) {
if (stab_temp - curr_temp > 99) {
show_seg(99, 11);
} else {
show_seg(stab_temp - curr_temp, 11);
}

}
}
if (pi == 15&¶m==3) {
show_seg(curr_temp, 0);
}
if (pi == 16) {
show_seg(param * 6 - tic_h / 10, 0);
}
if (pi == 17) {
show_seg(reg_k/10, 0);
}
if (pi == 18) {
show_seg(kol_stop, 0);
}
if (pi == 19) {
show_seg(888, 0);
}

if (tic > 10 && pi > 11) {
curr_temp = temp_18b20();
tic = 0;
}

if ((param<3&&curr_temp > 500 && pi == 12)||(param==3&&curr_temp > 800 && pi == 12)) {
x = 5;
xtic_voice = 10;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
pi = 13;
heads_kol = 0;
theads_kol = 0;
kk = 0;
PORTB |= (1 << PB4);
}
if (param * 6 < tic_w / 600 && pi == 13) {
x = 2;
xtic_voice = 5;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
pi = 14;
}

if (pi == 14) {
if (heads_kol % (param * 10) == 0
&& heads_kol > (param * 10 - 1) && kk == 0
&& heads_kol > theads_kol&& param>0) {
x = heads_kol / (param * 10);
xtic_voice = 5;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
kk = 1;
theads_kol = heads_kol;
}

if (pi == 15 && stab_temp + param < curr_temp&¶m<3) {
PORTC &= ~(1 << PC5);
tic_h = 0;
vcount = 1;
vkoeff = 0;
fvz = 1;
if (sf == 0 && (param == 2 || param == 1)) {
pi = 16;
kol_stop++;
quadro = param*4*60;
}
sf = 1;
}
if (pi > 14 && pi < 17 && stab_temp + param >= curr_temp&¶m<3) {
sf = 0;
pi = 15;
}

if (pi == 17 && tic_reg > 30) {
tic_reg = 0;
pi = 15;
}

if (param==2&&pi > 14 && pi < 18 && stab_temp + param >= curr_temp) {
quadro=0;
}

if (param==3&&pi==15)
{
if (curr_temp {
t3pr=0;
}
if (curr_temp>=param*10&&curr_temp<=param*10)
{
t3pr=param*(curr_temp-param*10);
}
if (t3pr>1000||curr_temp>param*10||param>param)
{
pi=18;
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
}
}

if (pi == 18 && kk == 0) {
x = 1;
xtic_voice = 20;
xtic_sil = 5;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
kk = 1;
reg_k = 1000;
tic_w = 0;
fvz = 0;
PORTB |= (1 << PB5);

for (unsigned char pj = 0; pj < 2; pj++) {
if (param > tparam || param < tparam) {
eeprom_write_word(&fparam, param);
}
}
}

if (pi == 19) {
PORTB &= ~(1 << PB5);
}

}
return 0;

Принципиальная схема и внешний прибора.


В заключение отмечу, что мое изначальное видение прибора было идеалистическим и само собой неверным. Только с помощью корректировки изначальной постановки задачи коллегами на одном известном форуме, и года работы, этот довольно простой прибор реально стал удобным. На данный момент он протестирован на более чем 50 экземплярах и в принципе зарекомендовал себя как законченное решение. Проект на данный момент открыт для повторения всеми желающими.

Хоть сто раз произнеси «халва», а во рту слаще не станет. Эта старая восточная мудрость натолкнула меня на мысль о том, что слова лучше подкреплять делами и я сделал т.с. опытно-промышленную модель МБРК (модульной бражно-ректификационной колонны).

Собственно ничего нового, просто все выполнено в металле, опробовано в боевой обстановке, произведен небольшой анализ и сделаны выводы.

Итак, по порядку.

1. Ипостась первая — Бражная колонна. На иллюстрации видно как это выглядит в натуре. На куб установлена короткая и совершенно пустая царга из нержавеющей трубы наружным диаметром 38мм. Выполнена она таким образом, чтобы снизу была резьба 1 дюйм, а сверху фланец под 1,5 дюймовый кламп. Так мне было удобнее для размещения на «фруктово-зерновом» кубе для работы с паром. Разумеется присоединительные части могут быть любыми другими. На царгу через кламп соединение установлен дефлегматор типа «клюшка» с утилизационной мощностью по воде 3 кВт (после сборки гонял на воде с целью помыть и выяснить основные характеристики). В качестве сырья использовался «бурбонный» затор из кукурузы (потому и пар).
При первом перегоне не ставилась задача отогнать на максимальной мощности (я с паром всегда работаю на мощности около 2 кВт, иногда меньше), скорость первичной обработки и так приемлимая. Но, в данном случае я подгонял мощностные характеристики под медную БК с паровым отбором на 22 трубе. Весь процесс, включая разгон парогенератора и самого куба, занял порядка 3 часов. Через три часа на выходе было получено примерно 5 литров 45% СС. Отгонял без дробления до полного нуля в струе. Выход, конечно, не ахти — что поделаешь, это вам не сахар.
Контроль температуры осуществлялся по температуре в кубе. Выход под термометр на дефе был заглушен.

2. Ипостась вторая — Ректификационная колонна. К использованной в первом опыте системе была добавлена метровая царга с насадкой СПН 3,5мм. Царга утеплена и поставлена между пустой царгой и дефлегматором. На иллюстрации не показано, но на практике я нижнюю пустую царгу также «утеплил», обмотав полотенцем. Вообще-то, она совершенно не нужна при ректификации, но мне не хотелось делать специальный переходник для куба и я использовал эту царгу в качестве переходника. В деф установлен термодатчик. Нагрев осуществлялся ТЭНом через регулятор. Подбор точных режимов для колонны в данном опыте целью не ставился, поэтому я остановился на практически первых приемлимых показателях. При работе колонны «на себя» был подобран режим подачи мощности на уровне примерно 1200 Вт (при подаче большей мощности колонна начинала слегка вибрировать), затем колонна была остановлена и также опытным путем для нее был подобран дозатор отбора в режиме головы. Для этого внутрь трубки отбора (см. основную иллюстрацию в начале статьи, пункт 5) была вставлена тонкая игла от обычного шприца. Можно попробовать инсулиновый шприц, но у меня не было под рукой и я использовал самую тонкую от простого 2мл шприца. Она позволила отбирать на уровне 100 мл/час (впоследствии была заменена на более толстую с отбором 130 мл/час).
Когда головы были отобраны полностью (по органолептике — «на нюх»), колонна опять была остановлена для подбора дозатора режима «отбор тела». За не имением широкого выбора игл, была сделана заглушка из фторопласта (материал абсолютно инертный к нашим продуктам), в которой тонким сверлом проделано отверстие. Попробовав несколько диаметров (выбор также был не особо широким), остановился на жиклере, обеспечивавшем около 700 мл/час. После этого возобновил отбор и, контролируя температуру в дефлегматоре и кубе и периодически проверяя крепость отбора, отобрал тело (и хвосты тоже на этом режиме — по окончании отбора тела весь отбор хвостов занял около часа, хотя можно переключиться на трубку без заглушки и отобрать по-быстрому).
В качестве сырья использовались голово-хвосты от разных экспериментов в количестве примерно 8 литров 70% крепости. Получено 4,5 литра продукта крепостью 97, примерно 450 мл голов и около 300мл хвостов. Голов получилось так много из-за того, что исходник изначально был с повышенным содержанием вредностей.

3. Ипостась первая (часть вторая) — Бражная колонна. В ходе экспериментов с ректификацией был опробован «жиклер», давший величину отбора в районе 2,1 л/час при крепости отбора 94,5%. Я не гонял систему на этом режиме долго, чтобы выяснить стабильность показателей, но как видите, НДРФ из такой колонны выходит довольно легко и в приемлимом (сравнимом с БК) количестве.

Наблюдения. Во-первых, работать с колонной довольно просто. Я специально дал более-менее подробное описание действий с ней для того, чтобы вы могли хотя бы приблизительно представить себе как примерно это должно происходить при первом запуске. В дальнейшем вы подберете подходящие режимы и промежуточные регулировки станут не нужными. Во-вторых, мощности малого доохладителя вполне достаточно для работы в режиме РК и категорически мало для режима БК. А точнее, он не справляется с надежным охлаждением при отборе больше 1,5 л/час. В-третьих, при осмотре пустой царги после перегона зернового затора, в ней не было остатков дробины или иных загрязнителей и полученный СС был совершенно прозрачным, т.е. свою функцию защиты от брызгоуноса такая царга выполняет надежно.

Выводы.
Подобная конструкция, конечно, более функциональна, чем просто БК из меди с паровым отбором. Полностью ее перекрывая в дистилляционных моментах, она может еще и ректифицировать.
И, конечно, она гораздо сложнее в изготовлении. Если вы обладаете навыками ТИГ сварки, слесарки и должным набором материалов и вспомогательного инструмента — сделать МБРК из нержавейки вполне по силам. Впрочем и из меди подобную конструкцию также вполне можно изготовить.
Что касается затратной части. Если исключить из расчетов необходимость обладания оборудованием и навыками работы с ним, то после последнего подорожания меди — себестоимость такой конструкции из нержавейки близка к аналогичной медной (медные трубы диаметров 35 и более сильно кусаются как и фитинги для них) или ниже.
Еще немного поэкспериментирую с этой конструкцией и переброшусь на перевертыши, не нравится мне ситуация с доохладителем при прямой дистилляции. Если кто-то захочет приобрести данный комплект (можно и с доработкой под ваши нужды) за весьма сходную цену — стучитесь в почту [email protected]

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

Однако правильно, качественно и со стабильным результатом провести ректификацию дома можно только при наличии автоматики, о которой дальше и пойдет речь.

Теория

Если объяснять просто, то принцип ректификации похож на обычную дистилляцию. Пары от нагрева ТЭНом поднимаются по колонне из перегонного куба и конденсируются в холодильнике . Отличие состоит в том, что при дистилляции в приемную емкость сразу отбирается вся жидкость, а при ректификации отбирается только небольшая часть, а остальное, сконденсированное дефлегматором , отправляется обратно в куб. В ректификационной колонне находится наполнитель (или тарелки) , так называемая насадка, которая увеличивает поверхность соприкосновения пара и жидкости. Таким образом по колонне снизу вверх идет пар, а сверху вниз идет жидкость. Данный процесс позволяет, в отличие от дистилляции, выстроить компоненты, содержащиеся в исходном спирте-сырце последовательно, и отобрать их по очереди в виде различных фракций через регулятор отбора .

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

Не вдаваясь в детали, среднестатический спирт-сырец состоит из трех основных групп веществ: головные фракции, товарный спирт, хвостовые фракции. Цель ректификации состоит в том, чтобы сначала отделить головные фракции, а потом отобрать товарный спирт, причем не допуская попадания в него хвостовых фракций. Головные фракции обычно отделяют, ориентируясь на их объем (5-10%) от общего количества спирта-сырца. Начало хвостовых фракций обычно контролируют с помощью термометра, находящегося в колонне снизу.

Несмотря на простоту процесса, на практике домашний винокур всегда сталкивается с частными вопросами, которые в итоге и определяют чистоту отобранного товарного спирта. Все эти вопросы в большинстве решаются двумя устройствами: регулятором мощности для точной установки паспортной мощности нагрева конкретной колонны и устройством отбора для обеспечения равномерного отбора продукта определенным способом.

Специфика ректификации состоит в том, что даже при обеспечении стабильного нагрева колонны весь успех работы, а значит и чистота продукта зависит только от разделяющей способности колонны, которая зависит главным образом от двух факторов. Первый фактор заложен в самой конструкции колонны, в ее высоте, диаметре и виде насадки, от чего зависит и ее цена. Второй фактор состоит в количестве отведенной в отбор жидкости, а проще говоря, в скорости отбора. Чем больше скорость, тем хуже разделяющая способность колонны и наоборот. Кроме того очень важно обеспечивать равномерную скорость отбора на всех этапах ректификации, причем скорость на каждом этапе разная.

Казалось бы достаточно пережимать силиконовый шланг отбора с разной силой, например с помощью зажима Гоффмана.

Но проблема в том, что силикон в контакте со спиртом постепенно начинает разбухать, тем самым меняется сечение, а следовательно и скорость отбора. Этих недостатков лишен игольчатый кран, но даже с ним, установить точную скорость отбора (до 1 мл/ч) несколько раз подряд не получится.

Этих недостатков лишены устройства отбора на основе электромагнитного клапана.

Клапан открывается и закрывается в ШИМ-режиме, т.е. через определенные промежутки времени, изменяя которые можно регулировать скорость отбора. Промежутки времени задаются очень точно, поэтому из раза в раз скорость отбора будет одинакова.

Кроме того, если головные фракции мы можем отделить, просто контролируя объем, то для контроля хвостовых фракций мы должны контролировать температуру в колонне. При отборе товарного спирта эта температура при правильно выбранной мощности нагрева, скорости отбора и достаточном утеплении колонны должна быть стабильна с точностью до 0.1 градуса цельсия. Повышение этой температуры означает, что из куба начинают прорываться хвостовые фракции. При этом отбор нужно прекратить, тем самым переводя колонну в режим максимального разделения, что в итоге отправит их обратно в куб, что приведет к возврату температуры к прежним значениям. Данная технология получила название старт-стоп. Данная операция требует постоянного присутствия оператора возле колонны, что мягко-говоря неудобно, учитывая то, что среднестатическая ректификация длится около 10 часов.

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

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

Практика

Ректификация состоит из следующих этапов

1. Установка времени работы на себя для стабилизации колонны
В системе предусмотрена установка времени работы на себя (счетчик), т.е. задержка на стабилизацию колонны для концентрации головных фракций вверху колонны, после которого начнется отбор головных фракций.

2. Отбор головных фракций
Принцип ШИМ-управления клапаном, как уже было описано ранее, позволяет абсолютно точно устанавливать любую скорость отбора каждый раз. Прибор оперирует шкалой от 0 до 999, где значением шкалы является время в секундах между открытиями клапана. Например при значении 10, между открытиями клапана пройдет 10 секунд. Время на которое приоткрывается клапан так же задается в настройках прибора в десятых долях секунды.
Обычно на практике, прежде чем переходить к отбору товарного спирта, оператору нужно отобрать определенный объем головных фракций. Система позволяет с помощью звукового излучателя контролировать на слух объем отобранных головных фракций. Т.к. скорость отбора всегда одинакова при одинаковых значениях шкалы отбора, то определенный объем отобранных головных фракций соответствует определенному количеству открытий клапана. Систему можно настроить таким образом, чтобы например через каждые 10, 20, 30 и т.д. раз открытия клапана, подавался сигнал. Например если установить, чтобы сигнал срабатывал через каждые 40 открытий клапана, то через 40 открытий система подаст один сигнал, через 80 открытий два сигнала, через 120 открытий 3 сигнала. Таким образом, на слух можно проконтролировать достижение необходимого объема головных фракций. Данная функция может быть отключена. Также могут быть отключены вообще все звуковые оповещения.

3. Отбор товарного спирта
После отбора головных фракций и смены тары, прибор переводится в режим отбора товарного спирта, при этом автоматически запоминается так называемая температура стабилизации, от которой и фиксируется отклонение температуры при прорыве хвостовых фракций. Необходимое отклонение (0.1, 0.2, и т.д. градусов) может задаваться в параметрах прибора. При фиксации выхода температуры за определенные оператором рамки, клапан запирается и система ждет возврата температуры в заданный диапазон, тем самым не допуская попадания хвостовых фракций в товарный спирт. В зависимости от настроек, если температура не возвращается в заданный диапазон, возможно как окончание отбора, так и снижение скорости отбора на определенное количество процентов (старт-стоп с декрементом).
Возможен также отбор с уменьшением скорости отбора пропорционально температуре куба. При данном методе отбора контролируется температура не в колонне, а в кубе. При увеличении температуры с определенного значения (задается пользователем) на каждые 0.1 градус, отбор будет уменьшаться на определенное оператором количество процентов. Например установив начало снижения отбора на 84 градуса и установив процент снижения отбора на 0.6 градусов, получим 96% снижение отбора к 100 градусам или 90% снижение отбора к 99 градусам. Температура, при которой отбор должен быть прекращен тоже настраивается оператором из соображений экономии электроэнергии.

4. Исполнительное устройство окончания процесса
Иногда бывает удобно, чтобы при окончании процесса не только прозвучал сигнал, но и произошло некоторое действие. Для этого в системе предусмотрено маломощное электромагнитное реле (гальванически развязано с самим прибором, эквивалентно механическому замыканию 2х кусков провода), которое например может выключать питание или включать сигнализацию. Также его можно использовать для выключения питания напимер через твердотельное реле.

Исходный код проекта (ATMEGA8 фьюзы )

#define F_CPU 16000000UL

#include
#include
#include
#include

Unsigned char number = {

0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f, //9

0x00, // 10
0x40, //- 11
0x08, //6bup_ 12

0x23, //up 13
0x1c, //down 14
0x50, //r 15
0x58, //c 16
0x5e, //d 17
0x74, //h 18
0x63, //oup 19
0x5c, //o 20
0x6b, //Ob 21
0x54, //n 22
0x79, //E 23
0x36 //|| 24

Char param_dot ={ 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0 };
int param_min = { 0, 0, 1, 0, 1, 1, 1, 1, 1, 80, 0, 0};
int param_max = { 999, 999, 3, 99, 99, 99, 99, 99, 99, 99, 99,99 };

Unsigned char data1 = 0, data2 = 0, data3 = 0, fv = 0, fp = 0, fp2 = 0, fl = 0,
status = 0, mtype = 0, is_menu = 0, vcount = 0, fvz = 0, kk = 0, sf = 0, resbutt = 0, count = 0, jj = 0, pi, upState,
downState, OldState, NewState, isok = 0;
int x = 0, curr_temp = 0, temp_temp = 0, stab_temp = 0, tic_h = 0, xtic_voice =
0, xtic_sil = 0, tic_reg = 0, heads_kol = 0, tic_voice = 0, tic_sil = 0,
theads_kol = 0, total_kol = 0, temp_total_kol = 0, tic = 0,
tic_m = 0, kol_stop = 0, quadro = 0, t3pr = 0;
long tic_w = 0,vkoeff = 0, param, tparam,reg_k=1000;

Unsigned int fparam EEMEM;

#define W1_PORT PORTC
#define W1_DDR DDRC
#define W1_PIN PINC
#define W1_BIT 3

ISR(TIMER1_OVF_vect) {
cli();

TCNT1H = 0xF9;
TCNT1L = 0xE4; //16mhz

If ((PINB & 0b00000001) == 1) {
resbutt++;
if (resbutt > 30) {
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
tic_w=0;
fvz = 0;
reg_k=1000;
pi = 2;
}
} else {
resbutt = 0;
}

If (quadro>0&¶m == 2&&pi > 14 && pi < 17&®_k > param*10&& stab_temp + param < curr_temp)
{
if (quadro>0)
{
quadro--;
}
if (quadro==0)
{
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
pi = 18;
}
}

If (isok > 0) {
isok--;
} else {
isok = 0;
}

If (fv == 1 && x > 0 && param < 99) {
if (tic_voice > 0) {
PORTC |= (1 << PC4);
tic_voice--;
} else {
PORTC &= ~(1 << PC4);
fv = 0;
tic_sil = 10;
}
}
if (fv == 0 && x > 0) {
if (tic_sil > 0) {
tic_sil--;
} else {
x--;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
}
}

If (x == 0) {
kk = 0;
fv = 0;
}

If (pi > 10) {
tic++;
}
if (pi == 13) {
tic_w++;
}
if (pi == 17) {
tic_reg++;
}

If (pi == 16&¶m<3) {
tic_h++;
if (tic_h > param * 60) {
if (param == 1) {
tic_h = 0;
pi = 18;
}
if (param == 2) {
reg_k = reg_k — param*10;
pi = 17;
x = 1;
xtic_voice = 30;
xtic_sil = 5;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;

If (reg_k <= param*10) {
tic_h = 0;
pi = 18;
}
}

}
if (pi == 0 || pi == 1) {
tic_m++;
if (tic_m > 40) {
tic_m = 0;
pi = pi + 14;
}
}

If ((vcount == 0 && pi == 14) | (vcount == 0 && pi == 0)) {
vkoeff++;
if (vkoeff < param) {
PORTC |= (1 << 5);
} else {
vcount = 1;
vkoeff = 0;
}

}
if ((vcount == 0 && pi > 14 && pi < 17) | (vcount == 0 && pi == 1)) {
vkoeff++;
if (vkoeff < param) {
PORTC |= (1 << 5);
} else {
vcount = 1;
vkoeff = 0;
}

If ((vcount == 1 && pi == 14) | (vcount == 1 && pi == 0)) {
vkoeff++;
if (vkoeff < param * 10) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
heads_kol++;
}

}
if ((vcount == 1 && pi == 15) | (vcount == 1 && pi == 1)) {
vkoeff++;

If (fvz == 0) {
if (param==3)
{
reg_k=1000-t3pr;
}
if (vkoeff < param * 1000 / reg_k) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
}

} else {
if (vkoeff < param * 30) {
PORTC &= ~(1 << 5);
} else {
vcount = 0;
vkoeff = 0;
fvz = 0;
}
}
}

If (pi == 19) {
PORTC |= (1 << 5);
}
if ((pi > 1 && pi < 14) || (pi > 16 && pi < 19)) {
PORTC &= ~(1 << 5);
}

ISR(TIMER0_OVF_vect) {
cli();

TCNT0 = 0xbc; //16mhz

PORTC &= ~((1 << 2) | (1 << 1) | (1 << 0));

If (count == 0) {
PORTD = number;
PORTC |= (1 << 0);
}
if (count == 1) {
PORTD = number;
PORTC |= (1 << 1);
if (param_dot == 1) {
PORTD |= (1 << 7);
}
if (param_dot == 0) {
PORTD &= ~(1 << 7);
}
}
if (count == 2) {
PORTD = number;
PORTC |= (1 << 2);
if (pi == 14) {
PORTD |= (1 << 7);
} else {
PORTD &= ~(1 << 7);
}
}
count++;
if (count == 3)
count = 0;

ISR(TIMER2_OVF_vect) {
cli();

If ((PINB & 0b00000001) == 1 && isok == 0) //
{

If (pi >= 2 && pi <= 11) {
pi++;
}

If (pi == 12) {

For (unsigned char pj = 2; pj < 12; pj++) {
if (param > tparam || param < tparam) {

}
}
}

Jj = 0;
if (pi == 15 || pi == 16) {
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
pi = 14;
jj = 1;
}

If (pi == 14 && jj == 0) {
stab_temp = curr_temp;
pi = 15;
sf = 0;
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
}

If (pi == 19) {
kol_stop = 0;
pi = 2;
}

If (pi == 18) {
pi = 19;
}

NewState = PINB & 0b00000110;
if (NewState != OldState) {
switch (OldState) {
case 4: {
if (NewState == 6)
upState++;
if (NewState == 0)
downState++;
break;
}

Case 0: {
if (NewState == 4)
upState++;
if (NewState == 2)
downState++;
break;
}
case 2: {
if (NewState == 0)
upState++;
if (NewState == 6)
downState++;
break;
}
case 6: {
if (NewState == 2)
upState++;
if (NewState == 4)
downState++;
break;
}
}
OldState = NewState;
}

If (upState >= 4) {
tic_m = 0;

If (pi <= 11) {
param++;
if (param > param_max) {
param = param_min;
}
}

If (pi > 13 && pi < 16) {
tic_m = 0;
param++;
if (param > param_max) {
param = param_min;
}

Pi = pi — 14;
}

UpState = 0;
}

If (downState >= 4) {
tic_m = 0;

If (pi <= 11) {
if (param == param_min) {
param = param_max;
} else {
param--;
}

If (pi > 13 && pi < 16) {
tic_m = 0;
if (param == param_min) {
param = param_max;
} else {
param--;
}

Pi = pi — 14;
}

DownState = 0;
}

Void show_seg(int data, int literal) {
if (literal == 0) {
data3 = data / 100;
data2 = (data — data3 * 100) / 10;
data1 = (data — data3 * 100) % 10;
} else {
if (literal == 12) {
data3 = literal;
data2 = literal;
data1 = literal;
} else {
data3 = literal;
data2 = data / 10;
data1 = data % 10;
}
}

Unsigned char w1_find() {
unsigned char device;
W1_DDR |= 1 << W1_BIT;
_delay_us(485);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(65);
if ((W1_PIN & (1 << W1_BIT)) == 0x00)
device = 1;
else
device = 0;
_delay_us(420);
return device;
}

Void w1_sendcmd(unsigned char cmd) {
< 8; i++) {
if ((cmd & (1 << i)) == 1 << i) {
W1_DDR |= 1 << W1_BIT;
_delay_us(2);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(65);
} else {
W1_DDR |= 1 << W1_BIT;
_delay_us(65);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(5);
}
}
}

Unsigned char w1_receive_byte() {
unsigned char data = 0;
for (unsigned char i = 0; i < 8; i++) {
W1_DDR |= 1 << W1_BIT;
_delay_us(2);
W1_DDR &= ~(1 << W1_BIT);
_delay_us(7);
if ((W1_PIN & (1 << W1_BIT)) == 0x00)
data &= ~(1 << i);
else
data |= 1 << i;
_delay_us(50);
}
return data;
}

Int temp_18b20() {
unsigned char data;
int temp = 0;
if (w1_find() == 1) {
w1_sendcmd(0xcc);
w1_sendcmd(0x44);
_delay_ms(750);
w1_find();
w1_sendcmd(0xcc);
w1_sendcmd(0xbe);
data = w1_receive_byte();
data = w1_receive_byte();
temp = data;
temp = temp << 8;
temp |= data;
temp = temp * 0.625;
if (temp > 0 && temp < 999) {
temp_temp = temp;
} else {
temp = temp_temp;
}
}
return temp;
}

DDRC |= (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
DDRB |= (1 << 5) | (1 << 4);

DDRD = 0xff;
PORTD = 0xff;

TCCR0 = (1 << CS02) | (0 << CS01) | (1 << CS00);
TCCR1B = (1 << CS02) | (0 << CS01) | (1 << CS00);
TCCR2 = (1 << CS02) | (0 << CS01) | (1 << CS00);

TIMSK |= (1 << TOIE0);
TIMSK |= (1 << TOIE2);
TIMSK |= (1 << TOIE1);

TCNT1H = 0xF9;
TCNT1L = 0xE4; //16mhz

Pi = 2;
mtype = 1;

< 12; pj++) {
param = eeprom_read_word(&fparam);
tparam = param;
}

PORTC &= ~(1 << PC5);

If (pi == 0||pi == 1) {
show_seg(param, 0);
}
if (pi < 12&&pi>1) {
show_seg(param, pi + 13);
}
if (pi == 12 || pi == 14) {
show_seg(curr_temp, 0);
}
if (pi == 13) {
show_seg(param * 6 — tic_w / 600, 0);
}
if (pi == 15&¶m<3) {
if (curr_temp >= stab_temp) {
if (curr_temp — stab_temp > 99) {
show_seg(99, 10);
} else {
show_seg(curr_temp — stab_temp, 10);
}

}
if (curr_temp < stab_temp) {
if (stab_temp — curr_temp > 99) {
show_seg(99, 11);
} else {
show_seg(stab_temp — curr_temp, 11);
}

}
}
if (pi == 15&¶m==3) {
show_seg(curr_temp, 0);
}
if (pi == 16) {
show_seg(param * 6 — tic_h / 10, 0);
}
if (pi == 17) {
show_seg(reg_k/10, 0);
}
if (pi == 18) {
show_seg(kol_stop, 0);
}
if (pi == 19) {
show_seg(888, 0);
}

If (tic > 10 && pi > 11) {
curr_temp = temp_18b20();
tic = 0;
}

If ((param<3&&curr_temp > 500 && pi == 12)||(param==3&&curr_temp > 800 && pi == 12)) {
x = 5;
xtic_voice = 10;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
pi = 13;
heads_kol = 0;
theads_kol = 0;
kk = 0;
PORTB |= (1 << PB4);
}
if (param * 6 < tic_w / 600 && pi == 13) {
x = 2;
xtic_voice = 5;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
pi = 14;
}

If (pi == 14) {
if (heads_kol % (param * 10) == 0
&& heads_kol > (param * 10 — 1) && kk == 0
&& heads_kol > theads_kol&& param>0) {
x = heads_kol / (param * 10);
xtic_voice = 5;
xtic_sil = 10;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
kk = 1;
theads_kol = heads_kol;
}

If (pi == 15 && stab_temp + param < curr_temp&¶m<3) {
PORTC &= ~(1 << PC5);
tic_h = 0;
vcount = 1;
vkoeff = 0;
fvz = 1;
if (sf == 0 && (param == 2 || param == 1)) {
pi = 16;
kol_stop++;
quadro = param*4*60;
}
sf = 1;
}
if (pi > 14 && pi < 17 && stab_temp + param >= curr_temp&¶m<3) {
sf = 0;
pi = 15;
}

If (pi == 17 && tic_reg > 30) {
tic_reg = 0;
pi = 15;
}

If (param==2&&pi > 14 && pi < 18 && stab_temp + param >= curr_temp) {
quadro=0;
}

If (param==3&&pi==15)
{
if (curr_temp {
t3pr=0;
}
if (curr_temp>=param*10&&curr_temp<=param*10)
{
t3pr=param*(curr_temp-param*10);
}
if (t3pr>1000||curr_temp>param*10||param>param)
{
pi=18;
PORTC &= ~(1 << PC5);
vcount = 1;
vkoeff = 0;
}
}

If (pi == 18 && kk == 0) {
x = 1;
xtic_voice = 20;
xtic_sil = 5;
tic_voice = xtic_voice;
tic_sil = xtic_sil;
fv = 1;
kk = 1;
reg_k = 1000;
tic_w = 0;
fvz = 0;
PORTB |= (1 << PB5);

For (unsigned char pj = 0; pj < 2; pj++) {
if (param > tparam || param < tparam) {
eeprom_write_word(&fparam, param);
}
}
}

If (pi == 19) {
PORTB &= ~(1 << PB5);
}

}
return 0;

Принципиальная схема и внешний прибора.

В заключение отмечу, что мое изначальное видение прибора было идеалистическим и само собой неверным. Только с помощью корректировки изначальной постановки задачи коллегами на одном известном форуме, и года работы, этот довольно простой прибор реально стал удобным. На данный момент он протестирован на более чем 50 экземплярах и в принципе зарекомендовал себя как законченное решение. Проект на данный момент открыт для повторения всеми желающими.

Итак, давайте разберем процесс ректификации, происходящий в колонне. В различных источниках в интернете я находил только два вида вариантов описания процесса ректификации. Первые описывали все кратко и без раскрытия сути, типа: «Ставите колонну на куб, включаете нагрев, и спирт начинает вытекать». Вторые обычно изобиловали специфическими терминами и графиками настолько, что без научной степени и не разберешься что там происходит. Возьму на себя смелость попробовать объяснить на пальцах, так сказать…

Колонна должна устанавливаться вертикально на , к которому подведен нагрев. Если будет значительное смещение от вертикальной линии, то технологический процесс пойдет неправильно и качество конечного продукта заметно снизится. Жидкость закипает, и пар начинает проходить в колонну. В средней части конструкции находится узел отбора, а ещё выше – холодильник, задачей которого является охлаждение пара и отправка его обратно в куб. На своем пути пар встретится с флегмой (стекающим конденсатом) и в результате контакта между ними легкая составляющая флегмы перейдет в пар, а тяжелая, наоборот, во флегму. Так образуется конечный продукт процесса. Вот так вкратце выглядит ректификация, теперь попробуем подробно рассмотреть каждый этап.

Как проходит процесс ректификации

Итак, для ректификации мы используем уже не , а непосредственно самогон. Ну, качественный самогон конечно для ректификации мало кто использует — для этого берут либо «хвосты», которые нормальный самогонщик не выливает, либо же для ректификации используют самогон, который получился не слишком удачным по вкусу, прозрачности, другим органолептическим характеристикам. Использовать самогон для ректификации вместо браги нужно потому, что самогон уже в результате перегонки очищается от многочисленных примесей, имеющихся в браге, и если использовать брагу, то бражная пена при закипании будет выбрасываться в колонну, что доставит существенные проблемы при промывке аппарата.

Залит в куб, колонна установлена, начинаем нагрев. При закипании пар идёт вверх в колонну. Проходит нижнюю часть царги, заполненную контактными элементами, и поднимается в дефлегматор, где конденсируется на охлаждаемых водяной рубашкой стенках во флегму, и стекает вниз. Узел отбора пока пропустим, вернемся к нему позже. Итак, наша флегма проходит узел отбора и попадает в нижнюю часть колонны, где стекает по нашим нарезанным мочалкам назад в куб. И вот здесь и происходит то самое таинство, которое лежит в основе процесса ректификации — тепломассообмен. Чтобы не запутаться самому в описании происходящих физических процессов, попробую максимально упростить.

Итак, в нижней части колонны встречаются спиртосодержащий пар, идущий по колонне вверх, и спиртосодержащая жидкость — флегма — стекающая вниз. Пар с жидкостью взаимодействуют на поверхности контактных элементов, и в результате этого взаимодействия пар забирает спирт из жидкости, и возносится выше еще более спиртосонасыщенным, а флегма с минимальным остаточным содержанием спирта стекает назад в куб. Поскольку, взаимодействие происходит непосредственно на поверхности контактных элементов, мы и заполняли колонну мочалками. Сначала в ректификационных установках в качестве таких элементов использовались детали из нержавейки, напоминающие по форме тарелки. Они были расположены одна над другой, и на них пар проходил (пробулькивал) через слой жидкости. Но сейчас повсеместно используются ректификационные колонны небольшого размера, и применение таких тарелок из-за конструктивной сложности оказалось нецелесообразным. Поэтому наполняют обычно элементами, которые имеют большую развитую поверхность. В качестве них могут выступить различные сетки, колечки, шарики и пружинки.

Схема ректификационной колонны

Особенности конструкции ректификационной колонны

Теперь коснемся такого элемента ректификационной колонны, как трубка связи с атмосферой, которая у нас расположена в самом верху. У многих возникает вопрос — а не будет ли спиртосодержащий пар банально выходить через нее в атмосферу? Так вот, если колонна сконструирована правильно, никаких потерь не будет — трубка служит для уравновешивания давления. Во время разогрева емкости с жидкостью для ректификации, через эту трубку будет уходить воздух из колонны и куба, что позволит образующимся парам спирта, пройдя через колонну, достичь дефлегматора. И если воздух не будет иметь выхода и спиртовые пары не смогут свободно двигаться через колонну, тогда взрыв куба, не оборудованного клапаном, будет неизбежен. Во время работы установки, при правильном температурном режиме спиртовой пар будет стремиться к холодному охладителю, а не в трубку.

В этом процессе спиртовые пары будут конденсироваться в дефлегматоре, и в результате этого там возникнут перепады давления. Трубка будет компенсировать эти перепады давления во избежание нарушений стабильной работы установки. Именно поэтому связующая трубка должна обязательно быть подключена к дефлегматору, а не к другому элементу ректификационной установки. При стабильности процесса воздух из колонны слегка движется по этой трубке туда и обратно. Некоторые особо жадные ректификаторы устанавливают на трубку небольшой обратный холодильник. Такой шаг поможет собрать ещё несколько грамм спирта, которые все-таки могут попасть наружу. Подключаться трубка связи с атмосферой должна к самой верхней точке дефлегматора. Это нужно для того, чтобы все пары спирта, поступающие в дефлегматор, могли конденсироваться именно в нём, и не выходить через трубку в атмосферу. Расстояние от трубки до входа в дефлегматор должно быть максимальным.

Узел отбора в ректификационной колонне

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

При полностью перекрытом зажиме это число будет близко к бесконечности. Так что при начале работы колонны зажим должен быть закрыт, и только когда пройдя несколько раз через контактные элементы в дефлегматоре будет циркулировать максимально насыщенный спиртом пар, нужно начинать отбор дистиллята. Здесь не получится установить точные временные рамки начала отбора, здесь нет , которые могут отличаться характерным запахом, так что определить момент начала отбора можно только опытно-экспериментальным путем.

Иногда может произойти такое неприятное явление, как захлеб ректификационной колонны, его можно узнать по сильному булькающему шуму внутри работающей конструкции. Тогда флегма, поступающая из дефлегматора, будет скапливаться в нём, а не проходить в куб. Обычно причинами захлеба служат слишком большая мощность нагрева, конструктивные ошибки или избыточное количество мочалок.



Загрузка...