




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SHANDONG数学软件结业论文题目: 电路仿真方法研究学 院: 电气与电子工程学院 专 业: 电气工程及其自动化 学生姓名: 武奥 学 号:指导教师: 周世祥 2015年11月目 录摘 要目 录第一章 引 言11.1 课题的背景和意义11.2 深度学习的前世今生2第二章 自编码器模型构建42.1 入门41.1. 2.2 SymPowerSyste是什么 52. 引 言2.1. 1.1 课题的背景和意义随着计算机技术和互联网的发展,人类开始步入大数据时代,我们需要从海量的数据中找到自己感兴趣或者对自己有用的信息,这就要求计算机能在短时间内检索出满意的结果。伴随着搜索引擎的发展我们在文字检索方面已经取得了值得骄傲的成就,但是在更加直观,更加方便的图片检索方面仍然有待发展。试想一下,如果我们能通过图片检索到自己想要的信息我们的生活将会更加便利,我们只要对着自己感兴趣的东西扫一扫就能获得我们需要的信息。要实现上述目标就要求计算机能像人的视觉系统一样能识别图片、对图片进行分类处理。然而,每幅图片的信息量就很大,要从海量的图片中进行识别处理数据量可想而知,而且并不是图片中的所有信息都是有用的。这就需要我们对图片进行降维处理和特征提取。虽然已有的降维方法在理论支持上很成熟,但是基于线性的方法并不适合图像识别而且实际效果也不尽人意。深度学习算法是2006年提出的一种新的方法,虽然缺乏理论支持但在实际应用中取得良好效果。深度学习算法在计算机视觉、图像识别方面已经开始普遍使用,相对于以前的方法准确率大大提高。除了在图像识别领域,深度学习在语音识别、自然语言处理等方面也有突破性进展:2012年11月,在中国天津举行的“21世纪的计算机大会”上微软公开演示了一个全自动同声传译系统,微软首席研究员的英文演讲被后台的计算机自动识别、翻译、合成并转换成和演讲者音色相近的中文发音,这背后的关键技术就是深度学习算法。深度学习研究的日益成熟和完美应用一定可以给我们的生活带来极大的便利和智能化。Matlab电路仿真软件包-simpowersystems3. 入门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 和Simulink3.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 Voltage Source模块到circuit1中(4) 双击AC Voltage 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):有效功率(有功功率) 电阻消耗的功率Inductive reactive power QL:感性无功功率Capacitive reactive power QC:容性无功功率(9)加一个电压测量模块(Voltage mesure block)到电路中,该模块位于mesurements库中然后将simulink中的scope模块添加到电路中,并将其与电压测量模块互联。3.3.3. 将电子电路与simulink连接起来电压测量模块(Voltage mesure block)是SymPowerSystem模块与simulink模块直接的接口。对于上面的例子,你实现了一种从电路到simulink信号的接口。电压测量模块将电压转换成simulink信号。类似的,电流测量模块(current mesure block)能将电流转换为simulink信号。你也可以将simulink信号连接到电路中,例如,你也可以将受控电压源加入到电路中。如图2所示。图2 3.3.4. 测量电压和电流电压测量模块和电流测量模块有方向规定,标+为正向,规定的方向是从正到负,若电压值或电流值为+,则表示他们的方向与规定方向相同,否则,相反。万用表模块(multimeter)则没有事先规定的方向,它是根据仿真结果仿真后才显示方向的。可以通过如下命令了解方向:get_param(gcb,Orientation)3.3.5. 连接电容和电感的基本原则(1) 理想电压源不能与纯电容并联(2) 理想电流源不能与纯电感串联。违反上述原则,电路将无法仿真。必须修正。方法是在电容旁串联一个小电阻或在纯电感两端并联一个大电阻。3.3.6. 使用powergui模块仿真simpowersystem模型powergui模块对于任何包含simpowersystems模块的simulink模型的仿真是必须的。他用于存储等价的simulink电路,这些电路用来表示simpowersystem模块的状态方程。当您在仿真中使用该模型,应遵循以下原则:l 将powergui模块置于仿真图的顶层用以优化性能。然而,你也可以把它置于任何需要的地方。例如,在一个子系统中。这不会影响系统功能;l 其他(略)3.4. 简单电路分析3.4.1. 介绍本节你将学习:l 使用power_analyze命令获取模型的状态空间描述l 使用powergui的图形用户接口计算电路的稳态电压和电流l 电路的频域分析3.4.2. 电路状态变量电路状态变量是与电路中的电感和电容元件有关的状态变量。许多模块中包含了电感或电容,如并联RLC模块,PI SectionLine模块,等等。电路的状态变量有电路中各电容的两端电压和流经各电感的电流组成。电路状态变量的名称由系统自动产生,其命名规则如下:l 变量名由两部分组成:前导符_后缀。前导符和后缀之间用下划线隔开;l 前导符为Il或Uc(Il表示流经电感的电路,Uc表示电容器两端的电压)l 后缀为模块名称。3.4.3. 使用power_analyze进行状态空间描述你可以使用power_analyze获取一个电路模型的状态空间描述,例如输入下面的命令,可以获取上面创建的简单电路的状态空间描述信息:A,B,C,D,x0,electrical_states,inputs,outputs=power_analyze(circuit1)x=Ax+Buy=Cx+Du要判定电路是否稳定,只要求A的特征值,看看A的特征值的实部是否都小于0,只有满足此条件,电路才是稳定的。3.4.4. 稳态分析使用powergui的图形用户接口命令可以进行电路的稳态分析。菜单命令:Analysis tools-Steady-State Voltages and Currents3.4.5. 频率分析powerlib包含了一个阻抗测量模块(Impedance Measurement),可以用于测量电路中任意两点间的阻抗。接下来,你将使用两种方法,利用该模块测量节点B2点的阻抗:l 基于状态空间模型进行计算l 使用阻抗测量模块和powergui模块进行测量(1) 利用状态空间模型获取阻抗-频率之间的关系注:下面已经假定你的电脑上已经安装了控制系统工具箱要测量B2点的阻抗与频率间的关系,需要在B2处加入另一个电流源,打开前面绘制的仿真模型图,将AC Current Source复制到电路中,最终如图3所示。图3接着,计算该电路的状态空间方程:sys1 = power_analyze(circuit1,ss)该方程描述的是电路的连续状态空间方程。在laplace域,B2点的阻抗定义为:由交流电流源注入的电流与U2测量的电压间的传递函数。利用下面的命令获取状态空间方程中的输入输出变量的名称:sys1.InputNameans = U_Vs I_AC Current Sourcesys1.OutputNameans = U_U2 U_U1节点B2处的阻抗与该状态空间模型的输出2和输入1间的传递函数相关,对于01500Hz频率范围,阻抗可由下式计算并显示出来: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. 介绍在这一节中,你将学习:l 包含有simpowersystems模块的simulink模型图的状态变量有哪些?l 设定状态变量的初始值3.5.2. 状态变量包含有simpowersystems模块的simulink模型图的状态变量由以下组成:l 与simpowersystems中的RLC支路模块类型有关的电路状态。他们在模型的状态空间描述中被定义。l SimPowerSystems的电气simulink模型的simulink状态,例如同步机械模块,饱和变压器模块和三相动态负载模块l 你的模型中的其他模块的simulink状态下图给出了包含上述三种模块的一个实例。3.5.3. 初始状态所谓初始条件,是指仿真前应用在整个系统上的各状态变量的初始值,也称作初始状态。初始状态可以在模块中设定。大多数模块允许用户在设计时指定初始状态。对于电路模型,simpowersystems可自动设置模型的初始状态,并保证开始仿真时直接进入稳态。然而,你可以自行设定电路中的电容和电感的初始状态。使用power_init函数也可以设定初始状态3.5.4. 使用powergui设定电路初始状态第1步:在Matlab命令行中键入power_transient,打开标题为TransientAnalysis of a Linear Circuits的SimPowerSystems实例。重命名其中RLC支路模块第2步:从powergui模块的分析工具菜单下,选择“初始状态设定”选项,5个电路状态变量的初始值已经设定,这些初始设定能使电路一开始仿真,就为稳态。第3步:打开scope模块,并开始仿真。第4步:返回到第2步,试着改变某些变量的初始值,再仿真,看看结果是否发生变化。若不懂,请看在线帮助。3.6. 仿真暂态过程3.6.1. 介绍本节你将学习到:l 怎样创建电路子系统(subsystem)l 使用断路器进行电路的暂态过程仿真l 比较不同传输线模型下的时域仿真结果l 如何离散化电路并将其仿真结果与相应的连续的可变步长算法的仿真结果相比较3.6.2. 使用开关仿真暂态过程simpowersystems的一个重要功能是对电路的暂态过程进行仿真。可以在电路中加入机械开关或使用功率电子开关来完成暂态过程的仿真。首先,打开前面创建的circuit1仿真模型,删除连接到B2节点上的电流源,将新的系统另存为circuit2。在接入开关前,最好修改一下电路,simpowersystems允许用户将多个元器件组合在一起形成一个电路子系统。这一特点能使复杂电路大大简化。使用这一特点,将源阻抗转换到一个子系统中:(1) 框选标识为Rs_eq和Z_eq的两个模块,选择“Edit-create subsystem”菜单命令,这两个模块变成了一个子系统模块(subsystem)(2) 选择“Edit Mask subsystem”菜单命令,改变子系统图标,在封装编辑器中的icon选项中,输入下列命令:disp(EquivalentnCircuit)subsystem上就会显示相应文字。(3) 选择“Format Show drop shadow”菜单命令,给子系统模块设置阴影。(4) 双击子系统模块,可以查看其组成。(5) 插入电路断路器(a circuit braker)断路器是理想开关与一个小电阻串联组成的模型。关于断路器的模型说明,请参考matlab相关帮助。按如下设置断路器的参数:(1) 打开braker模块对话框,将其参数作如下设置:Ron 0.001 Initial state 0 (open)Rs infCs 0Switching 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。启动仿真。注:一旦系统被离散化,电路系统再无连续状态了。因此,如果你不需要变步长积分方法进行仿真,在“Simulation Simulation parameters Solver”对话框中,可选择Fixed-step 和 discrete选项,并设定固定步长为25us(no continuous states)为测量仿真时间,可运行下面的命令重新仿真: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. 介绍本节你将学会:l 将矢量仿真方法用于简单的线性电路中l 了解该方法的优点和局限性到目前为止,你已经学会了两种仿真电路的方法:l 使用连续simulink求解器及变步长进行仿真l 用离散化方法及固定步长进行仿真本节介绍的是第三种方法-矢量求解法进行仿真3.7.2. 何时使用矢量求解法矢量求解法主要用于研究功率系统的电子机械振荡,这类系统一般由大型的发电机和电动机组成。例如,可以使用这种方法对三相系统和机械类的多机械系统进行仿真。然而,该不方法不仅仅局限在机械的暂态稳定性研究领域,完全可以拓展应用到任何线性系统上。在一个线性电路中,如果你所感兴趣的仅仅是当开关处于关或开的状态下所有电压和电流的幅值和相位,那么,就没有必要求解由电阻、电容和电感交互作用而带来的差分方程(也即状态空间模型)。你仅仅需要求解相对而言简单得多的与电压和电流相位有关的代数方程组,这正是矢量求解法所要解决的问题。顾名思义,该方法以矢量描述电压和电流。矢量是一个复数,可以用来表示特定频率下的正弦电压和电流。矢量既可以用笛卡尔坐标(Cartesian coordinates)表示(复数的实部与虚部),也可以用极坐标(polar coordinates)表示。在忽略电路状态的情况下,矢量求解法无需特定的求解器用于求解系统的电路部分。因此仿真速度要快得多。但应始终记住,这种快速求解技术只能给出某个特定频率下的结果。3.7.3. 电路暂态过程的矢量仿真下面你将会把矢量求解法应用到一个简单的线性电路上。打开powerlib的演示实例库,打开通用演示库(General Demos library),选择名称为“暂态分析”的示例,一个名为power_transient的系统打开了,如下图所示:可以通过各模块参数设置对话框,看看各模块设置的参数。(1)激活powergui中的矢量求解法现在,你将使用矢量求解法仿真同样的电路。这种选项可以通过打开powergui来设定,具体设置请参考在线帮助。设定该选项后,continues变为phasors,在启动仿真前,还需指定输出到示波器上的信号的格式。(2) 选择矢量信号测量的格式双击“Voltage Measurement”模块或“Current Measurement”模块,可以看到有一个菜单,通过该菜单可设置矢量信号的四种输出格式:complex(复数,默认),real-imag(实部-虚部),magnitude-angle(幅度-角度),magnitude(幅度)。当你要处理的信号为复数信号时,由于示波器(scope)只能观察信号幅度,因此,这里选择“magnitude”。重新启动仿真,60Hz的电压和电流的幅度显示在示波器(scope)上。从连续仿真和矢量仿真得到的波形上,可以看出他们的波形是有区别的。但他们反映了统一规律。注意到:连续仿真情况下,电路波形状态改变出现在断路器打开时电流的下一个0点位置。而对于矢量仿真,电路波形状态改变与断路器开关时刻是同步的。(3) 处理电压和电流矢量“complex”格式允许运用复数运算和矢量处理,无需将实部和虚部分离。例如,假设你要计算负载的功耗(有功功率P和无功功率Q),而复数功率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),额定电压和电流被选为每单位的基准值。流经电感的电流是磁通量的非线性函数,依次,磁通量是电感两端电压的非线性函数,该关系可用下列方程描述: 或 因此,该电感的非线性模型可以用一个受控电流源来描述,电流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 sourcel Peak amplitude 120*sqrt(2)l Phase 90 degreesl Frequency 60 HzDC sourcel Amplitude0 V调整仿真时间为1.5s,选择ode33tb积分算法作为默认参数,并开始仿真。仿真结果与计算一致。4.4.3. 定制自己的非线性模型simulink提供了一种面板(mask)工具,来为你自定的模型创建对话框,你可以一个指定下列几个提示和变量:Nominal voltage (Volts rms):VnomNominal frequency (Hz):FnomUnsaturated inductance (H):LSaturation characteristic i1(pu) phi1(pu); i2 phi2; .:sat最终的结果如下图所示:下列代码在模板初始化时准备了两个向量,Current_vect 和 Flux_vect,以用于look_up table模块。% Define base current and Flux for pu systemI_base = Vnom*sqrt(2)/(L*2*pi*fnom);Phi_base = Vnom*sqrt(2)/(2*pi*fnom); % Check first two points of the saturation characteristicif 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 characteristicnpoints,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_vectVector of output values (current) Current_vect关闭对话框,重新开始仿真,可得到同样的系统。4.4.4. 非线性电阻的建模非线性电阻的建模与非线性电感的建模类似。一个典型的例子是金属氧化物电阻器具有下列伏安特征:这里 v, i =瞬时电压和电流Vo =保护电压Io =参考电流 =非线性特征指数 (典型值在10-50之间)下图显示了非线性电阻的应用。上面的方程是一个代数方程,其在状态空间中是一个代数循环,尽管simulink也能完成循环运算,但是会减低仿真速度,为此,通常在不改变原始非线性特征的前提下在中间加入一个一阶传递函数环节1/(1+Ts),通常取T为较小的值,如(T=0.01us)。使用工具封装该非线性电阻模块的参数。4.4.5. 创建自己的库simpowersystems允许用户创建自己的模块库,要创建自己的模块库,选择“file new library”,一个新的simulink:Untitled的窗口打开了。将你创建的非线性电感模块和非线性电阻模块拷贝到该窗口中,保持该库就可用了。4.4.6. 将你的模型与别的非线性模型连接起来应当考虑电流源不能与电流源串联,电流源不能与纯电感串联,若遇到此种情况,可用考虑在电流源旁边并联一个极大的电阻。4.4.7. 使用模型构建命令创建模型通常,不建议这样做,有兴趣的,可以参考Matlab相关帮助,下面给出一个例子:add_block(powerlib/Elements/Pi Section Line,Mymodel/Block1);add_block(powerlib/Measurements/Voltage Measurement, Mymodel/Block2);set_param(Mymodel/Block1,position,340,84,420,106);set_param(Mymodel/Block2,position,520,183,545,207);Block1PortHandles = get_param(Mymodel/Block1,PortHandles);Block2PortHandles = get_param(Mymodel/Block2,PortHandles);add_line(Mymodel,Block1PortHandles.LConn(1), Block2PortHandles.LConn(1);add_line(Mymodel,Block1PortHandles.RConn(1), Block2PortHandles.LConn(2);writeDocFeedbackSurveyLink();5. 附录5.1. 常用模块5.1.1. 阻抗测量模块(impedance mesurement block)(1) 描述阻抗测量模块用于测量线性电路中的两个节点间的阻抗,两节点间阻抗是频率的函数。将其输入分别接到电路上的两个节点,便可以使用powergui的分析工具计算两节点间的阻抗了。该模块不改变电路的特性。5.1.2. 断路器(breaker)(1) 描述断路器实现了一种可以通过外部或内部控制电路开、关时刻的电路。该模型包含了一个串联RC缓冲器电路,可以把它连接到电路断路器上。如果断路器刚好与感性电路、开路电路或电流源串联,就必须使RC缓冲器电路连到其中。当断路器被设为外部控制模式(external control mode),一个simulink输入就会出现在断路器的图标上,控制信号必须为0或1(0表示开关断开,1表示开关闭合)。当断路器设为内部控制模式(internal control mode),开关时刻由其参数设置对话框设定。当断路器处于闭合状态,其等效于一个电阻Ron。Ron可以被设为很小的值(典型值为10m欧),从而与外电阻比较而言可以忽略。当断路器处于断开状态,其等效于一个无穷大的电阻。灭弧过程是通过在控制信号由1变为0后的第一个电流为0的时刻断开断路器来模拟的。条件如下表所示。操作条件断路器闭合控制信号变为1(对离散系统,控制信号保持为1的时间应至少为采样周期的3倍)断路器断开控制信号变为0流过断路器的电流为0注:断路器模块对直流电路可能不合适。对于直流电路,推荐使用理想开关作为开关元器件。(2) 对话框和参数Breaker resistance Ron(断路器电阻Ron)该参数不能设为0Initial state(初始状态)断路器的初始状态,设为1表示闭合,设为0表示断开。当设为1时,SimPowerSystems自动初始化电路的所有状态和断路器电流,以确保仿真开始时电路就进入稳态。Snubber resistance Rs(缓冲器电阻Rs)单位,欧姆,若将此值设为inf(无穷大),则相当于电路中不包含缓冲器。Snubber capacitance Cs(缓冲器电容Cs)单位:法拉,若将此值设为0,则相当于不包含缓冲器,设为inf则为一个纯阻性缓冲器Switching times(开关切换时刻)这是一个向量,用于指定开关切换状态的时刻,各时刻的开关状态取决于初始开关状态。例如,若初始状态为闭合,则向量的第1个元素对应的时刻断路器将断开,第2个元素对应的时刻断路器将闭合,等等。若选中“External control of switching times”选项,则开关时刻由外部控制,此处没必要设置。External control of switching times(外部控制开关时刻)若选中了此选项,请加入一个外部simulink输入,来控制断路器的开关。开关时刻由连接到此断路器上的外部逻辑输入信号定义(0或1)mesurements(测量)选定“branch voltage”用于测量断路器上的压降;选定“branch current”用于测量流经断路器的电流;选定“Branch voltage and current”用于测量压降和电流将Multimeter模块加入电路,便可以显示上面选定的参数。(3) 使用注意事项当该模块与电感或电流源串联时,必须在其中加入缓冲器电路。在大多数情况下,可使用纯电感缓冲器(此时将“Snubber capacitance Cs”设为inf),而缓冲器电阻设为高阻值的电阻(1e6等)。由于模型限制,开关电阻不能设为0。必须使用刚性积分算法仿真这种带有断路器的电路。ode23t且以默认参数通常可以得到较高的仿真速度。对于离散化的模型,控制信号保持为1的时间应至少为采样周期的3倍,否则,电路相当于开路。(4) 应用举例5.1.3. 二极管(Diode)5.1.4. 被控电流源(controled current source)被控电流源模块将simulink输入转换为等效的电流源,产生的电流受模块的输入信号控制。正向电流方向与该模块中的箭头方向一致。可用指定的交流和直流初始化被控电流源,若想在稳态下仿真,模块的输入必须连接到与初始值相应的正弦或直流信号上。注:在矢量仿真中,连接到该模块的输入必须为复数值,此时需要手工设置。(1) 对话框与参数Initialize若选定该选项,则将用指定的Initial current, Initial phase, 和Initial frequency parameters初始化该模块。Source type设置电流源类型是直流电流源还是交流电流源Initial current初始峰值电流(A)Initial phase初始相位(度数),对直流电源来说,不存在初始相位。Initial frequency初始频率mesurements选定电流选项使得可用mutimeter测其电流5.1.5. if模块if模块,连同包含action port模块的action子系统,用于实现标准的类似于C语言的if-else逻辑。下图显示了一个完整的if-else控制流:5.1.6. Merge模块5.2. 创建模块封装(block mask)5.2.1. 关于封装(mask)(1)何谓封装封装是一种定制的用户接口,利用该接口,模块用户可以对模块的内部参数进行设置。(2)封装特点封装包含如下特征:l 封装图标(icon)l 封装参数simulink允许为一个封装的模块定义一组可调的参数,并将这些参数存储在封装工作空间中(mask workspace)。l 封装参数对话框simulink允许封装参数设置对话框以取代默认的标准子系统对话框。l 封装初始化代码l 封装工作空间5.2.2. 一个封装子系统的例子(1) 介绍要封装的模型用如下表达式表示:y=mx+b如图所示通常情况下,当你双击一个子系统,就会出现一个新窗口,显示该子系统的内部组成。本例将自定义一个封装对话框和封装图标,如下图所示:(2) 创建封装对话框提示l 选定要封装的subsystem模块,Editmask subsystem,按下图所示输入:不懂,请看在线帮助。若系统不支持中文字符提示,请在命令行中运行下列命令:set_param(circuit4, SavedCharacterEncoding, windows-1252)(3) 创建封装描述和帮助文本(4) 创建block图标可使用绘图命令改变子系统上的默认图标。5.2.3. 封装一个模块(1) 关于模块封装可以利用模型编辑器(model editor)封装子系统,模型,S函数模块,以及利用set_param命令封装内建模块 simulink不支持封装端口模块(port block),如Inport,Outport,Trigger等确保封装的参数名称与已知模块参数名称不同。(2) 封装一个子系统3.2.2节已经做了介绍。此处略。(3) 封装内置模块通过直接封装内置模块而不是将他们放到一个子系统中,可以减小你的模型的大小。要封装一个内置模块:l 选择模型中的模块l 键入下列Matlab命令:set_param(gcb,Mask,on)l 在模块的快捷菜单中选择“Edit Mask”命令,就可用它编辑该模块的封装了。5.2.4. 封装编辑器(mask editor)(1) 创建子模块(略)(2) icon面板(略)(3) 参数面板(略)(4) 控件类型(control types)通过下图所示对话框进行设置:(5) 初始化面板(initi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链金融合同中担保资产范围及买卖双方风险分担
- 电力系统检修安全操作协议
- 高层管理人员内部股份转让及股权激励协议
- 2023年辅警招聘报名表
- 大学法学专业试题及答案
- 造价专业面试题目及答案
- 全球化与科技融合的新模式研究-洞察及研究
- 网媒专业考试题及答案
- 检验专业英语试题及答案
- 吊篮租赁公司半年工作总结
- 培训学校前台工作
- 2025年建筑工程类注册安全工程师安全生产专业实务(金属非金属矿山安全)-安全生产专业实务(金属非金属矿山安全)参考题库含答案解析(5卷)
- 2025年全国高考(新课标)政治真题卷含答案解析
- 2025年度情侣分手预防协议书下载中心
- 2025年高考数学试题分类汇编:立体几何试卷+解析
- 室内X射线探伤机应用项目环境影响报告表
- 新闻发布知识培训课件
- GB/T 18277-2025收费公路收费制式和收费方式
- 高一语文学法指导(绝对经典)
- 包装车间基础知识培训课件
- 2025年贵州建筑中级试题及答案
评论
0/150
提交评论