无限长理想传输线上电压和电流的传播规律.docx
《无限长理想传输线上电压和电流的传播规律.docx》由会员分享,可在线阅读,更多相关《无限长理想传输线上电压和电流的传播规律.docx(20页珍藏版)》请在冰豆网上搜索。
无限长理想传输线上电压和电流的传播规律
无限长理想传输线上电压和电流的传播规律
物理与电信工程学院物理学3班尹振权20082301094
引言:
变换是数学物理中重要的思想之一,他基于一种对称性原理。
对于同一个问题,我们可以在不同的曲线坐标系中去研究。
当然我们要选择在该坐标下问题的微分方程最简单或最容易求解的方法,当我们求得解后在返回原来的坐标系。
行波法就是其中的一种方法。
问题模型:
设有一根无限长的理想传输线,通过高频交流电。
若初始电压分布为
,初始电流分布为
(这里L为自感、C分布电容),试球线路上电压v和电流i的传播规律。
解:
由题意得,传输线方程为
式中
初始条件为
=
=
由达朗贝尔公式得
再求电流i的传播规律,即求解下列初值问题:
再由达朗贝尔公式得
结论:
电流与电压的变化规律都与余弦函数图形相似,但是这个函数也与x有关,图形的大小也会改变。
参考文献:
数学物理方程,同济大学出版社,桂子鹏康盛亮编著
数学物理方程与特殊函数,高等教育出版社,华中科技大学李元杰编著
附录:
1.电压u的变化规律
#include"WizDemo.h"
#include
floatstep;
Texttitle;
floatP_radius,P_omega;
//构造函数
demoApp:
:
demoApp():
WizGLApp()
{
viewMode=VIEW_PERSPECTIVE1;//观察视角模式
demoState=DEMO_STOP;//初始动画状态
wndWidth=1024;//初始窗口宽度
wndHeight=715;//初始窗口高度
showParamWnd=true;//初始是否显示参数窗口
showInfoWnd=false;//初始是否显示信息窗口
showToolbar=true;//初始是否显示工具栏
//wiz:
:
Assign(bgColor,0.32f,0.72f,0.54f,0.0f);//设置背景色
}
//析构函数
demoApp:
:
~demoApp()
{
}
doubleBesselFun(intn,floatx)
{
doubleResult=0.0f;
doubletheta;
intm;
for(m=0;m<=200;m++)
{
theta=m*PI/200;
Result+=cos(x*sin(theta)-n*theta);
}
Result/=PI;
returnResult;
}
doubleLegendreFun(intn,floatx)
{
doubleResult=0.0f;
doubleden,acc;
inti,m;
if(n<0)returnResult;
den=acc=1.0f;
for(m=0;m<=n/2;m++)
{
for(i=2*(n-m);i>0;i--)
den*=i;
for(i=n-m;i>0;i--)
acc*=i;
for(i=n-(2*m);i>0;i--)
acc*=i;
for(i=m;i>0;i--)
acc*=i;
Result+=pow(-1,m)*den*pow(x,n-(2*m))/(pow(2,n)*acc);
}
returnResult;
}
///////////////////////////////////////////////////////////////////////
//在此创建场景
voiddemoApp:
:
InitializeScenes()
{
}
//在此创建控件
voiddemoApp:
:
InitializeControls(intsceneIndex)
{
}
//在此初始化控件参数
voiddemoApp:
:
InitializeParameters(intsceneIndex)
{
P_radius=1;
P_omega=10;
}
//场景切换时可在此作需要的设置
voiddemoApp:
:
SwitchScene(intcurScene,intprevScene)
{
}
///////////////////////////////////////////////////////////////////////
//与绘图相关的初始化工作
voiddemoApp:
:
SetupRC()
{
glt:
:
SetDefaultLight();
glt:
:
SetGlobalAmbient(wiz:
:
cBLACK);
title.LoadWords(L"电压u的变化规律",L"楷体",36,wiz:
:
cBLACK,300,48);
}
//绘制场景
voiddemoApp:
:
RenderScene(intsceneIndex)
{
title.Show(-80,55,0,false);//在(0,0,0)处显示汉字内容,不可移动
Point3fp[200],q[3],s[2];
Color4fcolor={0,0,0,1},color1={0.2,0.8,0.9,0.8};
intA=15,k=P_radius,a=10,t;
t=step;
intx;
s[0].x=0;s[0].y=0;s[0].z=0;
s[1].x=-70;s[1].y=0;s[1].z=0;
q[0].x=0;q[0].y=80;q[0].z=0;
q[1].x=70;q[1].y=0;q[1].z=0;
q[2].x=0;q[2].y=0;q[2].z=50;
for(x=0;x<200;x++)
{
p[x].x=2*(x-50);p[x].z=0;
p[x].y=A*cos(k*(p[x].x-a*t));
}
glt:
:
SetLineWidth(4);
glt:
:
EnableLight();
draw:
:
Arrow3D(s[0],q[0],0.0,0.5,10,2,cWHITE,cRED,false,0,0,0);
draw:
:
Arrow3D(s[1],q[1],0.0,0.5,10,2,cWHITE,cRED,false,0,0,0);
draw:
:
LineStrip(200,p,color);
}
///////////////////////////////////////////////////////////////////////
//动画开始
voiddemoApp:
:
DemoBegin()
{step=0;
}
//动画播放
voiddemoApp:
:
DemoPlay()
{
step+=1;
if(step>1000)step=step-1000;
}
//动画暂停
voiddemoApp:
:
DemoPause()
{
}
//动画停止
voiddemoApp:
:
DemoStop()
{
}
///////////////////////////////////////////////////////////////////////
//按钮被点击
voiddemoApp:
:
ButtonClick(intsceneIndex,UINTbutSN)
{
}
//复选框被点击
voiddemoApp:
:
CheckClick(intsceneIndex,UINTchkSN,boolchecked)
{
}
//单选框被点击
voiddemoApp:
:
RadioClick(intsceneIndex,UINTrdoSN)
{
}
//文本框内容被改变
voiddemoApp:
:
TextboxChange(intsceneIndex,UINTtxtSN)
{
}
//组合框下拉列表项被选择
voiddemoApp:
:
ComboSelChange(intsceneIndex,UINTcmbSN,intindex)
{
}
//组合框文本被改变
voiddemoApp:
:
ComboTextChange(intsceneIndex,UINTcmbSN)
{
}
//滑条被移动
voiddemoApp:
:
ScrollMove(intsceneIndex,UINTsbSN,intvalue,floatrate)
{
floatparam=(float)value*rate;
switch(sbSN)
{
case1:
P_radius=param;
break;
case2:
P_omega=param;
break;
case3:
break;
case4:
break;
case5:
break;
}
FlushScene();
}
///////////////////////////////////////////////////////////////////////
//键盘建按下
voiddemoApp:
:
KeyDown(UINTkey)
{
}
//键盘建松开
voiddemoApp:
:
KeyUp(UINTkey)
{
}
//鼠标左键按下
voiddemoApp:
:
LeftButtonDown(intx,inty,intkeyFlag)
{
}
//鼠标左键松开
voiddemoApp:
:
LeftButtonUp(intx,inty,intkeyFlag)
{
}
//鼠标左键双击
voiddemoApp:
:
LeftButtonDblClick(intx,inty,intkeyFlag)
{
}
//鼠标右键按下
voiddemoApp:
:
RightButtonDown(intx,inty,intkeyFlag)
{
}
//鼠标右键松开
voiddemoApp:
:
RightButtonUp(intx,inty,intkeyFlag)
{
}
//鼠标右键双击
voiddemoApp:
:
RightButtonDblClick(intx,inty,intkeyFlag)
{
}
//鼠标移动
voiddemoApp:
:
MouseMove(intx,inty,intkeyFlag)
{
}
//鼠标滚轮被滚动
voiddemoApp:
:
MouseWheel(intx,inty,intzDelta,intkeyFlag)
{
}
2.电流i的变化规律
#include"WizDemo.h"
#include
floatstep;
Texttitle;
floatP_radius,P_omega;
//构造函数
demoApp:
:
demoApp():
WizGLApp()
{
viewMode=VIEW_PERSPECTIVE1;//观察视角模式
demoState=DEMO_STOP;//初始动画状态
wndWidth=1024;//初始窗口宽度
wndHeight=715;//初始窗口高度
showParamWnd=true;//初始是否显示参数窗口
showInfoWnd=false;//初始是否显示信息窗口
showToolbar=true;//初始是否显示工具栏
//wiz:
:
Assign(bgColor,0.32f,0.72f,0.54f,0.0f);//设置背景色
}
//析构函数
demoApp:
:
~demoApp()
{
}
doubleBesselFun(intn,floatx)
{
doubleResult=0.0f;
doubletheta;
intm;
for(m=0;m<=200;m++)
{
theta=m*PI/200;
Result+=cos(x*sin(theta)-n*theta);
}
Result/=PI;
returnResult;
}
doubleLegendreFun(intn,floatx)
{
doubleResult=0.0f;
doubleden,acc;
inti,m;
if(n<0)returnResult;
den=acc=1.0f;
for(m=0;m<=n/2;m++)
{
for(i=2*(n-m);i>0;i--)
den*=i;
for(i=n-m;i>0;i--)
acc*=i;
for(i=n-(2*m);i>0;i--)
acc*=i;
for(i=m;i>0;i--)
acc*=i;
Result+=pow(-1,m)*den*pow(x,n-(2*m))/(pow(2,n)*acc);
}
returnResult;
}
///////////////////////////////////////////////////////////////////////
//在此创建场景
voiddemoApp:
:
InitializeScenes()
{
}
//在此创建控件
voiddemoApp:
:
InitializeControls(intsceneIndex)
{
}
//在此初始化控件参数
voiddemoApp:
:
InitializeParameters(intsceneIndex)
{
P_radius=1;
P_omega=10;
}
//场景切换时可在此作需要的设置
voiddemoApp:
:
SwitchScene(intcurScene,intprevScene)
{
}
///////////////////////////////////////////////////////////////////////
//与绘图相关的初始化工作
voiddemoApp:
:
SetupRC()
{
glt:
:
SetDefaultLight();
glt:
:
SetGlobalAmbient(wiz:
:
cBLACK);
title.LoadWords(L"电流i的变化规律",L"楷体",36,wiz:
:
cBLACK,300,48);
}
//绘制场景
voiddemoApp:
:
RenderScene(intsceneIndex)
{
title.Show(-80,55,0,false);//在(0,0,0)处显示汉字内容,不可移动
Point3fp[200],q[3],s[2];
Color4fcolor={0,0,0,1},color1={0.2,0.8,0.9,0.8};
intk=P_radius,t;
doubleL=0.1,C=10,a;
a=sqrt(1/L/C);
t=step;
intx;
s[0].x=0;s[0].y=0;s[0].z=0;
s[1].x=-70;s[1].y=0;s[1].z=0;
q[0].x=0;q[0].y=80;q[0].z=0;
q[1].x=70;q[1].y=0;q[1].z=0;
q[2].x=0;q[2].y=0;q[2].z=50;
for(x=0;x<200;x++)
{
p[x].x=2*(x-50);p[x].z=0;
p[x].y=sqrt(C/L)*cos(k*(p[x].x-a*t));
}
glt:
:
SetLineWidth(4);
glt:
:
EnableLight();
draw:
:
Arrow3D(s[0],q[0],0.0,0.5,10,2,cWHITE,cRED,false,0,0,0);
draw:
:
Arrow3D(s[1],q[1],0.0,0.5,10,2,cWHITE,cRED,false,0,0,0);
draw:
:
LineStrip(200,p,color);
}
///////////////////////////////////////////////////////////////////////
//动画开始
voiddemoApp:
:
DemoBegin()
{step=0;
}
//动画播放
voiddemoApp:
:
DemoPlay()
{
step+=1;
if(step>1000)step=step-1000;
}
//动画暂停
voiddemoApp:
:
DemoPause()
{
}
//动画停止
voiddemoApp:
:
DemoStop()
{
}
///////////////////////////////////////////////////////////////////////
//按钮被点击
voiddemoApp:
:
ButtonClick(intsceneIndex,UINTbutSN)
{
}
//复选框被点击
voiddemoApp:
:
CheckClick(intsceneIndex,UINTchkSN,boolchecked)
{
}
//单选框被点击
voiddemoApp:
:
RadioClick(intsceneIndex,UINTrdoSN)
{
}
//文本框内容被改变
voiddemoApp:
:
TextboxChange(intsceneIndex,UINTtxtSN)
{
}
//组合框下拉列表项被选择
voiddemoApp:
:
ComboSelChange(intsceneIndex,UINTcmbSN,intindex)
{
}
//组合框文本被改变
voiddemoApp:
:
ComboTextChange(intsceneIndex,UINTcmbSN)
{
}
//滑条被移动
voiddemoApp:
:
ScrollMove(intsceneIndex,UINTsbSN,intvalue,floatrate)
{
floatparam=(float)value*rate;
switch(sbSN)
{
case1:
P_radius=param;
break;
case2:
P_omega=param;
break;
case3:
break;
case4:
break;
case5:
break;
}
FlushScene();
}
///////////////////////////////////////////////////////////////////////
//键盘建按下
voiddemoApp:
:
KeyDown(UINTkey)
{
}
//键盘建松开
voiddemoApp:
:
KeyUp(UINTkey)
{
}
//鼠标左键按下
voiddemoApp:
:
LeftButtonDown(intx,inty,intkeyFlag)
{
}
//鼠标左键松开
voiddemoApp:
:
LeftButtonUp(intx,inty,intkeyFlag)
{
}
//鼠标左键双击
voiddemoApp:
:
LeftButtonDblClick(intx,inty,intkeyFlag)
{
}
//鼠标右键按下
voiddemoApp:
:
RightButtonDown(intx,inty,intkeyFlag)
{
}
//鼠标右键松开
voiddemoApp:
:
RightButtonUp(intx,inty,intkeyFlag)
{
}
//鼠标右键双击
voiddemoApp:
:
RightButtonDblClick(intx,inty,intkeyFlag)
{
}
//鼠标移动
voiddemoApp:
:
MouseMove(intx,inty,intkeyFlag)
{
}
//鼠标滚轮被滚动
voiddemoApp:
:
MouseWheel(intx,inty,intzDelta,intkeyFlag)
{
}