在抗击"非典"期间,学校课程安排受到很大的影响,因此对授课的方式和内容作了相应的修改:1、取消第四章,将仿真实例的学习排入前三章,要求同学通过自己的上机实践学习Matlab和Simulink的基本操作.
2、原上机实践部分的内容安排为几个范例的学习.
同学们应充分利用范例对所涉及的关键内容进行实践.
计算机仿真技术童亦斌2003.
4系统的分析方法系统:客观世界中相互作用的实体所构成的具有特定功能的整体.
为了定量分析系统,可将其本身的特点和内部的相互关系抽象出来,构造出系统的模型.
对系统的分析变成对系统模型的分析.
系统模型:分物理模型和数学模型,由于计算机技术的发展,数学模型的应用越来越广泛.
系统的数学模型:描述系统动态特性的数学表达式.
根据系统的性质和数学分析工具可分为:连续系统、离散时间系统、离散事件系统、混合系统等.
系统的仿真分析方法仿真技术:用模拟的方法模拟实际系统的表现.
仿真技术的基本方法:数学模型仿真、物理模型仿真、硬件仿真、操作仿真、虚拟现实.
系统仿真:根据系统数学模型研究系统性能.
计算机仿真:利用计算机完成对系统的仿真.
本课程特指利用计算机、根据系统的数学模型对电路系统进行仿真.
计算机仿真技术讲授内容计算机仿真技术概述Matlab和Simulink简介计算机仿真的建模计算机仿真实例计算机仿真上机实践本课程的学习方法、作业和考试学习方法:特别强调直接在计算机进行实践,强调学习利用Matlab各种资源解决问题;作业:分别关于Matlab的基本使用、Simulink的建模、S函数和Simulink结果的调用;考试:建立一个交流异步电机变频启动的计算机仿真模型,对交流异步电机的变频启动过程进行观察;交流电机变频系统框图考试的基本要求和条件基本要求-利用搭建的模型研究变频启动过程中电机电流的变化情况;条件:电源电压直流600V、电机为Simulink默认的交流异步电机、电机空载、采用理想IGBT逆变器桥、开关频率固定为2500Hz、输出频率从5Hz变化到50Hz、启动时间可调;第一章计算机仿真技术概述为什么要进行计算机仿真计算机仿真能完成什么任务计算机仿真技术的关键仿真软件的发展状况电子设计自动化的主要应用领域计算机仿真的基本步骤计算机仿真设计的原则§1.
1为什么要进行计算机仿真实际系统的理论分析往往非常复杂,传统的分析方法几乎不可能完成;很多时候几乎不可能或很难进行真实实验的分析和验证;实验的成本高、效率低、周期长;通过计算机仿真我们能够:提高设计效率、缩短设计周期;准确、全面地模拟和分析系统;提高产品和技术的设计质量;降低设计成本;充分发挥设计人员的创造性;降低干扰因素的影响,集中注意于关键问题;优化系统和参数的设计§1.
2计算机仿真能完成什么任务动态系统的仿真分析;参数的优化;极限参数的设计;环境参数对系统性能的影响;突发或偶发事件的模拟;电子设计自动化(ElectronicDesignAutomation)§1.
3计算机仿真技术的关键数值计算算法;电路数学模型建立的模块化;不同应用软件间的数据共享;仿真计算的效率和准确性;混合系统的建模和仿真;仿真结果的可视化;§1.
4仿真软件的发展状况现代仿真软件的特点:功能强大的数学软件包作为计算引擎、交互式的编程方式、友好的图形界面、丰富的模型资源和良好的程序接口等;早期仿真语言和程序早期数学软件包现代的仿真软件§1.
5电子设计自动化的主要应用领域EDA的主要应用领域包括:-集成电路设计-模拟电路仿真-动态系统的仿真EDA主要软件及特点:Protel、Pspice、Saber、Matlab§1.
6计算机仿真的基本步骤计算机仿真过程包括分析、建模、计算和验证;模型的调试和计算主要依靠仿真软件的设计和使用;验证过程非常重要;人为的干预和控制对仿真的效果有很大的影响;系统和任务分析建立系统的仿真模型模型的调试与计算仿真结果的验证§1.
7计算机仿真设计的原则"分级仿真"原则:对系统的分析应根据任务的不同采用不同的仿真模型或算法,合理简化系统,突出问题的关键;"准确度与速度合理兼顾"原则:在仿真的不同阶段合理调整对准确度和速度的要求,提高仿真效率;"可信验证"原则:所有仿真结果应有可信的验证方法或依据;第二章Matlab和Simulink简介Matlab和Simulink简介MATLABInstallationMATLABDesktopArrayScriptsandFunctionsSimulink交互式仿真环境SolverS-Function§2.
0Matlab和Simulink简介Matlab是集数值计算、符号运算和图形处理功能于一身的超级科学计算语言;与其它计算语言相比,Matlab在功能、开放性和易学性等方面独占鳌头;Matlab的核心是数值计算,Simulink是建立系统框图和仿真的环境;*Battery(s)V0430DC15V;V1390DC15V;*DISCHARGEV_0410PULSE(-1515196ms10us10us20ms200ms);*OFFSETV_150PULSE(5-5.
7150ms10us10us50ms200ms);*PIBIASV_210PULSE(10-10190ms2us2us10ms200ms);*Misc.
TRAN10us210ms0s10msUIC语句方式框图方式§2.
1MATLABInstallationThemainProductsofMatlabformodelingandsimulatingdynamicalsystems:-Matlab-SymbolicMath-Simulink-ControlSystem§2.
2MATLABDesktopCommandWindow(指令窗)CommandHistory(历史指令窗)LaunchPad(交互界面分类目录窗)HelpBrowser(帮助浏览器)CurrentDirectoryBrowser(当前目录浏览器)WorkspaceBrowser(工作空间浏览器)ArrayEditor(内存数组浏览器)Editor/Debugger(M文件编辑/调试器)LaunchPadCurrentDirectoryBrowserCommandWindow所有符号必须在英文状态下输入…续行号作为变量、函数或文件名中的连字符_下连号元胞数组引述符{}花括号输入数组时使用;函数指令输出宗量列表时使用[]方括号在数组援引时使用;函数指令输入宗量列表时使用()圆括号字符串引述符''单引号之后的部分被视为注释%注释号用于冒号生产法产生一维数组;(用于数组参见数值数组部分):冒号用于指令结尾表示不显示结果;用作数组的行间分隔符;分号小数点.
黑点用作要显示结果的指令与下一指令间的分隔;作为变量之间的分隔符;数组元素分隔符;,逗号作为变量之间的分隔符;数组元素分隔符;空格作用标点名称Matlab常用标点的功能§2.
3ArrayArray(数组)的基本概念数组在Matlab仿真计算中的应用NumericArray(数值数组)数值元素的标识CharacterArray(字符串数组)CellArray(元胞数组)StructureArray(架构数组)§2.
3.
1Array(数组)的基本概念MATLABworkswithonlyasingleobject-thearray(数组).
数组:一组数组成的长方阵列.
ItstypeItsdimensionsItscontentThedataassociatedwiththisarrayIfnumeric,whetherthevariableisrealorcomplexIfastructure,thenumberoffieldsandfieldnames数组与矩阵的区别矩阵:作为一种变换或映射算子的体现,矩阵有着明确而严格的数学规则;数组:Matlab设置数组的目的主要是为了简化数据的管理和操作、使指令的形式更加自然、程序的运行更加有效;Matlab中对数组的计算实际上是对数组中每个元素平等地施加同样地操作;§2.
3.
2数组在Matlab仿真计算中的应用Matlab中数据的存放和处理均采用数组;Matlab中的数组主要分为:NumericArray,CharacterArray,CellArray,StructureArrayCharacterArray可用于仿真结果和过程的可视化;StructureArray可用于与Simulink交换信息,包括仿真参数的设定、结果的获取和处理等;§2.
3.
3NumericArray(数值数组)数值数组是Matlab中最基本地数组形式;数值数组分实数数组和复数数组;>>A=[1234,5678]A=12345678>>A=[1234;5678]A=12345678>>A*4ans=48121620242832§2.
3.
4数组元素的标识"全下标"标识"单下标"标识>>A(4)ans=6>>A(1,4)ans=4>>A(2,3)=0;>>AA=12345608A=12345678单下标全下标冒号的使用j:kisthesameas[j,j+1,.
.
.
,k]j:i:kisthesameas[j,j+i,j+2i,.
.
.
,k]A(:,j)isthej-thcolumnofAA(i,:)isthei-throwofA§2.
3.
5CharacterArray(字符串数组)字符串数组-基本元素是字符串.
字符串数组可用于计算过程和结果的可视化.
字符串数组的直接创建.
利用串操作函数创建串数组.
A='TheexmapleoftheCharacterArrays'>>A=['1234';'12345']A=123412345>>A=char('1234','12345')A=123412345转换函数产生数码字符串Int2str(整数数组转换为串数组);Num2str(非整数数组转换为串数组);A=rand(2,4)A=0.
95010.
60680.
89130.
45650.
23110.
48600.
76210.
0185B=num2str(A,2),C=int2str(A)B=0.
950.
610.
890.
460.
230.
490.
760.
019C=11100010class(B),class(C)ans=charans=charclear%清除内存中地所有变a=2,w=3;%t=0:0.
01:10;%取自变量采样数组y=exp(-a*t).
*sin(w*t);%计算函数值,产生函数数组[y_max,i_max]=max(y);%找最大值的位置t_text=['t=',num2str(t(i_max))];%生成最大值点的横坐标字符串y_text=['y=',num2str(y_max)];%生成最大值点的众坐标字符串max_text=char('maximum',t_text,y_text);%生成最大值点的字符串tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];%plot(t,zeros(size(t)),'k');%画纵坐标为0的基准线holdon%plot(t,y,'b');%绘制函数曲线plot(t(i_max),y_max,'r.
','MarkerSize',20);%标注最大值点text(t(i_max)+0.
3,y_max+0.
05,max_text);%标注最大值点的字符串title(tit),xlabel('t'),ylabel('y'),holdoff%标注图名、横坐标名、纵坐标名字符串数组用于计算结果的可视化实例字符串数组用于计算结果的可视化实例§2.
3.
6CellArray(元胞数组)Theelementsofacellarrayarecells,containersthatcanholdotherMATLABarrays.
§2.
3.
6.
1CreatingCellArraysCellindexing(元胞外标识):A(1,1)={[143;058;729]};A(1,2)={'AnneSmith'};A(2,1)={3+7i};A(2,2)={-pi:pi/10:pi};A(1,1)={[143;058;729]};A(1,2)={'AnneSmith'};A(2,1)={3+7i};A(2,2)={-pi:pi/10:pi};A=[3x3double]'AnneSmith'[3.
0000+7.
0000i][1x21double]Contentindexin(元胞内标识):A{1,1}=[143;058;729];A{1,2}='AnneSmith';A{2,1}=3+7i;A{2,2}=-pi:pi/10:pi;§2.
3.
6.
2ObtainingDatafromCellArrays调取元胞数据分:元胞的调取和元胞内容的调取;元胞地标识分:元胞外标识和元胞内标识;A{1,1}ans=143058729A{1,1}(1,2)ans=4A(1,1)={[123;456]};A(1,1)=[2x3double]A{1,1}=123456§2.
3.
7StructureArray(构架数组)TheelementsofaStructureArrayareStructures.
StructuresareMATLABarrayswith"datacontainers"calledfields.
Thefieldsofastructurecancontainanykindofdata.
StructureArray的基本组分是架构(Structure),在Structure以下划分了域(Field),域可用于存放任何形式的数据.
§2.
3.
7.
1StructureArray的基本结构patient.
name='JohnDoe';patient.
billing=127.
00;patient.
test=[797573;180178177.
5;220210205];AStructureArrayAStructure§2.
3.
7.
2BuildingStructureArrays方法一:直接声明patient(2).
name='AnnLane';patient(2).
billing=28.
50;patient(2).
test=[687068;118118119;172170169];方法二:利用struct指令patient(2)=struct('name','AnnLane','billing',28.
50,'test',[687068;118118119;172170169])patient=1x2structarraywithfields:namebillingtest§2.
3.
7.
3AccessingDatainStructureArrays架构数组的存取:架构->域->内容mypatients=patient(1:2)1x2structarraywithfields:namebillingtestmypatients(1)ansname:'JohnDoe'billing:127test:[3x3double]str=patient(2).
namestr=AnnLanepatient(2).
testans=687068118118119172170169§2.
4ScriptsandFunctionsScripts(脚本文件),whichdonotacceptinputargumentsorreturnoutputarguments.
Theyoperateondataintheworkspace.
Functions(函数文件),whichcanacceptinputargumentsandreturnoutputarguments.
Internalvariablesarelocaltothefunction.
§2.
4.
1ScriptsWhenyouinvokeascript,Matlabsimplyexecutesthecommandsfoundinthefile.
Scriptscanoperateonexistingdataintheworkspace,ortheycancreatenewdataonwhichtooperate.
Althoughscriptsdonotreturnoutputarguments,anyvariablesthattheycreateremainintheworkspace,tobeusedinsubsequentcomputations.
Scripts在使用Simulink时的主要作用:作为调用Simulink模型的外部环境.
§2.
4.
2FlowControlScripts中可以使用各种流程控制,用于控制Simulink的调用或参数的设置.
主要的流程控制包括:-ifstatements-switchstatements-forloops-whileloops§2.
4.
2.
1ifstatements判断结构ifrem(n,2)~=0M=odd_magic(n)elseifrem(n,4)~=0M=single_even_magic(n)elseM=double_even_magic(n)end§2.
4.
2.
2switchstatements选择结构switch(rem(n,4)==0)+(rem(n,2)==0)case0M=odd_magic(n)case1M=single_even_magic(n)case2M=double_even_magic(n)otherwiseerror('Thisisimpossible')end§2.
4.
2.
3forloopsFor循环forn=3:32r(n)=rank(magic(n));end§2.
4.
2.
4whileloopsWhile(条件)循环whileb-a>eps*bx=(a+b)/2;fx=x^3-2*x-5;ifsign(fx)==sign(fa)a=x;fa=fx;elseb=x;fb=fx;endend§2.
4.
3Functions(函数)CreateaFunctionCallaFunctionfunctionarea=circle(r,s)%CIRCUITthisiskeywordofthefunction%nextiscommentlinesclf;clearcurrentfigurewindowsita=0:pi/100:2*pi;y=r*exp(i*sita);plot(y,s);area=pi*r^2;circle(2,'r')ans=12.
5664x=circle(2,'b')x=12.
5664Function最典型的应用S-Function§2.
5Simulink交互式仿真环境Simulink,themostwidelyusedsoftwarepackageinacademiaandindustryformodelingandsimulatingdynamicalsystems.
Interactive,youcanchangeparametersandseewhathappensimmediately.
Simulinkprovidesagraphicaluserinterface(GUI).
Simulinkispractical,itisbeingusedbythousandsofengineersaroundtheworld.
Simulink的基本操作ModelingDynamicSystemsSimulatingDynamicSystemsModelingandSimulatingDiscreteSystems§2.
5.
1ModelingDynamicSystemsBlocks(模块)States(状态)SystemFunctions(仿真运行功能)ContinuousandDiscreteBlocks(连续和离散系统)SampleTime(采样时间)§2.
5.
1.
1Blocks(模块)Blocks-Eachblockrepresentsanelementarydynamicsystemthatproducesanoutput.
Simulink本身具有比较丰富的Block资源,应首先予以考虑.
为方便设计,最好遵照下述命名规则:u:输入x:(内部)状态y:输出§2.
5.
1.
2States(内部状态)Ablockthathasastatemuststorepreviousvaluesofthestatetocomputeitscurrentstate.
ExamplesoftheblocksthathaveSTATES:Integrator,UnitDelayTheSimulinkGainblockisanexampleofastatelessblock.
§2.
5.
1.
3SystemFunctions(仿真运行功能)所谓SystemFunctions是指仿真计算的三个循环步骤:1、Anoutputfunction(输出):Relatesthesystem'soutputstoitsinputs,states,andtime,y=f(t,x,u)2、Anupdatefunction(离散状态刷新):Relatesthefuturevaluesofthesystem'sdiscretestatestothecurrenttime,inputs,andstates,xdk+1=f(t,x,u)3、Aderivativefunction(连续状态刷新):Relatesthederivativesofthecontinuousstatestotimeandthepresentvaluesofthestatesandinputs,xc'=f(t,x,u)§2.
5.
1.
4ContinuousandDiscreteBlocksContinuousblocksrespondcontinuouslytocontinuouslychanginginput.
Discreteblocksrespondtochangesininputonlyattheblock'ssampletime.
Discreteblocksholdtheiroutputconstantbetweensuccessivesampletimehits.
Someblockscanbeeithercontinuousordiscrete,dependingonwhethertheyaredrivenbycontinuousordiscreteblocks.
§2.
5.
2SimulatingDynamicSystemsModelInitializationPhaseModelExecutionPhaseProcessingatEachTimeStep§2.
5.
2.
1ModelInitializationPhaseDuringtheinitializationphase,Simulink:1、Evaluatesthemodel'sblockparameterexpressionstodeterminetheirvalues.
2、Flattensthemodelhierarchybyreplacingvirtualsubsystemswiththeblocksthattheycontain.
3、Sortstheblocksintotheorderinwhichtheyneedtobeexecutedduringtheexecutionphase.
4、Determinessignalattributes.
5、Determinesthesampletimes.
6、Allocatesandinitializesmemoryusedtostorethecurrentvaluesofeachblock'sstatesandoutputs.
§2.
5.
2.
2ModelExecutionPhaseSimulinksuccessivelycomputesthestatesandoutputsofthesystematintervalsfromthesimulationstarttimetothefinishtime,usinginformationprovidedbythemodel.
Thesuccessivetimepointsatwhichthestatesandoutputsarecomputedarecalledtimesteps.
Thelengthoftimebetweenstepsiscalledthestepsize.
Simulink决定计算步长依据:用户的设定、离散模块或系统的采样时间、数值计算的误差.
§2.
5.
2.
3ProcessingatEachTimeStepAteachtimestep,Simulink1、Updatestheoutputsofthemodels'blocksinsortedorder.
2、Updatesthestatesofthemodel'sblocksinsortedorder.
3、Optionallychecksfordiscontinuitiesinthecontinuousstatesofblocks.
4、Computesthetimeforthenexttimestep.
§2.
5.
3ModelingandSimulatingDiscreteSystemsDiscreteBlocksSampleTimePurelyDiscreteSystemsMultirateSystemsDeterminingStepSizeforDiscreteSystemsSampleTimePropagationInvariantConstantsMixedContinuousandDiscreteSystems§2.
5.
3.
1DiscreteBlocksEachofthediscreteblockshasAbuilt-insampleratitsinputAzero-orderholdatitsoutput§2.
5.
3.
2SampleTimeTheSampletimeparametersetsthesampletimeatwhichadiscreteblock'sstatesareupdated.
Specifyanoffsettime(orskew)byspecifyingatwo-elementvectorinthisfield.
Cannotchangethesampletimeofablockwhileasimulationisrunning.
§2.
5.
3.
3PurelyDiscreteSystems&MultirateSystemsPurelyDiscreteSystems:系统中所有模块都按单一的采样率进行工作.
MultirateSystems:系统中的模块采用不同的采样率进行工作.
§2.
5.
3.
4DeterminingStepSizeforDiscreteSystemsThefundamentalsampletimeofadiscretesystemisthegreatestintegraldivisorofthesystem'sactualsampletimes.
YoucandirectSimulinktouseeitherafixed-steporavariable-stepdiscretesolvertosolveadiscretesystem.
§2.
5.
3.
5MixedContinuousandDiscreteSystemsMixedcontinuousanddiscretesystemsarecomposedofbothsampledandcontinuousblocks.
Formostmixedcontinuousanddiscretesystems,theRunge-Kuttavariablestepmethods,ode23andode45,aresuperiortotheothermethodsintermsofefficiencyandaccuracy.
Duetodiscontinuitiesassociatedwiththesampleandholdofthediscreteblocks,theode15sandode113methodsarenotrecommendedformixedcontinuousanddiscretesystems.
§2.
6Solver(解算控制)TheSolverpaneallowsyouto:-Setthesimulationstartandstoptimes-Choosethesolverandspecifyitsparameters-Selectoutputoptions§2.
7DataExchangeWithinSimulinkandWorkspaceWorkspaceI/OPane-Youcandirectsimulationoutputtoworkspacevariablesandgetinputandinitialstatesfromtheworkspace.
FromWorkspaceBlock&ToWorkspaceBlock§2.
8S-FunctionWhatIsanS-Function-AnS-functionisacomputerlanguagedescriptionofaSimulinkblock.
WhentoUseanS-Function-AddingnewgeneralpurposeblockstoSimulink-Addingblocksthatrepresenthardwaredevicedrivers-IncorporatingexistingCcodeintoasimulation-Describingasystemasamathematicalsetofequations-Usinggraphicalanimations(seetheinvertedpendulumdemo,penddemo)MathematicsofSimulinkBlocksS-Function:实际上是利用Matlab的编程语言直接设计模块的数学模型S-Function的运行主要由三个环节组成:output,derivative,updateThestagesofasimulation.
S-Function的运行实际上是一个循环调用的过程ImplementingS-FunctionsAnM-fileS-function:[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,.
.
.
)f-S-function'snamet-thecurrenttimex-thestatevectoroftheS-functionblocku-theblock'sinputsflag-indicatesatasktobeperformedp1,p2,…-theblock'sparameters.
S-Function的运行状态及标志第三章计算机仿真的建模计算机仿真建模的含义和基本方法Simulink模块库简介Simulink基本模块的使用§3.
1计算机仿真建模的含义和基本方法所谓建模,就是用数学表达式或更基本的物理模型单元的组合来模拟一个实际的系统.
数学表达式:更准确、直接;物理模型单元的组合:十分直观,修改调试比较方便;Simulink仿真大多采用内部的模块库资源;§3.
2Simulink模块库简介要求:初步了解Simulink模块的资源以及调用、连接和基本参数修改等操作.
§3.
3Simulink基本模块的使用具体要求:以下页示例电路熟悉所采用标准模块的参数及设置、仿真解算参数的设置、采样时间不同的设置方法.
DiyVM 香港沙田机房,也是采用的CN2优化线路,目前也有入手且在使用中,我个人感觉如果中文业务需要用到的话虽然日本机房也是CN2,但是线路的稳定性不如香港机房,所以我们在这篇文章中亲测看看香港机房,然后对比之前看到的日本机房。香港机房的配置信息。CPU内存 硬盘带宽IP价格购买地址2核2G50G2M1¥50/月选择方案4核4G60G3M1¥100/月选择方案4核8G70G3M4¥200/月选择...
易探云香港vps主机价格多少钱?香港vps主机租用费用大体上是由配置决定的,我们选择香港vps主机租用最大的优势是免备案vps。但是,每家服务商的机房、配置、定价也不同。我们以最基础配置为标准,综合比对各大香港vps主机供应商的价格,即可选到高性能、价格适中的香港vps主机。通常1核CPU、1G内存、2Mbps独享带宽,价格在30元-120元/月。不过,易探云香港vps主机推出四个机房的优惠活动,...
imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...