Khảo sát dòng phát của máy phát ti aX

Một phần của tài liệu ỨNG DỤNG PHOTODIODE để ĐÁNH GIÁ CHẤT LƯỢNG (Trang 56 - 68)

Do máy phát tia X công nghiệp có dòng phát cố định nên ta có thể xác định giá trị của hệ số chuyển đổi cao áp thành dòng phát theo công thức

fi(E) =

Dự vào giá trị lấy ở bảng 3.6 áp dụng công thức trên ta sẽ thu được các giá trị hệ số chuyển đổi cao áp thành dòng phát thay đổi theo cao áp:

Bảng 3. 8: Hệ số chuyển đổi thành dòng theo cao áp

Cao áp fi(E) 100 0.32005 110 0.02717 120 0.02564 130 0.01157 140 0.01901 150 0.01639 160 0.01453 170 0.01329 180 0.01176 190 0.01075 200 0.00976 210 0.00899 220 0.00814 230 0.00761 240 0.00702 250 0.00646

57

Từ bảng số liệu trên ta xây dựng được đồ thị mô tả sự biến thiên của hệ số chuyển đổi cao áp thành dòng thay đổi theo cao áp như hình

Hình 3. 6: Đồ thị mô tả sự biến thiên của hệ số chuyển đồi fi(E) vào cao áp Ta thấy trong vùng năng lượng thấp nghĩa là khi cao áp phát tia nhỏ hơn 160 kV thì sự thay đổi của hệ số fi(E) rất bất ổn do đó ta không thể xây dựng được phương trình mô tả sự thay đổi của hệ số fi(E) theo cao áp phát do đó không xác định được dòng phát của máy phát tia X trong trường hợp này.

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 90 140 190 240 Cao áp (kV)

58

Nhận xét :

Qua quá trình khảo sát cao áp và kiểm nghiệm kết quả như trên, có thể kết luận mạch đo đã thiết kế có khả năng đo đạc thông số cao áp của máy phát tia X. Sai số của mạch đo nằm trong khoảng 0% - 6%. Một vài giá trị sai số lớn xảy ra tại giá trị dòng thấp hoặc cao áp thấp.

Đối với máy phát tia X công nghiệp do dòng phát cố định rất nhỏ so với máy phát tia X trong y tế nên không thể xác định được cường độ phát của chùm tia X, do cường độ chùm tia thấp nên số lượng tia X đi xuyên qua lớp chắn đến được chùm tia là rất thấp (nhất là ở vùng năng lượng thấp) làm cho sai số thống kê rất lớn, một lý do nữa khiến cho không thể xác định được dòng của máy phát tia X công nghiệp đó là do lượng tia X đến đầu dò thấp nên tín hiệu tạo thành rất nhỏ vì thế tỷ số tín hiệu trên tạp âm thấp (ồn điện tử nhiều) làm cho sai số phép đo không ổn định. Khi xác định cao áp của máy phát tia X tín hiệu thu nhận được ở các đầu dò vấn bị ảnh hưởng mạnh bởi sai số và ồn nhưng việc lấy tỷ số của hai tín hiệu đã triệt tiêu các thành phần phụ thuộc như hiệu suất và hệ số tích lũy và làm giảm bớt ảnh hưởng của sai số và ồn tín hiệu lên kết quả, do đó ta vẫn có thể xác định được cao áp của máy phát tia X công nghiệp sử dụng thiết bị trên nhưng với sai số cao hơn hẳn so với kết quả kiểm tra với máy phát tia X dung trong y tế.

Qua quá trình khảo sát dòng phát và kiểm nghiệm kết quả như trên, có thể kết luận mạch đo đã thiết kế có khả năng đo đạc thông số dòng phát của máy phát tia X. Sai số của mạch đo phổ biến nằm trong khoảng 0% - 10%. Các giá trị sai số lớn đều xảy ra tại các giá trị cao áp thấp và dòng thấp. Ngoài nguyên nhân thế ra phụ thuộc vào dòng phát, nó còn phụ thuộc vào cao áp của máy phát.

