'본좌급 분류'에 해당되는 글 168건

  1. 2011.12.07 디스토션 자작...
  2. 2011.11.30 시중에 굴러다니는 싸구려 avrusbisp 에 대하여.. 1
  3. 2011.11.28 새 장난감을 지르다. 2
  4. 2011.11.15 자작 cnc..
  5. 2011.11.10 탁구 로봇...완성본
  6. 2011.10.25 즐거운 자작 생활 - 탁구 로봇 2
  7. 2011.10.10 자작 cnc...
  8. 2011.09.23 SLP DATA 처리용 M파일
  9. 2011.09.19 DLP analyzer (매트랩용 m파일)
  10. 2011.09.18 SLP 의 해석

디스토션 자작...



아이바네즈의 튜브스크리머9 을 자작했는데 소리가 뭐 기성품에 못지 않더군요.


오버드라이브 하나 만들었으니, 디스토션도 만들어야하는 거 아니겠습니까?


디스토션하면 보스의 ds-1 이 제격이겠지요.


ts-7136 사용한 페X파츠에 나온 회로도로 만들었습니다.


케이스도 하몬드 케이스 사용했구요. 


일단 케이싱하고 레터링 스티커 오려서 부쳐놓으니 뿌듯합니다. ㅎㅎ


시중에 굴러다니는 싸구려 avrusbisp 에 대하여..

일단 뭘로 보나 싸구려에 그 돈값어치를 못하는 물건이지만,

사전 정보가 없었기에 어찌 가지고 있다.

다시 한번 명심하라 avrospii 란 걸로 굽는 물건은 사지 말길.. 

어쨌든 avrospii 가 말을 잘 안 듣는 관계로... winavr 에 포함되어 있는 avrdude라는 프로그래밍툴을 이용해보기로 했다.

문제는 avrusbisp 가 어떤 프로그래머냐..이건데 이것 저것 해본 결과

avr910 이라는 초저가형 프로그래머의 개량판이다. 

원래는 시리얼 통신하도록 만든놈인데 ftdi 칩을 사서 usb 라고 버젓히 팔린다는 사실. 

오죽하면 avr910 앞에 수식어가 "low cost" 다.

avrdude 를 사용하는 방법을 잘몰라 해매던 중에..

> avrdude -p m8 -b 115200 -c avr910 -P com2 -t
 
라는 명령을 발견했으니, 대략 매개변수를 설명하자면,

m8 은 atmega8 을 의미한다. 많이 쓰는 atmega128은 유추컨데 m128 로 치환해주면 된다.

-P 뒤가 프로그래머 붙은 com 포트 번호이고 -b 숫자가 보레이트가 되겠다.

-t 로 터미널 모드에서 avrdude를 사용할 수 있다.
 

새 장난감을 지르다.

잠시 유쾌하다.

조카나 줘야겠다 ㅋㅋㅋ

 

자작 cnc..


아직 완전하지는 않지만 그런데로 쓸만하다.

알루미늄 판재를 깍고 있는 것을 찍어봤다.

 

탁구 로봇...완성본


길게도 끌어온 탁구 로봇.

시간이 날때 조금씩 투자를 해서 완성하기엔 일년이 걸린듯 하다.

기어이 오늘에서야 완성

구조가 단순하고 기술이라고 볼 것은 별로 없지만.

탁구공이 중간에 끼지 않도록 하는게 가장 어려운 기술이었다.



 두개의 모터를 사용하여 속도 조절이 가능하며,

각 모터 속도에 따라서 드라이브 커트 등을 구현할 수 있다.

즐거운 자작 생활 - 탁구 로봇



일단 미완성이기에 대충 올려본다.

 

자작 cnc...

cnc.. 진행중.

스핀들용 브라켓이 필요하다.

 



혹시나 해서 프로파일을 깍아봤는데 좀 허접한 감이 있다.
 

SLP DATA 처리용 M파일

clear all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%parameter%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use mks unit

