搜档网
当前位置:搜档网 › matlab电路仿真

matlab电路仿真

matlab电路仿真
matlab电路仿真

SHANDONG UNIVERSITY OF TECHNOLOGY

数学

软件结业

论文

题目: 电路仿真方法研究

学 院: 电气与电子工程学院 专 业: 电气工程及其自动化

学生姓名: 武奥

学 号: 14110302044 指导教师: 周世祥

2015年11

目录

摘要 (Ⅰ)

目录 (Ⅲ)

第一章引言 (1)

1.1课题的背景和意义 (1)

1.2深度学习的前世今生 (2)

第二章自编码器模型构建 (4)

2.1入门 (4)

1.1.

2.2 SymPowerSyste是什么5

2.引言

2.1.1.1 课题的背景和意义

随着计算机技术和互联网的发展,人类开始步入大数据时代,我们需要从海量的数据中找到自己感兴趣或者对自己有用的信息,这就要求计算机能在短时间内检索出满意的结果。伴随着搜索引擎的发展我们在文字检索方面已经取得了值得骄傲的成就,但是在更加直观,更加方便的图片检索方面仍然有待发展。试想一下,如果我们能通过图片检索到自己想要的信息我们的生活将会更加便利,我们只要对着自己感兴趣的东西扫一扫就能获得我们需要的信息。

要实现上述目标就要求计算机能像人的视觉系统一样能识别图片、对图片进行分类处理。然而,每幅图片的信息量就很大,要从海量的图片中进行识别处理数据量可想而知,而且并不是图片中的所有信息都是有用的。

-III-

这就需要我们对图片进行降维处理和特征提取。虽然已有的降维方法在理论支持上很成熟,但是基于线性的方法并不适合图像识别而且实际效果也不尽人意。深度学习算法是2006年提出的一种新的方法,虽然缺乏理论支持但在实际应用中取得良好效果。

深度学习算法在计算机视觉、图像识别方面已经开始普遍使用,相对于以前的方法准确率大大提高。除了在图像识别领域,深度学习在语音识别、自然语言处理等方面也有突破性进展:2012年11月,在中国天津举行的“21世纪的计算机大会”上微软公开演示了一个全自动同声传译系统,微软首席研究员的英文演讲被后台的计算机自动识别、翻译、合成并转换成和演讲者音色相近的中文发音,这背后的关键技术就是深度学习算法。深度学习研究的日益成熟和完美应用一定可以给我们的生活带来极大的便利和智能化。

-IV-

Matlab电路仿真软件包-simpowersystems

3.入门

3.1.SymPowerSystem是什么

3.1.1.介绍

在Matlab提供的simulink仿真环境下,与其他建模产品结合在一起,用于对电子、机械系统进行建模。要学会使用SymPowerSystem,应首先学会使用Simulink仿真。

3.1.2.设计中的仿真的作用(略)

3.1.3.SymPowerSystem仿真库

你可迅速将SymPowerSystem投入使用。该库包含了许多典型的功率设备模型,例如,变压器、导线、机械、能源电子等。这些仿真模型来源于产品手册,基于工程实际。

SymPowerSystem包含一个主要的库:powerlib。powerlib库显示了所有包含的模块和模块名称。

3.1.

4.SymPowerSystem中的非线性模块(略)

3.1.5.仿真时需要的环境:

Maltab 和Simulink

3.2.如何使用该指南

3.2.1.对于新用户

将学会如下知识和技能:

(1)使用该库创建和仿真电子电路模型

(2)将一个电子电路于simulink模块连接在一起

(3)分析电子电路的稳定状态和频率响应

(4)离散化模型,以便加快仿真速度

(5)使用矢量图仿真方法

(6)构建自定义的非线性仿真模型

3.2.2.对于经验丰富的模块用户(略)

3.2.3.所有用户(略)

3.3.创建和仿真简单的电路

3.3.1.介绍

SymPowerSystem允许你对包含线性或非线性的电子电路进行建模和仿真。在本章节中,您将学习到:

(1)浏览SymPowerSystems的powerlib库

(2)如何利用SymPowerSystem创建一个简单的电路

(3)如何将电路与simulink模块互联。

下述电路是即将创建的电路:

图1 要建模和仿真的电路

3.3.2.使用powerlib创建电路

(1)使用如下命令打开powerlib:

powerlib

(2)从powerlib的文件菜单下,允许“新建”菜单命令,新建一个空白电路稳定,存为:circurt1

(3)打开Electrical Sources库,复制其中的AC V oltage Source模块到circuit1中

(4)双击AC V oltage Source,打开其属性设置对话框,按图1所示进行设置

(5)改模块的名称为“Vs”

(6)将elements库中的Parallel RLC Branch模块复制到circuit1中,按图1进行参数设置

(7)用同样的方法加入其他模块到电路中

(8)注意加入的传输线模块:传输线模块模型图如下(这是一段模型,一条导线通

常有若干段,每一段参数都一样,如图1所示):

该模型是对参数分布一致的传输线的模拟。它能传输的电信号最大频率近似为:

fmax=Nv/(8l)

其中,N---PI节数,

v---导线传输速度,v=1/(sqrt(L*C))

l----导线长度。

关于Series RLC Load模块:

描述该模块的有如下参数:

normal voltage Vn(Vms):额定电压(有效值)

normal frequency(Hz):额定频率

active power(w):有效功率(有功功率)1

Inductive reactive power QL:感性无功功率

Capacitive reactive power QC:容性无功功率

(9)加一个电压测量模块(V oltage mesure block)到电路中,该模块位于mesurements库中然后将simulink中的scope模块添加到电路中,并将其与电压测量模块互联。

3.3.3.将电子电路与simulink连接起来

电压测量模块(V oltage mesure block)是SymPowerSystem模块与simulink模块直接的接口。对于上面的例子,你实现了一种从电路到simulink信号的接口。电压测量模块将电压转换成simulink信号。

类似的,电流测量模块(current mesure block)能将电流转换为simulink信号。

你也可以将simulink信号连接到电路中,例如,你也可以将受控电压源加入到电路中。如图2所示。

1电阻消耗的功率

图2

3.3.

4.测量电压和电流

电压测量模块和电流测量模块有方向规定,标+为正向,规定的方向是从正到负,若电压值或电流值为+,则表示他们的方向与规定方向相同,否则,相反。

万用表模块(multimeter)则没有事先规定的方向,它是根据仿真结果仿真后才显示方向的。可以通过如下命令了解方向:

get_param(gcb,'Orientation')

3.3.5.连接电容和电感的基本原则

(1)理想电压源不能与纯电容并联

(2)理想电流源不能与纯电感串联。

违反上述原则,电路将无法仿真。必须修正。方法是在电容旁串联一个小电阻或在纯电感两端并联一个大电阻。

3.3.6.使用powergui模块仿真simpowersystem模型

powergui模块对于任何包含simpowersystems模块的simulink模型的仿真是必须的。他用于存储等价的simulink电路,这些电路用来表示simpowersystem模块的状态方程。当您在仿真中使用该模型,应遵循以下原则:

●将powergui模块置于仿真图的顶层用以优化性能。然而,你也可以把它置于任何

需要的地方。例如,在一个子系统中。这不会影响系统功能;

●其他(略)

3.4.简单电路分析

3.4.1.介绍

本节你将学习:

●使用power_analyze命令获取模型的状态空间描述

●使用powergui的图形用户接口计算电路的稳态电压和电流

●电路的频域分析

3.4.2.电路状态变量

电路状态变量是与电路中的电感和电容元件有关的状态变量。许多模块中包含了电感或电容,如并联RLC模块,PI SectionLine模块,等等。

电路的状态变量有电路中各电容的两端电压和流经各电感的电流组成。电路状态变量的名称由系统自动产生,其命名规则如下:

●变量名由两部分组成:前导符_后缀。前导符和后缀之间用下划线隔开;

●前导符为Il或Uc(Il表示流经电感的电路,Uc表示电容器两端的电压)‘

●后缀为模块名称。

3.4.3.使用power_analyze进行状态空间描述

你可以使用power_analyze获取一个电路模型的状态空间描述,例如输入下面的命令,可以获取上面创建的简单电路的状态空间描述信息:

[A,B,C,D,x0,electrical_states,inputs,outputs]=power_analyze('circuit1')

x’=Ax+Bu

