Прецизионный двухконтурный термостат

Дипломная работа - Физика

Другие дипломы по предмету Физика

?бросов температуры. Для фиксации камер внутри термостата и хорошего контакта камер с модулями Пельтье, а также контакта модуля Пельтье 10 с блоком водного охлаждения 7 используются 4 фторопластовых болта М6. Для фиксации внешней камеры 3 внутри кожуха используются 3 текстолитовых болта М10. Выбор материала болтов обусловлен их низкой теплопроводностью.

Кожух 1 изготовлен из двустороннего стеклотекстолита. Камера 3 изготовлена из алюминия толщиной 2 мм. Камеры 3 и 5 имеют удобные, плотно прилегающие к ним, крышки, также изготовленные из алюминия. Для устранения механического воздействия на хрупкие модули Пельтье и на датчики 1, 2, 3 к камерам 3 и 5 прикреплены колодки к которым припаяны провода от вышеперечисленных элементов. На границы соприкосновения камера 5 - модуль Пельтье 11 - камера 3 - модуль Пельтье 10 - блок водного охлаждения нанесен тонкий слой солидола, обеспечивающий хорошую теплопроводность между ними. Блок водного охлаждения изготовлен из алюминиевого бруска с системой отверстий, просверленных в нём.

 

Рис. 2.3. Чертеж камеры термостата

 

3. Результаты

 

В ходе работы необходимо было достичь точности измерения и стабилизации температуры не менее 0.001 градуса Цельсия. Для достижения такой точности нужно использовать высокоразрядный АЦП. Самым восокоразрядным АЦП на данный момент является ADS1281 фирмы TI. Он и был использован в данной курсовой. Было произведено термостабилизирования (10 градусов Ц). Для внешнего контура - на рис. 3.1. Для внутреннего - на рис. 3.2. В масштабе для внутреннего - на рис.3.3. Была достигнута заявленная точность стабилизации в 0.001 градус Цельсия.

 

Рис 3.1. Стабилизация для внешнего контура

 

Рис 3.2. Стабилизация для внутреннего контура

Рис 3.3. Стабилизация для внутреннего контура (масштаб)

 

Заключение

 

В результате проделанной работы был улучшен прецизионный двухступенчатый термостат, который обеспечивает стабильность температуры до 1мК. Работа осуществляется в диапазоне температур от -20 до 100 градусов Цельсия.

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

 

Литература

 

1.Попов М. М., Термометрия и калориметрия, Изд.МГУ ,М., 1954. - 942с.

.Сосновский А. Г., Столярова Н. И., Измерение температур, Издательство комитета стандартов, мер и измерительных приборов М., 1980. - 512c.

3.

.Preston-Thomas H., Metrologia, 1990, 27(1), 3-10

5.Proces-Verbaux du Comite International des Poids et Mesures, 78th meeting, 1989, pp. T1-T21 (French version) and pp. T23-T42 (in English)

.Metrologia, 33, р. 133-154 "Recommended values of temperature on the ITS-90 for a selected set of secondary reference points"

.B. W. Magnum, P. Bloembergen, M. V. Chattle, B. Fellmuth, P. Marcarino and A. I. Pokhodun, On the ?International Temperature Scale of 1990 (ITS-90), Metrologia 36 (1999), 79-88

.Techniques for Approximating the International Temperature Scale of ?1990. Published by the Bureau International des Poids et Mesures, ?1990, - 205 c.

9.Малков М. П Справочник по физико-техническим основам криогеники. - М.: Энергоатомиздат, 1985. - 432 с.

.Орлова М. П. Низкотемпературная термометрия. - М.: Энергоатомиздат, 1987. - 280 с.

.ГОСТ Р 8.625-2006

.

.Духин С.С. Электропроводность и электрокинетические свойства дисперсных систем. - Киев.: Наук. думка, 1975. - 334c.

 

Приложение 1. Листинг программы

 

#include

#include