R=1000;
C_e=1.602*10^(-19);
m_e=9.107*10^(-31);               %% cgs -> 9.107*10^(-28)
k = 1.380622*10^(-23);             %% J/K
M_i=6.6423*10^(-26);                %Ar의 질량
%M_i=6.6423*10^(-27);               %He의 질량
R_probe=0.00015;                    %% 150um
L_probe=0.008;                      %% 8mm
A_probe=2*pi*R_probe*L_probe;
alpha_0=0.61; %% cylindrical tip - comp coeff
%alpha_0=0.5; %% planar tip
epsilon_0 = 8.854*10^(-12);       %% F/m
mu_argon = 40;

quant_step = 1000;



linearfit_offset = 10;
linearfit_sample = 50;
%% 이온 전류를 피팅할 때 V_f 로부터 몇번째 뒤의 지점까지 삭제할 것인지 결정한다.
I_fit_offset = 70;

%% 몇번째 미분 0 지점을 V_p로 선택할지 결정한다.
V_p_candidate = 1;

%% 계산시 생성되는 모든 그림과 데이타를 얻고 싶으면 1로 한다.
%% 데이타 필요 없이, 단순히 빠른 계산을 원하면 0으로 한다.
print_all       = 1;
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%data읽어들이기%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
folder='F:/meeting/20110916_slp/1mTorr/pt1/1000W/0W/';
i1a = strcat(folder,'0.csv');
i1b = strcat(folder,'1.csv');

I_1a=dlmread(i1a,',',5,0);
I_1b=dlmread(i1b,',',5,0);

V_raw1=I_1a(:,2);
V_raw2=I_1b(:,2);

clear I_1a;
clear I_1b;

