Simulink电路仿真Simulink是MATLAB的一个重要的工具箱,是结合了框图界面和交互仿真能力的系统级设计和仿真工具。它以MATLAB核心数学,图形和语言为基础,可以让用户完成从算法开发,仿真或者模型验证的全过程,而不需要传递数据,重写代码或改变软件环境。在start进入Simulink菜单,选择SimulinkLibraryBrowser,打开Simulink库函数,选择FileNew打开编辑窗口。在MATLAB的Command窗口直接键入Simulink即可打开Simulink工作窗口。Simulink作为面向框图的仿真软件,具有以下的功能和优点:(1)用方框图的绘制代替了程序的编写。构成任何一个系统框图有三个步骤,即选定典型环节,相互联结和给定环节参数。(2)仿真的建立和运行是智能化的。首先,画好了框图并存起来,Simulink自动建立一个仿真的过程;其次,在运行时用户可以不给步长,只给出要求的仿真精度,软件会自动选择能保证给定精度的最大步长,使得在给定的精度要求下系统仿真具有最快的速度。(3)输入输出信号来源形式的多样化。其输入信号可以是各种信号发生器;也可以来自一个设定的记录文件;还可以来自MATLAB的工作空间(workspace).输出信号也类似,这就扩大了仿真系统与各种外部软件和硬件的接口能力。Simulink工具箱中含有大量的仿真模块集,例如PowerSystemBlockset(PSB),DSPBlockset,CommunicationBlockset,CDMAReferenceBlockset,NonlinearControlDesignBlockset等专门领域应用的仿真模块。研究MATLAB在电路仿真中的应用,主要用到的是Simulink节点下的CommonlyusedBlocks,Sinks,Sources等模块以及在电路仿真中最长用的PowerSystemBlockset(DSP)模块。求i3,U4,U7;1.Simulink常用模块介绍要熟练地使用Simulink进行仿真,首先要求能够熟练使用Simlink常用模块。在模块浏览器中的Simulink节点下包含了搭建一个Simulink模块所需要的基本模块。本节主要对其中的Sources模块库、Sinks模块库、MathOperations库和Continuous模块库中的常用模块进行介绍。Sources模块阶跃函数,起始时间是第1秒而非0秒。双击step模块,对仿真起始时间(steptime)和阶跃值(Initialvalue,Finalvalue)的大小进行设置。信号发生器,可以产生给定频率和幅值的正弦波(sinewave)、方波(squarewave)和锯齿波(sawtoothwave),双击图标可以设置。定时器,显示仿真时间,在系统仿真时打开定时器,可以看到实时的仿真时间。正弦波,电路中常用到的正弦信号(SineWave)模块,双击图标,在弹出的窗口中调整相关参数。信号生成方式有两种:Timebased和Samplebased。如果以Timebased方式运行该模块,则需要用户设定波形的幅度(Amplitude)、偏移(Bias)、频率(Frequency)、初相(Phase)几个参数;如果选择Samplebased方式,参数设置则为幅度(Amplitude)、偏移(Bias)、每周期采样数(Sampiesperperiod)和偏移采样数(Numberofoffsetsamples).两种工作方式中的各项参数都可以用关系式加以换算:每周期采样数=2*pi/(频率*采样时间)频移采样数=初相*每周期采样数/(2*pi)设置采样时间Sampletime,将此参数设置为零时表示以连续的方式工作,将此参数设置为大于零的值时则以所设采样时间工作。但要注意的是采用Samplebased模式的模块式不能以连续的方式工作的。从工作空间输入。从MATLABWorkspace输入已有的函数作为仿真的激励信号。首先要在MATLAB环境下建立一个时间向量和相应的函数值向量,然后将时间向量和函数值向量的名称[T,U]填入该图标的对话框中。MathOperations模块加、减运算在Listofsigns文本框中可以选择多个数的加、减法运算。在Iconshape中选择圆形或方形符号。Gain:增益作为后续模块的增益系数。Continuous模块TransferFcn传递函数,设置numerator选项,分子多项式系数的降幂排列。Denominator选项,分母多项式系数的降幂排列。Sinks模块Sinks模块库中的模块主要功能是接受信号,并且将接受的信号显示出来。输出到工作空间,功能与FromWorkspace正好相反,把仿真结果连同输入信号输出到工作空间去。XY示波器:显示MATLAB的图形窗口。输入曲线是以时间为横轴的绘图区域。它的作用是将信号值直接显示在该模块的窗口中。输出信号是个直流信号时,我们就可以把它直接送到这个模块中,从模块窗口中直接读出输入信号的大小。示波器模块可以接受多个输入信号,每个端口的输入信号都将在一个坐标轴中显示。如果是向量或矩阵信号,则以不同的颜色表示每个元素信号;如果信号本身是离散的,则显示信号的阶梯图。(1)示波器的工具栏(2)坐标轴的范围调整在坐标框内单击鼠标右键,在弹出的快捷菜单中执行“Axesproperties”命令,可以对坐标轴进行调整,如图4.1-1所示。“Y-min”、“Y-max”分别是设置Y轴的最小值和最大值,在“Title”中可以为坐标轴取个名字,默认是以输入信号线的标签作为坐标轴的名字。(3)示波器的参数设置单击图标将弹出“示波器参数设置(‘Sope’Parameters)”对话框“General”选项卡中各个选项的含义如下:①“Numberofaxes”文本框:用于设置轴的个数,可以用于实现对多个输入信号的显示。②“Timerange”文本框:用于设置X轴(即时间轴)的显示范围。③“Sampling”下拉列表:当在该下拉列表选择“Decimation”选项时可设置显示频度,如其设为n,则每隔n-1个数据点都给予显示。如果选“Sampletime”可设置显示点采样时间,如果为0表示显示连续信号,-1表示显示方式取决于输入信号,任何大于零的数据表示显示离散信号的时间间隔。④“Floatingscope”复选框:若选中该复选框,则表示示波器以游离方式工作。(4)关于游离示波器工作在游离状态的示波器能够对模型中一条或多条信号线上的信号进行观察,而不用将示波器和信号线相连。观察具体的信号时可以在工具栏中单击图标,在打开的信号选择器中进行选择。2.SimPowerSystems模块介绍·DCVoltageSource直流电压源,在“ElectricalSources”模块内。·SeriesRLCBranch串联RLC支路,设置参数可以去掉任一元件,将其变为单独的电阻、电容或电感的支路。将SeriesRLCBranch模块设置成单一电阻时,应将参数:“Resistance”设置为所仿真电阻的真实值,“Inductance”设置为0,“Capacitance”设置为inf;将Series-RLCBranch模块设置单一电感模块时,应将参数:“Inductance”设置为所仿真电感的真实值,“Resistance”设置为0,“Capacitance”设置为inf;将SeriesRLCBranch设置单一电容模块时,应将参数“Capacitance”设置为所仿真电感的真实值,“Resistance”和“Inductance”均设置为0。·ParallelRLCBranch并联RLC支路,设置参数可以去掉任一元件,将其变为单独的电阻、电容或电感的支路。将ParallelRLCBranch模块设置成单一电阻时,应将参数:“Resistance”设置为所仿真电阻的真实值,“Inductance”设置为inf,“Capacitance”设置为0;将Parallel-RLCBranch模块设置单一电感模块时,应将参数:“Inductance”设置为所仿真电感的真实值,“Resistance”设置为inf,“Capacitance”设置为0;将ParallelRLCBranch设置单一电容模块时,应将参数“Capacitance”设置为所仿真电感的真实值,“Resistance”和“Inductance”均设置为inf。·CurrentMeasurement、VoltageMeasurement在“Measurmrnts”模块内,可以用来测量所在支路的电流值和电压值。·ControlledVoltageSource受控电压源、ControlledCurrentSource受控电流源,在“ElectricalSources”模块内,其参数一般采用默认值。·Break(开关)两模块。在Elements模块库内。Break模块内有一个名为Externalcontrolofswitchingtimes的选项,在默认的选中状态时,Switchingtimes(开关转换时间)和SampletimeoftheinternaltimerTs两个选项将被隐藏,这里需要将Externalcontrolofswitchingtimes设为非选中状态,展开隐藏选项。3.仿真控制设置Solver页simulation—configuration…--solver起始时间Starttime终止时间stoptime仿真步长模式变步长Variable-step,固定步长Fixed-step。仿真算法solver变步长Variable-step:最大步长、最小步长、起始步长。最大步长(缺省值,仿真时间/50)定义影响仿真结果,容易产生失真。最大步长大,取样点少。仿真算法solver:2/3阶龙格-库塔法、4/5阶龙格-库塔法(求解微分方程数值解的函数)、和欧拉法。变步长Variable-step的算法固定步长Fixed-step的算法仿真精度:变步长算法在误差超过误差容限时会自动对仿真步长作适当修正,误差容限的选择关系到微分方程求解的精度。相对精度relativetolerance(1e-3)、绝对精度absolutetolerance(1e-6)。4.模型图的优化①模块的翻转:在format命令中选flipblock项,对选中的模块翻转,选rotateblock项对选中的模块旋转90度。②信号线分叉:按住键,用鼠标左键点击需要分叉的连线接点,拖动鼠标,连接到目的端点。③模型图的标注:模块的标注,双击模块原有的标注,直接修改。连线的标注,双击需要标注的连线,在文本框内进行标注。模型图的标注,在需要标注的任意位置,双击鼠标左键,在出现的文本框内进行标注。标注的位置和内容可以调整、隐藏(format|hidenameformat|showname)和翻转(format|flipname)。④模型图加阴影:选中需要加阴影的模块,选Format|Showdropshadow菜单项⑤给模型图加颜色:选中需要加颜色的模块,选Format|foregroundcolor菜单项,添加模块的前景色。选Format|Backgroundcolor菜单项,添加模块的背景色。选Format|Screencolor菜单项,添加模块图的背景色。⑥改变模型图的字体:选中需要改字体的模块,选Format|Font菜单项,弹出对话框,可以改变字体了。⑦模块的合成:将多个模块合成一个模块组。选中要合成的模块,选择Edit|CreatSubsystem菜单项,SIMULINK会自动将这些模块构成一个模块组的标志,这一模块组可以作为一个公用模块使用了。双击模块组,会自动弹出一个子模型窗口,可以修改该模块的内容。⑧创建子模块:从CommomlyUsedBlocks库选中Subsystem模块;双击该模块图标,在弹出的空白模型图编辑框上进行设计;对子模块进行封装。⑨模