#include ADC_int(void);set_curr(void);delay(int);set_sw(int, int);spi(void);set_adc(char);prin(void);DIN = P2^0; // SPI for ADCDOUT = P2^1; //DRDY = P2^2; //SCLK = P2^3; //char RESET = 0x06; // functions for ADCSTOPC = 0x11; //STANDBY = 0x02; //WRR1 = 0x41; // write in reg 01hWRN1 = 0; // write in one regWRDAT = 0x40; //READC = 0x10; //SYNC = 0x04; //long DATA=0; // variable for ADCREGD=0; //x=0, y=0; //carry = PSW^7; //sw1 = P2^4; // switchessw2 = P2^5; //sw3 = P2^6; //sw4 = P2^7; //sw0 = P3^2; //dac_data = P3^5; // SPI for DACdac_sync = P3^3; //dac_sclk = P3^4; //current = 0; // Voltage from DACn=3, m=1, c=0, c1=0, c2=0, d;char sign;out, vaduc, v, v0, sum=0, sum1=0, t=10, M1, M2;

//-------------------------- ADC_intADC_int () interrupt 6

{= (ADC0H*0x10000 | ADC0M*0x100 |ADC0L);= (vaduc / 8388608 - 1) * 1.28;(vaduc<0)vaduc=-vaduc;= 0;= 0;

}

//--------------------------- MAINmain(){CON = 0x86;// 9600FD = 0x12; //= 0x52; //= 13;= 0x3B;CON1 = 0x86;CON2 = 0x4A;CON = 0x4B;= 0x07;= 0x00;= 1;= 1;_sw(m, n);_adc(RESET);

//set_adc(STOPC);

//set_adc(WRR1);_adc(WRN1);_adc(WRDAT);_adc(0x21);_adc(0);_adc(READC);(5000);(1)

{=spi();(c30)

{(fabs(v-v0)<0.005)

{(c2==50){set_sw(!m, n);}(c1==100)

{(c2==c1+1)set_sw(!m, n++);= sum*0.01-0.022;= sum1*0.01;= (sum/1.003-1)*255.88;= (sum1/1.003-1)*255.88;(fabs(sum1-t)<5) M2 = 0.2*(sum1-t);M2 = 1;=(2048+1500*M2);= d/256;= d&0xFF;(fabs(sum-t)<2){ M1 = 0.5*(sum-t);}M1=0;= 2.5 + M1;_curr();("%.4f\t", sum);("%.4f\n", sum1);=0;=0;=0;=0;

}= v;+=vaduc;+=v;++;

}v0 = v;

}

}

}

//-------------------------- SET_CURRset_curr(void)

{int temp, mask;cnt;_sync = 0;_data = 0;(cnt = 0; cnt < 8; cnt++)

{_sclk = 0;_sclk = 1;

}= 0x8000;= 32768*(current*0.4-1);(cnt = 0; cnt < 16; cnt++)

{= (int)current & mask;(temp == 0){ dac_data = 0; }{ dac_data = 1; }_sclk = 0;_sclk = 1;= mask >> 1;

}_sync = 1;

}

//------------------------- DELAYdelay(int j)

{(j ; j>0; j--){;}

}

//------------------------ SET_SWset_sw(int s0, int s1)

{(s0) {sw0=1;}{sw0=0;}(s1 == 0) {sw1=0; sw2=0; sw3=0; sw4=0;}(s1 == 1) {sw1=1; sw2=0; sw3=1; sw4=0;}(s1 == 2) {sw1=0; sw2=1; sw3=1; sw4=0;}(s1 == 3) {sw1=0; sw2=0; sw3= 0; sw4=1;}(100);

}

//------------------------- SPIspi()

{(DRDY);= 0;(DOUT){DATA<<=1; sign=0;}{DATA++; DATA<<=1; sign=1;}(y = 0; y < 31 ;y++)

{= 1;= 0;(DOUT)++;<<= 1;

}(sign)out = DATA;out = ~DATA;= (out/2147483648)*0.625;(1000);(out);

}

//------------------------- SET_ADCset_adc(char reg)

{(x=0; x<8; x++)

{<<=1;= carry;= 1;= 0;

}= 0;(10);

}