y=Cx+Du

要判定电路是否稳定,只要求A的特征值,看看A的特征值的实部是否都小于0,只有满足此条件,电路才是稳定的。

3.4.4.稳态分析

使用powergui的图形用户接口命令可以进行电路的稳态分析。

菜单命令:Analysis tools-->Steady-State V oltages and Currents

3.4.5.频率分析

powerlib包含了一个阻抗测量模块(Impedance Measurement),可以用于测量电路中任意两点间的阻抗。接下来,你将使用两种方法,利用该模块测量节点B2点的阻抗:

●基于状态空间模型进行计算

●使用阻抗测量模块和powergui模块进行测量

(1) 利用状态空间模型获取阻抗-频率之间的关系

注:下面已经假定你的电脑上已经安装了控制系统工具箱

要测量B2点的阻抗与频率间的关系,需要在B2处加入另一个电流源,打开前面绘制的仿真模型图,将AC Current Source 复制到电路中,最终如图3所示。

图3

接着,计算该电路的状态空间方程:

sys1 = power_analyze('circuit1','ss')

该方程描述的是电路的连续状态空间方程。

在laplace 域,B2点的阻抗定义为:由交流电流源注入的电流与U2测量的电压间的传递函数。

)

(2)(2)(2s I s U s Z 利用下面的命令获取状态空间方程中的输入输出变量的名称:

sys1.InputName

ans =

'U_Vs'

'I_AC Current Source'

sys1.OutputName

ans =

'U_U2'

'U_U1'

节点B2处的阻抗与该状态空间模型的输出2和输入1间的传递函数相关,对于0~1500Hz 频率范围,阻抗可由下式计算并显示出来:

freq=0:1500;

w=2*pi*freq;

bode(sys1(1,2),w);

(2)利用阻抗测量模块(impedance mesurement )和powergui 模块求阻抗与频率关系 打开powerlib 的mesurement 库,将阻抗测量模块(impedance mesurement )复制到你的模型中,重命名为ZB2,将ZB2的两个输入分别连接到B2点和地(这样便可以测量B2点对地的阻抗)。

现在打开powergui 对话框,窗口中显示只有一个阻抗在测,命名为(ZB2,与模块名相

同),设置频率范围为0:2:1500,Z幅度显示请选择对数刻度(logarithmic),选中“Save data when updated”复选框,并输入zData作为变量名用来保持阻抗-频率数据。单击“update”按钮,可以看到改变参数后的阻抗幅值-频率图、阻抗相位-频率图。

注:ZData的第1列是频率,第2列是阻抗(复数表示)。

3.5.指定电路初始状态

3.5.1.介绍

在这一节中,你将学习:

●包含有simpowersystems模块的simulink模型图的状态变量有哪些?

●设定状态变量的初始值

3.5.2.状态变量

包含有simpowersystems模块的simulink模型图的状态变量由以下组成:

●与simpowersystems中的RLC支路模块类型有关的电路状态。他们在模型的状态

空间描述中被定义。

●SimPowerSystems的电气simulink模型的simulink状态,例如同步机械模块,饱和

变压器模块和三相动态负载模块

●你的模型中的其他模块的simulink状态

下图给出了包含上述三种模块的一个实例。

3.5.3.初始状态

所谓初始条件,是指仿真前应用在整个系统上的各状态变量的初始值,也称作初始状态。初始状态可以在模块中设定。大多数模块允许用户在设计时指定初始状态。对于电路模型,simpowersystems可自动设置模型的初始状态,并保证开始仿真时直接进入稳态。

然而,你可以自行设定电路中的电容和电感的初始状态。

使用power_init函数也可以设定初始状态

3.5.

4.使用powergui设定电路初始状态

第1步:在Matlab命令行中键入power_transient,打开标题为Transient

Analysis of a Linear Circuits的SimPowerSystems实例。重命名其中RLC支路模块

第2步:从powergui模块的分析工具菜单下,选择“初始状态设定”选项,5个电路状态变量的初始值已经设定,这些初始设定能使电路一开始仿真,就为稳态。

第3步:打开scope模块,并开始仿真。

第4步:返回到第2步,试着改变某些变量的初始值,再仿真,看看结果是否发生变化。若不懂,请看在线帮助。

3.6.仿真暂态过程

3.6.1.介绍

本节你将学习到:

●怎样创建电路子系统(subsystem)

●使用断路器进行电路的暂态过程仿真

●比较不同传输线模型下的时域仿真结果

●如何离散化电路并将其仿真结果与相应的连续的可变步长算法的仿真结果相比较

3.6.2.使用开关仿真暂态过程

simpowersystems的一个重要功能是对电路的暂态过程进行仿真。可以在电路中加入机械开关或使用功率电子开关来完成暂态过程的仿真。

首先,打开前面创建的circuit1仿真模型,删除连接到B2节点上的电流源,将新的系统另存为circuit2。在接入开关前,最好修改一下电路,simpowersystems允许用户将多个元器件组合在一起形成一个电路子系统。这一特点能使复杂电路大大简化。

使用这一特点,将源阻抗转换到一个子系统中:

(1)框选标识为Rs_eq和Z_eq的两个模块,选择“Edit-->create subsystem”菜单命令,这两个模块变成了一个子系统模块(subsystem)

(2)选择“Edit > Mask subsystem”菜单命令,改变子系统图标,在封装编辑器中的icon选项中,输入下列命令:

disp('Equivalent\nCircuit')

subsystem上就会显示相应文字。

(3)选择“Format > Show drop shadow”菜单命令,给子系统模块设置阴影。

(4)双击子系统模块,可以查看其组成。

(5)插入电路断路器(a circuit braker)

断路器是理想开关与一个小电阻串联组成的模型。关于断路器的模型说明,请参考matlab相关帮助。

按如下设置断路器的参数:

(1)打开braker模块对话框,将其参数作如下设置:

Ron 0.001 Ω

Initial state 0 (open)

Rs inf

Cs 0

Switching times [(1/60)/4]

(2)按前面的图形连接各模块

(3)打开scope U2,单击参数图标,选择“Data History”选项卡,单击“Save data to workspace”按钮,指定变量名为U2来保存仿真结果,然后将U2的格式(format)

选项设为“array”,同时,去除“Limit rows to last”选项,以便显示整个波形。

接着,便可以仿真系统了。

3.6.3.连续、变步长积分算法Continuous, Variable Time Step

Integration Algorithms

打开“PI section Line”对话框,确认sections的数目设为1,打开“Simulation > Simulation parameters”对话框,由于你的系统包含开关,故需要一个刚性的积分算法(a stiff integration algorithm)进行仿真。在“solver”面板,选择变步长刚性积分算法(a stiff integration algorithm)ode23t。

保留其他默认参数值(如相对误差1e-3),设置仿真结束时间(stop time)为0.02秒,打开示波器(scope),开始仿真。观察示波器U1和示波器U2上的波形。

一旦仿真结束,将U2的值保存给变量U2_1,即在工作空间中执行如下命令:

U2_1 = U2;

打开PI section Line对话框,将sections的数目设为10,再次仿真,仿真结束,把U2的值保存给变量U2_2。

在将电路修改为分布参数模型之前,将系统另存为circuit2_10pi,以便以后重复使用。

用分布参数线(distributed parameter line)模块替换图中的pi段线模块,设置其相(phase)数为1。将该系统保存为circuit2_dist.

重新仿真,将U2赋给变量U2_d。

现在可比较上面三种不同模型的仿真结果了。每一个变量U2_1,U2_10,U2_d是一个两列的矩阵,第1列是时间,第2列是对应的电压值。使用下列命令在同一幅图上打印出三个波形(如图5所示)。

plot(U2_1(:,1), U2_1(:,2), U2_10(:,1),U2_10(:,2),U2_d(:,1),U2_d(:,2));

3.6.

4.离散化电路系统

simpowersystems的一个重要特征是,他不仅能用连续或变步长积分算法进行仿真,而且可以使用离散化电路系统的算法进行仿真。对于小系统,变步长算法一般要比固定步长算法快,因为它需要的积分的步长的数目较少;而对于包含了许多状态和非线性模块(如功率电子开关)的大型电路系统,离散化电路系统则具有较大的优势。

当你离散化系统时,仿真的精度由时间步长控制。若使用太大的时间步长,精度可能不够。确定时间步长是否合适的唯一方法是通过改变时间步长,反复仿真,比较仿真结果。通常,对于在50Hz或60Hz的功率系统上或使用了线性整流功率电子(line-commutated power enectronic)元件(如二极管、可控硅等)的系统上进行暂态仿真,取20us-50us的时间步长一般能取得较好的仿真效果。对于使用了强制整流功率电子开关的系统,必须减小时间步长。绝缘栅极双极性晶体管(insulated-gate bipolar transistor (IGBT)),场效应管(field-effect transistor,FET),门极关断晶闸管(gate-turnoff thyristor)等工作在很高的开关频率状态下。

例如,要仿真一个工作在8Hz的脉宽调制(pulse-width-modulated ,PWM)转换器,需要设置步长大约为8us。

现在学习怎样离散化你的系统并将仿真结果同连续和离散系统做比较。打开你在前面保存的circuit2_10pi系统,该系统包含24个电路状态和一个开关。打开powergui然后选择离

散化电路模型(discretize electrical model )。设置采样周期25e-6s 。重新开始仿真,功率系统将使用Tustin 方法(相应于梯形积分)并以25us 采样周期进行离散化。

打开“Simulation > Simulation parameters > Solver ”对话框,设置仿真时间为0.2s 。启动仿真。

为测量仿真时间,可运行下面的命令重新仿真:

tic; sim(gcs); toc

当仿真完成后,其间所经历的时间会显示在Matlab 命令行窗口。

要返回连续仿真状态,打开powergui 模块,选择“continuous ”选项。如果比较一下连续仿真和离散仿真,你会发现离散仿真比连续仿真将近快3.5倍。

要比较两种仿真方法的精度,请完成下列三个仿真:

(1) 仿真连续系统,Ts=0

(2) 仿真离散系统,Ts=25us

(3) 仿真离散系统,Ts=50us

对于每一个仿真,将U2值保存到不同的变量中,相应的为U2c ,U2d25,U2d50,使用下列命令绘制U2波形:

plot(U2c(:,1), U2c(:,2), U2d25(:,1),U2d25(:,2),

U2d50(:,1),U2d50(:,2))

从上图中,可以看出,25us 的离散化系统已经非常接近连续系统了,50us 有较大误差。

3.7.矢量仿真方法简介

3.7.1.介绍

本节你将学会:

●将矢量仿真方法用于简单的线性电路中

●了解该方法的优点和局限性

到目前为止,你已经学会了两种仿真电路的方法:

●使用连续simulink求解器及变步长进行仿真

●用离散化方法及固定步长进行仿真

本节介绍的是第三种方法-矢量求解法进行仿真

3.7.2.何时使用矢量求解法

矢量求解法主要用于研究功率系统的电子机械振荡,这类系统一般由大型的发电机和电动机组成。例如,可以使用这种方法对三相系统和机械类的多机械系统进行仿真。然而,该不方法不仅仅局限在机械的暂态稳定性研究领域,完全可以拓展应用到任何线性系统上。

在一个线性电路中,如果你所感兴趣的仅仅是当开关处于关或开的状态下所有电压和电流的幅值和相位,那么,就没有必要求解由电阻、电容和电感交互作用而带来的差分方程(也即状态空间模型)。你仅仅需要求解相对而言简单得多的与电压和电流相位有关的代数方程组,这正是矢量求解法所要解决的问题。顾名思义,该方法以矢量描述电压和电流。矢量是一个复数,可以用来表示特定频率下的正弦电压和电流。矢量既可以用笛卡尔坐标(Cartesian coordinates)表示(复数的实部与虚部),也可以用极坐标(polar coordinates)表示。在忽略电路状态的情况下,矢量求解法无需特定的求解器用于求解系统的电路部分。因此仿真速度要快得多。但应始终记住,这种快速求解技术只能给出某个特定频率下的结果。

3.7.3.电路暂态过程的矢量仿真

下面你将会把矢量求解法应用到一个简单的线性电路上。打开powerlib的演示实例库,打开通用演示库(General Demos library),选择名称为“暂态分析”的示例,一个名为power_transient的系统打开了,如下图所示:

可以通过各模块参数设置对话框,看看各模块设置的参数。

(1)激活powergui 中的矢量求解法

现在,你将使用矢量求解法仿真同样的电路。这种选项可以通过打开powergui 来设定,具体设置请参考在线帮助。设定该选项后,continues 变为phasors ,在启动仿真前,还需指定输出到示波器上的信号的格式。

(2) 选择矢量信号测量的格式

双击“V oltage Measurement ”模块或“Current Measurement ”模块,可以看到有一个菜单,通过该菜单可设置矢量信号的四种输出格式:complex (复数,默认),real-imag(实部-虚部),magnitude-angle(幅度-角度),magnitude (幅度)。当你要处理的信号为复数信号时,由于示波器(scope )只能观察信号幅度,因此,这里选择“magnitude ”。

重新启动仿真,60Hz 的电压和电流的幅度显示在示波器(scope )上。从连续仿真和矢量仿真得到的波形上,可以看出他们的波形是有区别的。但他们反映了统一规律。

注意到:连续仿真情况下,电路波形状态改变出现在断路器打开时电流的下一个0点位置。而对于矢量仿真,电路波形状态改变与断路器开关时刻是同步的。

(3) 处理电压和电流矢量

“complex ”格式允许运用复数运算和矢量处理,无需将实部和虚部分离。例如,假设你要计算负载的功耗(有功功率P 和无功功率Q ),而复数功率s 可通过下式计算:

*2

1I U jQ P S ??=+= 这里的I *是电流矢量的共轭复数。1/2用于将电压和电流的幅度从峰值转换为有效值。 设置电压和电流的输出值均为“complex ”格式,利用来自Simulink Math 库的模块,实现功率的测量,如下图所示:

4.高级组件和技术

4.1.功率电子简介

4.2.仿真变速发动机的控制

4.3.三相系统和机械

4.4.构建和定制非线性模型

4.4.1.介绍

SimPowerSystems提供了大量非线性元器件模型。然而,有时,你可能需要定制自己的模型并将其与SimPowerSystems提供的标准器件模型相连。定制的模型可能是一种用来模拟一段电弧或变阻器的非线性电阻,也可能是可饱和的电感,一种新的类型的发电机或电动机等等。

在本节中,你将学习如何在simulink中定制自己的非线性模型。这里以一个简单的可饱和的非线性电感和非线性电阻为例来说明。

4.4.2.一个非线性电感的建模

考虑一个工作在额定频率为fnom=60Hz、额定电压Vnom=120V RMS的2H的电感。从0-120V RMS范围内,电感值为一个常数:2H,当电压超过其额定电压时,电感饱和,将为0.5H,下图绘制的是该电感的非线性特征曲线,电流量(current)和磁通量(flux)的刻度为每单位(per unit),额定电压和电流被选为每单位的基准值。

流经电感的电流是磁通量ψ的非线性函数,依次,磁通量是电感两端电压的非线性函数,该关系可用下列方程描述:

dt d dt di L v ψ=?

= 或 ?=v d t ψ )