59

KẾT LUẬN

Sau thời gian thực hiện đề tài: "Ứng dụng photodiode để đánh giá chất lượng các máy phát tia X" ta đã thực hiện được một số nội dung như sau:

- Tìm hiểu, phân tích về cấu tạo và nguyên tắc hoạt động của máy phát tia X dùng trong y tế, máy phát tia X dùng trong chụp ảnh công nghiệp và trên cơ sở đó xây dựng phương pháp xác định các đặc trưng của máy phát tia X.

- Tìm hiểu cấu tạo và nguyên tắc hoạt động của photodiode và cụ thể với photodiode BPW34. Với các đặc điểm quan trọng của loại diode này, ta có thể chọn để sử dụng làm đầu dò khảo sát các thông số đặc trưng của máy phát tia X.

- Thiết kế, lắp ráp thành công mạch khảo sát.

- Khảo sát dòng phát, cao áp và thời gian của máy phát tia X của Trung tâm An toàn Bức xạ và Môi trường và Trung tâm Kỹ thuật Hạt nhân Viện Khoa học và Kỹ thuật Hạt nhân.

Với các nội dung như trên, đề tài đã hoàn thành được mục tiêu nghiên cứu, thiết kế mạch khảo sát dòng phát, cao áp, thời gian phát của máy phát tia X. Kết quả khảo sát thu được khá khả quan. Do đây mới là kết quả thử nghiệm đo hiệu ứng của photodiode BP34 nên mạch đo thiết kế đơn giản do đó sai số cao. Nhưng với các kết quả có được ta hoàn toàn có thể khẳng định có thể dùng photodiode BPW34 với thiết kế mạch hoàn chỉnh để đo các đặc trưng của máy phát tia X. Trên cơ sở kết quả của đề tài tác giả rất mong được tiếp tục nghiên cứu hoản chỉnh thiết kế để có thể chế tạo thiết bị đo đặc trưng của máy phát tia X hoàn chỉnh.

60

TÀI LIỆU THAM KHẢO

TÀI LIỆU TIẾNG VIỆT

1. Nguyễn Đức Hòa, (2012), Điện tử Hạt nhân, NXB Giáo dục Việt Nam, Đà Lạt.

2. Ngô Quang Huy. (2004), An toàn Bức xạ Ion hóa, NXB Khoa học Kỹ thuật, Hà Nội, trang 48-60.

3. Nguyễn Văn Tình. (2008), Tài liệu vi điều khiển 16F877A, Trường Sỹ quan Chỉ huy Kỹ thuật Thông tin, Nha Trang.

TÀI LIỆU NƯỚC NGOÀI

4. Richard Barnett, Larry O’cull and Saratt Cox, (2004), Embedded C Programming and The Microchip PiC, Delmar Learning, New York

5. Mauro Gambaccini, Michele Marziani and Otello Rimondi, (1994), A fast non-invasive beam check for mammgraphy x-ray units, Universita di Ferrara and Instituto Nazionale di Fisica Nucleare (INFN).

6. F.Jaundrell-Thompson and W.J. Ashworth, (1965), X-ray Physics and Equipment, Wigan Publish, London.

7. Burr-Brown Corporation, (1995), OPA111 Datasheet, Burr-Brown Corporation, American, trang 1-3.

8. Intersil Americas LLC, (2005), CA3140 Datasheet, Intersil Americas LLC, American, trang 1-4.

9. Microchip Technology INC, (2001), PIC16f877A Datasheet, Microchip Technology INC, American, trang 5-18.

10.Maxim Intergrated, (2008), DS1307 Datasheet, Maxim Intergrated, American, trang 1-3.

11.Vishay Semiconductors, (2011), BPW34 Datasheet, Vishay Semiconductors, American, Trang 1-2.

