【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“VC_6_0和Matlab编程矩阵电路程序 - 期刊论文”一文,供大家参考学习
SOFTWARE DEVELOPMENT AND DESIGN 软件开发与设计 VC6.0 和 Matlab 编程矩阵电路程序 相旸 1, 2 ) ( 云南省计量测试技术研究院,昆明 650228;2. 昆明理工大学信息工程与自动化学院,昆明 650051 1. 摘 要: 在分析和设计电路时,常使用 Proteus、Multisim、EWB、OrCAD ( ) Spice 、Protel 等电路分析工具,但要想 得到更精确的电路分析数据或者个性化的电路模型,以上工具却难以应付。
现代电路分析提供了一种用矩阵方式分 析电路问题的解决方法,这种方法也是以上电路分析软件的基础。
Matlab 提供了许多矩阵运算函数,使用 VC6.0 能够设计出接口良好的 Windows 程序。
因此,使用 VC6.0 和 Matlab 混合编程就能编写出矩阵电路程序,解决个 性化的电路分析问题。
关键词: 矩阵分析;VC6.0;Matlab;混合编程 Program Matrix Circuit Analysis Kit Using VC6.0 and Matlab XIANG Yang 1, 2 (1.Yunnan institute of metrology and testing technology Kunming 650228 2. Faculty of information engineering and automationKunming University of Science and technology Kunming 650051) Abstract: When analyzing and designing a electronic circuit Such EDA software: Proteus Multisim EWB OrCADSpice Protel would be the first selection. But when an engineer asks the most precise analysis data or confronts an individual elec- t tronic component modal these EDA software can’ give an idea solution. Modern electronic analysis give an effective method to deal with this case using Matrix theory and the matrix theory also is the base stone of these EDA software. While MAT- LAB contains many useful matrix functions using VC 6.0 you can design a well interface Windows Program. So using VC6.0 and Matlab an electronic circuit analysis program based on matrix theory is available which can deal with indi- vidual electronic circuit analysis. Key words: Matrix Analysis;VC6.0;Matlab;Program1 引言 公司推出的可视化编程环境。
主要适合在 Windows 下进行 32 在 进 行 电 路 分 析 和 设 计 时 , 常 使 用 Proteus、 Multisim、 位应用程序的开发。
开发一个 Win32 应用程序是一件耗费时EWB、OrCAD (Spice 、Protel 等电路分析工具。
但用这些软 ) 间的事,MFC 即微软基础类是一种 VC语言类库,这样,利件来分析电路,所得数据精度难以提高,且软件界面固定, 用 VC6.0 的 MFC 功能来编制 Win32 程序时,程序员就能利设计出的模型很难脱离分析环境独自运行。
现代电路分析提 用标准的类库来提高编程效率和程序的质量。
Matlab6.5 版本供了一种用矩阵方式分析电路问题的解决方法,这种方法也 带有 Matlab C数学库,使程序员用 VC和 Matlab 混合编程是以上电路分析软件的基础,Matlab 包含许多矩阵函数,可 更加容易。
文中将具体介绍如何根据现代电路分析理论,采以快速地验证自己的模型和算法。
虽然 Matlab 作为一种解释 用 节 点 分 析 法 , 使 用 VC 6.0 和 Matlab 混 合 编 程 来 编 制性语言,运行效率较低 。
但如果使用 VC6.0 调用 Matlab Win32 程序,有效解决线性电路电参数的计算机分析问题。
C数学库,就可以编写出具有良好人机界面、运行效率较 2 步骤高、个性化的电路分析程序。
2.1 有向图 现代电路分析把基本的电路定律,即基尔霍夫电流定律 将电路转换成矩阵形式的第一步是要画出与电路对应的(KCL )、基尔霍夫电压定律 (KVL 和元件支路方程结合起 ) 拓扑图,图 1 为示范用的电路。
绘制该电路的拓扑图时,保来,建立网络方程组,主要用于研究线性时不变网络。
该分 留了电路的节点,并用线代替全部支路。
有向图就是在拓扑析方法利用拓扑学的基本原理将电路图转换成矩阵形式,在 图中加入表示对应支路电流方向的箭头,有向图表明节点和电路图和计算机之间架起一座桥梁,即实现电路信息的计算 支路的连接关系,而不表明电路元件。
图 2 就是与图 1 对应机化。
Matlab 语言是一种解释型的高级语言,它包含自己的 的有向图。
数据结构、程序流控制及文件输入输出等功能,并能很好地 将电路转换成矩阵形式的第二步是要选择一个树。
树是处理矩阵运算。
其次,为了使程序的人机界面友好,Windows 连接图的全部节点而不包含任何回路的支路的集合,组成树操作系统能支持的程序是较佳的选择,VC6.0 是 Microsoft 的支路叫树枝,不组成树的支路叫连支。
在大部分网络中, 存在着许多可能的树。
由于树中无回路,基尔霍夫电压定律 不能用来描述树枝电压之间的关系。
因此,树枝电压是独立本文收稿日期:2009-6-28 - 17 - 电脑编程技巧与维护的。
可以断定,在无独立电压源的情况下,网络中独立电压的个数等于树枝数。
假定全部独立压源都包括在树里面,显然,每个独立压源都约束着一个节点相对于另一个节点的电压,因而使网络中独立电压的数目减少一个。
同样,当每个连支加到图上而建立起一个回路时,该连支电流只在此回路中环流,因此连支电流是独立的。
假定全部独立流源都作为连支包括进来,显然,每个独立流源都约束着一个连支电流,因此使网络中独立电流的数目减少一个。
选择网络的树为选择独立变量最小集合提供了方法,根据这些变量能够求得全部网络电压和电流。
图 3 标准支路 图 1 示例电路 同样 jYv ( ) 2-2 式中 图 2 示例电路的有向图 在利用树枝电压和连支电流的分析方法中,独立电源都假定他们与有限阻抗串联,或与有限阻抗并联。
虽然有需要 把基尔霍夫定律用到第 r 标准支路,得 jrIrir 和 vrEr利用等效电路来处理的例外情况,但这在实践中是可行的。
er 或者对全部支路写成矩阵形式两种分析方法都要求定义如图 3 所示的标准支路。
为了给下 jIi ( ) 2-3面的矩阵分析做准备,用下标 r 表示电路中第 r 支路的自阻抗 vEe ( ) 2-4或自导纳。
式中 连支电流分析要求独立流源必须跨接在支路两端,树枝 ET E1E2…Eb电压分析要求独立压源必须与阻抗 Zrr 相串联。
对后面介绍的 IT I1I2…Ib分析方法,戴维南定理可以用来将标准支路转化成简单等效 eT e1e2…eb电流源 Ir-YrrEr 或简单等效电压源 Er-ZrrIr,这时伪节点 iT i1i2…ib就没有了。
对第 r 支路,欧姆定律表明 VrZrr Ir 对全部支路, 代入方程 2-1 和 2-2,并整理得可以同时用矩阵方程 ( ) eZi E-ZI ( ) 2-5 vZ j ( ) 2-1 ( ) I-YE iYe ( ) 2-6 式中,vT v1v2…
vb vT 为 v 的转置矩阵 这些方程可逐个用到各支路上去,下面的矩阵分析法将 jT j1j2…jb ( ) 2-2- 18 -SOFTWARE DEVELOPMENT AND DESIGN 软件开发与设计利用这些方程,研究电路连接对支路电压和电流的约束。
的切割数等于树枝数,且基本切割只能切断一根树枝,所以 将电路转换成矩阵形式的第三步是用基本切割方法切割 DT 必然是单位矩阵。
第二步选择的树。
所谓基本切割是指恰好切断一根树枝的切 割集矩阵的另一个特性是可用表示式 DeT 加以说明,其中割,方向是被切断树枝的方向。
通过基本切割获得割集矩阵, eT 是 e 与树枝有关的部分,完全展开得这种矩阵的元素由 1、0 或-1 组成。
首先把树枝由 1 开始编号,矩阵的行数对应于具有相同号数的电路支路。
同样,矩阵的每一列对应于一个切割。
图 4 即是与示例电路对应的一个树,和对该树所做的 3 个基本切割。
( ) 2-9 即 DeT e ( ) 2-10 在后面的分析中,将通过方程表示式 v E e 把独立压 源包括进来。
割集分析的两个主要步骤是:将基尔霍夫电流定律用于 割集和将连支电压用树枝电压来表示。
这两步都已用割集矩 阵来完成了,所以电路分析是能够表示成矩阵形式的。
重写 式 ( ) 的支路相互关系为: 2-6 ( ) I-YE iYe ( ) 2-11 图 4 电路的树和割集 等式两边左乘 DT,得到: DT ( ) I-YE DT i DT Ye ( ) 2-12 分块使矩阵分成上下两部分,上面部分用 DT 表示,它与 由前所知,根据基尔霍夫电流定律,DTi0 (见矩阵方程树枝对应;下面部分 DL 则对应于连支。
因为割集的切割数等 式 ( ) 的字母表示形式 2-7 )。
用方程 ( ) 2-10 的 e 代换,得于树枝数,且基本切割只能切断一根树枝,所以 DT 必然是单 到:位矩阵。
如果按行号数标记的支路被按列号数标记的切割所 DT I-YE DT YDeT ( ) 2-13交割,并且支路电流方向与该切割的树枝电流方向相同,那 要把解表示成独立树枝电压的集合,需将矩阵 DTYD 求么矩阵取值为1;如果支路电流取相反方向,那么矩阵取为- 逆,得到:1;如果支路不被切割,则取值为 0。
eT DTYD -1 DT I-YE ( ) 2-142.2 求解电路各参数 )、式 网络中其余的电压和电流,都可将其代入式 (2-3 ),它是示范图割集基尔 根据上面步骤得到方程式 (2-7 ( )、式 ( ) 和式 ( ) 去求得,即: 2-4 2-10 2-11霍夫电流定律的矩阵表示形式。
将该矩阵方程用字母方式表 支路电压 eDeT示为 DTi0。
支路电流 iYe- I-YE 矩阵元电压 veE 矩阵元电流 jiI ( ) 2-7 至此,已经可以对只有两端元件的电路进行矩阵分析了。
只要用 Matlab 等数学软件对矩阵进行分析便可得到相应电路 矩阵 D 被称为割集矩阵,并由 1、0 或-1 组成,图 4 中 的 V-I 特性了。
电路图的割集矩阵 D 重写为如下方程: 3 电路分析程序 以求解图 1 示范电路为例,介绍运用 VC和 Matlab 混合 编程实现电路分析程序。
3.1 运行环境 对话框是 VC6.0 中重要的应用程序模式之一。
对话框 可以接收用户输入的信息或数据,一般是通过在对话框上添 ( ) 2-8 加控件来实现对话框的操作,对话框依靠这些控件与用户进 行交互。
首先把树枝由 1 开始编号 (如图 4 中的编号),矩阵的行 ) (1 启动 Visual C6.0,选择“文件”菜单的“新建”数对应于具有相同号数的电路支路。
同样,矩阵的每一列对 命令,在弹出的“新建”对话框中选择“工程”页面,在该应于一个切割。
分块使矩阵分成上下两部分,上面部分用 DT 页面下选择“MFC AppWizard exe”选项,并单击。
在静态表示,它与树枝对应;下面部分 DL 则对应于连支。
因为割集 文本“工程”下的编辑框中输入程序的名称。
在“位置”下 - 19 - 电脑编程技巧与维护的编辑框中输入程序项目的保存地址,然后单击“确定”按 互转化。
钮,进入创建工程向导界面。
其次,由于 Matlab 所有的运算都是采用双精度浮点型, () 创建工程向导的第一步选择 Dialog based ( 2 基本对话 因而整型阵列如果要参加运算,必须先转 化 为 双 精 度 型 。
)框 选项,同时还可以选择支持的语言,单击“Next”按钮, Matlab C数据库只有 Matlab 阵列一种数据类型。
Matlab C进入向导的第二步。
数据库中用 mwArray 类封装了 Matlab 阵列的数.
上一篇:
土坡稳定若干计算方法的改进及其程序化
下一篇:
月入5000,你有什么资格谈生活