2013-09-16 6 views
-1

Я пишу программу для проектирования микрочипов, но она дает ошибку. Может ли кто-нибудь помочь мне исправить это, пожалуйста? Вот мой код:программа для создания микрочипов

clc; 
clear all; 
close all; 
f=2.4*10^9; 
er=4.4; 
h=1.6*10^-3; 
c=3*10^8; 
w=c/(2*f*((er+1)/2)^(0.5)); 
eef=((er+1)/2+((er+1)/2)*(1+(12*h/w)))^-0.5; 
lef=c/(2*f*(eef^0.5)); 
dl=(0.412*h)*(eef+0.3)*((w/h+0.264)/((eef-0.258)*((w/h)+0.8))); 
l=lef-(2*dl); 
lg=6*h+l; 
wg=6*h+w; 
%microstrip line design 
zo=50; 
A=(zo/99)*sqrt((er+1)/2)+(((er-1)/(er+1))*(0.23+(0.11*er))); 
B=(377*pi)/(2*zo*sqrt(er)); 
wbd=(8*exp(A)/exp(2*(A))-2); 
if(wbd>2) 
    wbd=(2/pi)*((B-1-log(2*B-1)+((er-1)/(2*er))*log(B-1)+0.39-(0.61/er))); 
end 
w=wbd*h; 
ko=(2*pi*f)/c; 
Ll=pi/(sqrt(eef)*ko); 
c=3*10^8; 
la=c/f; 
b=(2*pi*sqrt(er))/(la); 
i=1; 
for w=1:0.1:38 
    i=i+1; 
    rin(1,i)=round(((120*la)^2)+(((377*h)/(sqrt(er))*w*10^-3)^2)*(tan(b*w*10^-3)^2)/(240*w*10^-3*la)*(1+(tan(b*w*10^-3)^2))); 
    if(rin(1,i)>45 && rin(1,i)<50) 
     n=i; 
    end 
end 
feed=n*0.1; 
l=l*10^3; 
w=w*10^3; 
lg=lg*10^3; 
wg=wg*10^3; 
wl=wl*10^3; 
Ll=Ll*10^3; 
display(l); 
display(w); 
display(lg); 
display(wg); 
display(wl); 
display(Ll); 
display(feed); 

ошибка выглядит следующим образом:

??? Undefined function or variable 'n'. 

Error in ==> Antenna at 37 
feed=n*0.1; 
+0

Какое значение должно быть на ваше мнение? –

+0

feed = n * 0,1; в этой строке matlab не находит значение n, чтобы исправить эту ошибку, присвойте значение переменной n –

+0

n должно получить свое значение из приведенного выше для цикла na? –

ответ

1

Существует только одна декларация п, и это внутри, если заявление. Очевидно, это утверждение так и не было достигнуто. Поэтому либо убедитесь, что объявление достигнуто, либо укажите некоторое определение n по умолчанию, прежде чем он будет указан позже в коде.

+0

@SidharthaRamachandran Был ли этот ответ полезным для вас? – Schorsch

Смежные вопросы