61

PHỤ LỤC

Chƣơng trình nạp viết cho vi điều khiển

Chƣơng trình khai báo cho PIC16f877A (nằm trong tệp main.h)

#include <16F877A.h> #device adc=10

#FUSES NOWDT //No Watch Dog Timer

#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)

#FUSES NOBROWNOUT //No brownout reset

#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #use delay(clock=12000000) #locate TRISA = 0x85 #locate TRISB = 0x86 #locate TRISC = 0x87 #locate TRISD = 0x88 #locate PORTA = 0x05 #locate PORTB = 0x06 #locate PORTC = 0x07 #locate PORTD = 0x08 #locate TXSTA = 0x98 #bit TRMT = TXSTA.1 #locate TXREG = 0x19 #locate TMR0 = 0x01

Chƣơng trình chính (nằm trong tệp main.c)

#include <main.h> #include <stdio.h> #include <math.h>

62

#use rs232(UART,baud=19200,xmit=PIN_C6,rcv=PIN_C7,parity=N,bits=8) #include "ds1307.c"

/*khai bao cac GPIO*/

#bit FQ1 = 0x07.2 #bit RC1 = 0x07.1 #bit FQ1_IO = 0x87.2 #bit RC1_IO = 0x87.1 #locate TMR0 = 0x01 #locate TXSTA = 0x98 #bit TRMT = TXSTA.1 #locate TXREG = 0x19 unsigned char rx_data;

unsigned char time,time1,time2;

unsigned char duration; // thoi gian thuc hien qua trinh do

float time_run_process;

//cac bien gia tri adc

unsigned long U1,U2,U3,U4;

//Cac bien su dung cho viec tinh toan cao ap

float temp1,temp2,cao_ap1,cao_ap2,fE,I;

// chuong trinh ngat timer 0

#int_TIMER0

void TIMER0_isr(void) {

// tang bien dem thoi gian

time++; if(time==255) {

//neu time den 2^8 -1

63 time=0;

} }

unsigned char process;

unsigned char hour,minute,second,day,date,month,year; void main() { set_tris_a(0xFF); setup_adc_ports( ANALOG_RA3_REF ); setup_adc(ADC_CLOCK_INTERNAL ); setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_64); set_timer0(0); enable_interrupts(GLOBAL); FQ1_IO=1; RC1_IO=0; init_DS1307(); delay_ms(10); process=1; while(true) {

/*che do thuc hien chuong trinh*/

if(process ==1) {

/*cho khi tin hieu FQ1 chuyen tu 0 len 1*/

while(FQ1); //neu tin hieu dang la 1 thi khong thuc hien chuong trinh

while(!FQ1); //neu tin hieu dang la 0 chuyen sang 1 thi bat dau thuc hien chuong trinh

/*bat dau thuc hien chuong trinh*/

64 enable_interrupts(INT_TIMER0); TMR0=0;

time=time1=time2=0;

//step 2: bat tin hieu chan RC1 len 1

RC1=0;

//step 3: cho tin hieu chan FQ1 ve 0.

while(FQ1);

//step 4: disable timer 0 va tinh thoi gian thuc hien chuong trinh

duration = get_timer0();

disable_interrupts(INT_TIMER0);

//quy doi thoi gian ra don vi thoi gian s

time_run_process = (duration + time*255+time1*255*255 )*4.0*64.0/12000.0;

//step 5:lay gia tri adc cua tin hieu U1, U2, U3, U4 //gia tri U1 - AN0

set_adc_channel(0); U1 = read_adc();

//gia tri U2 - AN1

set_adc_channel(1); U2 = read_adc();

//gia tri U3 - AN4

set_adc_channel(4); U3 = read_adc();

//gia tri U4 - AN5

set_adc_channel(5); U4 = read_adc();

//step 6:Su ly so lieu

temp1 = U2/U3; temp1 = log(temp1);

65

//Ham chuan cao ap doi voi may phat tia X y te

cao_ap1 = 1814*pow(temp1,2)-1638*temp1+440.2;

fE = 0.00027*pow(cao_ap1,2)-0.07891*cao_ap1+6.07940;

//cuong do chum tia duoc tinh nhu sau

I = fE*U3;

//xac dinh cao ap may tia X cong nghiep

temp2 = U3/U4; temp2 = log(temp2);

cao_ap2 = 11889*pow(temp2,2)-5119*temp2+657.6;

//step 7:Lay gia tri thoi gian thuc tu ds1307

second = bcd2bin(read_DS1307(0x00)); minute = bcd2bin(read_DS1307(0x01)); hour = bcd2bin(read_DS1307(0x02)); day = bcd2bin(read_DS1307(0x03)); date = bcd2bin(read_DS1307(0x04)); month = bcd2bin(read_DS1307(0x05)); year = bcd2bin(read_DS1307(0x06));

//step 8:In gia tri ra man hinh

printf("Ngay:%2u/%2u/20%2u-%2u:%2u:%2u\r\n",date,month,year,hour, minute, second);

printf("Thoi gian phat tia : %3f ms\r\n",time_run_process); printf("cao ap 1 = %3f V\r\n",cao_ap1);

printf("cao ap 2 = %3f V\r\n",cao_ap2); printf("cuong do I = %3f\r\n",I);

//step 9:luu gia tri vao trong eeprom

//step 10:reset qua trinh do

RC1=1; }

66

/*che do thuc hien qua trinh log lich su trong eeprom*/

if(process ==2) {

}

/*che do dung hoat dong chi hien thi thoi gian*/

if(process ==3) {

} } }