V__raw = smooth(V_raw1);
V_raw2 = smooth(V_raw2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%  raw I-V 커브 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

I__raw=(V__raw - V_raw2)/R;

%plot(V__raw,I__raw);

clear V_raw1;
clear V_raw2;

maxval = max(V__raw) - 5;
minval = min(V__raw) + 5;

V__quant = linspace(minval,maxval,quant_step);
I__val = zeros(quant_step,1);
I__quant_count = zeros(quant_step,1);

for(i = 1:1:length(V__raw)-1)
    for(j = 1:1:quant_step)
        if(V__raw(i) < (minval-quant_step) || V__raw(i) > (maxval)) continue;
        end
        
        if(V__raw(i) <= V__quant(j))
            I__val(j) = I__val(j) + I__raw(i);
            I__quant_count(j) = I__quant_count(j) + 1;
            break;
        end
    end
end

clear I__raw;
clear V__raw;

for(i = 1:1:quant_step)
    I__val(i) = I__val(i) / I__quant_count(i);
end

clear I__quant_count;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 그래프를 1차, 2차 미분하고 smooth 한다.

smooth_temp = smooth(V__quant,I__val,50,'sgolay');
I__val_smooth = smooth(V__quant,smooth_temp,'lowess');

if(print_all == 1)
    outfile = strcat(folder,'iv.csv');
    fout = fopen(outfile,'w');
    for(j = 1:1:length(V__quant))
    fprintf(fout,'%f,%f\r\n',V__quant(j),I__val_smooth(j));
    end
    fclose(fout);
end
clear smooth_temp;

I_1st_diff = diff(I__val_smooth);
smooth_temp = smooth(V__quant(1:(end-1)),I_1st_diff,50,'sgolay');
I_1st_diff_smooth = smooth(V__quant(1:(end-1)),smooth_temp,'lowess');

if(print_all == 1)
    outfile = strcat(folder,'1st_diff_iv.csv');
    fout = fopen(outfile,'w');
    for(j = 1:1:length(V__quant)-1)
    fprintf(fout,'%f,%f\r\n',V__quant(j),I_1st_diff_smooth(j));
    end
    fclose(fout);
end
clear smooth_temp;

I_2nd_diff = diff(I_1st_diff_smooth);

smooth_temp = smooth(V__quant(1:(end-2)),I_2nd_diff,50,'sgolay');
I_2nd_diff_smooth = smooth(V__quant(1:(end-2)),smooth_temp,'lowess');

if(print_all == 1)
    outfile = strcat(folder,'2nd_diff_iv.csv');
    fout = fopen(outfile,'w');
    for(j = 1:1:length(V__quant)-2)
    fprintf(fout,'%f,%f\r\n',V__quant(j),I_2nd_diff_smooth(j));
    end
    fclose(fout);
end
clear smooth_temp;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

plot(V__quant,I__val,V__quant,I__val_smooth);
title('SLP I- V curves');
xlabel('voltage(V)');
ylabel('current(I)');
outfile = strcat(folder,'IV_curve.tiff');
print('-dtiff',outfile);

clear I__val;

if(print_all == 1)
    plot(V__quant(1:(end-1)),I_1st_diff,V__quant(1:(end-1)),I_1st_diff_smooth);
    title('SLP 1st diff of I- V curves');
    xlabel('voltage(V)');
    ylabel('dI/dV');
    outfile = strcat(folder,'I_1st_diff.tiff');
    print('-dtiff',outfile);
end

clear I_1st_diff;

if(print_all == 1)
    plot(V__quant(1:(end-2)),I_2nd_diff,V__quant(1:(end-2)),I_2nd_diff_smooth);
    title('SLP 2nd diff of I- V curves');
    xlabel('voltage(V)');
    ylabel('d2I/dV2');
    outfile = strcat(folder,'I_2nd_diff.tiff');
    print('-dtiff',outfile);
end

clear I_2nd_diff;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% V_f 를 구한다. (I=0 이 되는 V 값)
%% V_f 는 fast primanry 전자가 있거나 rf 보정이 안될수록 작게 나타난다.

for(j = 1:1:length(V__quant)-1)
    if(I__val_smooth(j) <= 0 && (I__val_smooth(j+1) > 0)) 
        V_f = V__quant(j);
        V_f_num = j;
        break;
    end
end

if(j == length(V__quant)-1)
    fprintf('Error -- There is no V_f..\n');
else
    fprintf('V_f is %f\r\n',V_f);
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% V_p의 candidate들을 를 구한다 (플라즈마 포텐셜)
%% V_p 는 반드시 V_f 보다 커야한다!!
%% 이 값을 이용하여 T_ev 값을 구한다
fprintf('V_p (approximated) candidate:\n');
k = 0;
for(j = V_f_num:1:length(V__quant) - 3)
    if(I_2nd_diff_smooth(j) <= 0 && I_2nd_diff_smooth(j+1) > 0)
        k = k+1;
        if(k == V_p_candidate) %% 대부분의 Vp는 첫번째 미분 0 점에서 나타난다.!!
            V_p = V__quant(j); 
            V_p_num = j;
        end
        fprintf('%dth candidate : Vp( %f ), Tev(~ %f )\n',k,V__quant(j),(V__quant(j) - V_f) / log(2 * M_i / pi / m_e)/ alpha_0);
    end
end
fprintf('Selected V_p : %f\r\n',V_p);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 대략적인 Tev를 구한다. Ie 커브만을 이용해야 하나 지금 단계에서는 Iion 도 같이 들어있다.(대략적)
%% Tev를 구하기 위해서 적당히 잘라낸다. 시작점은 Vf 이다.

ln_I__e = log(I__val_smooth);

for(j = 1:1:linearfit_sample+linearfit_offset)
    V_e(j) = V__quant(j + V_f_num);
    ln_I_e(j) = ln_I__e(j + V_f_num);
end

pp = polyfit(V_e(linearfit_offset :end),ln_I_e(linearfit_offset:end),1);
Tev_fit = polyval(pp,V_e);

plot(V__quant,ln_I__e,V_e,Tev_fit);

title('Electron saturation current');
xlabel('Voltage');
ylabel('Current(ln)');
outfile = strcat(folder,'Tev_fiting.tiff');
print('-dtiff',outfile);
Tev_1 = 1/pp(1);
fprintf('Approximated Tev is ~%f\r\n',Tev_1);

clear V_e;
clear Tev_fit;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 밀도를 대략적으로 측정한다
%% I_B = alpha * n * e * A * sqrt(k * Te / M)
%% 플라즈마 포텐셜에서의 이온 전류는 0 으로 근사하여, Ie(Vp) ~ I(Vp) 로 가정하자
%% alpha ~ 0.5      planar tip
%% alpha ~ 0.61     cylindrical tip

density_1 = I__val_smooth(V_p_num) / C_e / A_probe / sqrt(Tev_1 * C_e / 2 / pi / m_e);

fprintf('Density from I(Vp) ~ Ie(Vp) : %e (cm-3)\r\n',density_1/1000000);       %% c=> m-3

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 디바이 거리 등 여러 플라즈마 변수를 측정한다.

debye_len = sqrt(epsilon_0 * Tev_1 / density_1 / C_e);
Xi = R_probe / debye_len;
eta_f = -(V_f - V_p) / Tev_1;
sheath_len = 1/3*sqrt(2 / alpha_0) * (2 * eta_f) ^ (3/4) * debye_len;
Cs = sqrt(Tev_1 * C_e / M_i);                                           %% bohm velocity

fprintf('Debye length is ~%f (m)\r\n',debye_len);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 밀도를 정확하게 측정한다
%% Orbit Motion Limit(OML) theory 를 이용한다.
%% sheath 가 probe 보다 훨씬 커야 한다. (밀도가 낮아야 한다)

I_val_square = I__val_smooth(1:V_f_num).^2;

coef_pf1 = polyfit(V__quant(1:V_f_num-I_fit_offset),transpose(I_val_square(1:V_f_num-I_fit_offset)),1);
pf1 = polyval(coef_pf1,V__quant(1:V_f_num));

plot(V__quant(1:V_f_num),I_val_square,V__quant(1:V_f_num),pf1);
title('Extrapolation of I^2 curve');
xlabel('Voltage');
ylabel('I^2');
outfile = strcat(folder,'Ion_fiting_2.tiff');
print('-dtiff',outfile);

I_ion_f = sqrt(pf1(V_f_num));
density_2 = I_ion_f / A_probe / C_e / sqrt( 2* abs(C_e * V_f) / M_i) * pi;

fprintf('Density from OML method : %e (cm-3) \n',density_2/1000000);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 밀도를 정확하게 측정한다
%% Moderate density rf plasmas 방법을 이용한다.
%% ICP 플라즈마의 경우에 맞는다 밀도가 10^10 ~ 10^12 사이일 때에..
I_val_43 = I__val_smooth(1:V_f_num).^4;
I_val_43 =  I_val_43.^(1/3);

coef_pf2 = polyfit(V__quant(1:V_f_num-I_fit_offset),transpose(I_val_43(1:V_f_num-I_fit_offset)),1);
pf2 = polyval(coef_pf2,V__quant(1:V_f_num));

plot(V__quant(1:V_f_num),I_val_43,V__quant(1:V_f_num),pf2);
title('Extrapolation of I^(4/3) curve');
xlabel('Voltage');
ylabel('I^(4/3)');
outfile = strcat(folder,'Ion_fiting_43.tiff');
print('-dtiff',outfile);

I_ion_f = pf2(V_f_num) ^ (3/4);
density_3 =  I_ion_f / 2 / pi / (R_probe + sheath_len) / C_e / L_probe / alpha_0 / Cs;

fprintf('Density from FP method(work well at ICP plasma) : %e (cm-3) \n',density_3/1000000);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EEDF 를 구한다.
for(j = 1:1:200);
    V_EEDF(j) = V_p - V__quant(V_p_num - j);
    EEDF(j) = -I_2nd_diff_smooth(V_p_num - j);
end

norm(EEDF);

plot(V_EEDF,EEDF);
title('EEDF');
xlabel('eV');
ylabel('EEDF');
outfile = strcat(folder,'eedf.tiff');
print('-dtiff',outfile);


%% END OF PROGRAM

DLP analyzer (매트랩용 m파일)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%parameter%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 저항 세팅. 반드시 먼저!!!
R=100000;
%% 데이타 파일이 담겨있는 폴더 지정
folder='F:/meeting/20110902_micp_without_m/1mTorr_EH/pt1/1700w_r/';
%%  양쪽단 저항 앞뒤의 전압을 측정한 4개의 csv 파일이 필요하다.
file1name = 'C2000000.csv';
file2name = 'C2000001.csv';
file3name = 'C2000002.csv';
file4name = 'C2000003.csv';

C_e=1.602*10^(-19);
m_e=9.107*10^(-31);
k = 1.380622*10^(-23);
M_i=6.6423*10^(-26);%Ar의 질량
%M_i=6.6423*10^(-27);%He의 질량
R_probe=0.00015;
L_probe=0.008;
A_probe=2*pi*R_probe*L_probe;
A_r=1+R_probe/(2*L_probe);
alpha_0=0.61;
%alpha_0=0.5;
epsilon=8.854*10^(-12);
k=1.38062*10^(-23); 

quant_step = 500;
data_range = 70;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%data읽어들이기%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 이 다음부터의 코드는 수정할 필요가 없다. !!!!

i1a = strcat(folder,file1name);
i1b = strcat(folder,file2name);
i2a = strcat(folder,file3name);
i2b = strcat(folder,file4name);
I_1a=dlmread(i1a,',',5,0);
I_1b=dlmread(i1b,',',5,0);
I_2a=dlmread(i2a,',',5,0);
I_2b=dlmread(i2b,',',5,0);

time_=I_1a(:,1);
V_raw1=I_1a(:,2);
V_raw2=I_1b(:,2);
V_raw3=I_2a(:,2);
V_raw4=I_2b(:,2);

clear I_1a;
clear I_1b;
clear I_2a;
clear I_2b;

V_raw1 = smooth(V_raw1);
V_raw2 = smooth(V_raw2);
V_raw3 = smooth(V_raw3);
V_raw4 = smooth(V_raw4);

%%%%%%%%%%%%%%%%%%%%%%%%  raw I-V 커브 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

V__raw = V_raw2 - V_raw4;
I__raw=((V_raw1 - V_raw2)/R - (V_raw3 - V_raw4)/R)/2;

clear V_raw1;
clear V_raw2;
clear V_raw3;
clear V_raw4;

maxval = max(V__raw);
if(maxval >= data_range) 
    maxval = data_range;
end;

minval = min(V__raw);
if(minval <= -data_range)
    minval = -data_range;
end

V__quant = linspace(minval,maxval,quant_step);
I__val = zeros(quant_step,1);
I__quant_count = zeros(quant_step,1);

for(i = 1:1:length(V__raw)-1)
    for(j = 1:1:quant_step)
        if(V__raw(i) < -(data_range+quant_step))
            continue;
        end;
        
        if(V__raw(i) > (data_range))
            continue;
        end;
        
        if(V__raw(i) <= V__quant(j))
            I__val(j) = I__val(j) + I__raw(i);
            I__quant_count(j) = I__quant_count(j) + 1;
            break;
        end
    end
end

clear I__raw;
clear V__raw;

for(i = 1:1:quant_step)
    I__val(i) = I__val(i) / I__quant_count(i);
end

clear I__quant_count;

%%%%%%%%%%%%%%%%%%%%%%%%  Data 분석 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pf1_coef = polyfit(V__quant(1:100),transpose(I__val(1:100)),1);
pf1 = polyval(pf1_coef,V__quant);
I_sat1 = pf1_coef(2);

pf2_coef = polyfit(V__quant(end-99:end),transpose(I__val(end-99:end)),1);
pf2 = polyval(pf2_coef,V__quant);
I_sat2 = pf2_coef(2);

pf3_coef = polyfit(V__quant(quant_step/2 - 50:quant_step/2 + 50),transpose(I__val(quant_step/2 - 50:quant_step/2 + 50)),1);
pf3 = polyval(pf3_coef,V__quant);

Isat = (-I_sat1 + I_sat2)/2;
Islop = pf3_coef(1);


T_ev = Isat / Islop / 2;

C_s=sqrt(T_ev*C_e/M_i);

eta_f=log((1/alpha_0)*sqrt(M_i/(2*pi*m_e)));
beta=1.0*(eta_f^(3/4))*sqrt((epsilon*T_ev*C_e)/(C_e^2));
alpha=Isat/(2*pi*C_e*L_probe*alpha_0*C_s);

n=(2*R_probe*alpha+(beta^2)-sqrt((4*R_probe*alpha*(beta^2))+beta^4))/(2*(R_probe^2));
n=n/1000000;

%%%%%%%%%%%%%%%%%%%%%%%%  Data 출력 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fprintf('##########################################################\n');
fprintf('# DLP data analysis tool\n');
fprintf('# Before you use this val, check the graph!!\n');
fprintf('# made by Kim Hyuk(plasma lab,snu)\n');
fprintf('# comasur@gmail.com\r\n');

fprintf('I saturation : %f, dI/dV : %f \r\n',Isat,Islop);
fprintf('Tev : %f, density : %e \r\n',T_ev,n);


plot(V__quant,I__val,V__quant,pf1,V__quant,pf2,V__quant,pf3);


title('DLP I- V curves');
xlabel('voltage(V)');
ylabel('current(I)');
outfile = strcat(folder,'I_Vcurve.tiff');
print('-dtiff',outfile);


outfile = strcat(folder,'output.csv');
fout = fopen(outfile,'w');
for(j = 1:1:length(V__quant))
fprintf(fout,'%f,%f\r\n',V__quant(j),I__val(j));
end
fclose(fout);

SLP 의 해석

1.먼저 LENGTH SCALE 을 판단하기 위하여 근사적으로 플라즈마 온도와 밀도를 구한다. 쉬스가 collision 한 경우와 collisionless 의 경우에 적용될 수 있는 식이 다르며, 후자의 경우라도 쉬스의 두께가 두꺼운가 혹은 얇은가에 따라서 적용될 수 있는 식이 달라지기 때문에, 플라즈마 변수의 정확한 측정을 위해서는 이를 확정하는 작업이 필요하다. 편의를 위하여 이때에 근사식들을 이용하여 대충의 값만을 구한다.

1) 다음의 식을 이용하여 전자와 중성 입자간의 자유 행정 거리를 구한다.

 2) 다음의 근사식을 이용하여 플라즈마 온도를 구한다. 