(ψψL i = 因此,该电感的非线性模型可以用一个受控电流源来描述,电流i 是电压v 的非线性函数,如下图所示:

“非线性电感的实现”一节给出了一个包含2H 非线性电感的电路,该非线性电感与两个电压源(1个120V 、60Hz 的交流电压源和一个直流电压源)和一个5欧的电阻串联。

所有用于构建非线性电感的元件都被组合在一个名为非线性电感的子系统中,电感的两端标有“in ”和“out ”。注意,第2个输出返回的是磁通量ψ,也被加到子系统中,将该输出连接到scope 模块,可以观察磁通量的变化。

该非线性模型使用了两个powerlib 模块和两个simulink 模块。这两个powerlib 模块分别是电压测量模块(用于读取电感两端的电压)和控制电流源模块(controled current source ),根据模型上的标示,该电流的箭头方向是从输入到输出。如上图所示。

两个simulink 模块分别是积分模块(用来计算来源于电压输入的得到的磁通量),和一个查表模块(look_up table )(用来描述i 和ψ的关系特征)

powerl_extra的两个Fourier(傅里叶)模块用于分析电流的基本成分和直流成分。按上图建立仿真模型,为实现i=f( ),在查表模块中指定下列两个向量。

Vector of input values (flux) [-1.25 -1 1 1.25 ] *(120*sqrt(2)/(2π*60))

Vector of output values (current) [-2 -1 1 2]*(120*sqrt(2)/(4π*60))

将你的电路保存为circuit7,为两个电源设置下面的参数:

AC source

●Peak amplitude 120*sqrt(2)

●Phase 90 degrees

●Frequency 60 Hz

DC source

●Amplitude0 V

调整仿真时间为1.5s,选择ode33tb积分算法作为默认参数,并开始仿真。仿真结果与计算一致。

4.4.3.定制自己的非线性模型

simulink提供了一种面板(mask)工具,来为你自定的模型创建对话框,你可以一个指定下列几个提示和变量:

Nominal voltage (V olts rms):Vnom

Nominal frequency (Hz):Fnom

Unsaturated inductance (H):L

Saturation characteristic [i1(pu) phi1(pu); i2 phi2; ...]:sat

最终的结果如下图所示:

下列代码在模板初始化时准备了两个向量,Current_vect 和Flux_vect,以用于look_up table模块。

% Define base current and Flux for pu system

I_base = Vnom*sqrt(2)/(L*2*pi*fnom);

Phi_base = Vnom*sqrt(2)/(2*pi*fnom);

% Check first two points of the saturation characteristic

if ~all(all(sat(1:2,:)==[0 0; 1 1])),

h=errordlg('The first two points of the characteristic must

be [0 0; 1 1]','Error');

uiwait(h);

end

% Complete negative part of saturation characteristic

[npoints,ncol]=size(sat);

sat1=[sat ; -sat(2:npoints,:)];

sat1=sort(sat1);

% Current vector (A) and flux vector (V.s)

Current_vect=sat1(:,1)*I_base;

Flux_vect=sat1(:,2)*Phi_base;

打开查表模块对话框,输入如下两个变量名:

Vector of input values (flux) Flux_vect

Vector of output values (current) Current_vect

关闭对话框,重新开始仿真,可得到同样的系统。

开关电源《基于MatlabSimulink的BOOST电路仿真》

基于Matlab/Simulink 的BOOST电路仿真 姓名: 学号: 班级: 时间:2010年12月7日

1引言 BOOST 电路又称为升压型电路, 是一种直流- 直流变换电路, 其电路结构如图1 所示。此电路在开关电源领域内占有非常重要的地位, 长期以来广泛的应用于各种电源设备的设计中。对它工作过程的理解掌握关系到对整个开关电源领域各种电路工作过程的理解, 然而现有的书本上仅仅给出电路在理想情况下稳态工作过程的分析, 而没有提及电路从启动到稳定之间暂态的工作过程, 不利于读者理解电路的整个工作过程和升压原理。采用matlab仿真分析方法, 可直观、详细的描述BOOST 电路由启动到达稳态的工作过程, 并对其中各种现象进行细致深入的分析, 便于我们真正掌握BOO ST 电路的工作特性。 图1BOO ST 电路的结构 2电路的工作状态 BOO ST 电路的工作模式分为电感电流连续工作模式和电感电流断续工作模式。其中电流连续模式的电路工作状态如图2 (a) 和图2 (b) 所示, 电流断续模式的电路工作状态如图2 (a)、(b)、(c) 所示, 两种工作模式的前两个工作状态相同, 电流断续型模式比电流连续型模式多出一个电感电流为零的工作状态。 (a) 开关状态1 (S 闭合) (b) 开关状态2 (S 关断) (c) 开关状态3 (电感电流为零) 图2BOO ST 电路的工作状态

3matlab仿真分析 matlab 是一种功能强大的仿真软件, 它可以进行各种各样的模拟电路和数字电路仿真,并给出波形输出和数据输出, 无论对哪种器件和哪种电路进行仿真, 均可以得到精确的仿真结果。本文应用基于matlab软件对BOO ST 电路仿真, 仿真图如图3 所示,其中IGBT作为开关, 以脉冲发生器脉冲周期T=0.2ms,脉冲宽度为50%的通断来仿真图2 中开关S的通断过程。 图3BOO ST 电路的PSp ice 模型 3.1电路工作原理 在电路中IGBT导通时,电流由E经升压电感L和V形成回路,电感L储能;当IGBT关断时,电感产生的反电动势和直流电源电压方向相同互相叠加,从而在负载侧得到高于电源的电压,二极管的作用是阻断IGBT导通是,电容的放电回路。调节开关器件V的通断周期,可以调整负载侧输出电流和电压的大小。负载侧输出电压的平均值为: (3-1) 式(3-1)中T为开关周期, 为导通时间,为关断时间。

时域有限差分法的Matlab仿真

时域有限差分法的Matlab仿真 关键词: Matlab 矩形波导时域有限差分法 摘要:介绍了时域有限差分法的基本原理,并利用Matlab仿真,对矩形波导谐振腔中的电磁场作了模拟和分析。 关键词:时域有限差分法;Matlab;矩形波导;谐振腔 目前,电磁场的时域计算方法越来越引人注目。时域有限差分(Finite Difference Time Domain,FDTD)法[1]作为一种主要的电磁场时域计算方法,最早是在1966年由K. S. Yee提出的。这种方法通过将Maxwell旋度方程转化为有限差分式而直接在时域求解,通过建立时间离散的递进序列,在相互交织的网格空间中交替计算电场和磁场。经过三十多年的发展,这种方法已经广泛应用到各种电磁问题的分析之中。 Matlab作为一种工程仿真工具得到了广泛应用[2]。用于时域有限差分法,可以简化编程,使研究者的研究重心放在FDTD法本身上,而不必在编程上花费过多的时间。 下面将采用FDTD法,利用Matlab仿真来分析矩形波导谐振腔的电磁场,说明了将二者结合起来的优越性。 1FDTD法基本原理 时域有限差分法的主要思想是把Maxwell方程在空间、时间上离散化,用差分方程代替一阶偏微分方程,求解差分方程组,从而得出各网格单元的场值。FDTD 空间网格单元上电场和磁场各分量的分布如图1所示。 电场和磁场被交叉放置,电场分量位于网格单元每条棱的中心,磁场分量位于网格单元每个面的中心,每个磁场(电场)分量都有4个电场(磁场)分量环绕。这样不仅保证了介质分界面上切向场分量的连续性条件得到自然满足,而且

还允许旋度方程在空间上进行中心差分运算,同时也满足了法拉第电磁感应定律和安培环路积分定律,也可以很恰当地模拟电磁波的实际传播过程。 1.1Maxwell方程的差分形式 旋度方程为: 将其标量化,并将问题空间沿3个轴向分成若干网格单元,用Δx,Δy和Δz 分别表示每个网格单元沿3个轴向的长度,用Δt表示时间步长。网格单元顶点的坐标(x,y,z)可记为: 其中:i,j,k和n为整数。 同时利用二阶精度的中心有限差分式来表示函数对空间和时间的偏导数,即可得到如下FDTD基本差分式: 由于方程式里出现了半个网格和半个时间步,为了便于编程,将上面的差分式改写成如下形式:

各种BP学习算法MATLAB仿真

3.3.2 各种BP学习算法MATLAB仿真 根据上面一节对BP神经网络的MATLAB设计,可以得出下面的通用的MATLAB程序段,由于各种BP学习算法采用了不同的学习函数,所以只需要更改学习函数即可。 MATLAB程序段如下: x=-4:0.01:4; y1=sin((1/2)*pi*x)+sin(pi*x); %trainlm函数可以选择替换 net=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'trainlm'); net.trainparam.epochs=2000; net.trainparam.goal=0.00001; net=train(net,x,y1); y2=sim(net,x); err=y2-y1; res=norm(err); %暂停,按任意键继续 Pause %绘图,原图(蓝色光滑线)和仿真效果图(红色+号点线) plot(x,y1); hold on plot(x,y2,'r+'); 注意:由于各种不确定因素,可能对网络训练有不同程度的影响,产生不同的效果。如图3-8。 标准BP算法(traingd)

图3-8 标准BP算法的训练过程以及结果(原图蓝色线,仿真图+号线)增加动量法(traingdm) 如图3-9。 图3-9 增加动量法的训练过程以及结果(原图蓝色线,仿真图+号线)弹性BP算法(trainrp)如图3-10 图3-10 弹性BP算法的训练过程以及结果(原图蓝色线,仿真图+号线)

动量及自适应学习速率法(traingdx)如图3-11。 图3-11 动量及自适应学习速率法的训练过程以及结果(原图蓝色线,仿真图+号线)共轭梯度法(traincgf)如图3-12。

基于matlab的电路仿真

基于matlab的电路仿真 杨泽辉51130215 %基于matlab的电路仿真 %关键词: RC电路仿真, matlab, GUI设计 % 基于matlab的电路仿真 %功能:产生根据输入波形与电路的选择产生输出波形 close all;clear;clc; %清空 figure('position',[189 89 714 485]); %创建图形窗口,坐标(189,89),宽714,高485;Na=['输入波形[请选择]|输入波形:正弦波|',... '输入波形:方形波|输入波形:脉冲波'];%波形选择名称数组; Ns={'sin','square','pulse'}; %波形选择名称数组; R=2; % default parameters: resistance 电阻值 C=2; % default parameters: capacitance电容值 f=10; % default parameters: frequency 波形频率 TAU=R*C; tff=10; % length of time ts=1/f; % sampling length sys1=tf([1],[1,1]); % systems for integral circuit %传递函数; sys2=tf([1,0],[1,1]); % systems for differential circuit a1=axes('position',[0.1,0.6,0.3,0.3]); %创建坐标轴并获得句柄; po1=uicontrol(gcf,'style','popupmenu',... %在第一个界面的上方创建一个下拉菜单'unit','normalized','position',[0.15,0.9,0.2,0.08],... %位置 'string',Na,'fontsize',12,'callback',[]); %弹出菜单上的字符为数组Na,字体大小为12, set(po1,'callback',['KK=get(po1,''Value'');if KK>1;',... 'st=char(Ns(KK-1));[U,T]=gensig(st,R*C,tff,1/f);',... 'axes(a1);plot(T,U);ylim([min(U)-0.5,max(U)+0.5]);',... 'end;']); %pol触发事件:KK获取激发位置,st为当前触发位置的字符串,即所选择的波形类型; %[U,T],gensing,产生信号,类型为st的值,周期为R*C,持续时间为tff, %采样周期为1/f,U为所产生的信号,T为时间; %创建坐标轴al;以T为x轴,U为y轴画波形,y轴范围。。。 Ma=['电路类型[请选择]|电路类型:积分型|电路类型:微分型']; %窗口2电路类型的选择数组; a2=axes('position',[0.5,0.6,0.3,0.3]);box on; %创建坐标轴2; set(gca,'xtick',[]);set(gca,'ytick',[]); %去掉坐标轴的刻度 po2=uicontrol(gcf,'style','popupmenu',... %在第二个窗口的位置创建一个下拉菜单,同1 'unit','normalized','position',[0.55,0.9,0.2,0.08],... 'string',Ma,'fontsize',12,'callback',[]); set(po2,'callback',['KQ=get(po2,''Value'');axes(a2);',... %po2属性设置,KQ为选择的电路类型,'if KQ==1;cla;elseif KQ==2;',... %1则清除坐标轴,2画积分电路,3画微分电路 'plot(0.14+0.8i+0.02*exp(i*[0:.02:8]),''k'');hold on;',... 'plot(0.14+0.2i+0.02*exp(i*[0:.02:8]),''k'');',... 'plot(0.84+0.2i+0.02*exp(i*[0:.02:8]),''k'');',... 'plot(0.84+0.8i+0.02*exp(i*[0:.02:8]),''k'');',... 'plot([0.16,0.82],[0.2,0.2],''k'');',... 'plot([0.16,0.3],[0.8,0.8],''k'');',... 'plot([3,4,4,3,3]/10,[76,76,84,84,76]/100,''k'');',... 'plot([0.4,0.82],[0.8,0.8],''k'');',... 'plot([0.6,0.6],[0.8,0.53],''k'');',... 'plot([0.6,0.6],[0.2,0.48],''k'');',... 'plot([0.55,0.65],[0.53,0.53],''k'');',... 'plot([0.55,0.65],[0.48,0.48],''k'');',... 'text(0.33,0.7,''R'');',...

内点法matlab仿真doc资料

编程方式实现: 1.惩罚函数 function f=fun(x,r) f=x(1,1)^2+x(2,1)^2-r*log(x(1,1)-1); 2.步长的函数 function f=fh(x0,h,s,r) %h为步长 %s为方向 %r为惩罚因子 x1=x0+h*s; f=fun(x1,r); 3. 步长寻优函数 function h=fsearchh(x0,r,s) %利用进退法确定高低高区间,利用黄金分割法进行求解h1=0;%步长的初始点 st=0.001; %步长的步长 h2=h1+st; f1=fh(x0,h1,s,r); f2=fh(x0,h2,s,r); if f1>f2 h3=h2+st; f3=fh(x0,h3,s,r); while f2>f3 h1=h2; h2=h3; h3=h3+st; f2=f3; f3=fh(x0,h3,s,r); end else st=-st; v=h1; h1=h2; h2=v; v=f1; f1=f2; f2=v; h3=h2+st; f3=fh(x0,h3,s,r); while f2>f3 h1=h2; h2=h3; h3=h3+st; f2=f3;

f3=fh(x0,h3,s,r); end end %得到高低高的区间 a=min(h1,h3); b=max(h1,h3); %利用黄金分割点法进行求解 h1=1+0.382*(b-a); h2=1+0.618*(b-a); f1=fh(x0,h1,s,r); f2=fh(x0,h2,s,r); while abs(a-b)>0.0001 if f1>f2 a=h1; h1=h2; f1=f2; h2=a+0.618*(b-a); f2=fh(x0,h2,s,r); else b=h2; h2=h1; f2=f1; h1=a+0.382*(b-a); f1=fh(x0,h1,s,r); end end h=0.5*(a+b); 4. 迭代点的寻优函数 function f=fsearchx(x0,r,epson) x00=x0; m=length(x0); s=zeros(m,1); for i=1:m s(i)=1; h=fsearchh(x0,r,s); x1=x0+h*s; s(i)=0; x0=x1; end while norm(x1-x00)>epson x00=x1; for i=1:m s(i)=1; h=fsearchh(x0,r,s);

PID控制算法的matlab仿真

PID 控制算法的matlab 仿真 PID 控制算法就是实际工业控制中应用最为广泛的控制算法,它具有控制器设计简单,控制效果好等优点。PID 控制器参数的设置就是否合适对其控制效果具有很大的影响,在本课程设计中一具有较大惯性时间常数与纯滞后的一阶惯性环节作为被控对象的模型对PID 控制算法进行研究。被控对象的传递函数如下: ()1d s f Ke G s T s τ-= + 其中各参数分别为30,630,60f d K T τ===。MATLAB 仿真框图如图1所示。 图1 2 具体内容及实现功能 2、1 PID 参数整定 PID 控制器的控制参数对其控制效果起着决定性的作用,合理设置控制参数就是取得较好的控制效果的先决条件。常用的PID 参数整定方法有理论整定法与实验整定法两类,其中常用的实验整定法由扩充临界比例度法、试凑法等。在此处选用扩充临界比例度法对PID 进行整定,其过程如下: 1) 选择采样周期 由于被控对象中含有纯滞后,且其滞后时间常数为 60d τ=,故可选择采样周期1s T =。 2) 令积分时间常数i T =∞,微分时间常数0d T =,从小到大调节比例系数K , 使得系统发生等幅震荡,记下此时的比例系数k K 与振荡周期k T 。 3) 选择控制度为 1.05Q =,按下面公式计算各参数:

0.630.490.140.014p k i k d k s k K K T T T T T T ==== 通过仿真可得在1s T =时,0.567,233k k K T ==,故可得: 0.357,114.17,32.62, 3.262p i d s K T T T ==== 0.0053.57 p s i i p d d s K T K T K T K T === = 按此组控制参数得到的系统阶跃响应曲线如图2所示。 01002003004005006007008009001000 0.20.40.60.811.21.41.6 1.8 图2 由响应曲线可知,此时系统虽然稳定,但就是暂态性能较差,超调量过大,且响应曲线不平滑。根据以下原则对控制器参数进行调整以改善系统的暂态过程: 1) 通过减小采样周期,使响应曲线平滑。 2) 减小采样周期后,通过增大积分时间常数来保证系统稳定。 3) 减小比例系数与微分时间常数,以减小系统的超调。 改变控制器参数后得到系统的阶跃响应曲线如图3所示,系统的暂态性能得到明显改善、

实验一 典型环节的MATLAB仿真汇总

实验一 典型环节的MATLAB 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK 的使用 MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真 环境下。 2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。 3.在simulink 仿真环境下,创建所需要的系统 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G 实验处理:1)(1=s G SIMULINK 仿真模型

波形图为: 实验处理:2)(1=s G SIMULINK 仿真模型 波形图为: 实验结果分析:增加比例函数环节以后,系统的输出型号将输入信号成倍数放大. ② 惯性环节11)(1+= s s G 和15.01)(2+=s s G 实验处理:1 1 )(1+=s s G SIMULINK 仿真模型

波形图为: 实验处理:1 5.01 )(2+= s s G SIMULINK 仿真模型 波形图为: 实验结果分析:当1 1 )(1+= s s G 时,系统达到稳定需要时间接近5s,当

LMMSE算法信道均衡MATLAB仿真

一.信道均衡的概念 实际的基带传输系统不可能完全满足无码间串扰传输条件,因而码间串扰是不可避免的。当串扰严重时,必须对系统的传输函数 进行校正,使其达到或接近无码间串扰要求的特性。理论和实践表明,在基带系统中插入一种可调滤波器就可以补偿整个系统的幅频,和相频特性从而减小码间串扰的影响这个对系统校正的过程称为均衡,实现均衡的滤波器称为均衡器。 均衡分为频域均衡和时域均衡。频域均衡是从频率响应考虑,使包括均衡器在内的整个系统的总传输函数满足无失真传输条件。而时域均衡,则是直接从时间响应考虑,使包括均衡器在内的整个系统的冲激响应满足无码间串扰条件。 频域均衡在信道特性不变,且传输低速率数据时是适用的,而时域均衡可以根据信道特性的变化进行调整,能够有效地减小码间串扰,故在高速数据传输中得以广泛应用。 时域均衡的实现方法有多种,但从实现的原理上看,大致可分为预置式自动均衡和自适应式自动均衡。预置式均衡是在实际传数之前先传输预先规定的测试脉冲(如重复频率很低的周期性的单脉冲波形),然后按“迫零调整原理”自动或手动调整抽头增益;自适应式均衡是在传数过程中连续测出距最佳调整值的误差电压,并据此电压去调整各抽头增益。一般地,自适应均衡不仅可以使调整精度提高,而且当信道特性随时间变化时又能有一定的自适应性,因此很受重视。这种均衡器过去实现起来比较复杂,但随着大规模、超大规模集成电路和微处理机的应用,其发展十分迅速。 二.信道均衡的应用 1.考虑如图所示的基带等效数据传输系统,发送信号k x 经过ISI 失真信道传输,叠加高斯加性噪声。 图1基带等效数据传输模型 设发送信号采用QPSK 调制,即(1)k x j =±±ISI 信道的冲击响应以向量的形式表示为h 2211[,,,]T L L L h h h --+=???。典型的ISI 信道响应向量有三种: h [0.04,0.05,0.07,0.21,0.5,0.72,0.36,0,0.21,0.03,0.07]T A =--- h [0.407,0.815,0.407]T B = h [0.227,0.46,0.6888,0.46,0.227]T C = k ω为实部与虚部独立的复高斯白噪声,其均值为零,方差为2 ωσ。 2.实现目的

基于MATLAB的电力系统仿真

《电力系统设计》报告 题目: 基于MATLAB的电力系统仿学院:电子信息与电气工程学院 班级: 13级电气 1 班 姓名:田震 学号: 20131090124 日期:2015年12月6日

基于MATLAB的电力系统仿真 摘要:目前,随着科学技术的发展和电能需求量的日益增长,电力系统规模越来越庞大,超高压远距离输电、大容量发电机组、各种新型控制装置得到了广泛的应用,这对于合理利用能源,充分挖掘现有的输电潜力和保护环境都有重要意义。另一方面,随着国民经济的高速发展,以城市为中心的区域性用电增长越来越快,大电网负荷中心的用电容量越来越大,长距离重负荷输电的情况日益普遍,电力系统在人们的生活和工作中担任重要角色,电力系统的稳定运行直接影响着人们的日常生活。从技术和安全上考虑直接进行电力试验可能性很小,因此迫切要求运用电力仿真来解决这些问题。 电力系统仿真是将电力系统的模型化、数学化来模拟实际的电力系统的运行,可以帮助人们通过计算机手段分析实际电力系统的各种运行情况,从而有效的了解电力系统概况。本文根据电力系统的特点,利用MATLAB的动态仿真软件Simulink搭建了无穷大电源的系统仿真模型,得到了在该系统主供电线路电源端发生三相短路接地故障并由故障器自动跳闸隔离故障的仿真结果,并分析了这一暂态过程。通过仿真结果说明MATLAB电力系统工具箱是分析电力系统的有效工具。 关键词:电力系统;三相短路;故障分析;MATLAB仿真

目录 一.前言 (4) 二.无穷大功率电源供电系统仿真模型构建 (5) 1.总电路图的设计 (5) 2.各个元件的参数设定 (6) 2.1供电模块的参数设定 (6) 2.2变压器模块的参数设置 (6) 2.3输电线路模块的参数设置 (7) 2.4三相电压电流测量模块 (8) 2.5三相线路故障模块参数设置 (8) 2.6三相并联RLC负荷模块参数设置 (9) 3.仿真结果 (9)

神经网络学习算法matlab仿真

东南大学自动化学院 智能控制概论 神经网络学习算法研究 学院: 姓名: 学号: 日期:

目录 1 任务要求叙述 ..................................................... 错误!未定义书签。 2 系统分析及设计原理 ......................................... 错误!未定义书签。 3 设计实现.............................................................. 错误!未定义书签。4仿真验证.. (6) 5 讨论与分析.......................................................... 错误!未定义书签。

一.任务要求叙述 (1)任务 (a) 运行算法,观察和分析现有学习算法的性能; clear all;close all; nu=20;pi=3.1415926; for i=1:nu p(i)=2*pi*i/nu; t(i)=0.5*(1+cos(p(i))); end minmax=[min(p(:)) max(p(:))] net = newff([ 0 7],[6 1],{'logsig' 'purelin'},'traingd');% traingd traingdm trainlm net.trainParam.epochs = 10000; net.trainParam.goal = 0.0001; net.trainParam.show=200; net.trainParam.lr=0.1; net.trainParam.mc=0.6; %0.9 default value; available for momentum net = train(net,p,t); y1 = sim(net,p); figure(2); plot(p,t,'*-',p,y1,'r--') %************** test data ****************** nu2=nu*3/2; for i=1:(nu2) p2(i)=2*pi*i/(nu2); t2(i)=0.5*(1+cos(p2(i))); end y2 = sim(net,p2); figure(3); plot(t2,'*-');hold on; plot(y2,'r'); xlabel('times');ylabel('outputs'); figure(4); plot(t2-y2); xlabel('times');ylabel('error'); (b) 为了进一步提高学习逼近效果,可以采取那些措施,调节规律如何?根据所提的每种措施,修改算法程序,给出仿真效果验证、过程以及相应的曲线图,给出适当的评述;(c) 联系、结合前向神经网络的算法样本学习、测试等过程,谈谈本人对神经网络系统的一些认识和看法。 (2)要求 提交完整的报告,包括:封面(题目、个人学号姓名等信息)、目录、任务要求叙述、系

时域有限差分法对平面TE波的MATLAB仿真

时域有限差分法对平面TE波的 MATLAB仿真 摘要 时域有限差分法是由有限差分法发展出来的数值计算方法。自1966年Yee 在其论文中首次提出时域有限差分以来,时域有限差分法在电磁研究领域得到了广泛的应用。主要有分析辐射条线、微波器件和导行波结构的研究、散射和雷达截面计算、分析周期结构、电子封装和电磁兼容的分析、核电磁脉冲的传播和散射以及在地面的反射及对电缆传输线的干扰、微光学元器件中光的传播和衍射特性等等。 由于电磁场是以场的形态存在的物质,具有独特的研究方法,采取重叠的研究方法是其重要的特点,即只有理论分析、测量、计算机模拟的结果相互佐证,才可以认为是获得了正确可信的结论。时域有限差分法就是实现直接对电磁工程问题进行计算机模拟的基本方法。在近年的研究电磁问题中,许多学者对时域脉冲源的传播和响应进行了大量的研究,主要是描述物体在瞬态电磁源作用下的理论。另外,对于物体的电特性,理论上具有几乎所有的频率成分,但实际上,只有有限的频带内的频率成分在区主要作用。 文中主要谈到了关于高斯制下完全匹配层的差分公式的问题,通过MATLAB 程序对TE波进行了仿真,模拟了高斯制下完全匹配层中磁场分量瞬态分布。得到了相应的磁场幅值效果图。 关键词:时域有限差分完全匹配层MATLAB 磁场幅值效果图

目录 摘要 (1) 目录 (3) 第一章绪论 (4) 1.1 课题背景与意义 (4) 1.2 时域有限差分法的发展与应用 (4) 2.1 Maxwell方程和Yee氏算法 (7) 2.2 FDTD的基本差分方程 (9) 2.3 时域有限差分法相关技术 (11) 2.3.1 数值稳定性问题 (11) 2.3.2 数值色散 (12) 2.3.3 离散网格的确定 (13) 2.4 吸收边界条件 (13) 2.4.1 一阶和二阶近似吸收边界条件 (14) 2.4.2 二维棱边及角顶点的处理 (17) 2.4.3 完全匹配层 (19) 2.5 FDTD计算所需时间步的估计 (23) 第三章MATLAB的仿真的程序及模拟 (25) 3.1 MATLAB程序及相应说明 (25) 3.2 出图及结果 (28) 3.2.1程序部分 (28) 3.2.2 所出的效果图 (29) 第四章结论 (31) 参考文献 (32)

PID控制算法的matlab仿真.doc

PID 控制算法的 matlab 仿真 PID 控制算法是实际工业控制中应用最为广泛的控制算法,它具有控制器设 计简单,控制效果好等优点。 PID 控制器参数的设置是否合适对其控制效果具有很 大的影响,在本课程设计中一具有较大惯性时间常数和纯滞后的一阶惯性环节作为 被控对象的模型对 PID 控制算法进行研究。被控对象的传递函数如下: G(s) Ke d s 1 T f s 其中各参数分别为 K 30, T f 630, d 60 。MATLAB仿真框图如图1所示。 -K- Kp z 30 -K- (z-1) 630s+1 Step Ki Zero-Order Transport Transfer Fcn Hold Delay Add (z-1) -K- z Kd 图 1 2具体内容及实现功能 2.1 PID 参数整定 PID 控制器的控制参数对其控制效果起着决定性的作用,合理设置控制参 数是取得较好的控制效果的先决条件。常用的 PID 参数整定方法有理论整定法和实 验整定法两类,其中常用的实验整定法由扩充临界比例度法、试凑法等。在此处选用扩充临界比例度法对 PID 进行整定,其过程如下: 1)选择采样周期由于被控对象中含有纯滞后,且其滞后时间常数为 d60 ,故可选择采样周期 T s 1。 2)令积分时间常数T i,微分时间常数T d0 ,从小到大调节比例系数K , 使得系统发生等幅震荡,记下此时的比例系数K k和振荡周期 T k。 1 Out1 3)选择控制度为Q 1.05 ,按下面公式计算各参数:

K p 0.63K k T i 0.49T k T d 0.14T k T s 0.014T k 通过仿真可得在 T s 1时, K k 0.567, T k 233 ,故可得: K p 0.357, T i 114.17, T d 32.62,T s 3.262 K p T s 0.005 K i T i K p T d 3.57 K d T s 按此组控制参数得到的系统阶跃响应曲线如图 2 所示。 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 01002003004005006007008009001000 图 2 由响应曲线可知,此时系统虽然稳定,但是暂态性能较差,超调量过大,且响应曲线不平滑。根据以下原则对控制器参数进行调整以改善系统的暂态过程: 1)通过减小采样周期,使响应曲线平滑。 2)减小采样周期后,通过增大积分时间常数来保证系统稳定。 3)减小比例系数和微分时间常数,以减小系统的超调。 改变控制器参数后得到系统的阶跃响应曲线如图3 所示,系统的暂态性能得到明显改善 .

matlab电路仿真

Matlab电路仿真软件包-simpowersystems 1.入门 1.1.SymPowerSystem是什么 1.1.1.介绍 在Matlab提供的simulink仿真环境下,与其他建模产品结合在一起,用于对电子、机械系统进行建模。要学会使用SymPowerSystem,应首先学会使用Simulink仿真。1.1.2.设计中的仿真的作用(略) 1.1.3.SymPowerSystem仿真库 你可迅速将SymPowerSystem投入使用。该库包含了许多典型的功率设备模型,例如,变压器、导线、机械、能源电子等。这些仿真模型来源于产品手册,基于工程实际。 SymPowerSystem包含一个主要的库:powerlib。powerlib库显示了所有包含的模块和模块名称。 1.1.4.SymPowerSystem中的非线性模块(略) 1.1.5.仿真时需要的环境: Maltab 和Simulink

