- •3436 Методичні вказівки та завдання
- •Частина 1 загальна характеристика роботи
- •1.1 Мета курсової роботи
- •1.2 Тематика курсової роботи
- •1.3 Структура та зміст роботи
- •1.4 Методика знаходження структури електромагнітних полів
- •1.5 Вимоги щодо оформлення курсової роботи
- •1.6 Організація та захист курсової роботи
- •1.7 Питання, що виносяться на захист курсової роботи
- •Частина 2 методи і приклади розрахунку структури електромагнітних полів
- •2.1 Розрахунок структури осесиметричних стаціонарних електромагнітних полів
- •2.2 Розрахунок структури змінних електромагнітних полів у хвилеводі
- •ДодатокА
- •ДодатокБ
- •ДодатокВ
- •ДодатокГ
- •ДодатокД
- •ДодатокЕ
- •Методичні вказівки та завдання
- •6.050801 – Мікро- та наноелектроніка,
- •6.050802 – Електронні пристрої та системи
ДодатокД
(обов'язковий)
При розрахунках студент може використовувати будь-яку сучасну мову програмування з обов’язковим її поданням у додатку курсової роботи. Як приклад для вищенаведених задач подана програма мовою С++.
Приклад програми для розрахунку і побудови
еквіпотенціальних ліній полів
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#define Pi 4*atan(1)
#define M 2000
#define eps 7
#define DF 3000
void Init(void)
{
int gdriver=DETECT, gmode;
initgraph(&gdriver,&gmode,”C:\\BCPP\\BGI”);
}
void graphic(FILE*f)
{
double x,y;
int i=0;
setcolor(GREEN);
circle(320,240,0.05*M);
setcolor(WHITE);
while(!feof(f))
{
fscanf(f,”%f%f”,&x,&y);
Продовження додатка Д
if(i==0) {moveto(320+x*M,240-y*M);i=1;}
lineto(320+x*M,240-y*M);
}
fclose(f);
}
void main()
{
Init();
double a,H0,mi,me,r,R,F,F1,x,y,max=0;
int I,j;
H0=50000;
mi=500;
me=3;
R=0.025;
FILE*f=fopen(“res.dat”,”wt”);
for(a=0;a<=Pi;a+=0.005)
{
for(r=0.03;r<0.15;r+=0.0001)
{
F=cos(a)*(-H0*r+H0*((mi-me)/mi+me))*R*R/r);
if(max<=F) max=F;
fpritf(f,”%f%f%lf\n”,r*cos(a),r*sin(a),F);
if(kbhit()) break;
}
}
fclose(f);
F1=F;
LABEL;
F1+=DF;
FILE*g=fopen(“res.dat”,”rt”);
FILE*data=fopen(“data.dat”,”wt”);
while(!feof(g))
Продовження додатка Д
{
if(kbhit()) exit(0);
fscanf(g,”%f%f%lf\n”,”&x,&y,&F”);
if(((F>F1+eps)&&(F<F1-eps))||((F<F1+eps)&&(F>F1-eps)))
fprintf(data,”%lf%lf\n”,x,y);
}
fclose(data);
fclose(f);
fclose(g);
FILE*DATA=fopen(“data.dat”,”rt”);
grafic(DATA);
goto(LABEL);
}
Приклад програми для розрахунку епюр електромагнітних полів
#include <dir.h>
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
float E0=500000,a=0.035,b=0.015,l=0.006,L=0.0082676,ze=290.195;
float m=2,n=4;
float kf1,kf2,Kp;
float Hx(float x,float y)
{return kf1*sin(m*M_PI*x/a)*cos(m*M_PI*y/b);}
float Hy(float x,float y)
{return kf2*cos(m*M_PI*x/a)*sin(m*M_PI*y/b);}
float Ex(float x,float y)
{return -ze*kf2*cos(m*M_PI*x/a)*sin(m*M_PI*y/b);}
Продовження додатка Д
float Ey(float x,float y)
{return -ze*kf1*sin(m*M_PI*x/a)*cos(m*M_PI*y/b);}
float F(float z)
{return cos(-Kp*z);}
void main()
{ clrscr();
kf1=E0*(m*n/L)*(a*b*b)/(m*m*b*b+n*n*a*a);
kf2=E0*(n/L)*(a*b*b)/(m*m*b*b+n*n*a*a);
Kp=2*M_PI/L;
float x,y,z,E_x,E_y,H_x,H_y,E_z;
mkdir("c:\\data_tp1");
FILE *out;
out=fopen("c:\\data_tp1\\file1.xls","wt");
x=0;
do
{ E_x=Ex(x,b/4);
E_y=Ey(x,0);
H_x=Hx(x,0);
H_y=Hy(x,b/4);
fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",x,E_x,E_y,H_x,H_y);
x+=1e-5;
} while(x<a);
fclose(out);
y=0;
out=fopen("c:\\data_tp1\\file2.xls","wt");
do
{
E_x=Ex(0,y);
E_y=Ey(a/8,y);
H_x=Hx(a/8,y);
H_y=Hy(0,y);
fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",y,E_x,E_y,H_x,H_y);
y+=1e-5;
Продовження додатка Д
} while(y<b);
fclose(out);
z=0;
out=fopen("c:\\data_tp1\\file3.xls","wt");
do
{
E_x=-ze*kf2*F(z);
E_y=-ze*kf1*F(z);
H_x=kf1*F(z);
H_y=kf2*F(z);
E_z=E0*sin(-Kp*ze);
fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",z,E_x,E_y,H_x,H_y,E_z);
z+=1e-4;
} while(z<0.1);
fclose(out);
float zc,Kpp,zee,LL,cn=0,Lkp=0.0099694,l=0.009;
out=fopen("c:\\data_tp1\\file4.xls","wt");
do
{ zc=377*sqrt(0.5);
LL=l/(sqrt(2-(l*l/Lkp*Lkp)));
Kpp=2*M_PI/LL;
zee=zc*l/LL;
fprintf(out,"\t%f\t%f\t%f\t%f\t%f\n",cn,Kpp,zee);
cn+=1e-6;
} while(cn<Lkp-3e-5);
fclose(out);
}