Chƣơng trình con điều khiển chip thời gian thực DS1307

#define DS1307_SDA PIN_C4 #define DS1307_SCL PIN_C3

#use i2c(master, sda=DS1307_SDA, scl=DS1307_SCL) BYTE bin2bcd(BYTE binary_value)

{

return(((binary_value/10*16)+(binary_value%10))); }

// Input range - 00 to 99.

BYTE bcd2bin(BYTE bcd_value) { return((bcd_value/16*10)+(bcd_value%16)); } //========================== // initial DS1307 //========================== void init_DS1307() { output_float(DS1307_SCL);

67 output_float(DS1307_SDA);

}

//========================== // write data one byte to

// DS1307

//==========================

void write_DS1307(byte address, BYTE data) {

short int status; i2c_start(); i2c_write(0xd0); i2c_write(address); i2c_write(data); i2c_stop(); i2c_start(); status=i2c_write(0xd0); while(status==1) { i2c_start(); status=i2c_write(0xd0); } } //========================== // read data one byte from DS1307

//==========================

BYTE read_DS1307(byte address) {

BYTE data; i2c_start();

68 i2c_write(0xd0); i2c_write(address); i2c_start(); i2c_write(0xd1); data=i2c_read(0); i2c_stop(); return(data); }

// Sets the date and time on the ds1307

void setDateDs1307(int8 second, // 0-59

int8 minute, // 0-59 int8 hour, // 1-23 int8 day, // 1-7 int8 date, // 1-28/29/30/31 int8 month, // 1-12 int8 year) // 0-99 {

write_DS1307(0x0, bin2bcd(second)); // 0 to bit 6 starts the clock

write_DS1307(0x1, bin2bcd(minute)); write_DS1307(0x2, bin2bcd(hour)); write_DS1307(0x3, bin2bcd(day)); write_DS1307(0x4, bin2bcd(date)); write_DS1307(0x5, bin2bcd(month)); write_DS1307(0x6, bin2bcd(year)); }

Một phần của tài liệu ỨNG DỤNG PHOTODIODE để ĐÁNH GIÁ CHẤT LƯỢNG (Trang 56 - 68)

Tải bản đầy đủ (PDF)

(68 trang)