1.2.如何使用该指南 1.2.1.对于新用户 将学会如下知识和技能: (1)使用该库创建和仿真电子电路模型 (2)将一个电子电路于simulink模块连接在一起 (3)分析电子电路的稳定状态和频率响应 (4)离散化模型,以便加快仿真速度 (5)使用矢量图仿真方法 (6)构建自定义的非线性仿真模型 1.2.2.对于经验丰富的模块用户(略) 1.2.3.所有用户(略) 1.3.创建和仿真简单的电路 1.3.1.介绍 SymPowerSystem允许你对包含线性或非线性的电子电路进行建模和仿真。在本章节中,您将学习到: (1)浏览SymPowerSystems的powerlib库 (2)如何利用SymPowerSystem创建一个简单的电路 (3)如何将电路与simulink模块互联。 下述电路是即将创建的电路:

MATLAB电路仿真实例

题14.14 图(a)所示电路,已知 V )2cos(15S t u =二端口网络阻抗参数矩阵 Ω?? ????=46j 6j 10Z 求ab 端戴维南等效电路并计算电压o u 。 u -+o u 图题14.14 (一)手动求解: 将网络N 用T 型电路等效,如图(b)所示 S U +-o U 等效阻抗 Ω=-+-?+ -=4.6j615j6j6)15(6j 6j 4i Z 开路电压 V 2j302 15j6j6105j6OC =?∠?+-+=U V 1482 18.3j46.42j3j4j4Z j4OC o ?∠=+?=?+=U U i

所以 )1482cos(18.3o ?+=t u V (二)Matlab 仿真: ⒈分析:本次仿真需输入各阻抗Zl 、Z1、Z2、Z3、Z4以及激励源Us 的参数值,仿真结果需输出开路电压Uoc 、等效阻抗Zi 以及电感两端电压U0的幅值和相位信息,并绘制Uoc ,U0的值随时间变化的波形曲线。其中各元件与原图的对应关系如下图所示: ⒉编辑M 文件的源程序如下: clear %清空自定义变量 z1=4-6j;z2=6j;z3=10-6j;z4=5;us=15*exp(j*0);zl=4j;%输入各元件参数 zi=z1+(z2*(z3+z4)/(z2+z3+z4));%等效阻抗zi 的计算表达式uoc=us*z2/(z2+z3+z4);%开路电压uoc 的计算表达式u0=zl/(zi+zl)*uoc;%电感两端电压uo 的计算表达式disp('The magnitude of zi is'); %在屏幕上显示“The magnitude of zi is ”disp(abs(zi)) %显示等效阻抗zi 的模disp('The phase of zi is'); %在屏幕上显示“The phase of zi is ”disp(angle(zi)*180/pi)%显示等效阻抗zi 的辐角 disp('The magnitude of uoc is'); %在屏幕上显示“The magnitude of uoc is ” disp(abs(uoc))%显示开路电压uoc 的模

MATLAB定点仿真方法的学习笔记

定点仿真方法的学习笔记(一) 在用MATLAB工具对算法进行仿真时,数据的流动是以浮点形式进行的,浮点型又分单 单精度浮点型数据用32 bit 来存储数据,其中符号位1 bit,指数位8 bit,尾数位23 bit。双精度浮点型数据则用64 bit 来存储数据,其中符号位1 bit,指数位11 bit,尾数位52 bit。 这样的数据存储方式能够保证一个数的精度。但是在考虑硬件实现的时候(如FPGA,定点DSP),数据的流动是以固定长度的二进制序列进行,因此,为了进一步的反映硬件实现中算法性能,我们需要对数据的类型做重新的定义,使得所表示的数据更符合硬件平台上的处理方式。 做定点仿真实际就是对算法中的每一个数据进行量化,用规定字长的二进制序列表示一个数,使它接近实际值。为了方便对数据类型做定点转换,MATLAB提供了强大的Fixed-Point Toolbox 来帮助我们做这项工作。以下的所用内容只是个人对Fixed-Point Toolbox 学习的总结,如有任何疑问,请查找HELP 中的相关内容,理解上如有错误,恳请斧正。 先介绍几个对象给大家认识,也就是Object,个人认为定点的过程就是让数据在 fi 这个对象下进行工作。 ●fi 对象 当你用 fi 这个函数对一个数据进行定点处理时,你就构造了一个fi 对象(说白了也是一个数,你规定了这个数的数据类型)。你可以对这个对象进行运算。与一个数不同的是这个对象有很多的属性,在这里先把它们中常用的列出来,并对它们做一些简要说明,后面会用实例告诉大家怎么去理解这些属性。 ?Data 属性 该属性可以让你了解一个fi对象在不同的数据形式下的具体值,如二进制(bin),八进制(oct),十进制(dec),十六进制(hex),双精度(double)等等。 ?fimath 属性 该属性规定了fi 对象在进行数据运算时,处理数据的习惯(数学运算,截位方式,溢出方式)。它是一个比较抽象意义上的属性,你可以用另一个对象对它进行定义。当你要定义fi对象的fimath属性时,你需要先定义一个fimath的对象,再用fimath 对象定义fi对象的fimath属性。将在fimath对象中介绍。 ?numerictype 属性 该属性包含了fi对象的所有数据类型信息。它是一个比较抽象意义上的属性,你可以用另一个对象对它进行定义。当你要定义fi对象的numerictype属性时,你需要先定义一个numerictype对象,再用numerictype对象定义fi对象的fimath属性。将在numerictype对象中介绍。 ●fimath 对象 该对象的常用属性如下: ?CastBeforeSum 属性 在两个操作数进行加法之前,是否将操作数影射成“和”的数据类型。“0”表示“否”,“1”表示“是”。例如,若两个操作数(对象)是18 bit,定义“和”为12 bit,若该属性为“0”,则两个操作数先进行“加”操作,然后对“和”截位得到12 bit输出,若该属性为“1”,则两个操作数先截位成12 bit,然后再进行“加”操作。

matlab电路仿真

SHANDONG UNIVERSITY OF TECHNOLOGY 数学 软件结业 论文 题目: 电路仿真方法研究 学 院: 电气与电子工程学院 专 业: 电气工程及其自动化 学生姓名: 武奥 学 号: 14110302044 指导教师: 周世祥 2015年11 月

目录 摘要 (Ⅰ) 目录 (Ⅲ) 第一章引言 (1) 1.1课题的背景和意义 (1) 1.2深度学习的前世今生 (2) 第二章自编码器模型构建 (4) 2.1入门 (4) 1.1. 2.2 SymPowerSyste是什么5 2.引言 2.1.1.1 课题的背景和意义 随着计算机技术和互联网的发展,人类开始步入大数据时代,我们需要从海量的数据中找到自己感兴趣或者对自己有用的信息,这就要求计算机能在短时间内检索出满意的结果。伴随着搜索引擎的发展我们在文字检索方面已经取得了值得骄傲的成就,但是在更加直观,更加方便的图片检索方面仍然有待发展。试想一下,如果我们能通过图片检索到自己想要的信息我们的生活将会更加便利,我们只要对着自己感兴趣的东西扫一扫就能获得我们需要的信息。 要实现上述目标就要求计算机能像人的视觉系统一样能识别图片、对图片进行分类处理。然而,每幅图片的信息量就很大,要从海量的图片中进行识别处理数据量可想而知,而且并不是图片中的所有信息都是有用的。 -III-

这就需要我们对图片进行降维处理和特征提取。虽然已有的降维方法在理论支持上很成熟,但是基于线性的方法并不适合图像识别而且实际效果也不尽人意。深度学习算法是2006年提出的一种新的方法,虽然缺乏理论支持但在实际应用中取得良好效果。 深度学习算法在计算机视觉、图像识别方面已经开始普遍使用,相对于以前的方法准确率大大提高。除了在图像识别领域,深度学习在语音识别、自然语言处理等方面也有突破性进展:2012年11月,在中国天津举行的“21世纪的计算机大会”上微软公开演示了一个全自动同声传译系统,微软首席研究员的英文演讲被后台的计算机自动识别、翻译、合成并转换成和演讲者音色相近的中文发音,这背后的关键技术就是深度学习算法。深度学习研究的日益成熟和完美应用一定可以给我们的生活带来极大的便利和智能化。 -IV-

Matlab电气仿真

大连海事大学 题目:电气系统的计算机辅助设计 姓名: 学号: 学院:轮机工程学院 专业班级:电气工程及其自动化(4)班 指导老师:郑忠玖王宁 设计任务(一) 一、实验目的: 1、掌握Matlab/Simulink 电气仿真的基本步骤; 2、掌握Matlab/Simulink中SimPowerSystems 工具箱的基本建模方法; 3、利用Matlab/Simulink 在整流电路方面的仿真设计。 二、实验原理: 220V 50HZ交流电源经变压器降压,输出交流24V 50HZ就是交流电。经单相桥式整流电路加LC滤波电路后,由于电感与电容的作用,输出电压与电流无法突变,使输出电压波形在一定的电压附近形成正弦脉动。

三、实验内容: 1、单相桥式整流 (1)设计要求: a)单相桥式整流加LC滤波电路,电源为220V,50Hz; b)整流电路输入为24V; c)负载为10Ω阻性负载; d)滤波电感L=100mH,滤波电容C=200uF; (2)设计电路图: (3)仿真结果波形图:

time v o l t a g e /c u r r e n t 单项桥式整流加LC 滤波电路VT3输出波形 00.0050.010.0150.020.025 0.030.0350.040.0450.05-35-30 -25 -20 -15-10-5 5 time v o l t a g e /c u r r e n t 单项桥式整流加LC 滤波电路VT4输出 (4) 仿真结果分析: 1. 在变压器输出正弦波的正半周期,二极管VT1与二极管VT4导通, 二极管VT2与二极管VT3被施以反压而截止; 在变压器输出正弦波 time v o l t a g e 单相桥式整流加LC 滤波电路输出波形

实验一--典型环节的MATLAB仿真

实验一 典型环节的M A T L A B 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK 的使用 MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或 在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真环境下。 2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。 3.在simulink 仿真环境下,创建所需要的系统 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G 实验处理:1)(1=s G SIMULINK 仿真模型 波形图为: 实验处理:2)(1=s G SIMULINK 仿真模型 波形图为: 实验结果分析:增加比例函数环节以后,系统的输出型号将输入信号成倍数放大. ② 惯性环节11)(1+= s s G 和1 5.01)(2+=s s G 实验处理:11)(1+=s s G

SIMULINK 仿真模型 波形图为: 实验处理:1 5.01)(2+=s s G SIMULINK 仿真模型 波形图为: 实验结果分析:当11)(1+=s s G 时,系统达到稳定需要时间接近5s,当1 5.01)(2+=s s G 时,行动达到稳定需要时间为2.5s,由此可得,惯性环节可以调节系统达到稳定所需时间,可以通过惯性环节,调节系统达到稳定输出的时间。 ③ 积分环节s s G 1)(1= 实验处理: SIMULINK 仿真模型 实物图为: 实验结果分析:由以上波形可以的出,当系统加入积分环节以后,系统的输出量随时间的变化成正比例增加。 ④ 微分环节s s G =)(1 实验处理: SIMULINK 仿真模型 波形图为: 实验结果分析:微分环节,是将系统的输入对时间的倒数作为输出,当输入为阶跃信号时,加入微分环节后,输入变为0。 ⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G 实验处理:2)(1+=s s G SIMULINK 仿真模型 波形图为:

相关主题