1、无限长理想传输线上电压和电流的传播规律无限长理想传输线上电压和电流的传播规律 物理与电信工程学院 物理学3班 尹振权 20082301094引言:变换是数学物理中重要的思想之一,他基于一种对称性原理。对于同一个问题,我们可以在不同的曲线坐标系中去研究。当然我们要选择在该坐标下问题的微分方程最简单或最容易求解的方法,当我们求得解后在返回原来的坐标系。行波法就是其中的一种方法。问题模型: 设有一根无限长的理想传输线,通过高频交流电。若初始电压分布为,初始电流分布为(这里L为自感、C分布电容),试球线路上电压v和电流i的传播规律。解:由题意得,传输线方程为 式中初始条件为=由达朗贝尔公式得 再求电流
2、i的传播规律,即求解下列初值问题: 再由达朗贝尔公式得结论:电流与电压的变化规律都与余弦函数图形相似,但是这个函数也与x有关,图形的大小也会改变。参考文献: 数学物理方程,同济大学出版社, 桂子鹏 康盛亮 编著 数学物理方程与特殊函数,高等教育出版社, 华中科技大学 李元杰 编著 附录:1.电压u的变化规律#include WizDemo.h#include float step;Text title; float P_radius, P_omega; / 构造函数demoApp:demoApp() : WizGLApp() viewMode = VIEW_PERSPECTIVE1; / 观察
3、视角模式 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()double BesselFun(int n, float x)
4、 double Result = 0.0f; double theta; int m; for (m=0; m=200; m+) theta = m*PI/200; Result += cos(x*sin(theta) - n*theta); Result /= PI; return Result;double LegendreFun(int n, float x) double Result = 0.0f; double den, acc; int i,m; if (n0) return Result; den=acc=1.0f; for (m=0; m0; i-) den *= i; fo
5、r (i=n-m; i0; i-) acc *= i; for (i=n-(2*m); i0; i-) acc *= i; for (i=m; i0; i-) acc *= i; Result += pow(-1, m) * den * pow(x, n-(2*m) / (pow(2, n) * acc); return Result;/ 在此创建场景void demoApp:InitializeScenes()/ 在此创建控件void demoApp:InitializeControls(int sceneIndex)/ 在此初始化控件参数void demoApp:InitializePar
6、ameters(int sceneIndex) P_radius =1; P_omega =10;/ 场景切换时可在此作需要的设置void demoApp:SwitchScene(int curScene, int prevScene)/ 与绘图相关的初始化工作void demoApp:SetupRC() glt:SetDefaultLight(); glt:SetGlobalAmbient(wiz:cBLACK); title.LoadWords(L电压u的变化规律, L楷体, 36, wiz:cBLACK, 300, 48);/ 绘制场景void demoApp:RenderScene(i
7、nt sceneIndex) title.Show(-80,55, 0, false); / 在(0,0,0)处显示汉字内容,不可移动 Point3f p200,q3,s2; Color4f color=0,0,0,1,color1=0.2,0.8,0.9,0.8; int A=15,k=P_radius,a=10,t; t=step; int x; s0.x=0; s0.y=0; s0.z=0; s1.x=-70; s1.y=0; s1.z=0; q0.x=0; q0.y=80; q0.z=0; q1.x=70; q1.y=0; q1.z=0; q2.x=0; q2.y=0; q2.z=50
8、; for(x=0;x1000)step=step-1000;/ 动画暂停void demoApp:DemoPause()/ 动画停止void demoApp:DemoStop()/ 按钮被点击void demoApp:ButtonClick(int sceneIndex, UINT butSN) / 复选框被点击void demoApp:CheckClick(int sceneIndex, UINT chkSN, bool checked)/ 单选框被点击void demoApp:RadioClick(int sceneIndex, UINT rdoSN)/ 文本框内容被改变void dem
9、oApp:TextboxChange(int sceneIndex, UINT txtSN)/ 组合框下拉列表项被选择void demoApp:ComboSelChange(int sceneIndex, UINT cmbSN, int index)/ 组合框文本被改变void demoApp:ComboTextChange(int sceneIndex, UINT cmbSN)/ 滑条被移动void demoApp:ScrollMove(int sceneIndex, UINT sbSN, int value, float rate) float param = (float)value *
10、 rate; switch (sbSN) case 1: P_radius = param; break; case 2: P_omega = param; break; case 3: break; case 4: break; case 5: break; FlushScene();/ 键盘建按下void demoApp:KeyDown(UINT key)/ 键盘建松开void demoApp:KeyUp(UINT key)/ 鼠标左键按下void demoApp:LeftButtonDown(int x, int y, int keyFlag)/ 鼠标左键松开void demoApp:L
11、eftButtonUp(int x, int y, int keyFlag)/ 鼠标左键双击void demoApp:LeftButtonDblClick(int x, int y, int keyFlag)/ 鼠标右键按下void demoApp:RightButtonDown(int x, int y, int keyFlag)/ 鼠标右键松开void demoApp:RightButtonUp(int x, int y, int keyFlag)/ 鼠标右键双击void demoApp:RightButtonDblClick(int x, int y, int keyFlag)/ 鼠标移
12、动void demoApp:MouseMove(int x, int y, int keyFlag)/ 鼠标滚轮被滚动void demoApp:MouseWheel(int x, int y, int zDelta, int keyFlag)2. 电流i的变化规律#include WizDemo.h#include float step;Text title; float P_radius, P_omega; / 构造函数demoApp:demoApp() : WizGLApp() viewMode = VIEW_PERSPECTIVE1; / 观察视角模式 demoState = DEMO_
13、STOP; / 初始动画状态 wndWidth = 1024; / 初始窗口宽度 wndHeight = 715; / 初始窗口高度 showParamWnd = true; / 初始是否显示参数窗口 showInfoWnd = false; / 初始是否显示信息窗口 showToolbar = true; / 初始是否显示工具栏/ wiz:Assign(bgColor, 0.32f, 0.72f, 0.54f, 0.0f); / 设置背景色/ 析构函数demoApp:demoApp()double BesselFun(int n, float x) double Result = 0.0f;
14、 double theta; int m; for (m=0; m=200; m+) theta = m*PI/200; Result += cos(x*sin(theta) - n*theta); Result /= PI; return Result;double LegendreFun(int n, float x) double Result = 0.0f; double den, acc; int i,m; if (n0) return Result; den=acc=1.0f; for (m=0; m0; i-) den *= i; for (i=n-m; i0; i-) acc
15、*= i; for (i=n-(2*m); i0; i-) acc *= i; for (i=m; i0; i-) acc *= i; Result += pow(-1, m) * den * pow(x, n-(2*m) / (pow(2, n) * acc); return Result;/ 在此创建场景void demoApp:InitializeScenes()/ 在此创建控件void demoApp:InitializeControls(int sceneIndex)/ 在此初始化控件参数void demoApp:InitializeParameters(int sceneIndex
16、) P_radius =1; P_omega =10;/ 场景切换时可在此作需要的设置void demoApp:SwitchScene(int curScene, int prevScene)/ 与绘图相关的初始化工作void demoApp:SetupRC() glt:SetDefaultLight(); glt:SetGlobalAmbient(wiz:cBLACK); title.LoadWords(L电流i的变化规律, L楷体, 36, wiz:cBLACK, 300, 48);/ 绘制场景void demoApp:RenderScene(int sceneIndex) title.S
17、how(-80,55, 0, false); / 在(0,0,0)处显示汉字内容,不可移动 Point3f p200,q3,s2; Color4f color=0,0,0,1,color1=0.2,0.8,0.9,0.8; int k=P_radius,t; double L=0.1,C=10,a; a=sqrt(1/L/C); t=step; int x; s0.x=0; s0.y=0; s0.z=0; s1.x=-70; s1.y=0; s1.z=0; q0.x=0; q0.y=80; q0.z=0; q1.x=70; q1.y=0; q1.z=0; q2.x=0; q2.y=0; q2.
18、z=50; for(x=0;x1000)step=step-1000;/ 动画暂停void demoApp:DemoPause()/ 动画停止void demoApp:DemoStop()/ 按钮被点击void demoApp:ButtonClick(int sceneIndex, UINT butSN) / 复选框被点击void demoApp:CheckClick(int sceneIndex, UINT chkSN, bool checked)/ 单选框被点击void demoApp:RadioClick(int sceneIndex, UINT rdoSN)/ 文本框内容被改变void
19、 demoApp:TextboxChange(int sceneIndex, UINT txtSN)/ 组合框下拉列表项被选择void demoApp:ComboSelChange(int sceneIndex, UINT cmbSN, int index)/ 组合框文本被改变void demoApp:ComboTextChange(int sceneIndex, UINT cmbSN)/ 滑条被移动void demoApp:ScrollMove(int sceneIndex, UINT sbSN, int value, float rate) float param = (float)val
20、ue * rate; switch (sbSN) case 1: P_radius = param; break; case 2: P_omega = param; break; case 3: break; case 4: break; case 5: break; FlushScene();/ 键盘建按下void demoApp:KeyDown(UINT key)/ 键盘建松开void demoApp:KeyUp(UINT key)/ 鼠标左键按下void demoApp:LeftButtonDown(int x, int y, int keyFlag)/ 鼠标左键松开void demoA
21、pp:LeftButtonUp(int x, int y, int keyFlag)/ 鼠标左键双击void demoApp:LeftButtonDblClick(int x, int y, int keyFlag)/ 鼠标右键按下void demoApp:RightButtonDown(int x, int y, int keyFlag)/ 鼠标右键松开void demoApp:RightButtonUp(int x, int y, int keyFlag)/ 鼠标右键双击void demoApp:RightButtonDblClick(int x, int y, int keyFlag)/ 鼠标移动void demoApp:MouseMove(int x, int y, int keyFlag)/ 鼠标滚轮被滚动void demoApp:MouseWheel(int x, int y, int zDelta, int keyFlag)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1