3) electron saturation region(ESR) 을 이용하여 플라즈마 밀도를 구한다. 보통 ESR 을 이용하는 경우에는 ion saturation region(ISR)을 이용하는 것보다 정확하지 않다. 그 이유는 프루브 자체가 전자 등을 고갈시켜 정확한 값을 측정할 수 없게 하기 때문이다. 그러나 여기서는 근사적으로 구하는 것만으로도 충분하느로 ESR을 사용한다.

플라즈마 포텐셜에서는 대게 이온 포화 전류가 0 이 된다고 보므로, 이 때에 구하는 전류값은  전자 포화 전류값과 같다고 볼 수 있다. 이러한 사실을 바탕으로 다음 식을 이용하여 전자 밀도를 근사적으로 구할 수 있다.
 
4) 식(1.13)을 이용하여 드바이 거리를 구한다.

5) 일반적으로 쉬스의 사이즈는 드아비 거리를 4배하여 근사할 수 있다. 이 보다 프루브팁의 지름이 훨씬 크므로 이는 얇은 쉬스로 근사할 수 있다.

6) 중성자-전자간 자유 행정 거리가 드바이 거리보다 크므로 우리는 collisionless 라고 가정할 수 있다.

2. 플라즈마 포텐셜
polynomial fit 는 측정된 그래프를 미분하고자 할 때에 사용할 수 있는 가장 좋은 smooth 기법이다. 

3.이온 전류의 측정
식 (3.10) 를 이용하여 밀도 n을 구한 후에 (3.9) 에 대입하여 전압에 따른 이온 전류의 그래프를 그려볼 수 있다. 플라즈마 포텐셜에서 이 값이 0 이 되는지 체크해본다.

4. 전자 전류의 측정
전체 그래프에서 위에서 구한 이온 전류를 빼주면 순수한 전자 전류만을 얻을 수 있다.

5. 전자 온도의 측정
1) 자연로그를 취하고 그래프를 그려본다. 에러에 의해서 나타난 몇몇 음수값이 그래프를 이상하게 보이게 한다.
linear fit 에 가까울 수록 전자 분포가 맥스웰리안을 잘 따르고 있다는 것을 증명하며, 커브가 나타난다면, 이는 고에너지 전자들에 의해서  non-Maxwellian 을 따른다는 것을 의미한다.

2) 선형 fit을 했을 때에 기울기값은 식(3-28)에서 보듯이 -e/kTe 가 되어 전자 온도를 구할 수 있다.





 
prev 1 ··· 6 7 8 9 10 11 12 ··· 17 next