多分支判断语句switchcase.ppt
《多分支判断语句switchcase.ppt》由会员分享,可在线阅读,更多相关《多分支判断语句switchcase.ppt(108页珍藏版)》请在三一办公上搜索。
1、多分支判断语句switch-case作用:多分支判断选择。一般表达形式:switch选择判断量case 选择判断值1 选择判断语句1case 选择判断值2 选择判断语句2otherwise 判断执行语句end注意:当其中一个case语句后的条件为真时,switch-case语句不对其后的case语句进行判断。,1,例如:利用switch_case语句编写判断季节的函数文件。function demo_switch_case(month)switch month case 3,4,5 season=spring case 6,7,8 season=summer case 9,10,11 seas
2、on=autumn otherwise season=winter end将该函数文件以demo_switch_case.m为文件名保存后,在命令窗口输入“demo_switch_case(1)”,可调用该函数文件,返回结果为:season=winter。,2,人机交互命令作用:在执行 MATLAB 主程序文件时,在适当的地方对程序的运行进行观察或干预。重要性:在调试程序的时候,人机交互命令更是不可缺少。MATLAB 语言提供的基本人机交互命令有:echo、input、pause 和 keyboard 四种。,3,echo 命令作用:使M文件的命令在执行时可见,有利于程序的调试和演示。,4,i
3、nput命令input 命令用来提示用户从键盘输入数据、字符串或表达式,并接收输入值。,5,例:R=input(How many apples),pause 命令 作用:使程序暂时终止执行,等待用户按任意键后继续执行基本调用格式:pause%暂停程序等待回应。pause(n)%在程序运行中等待 n秒后继续运行。pause on%显示其后的 pause 命令,并且执行 pause 命令。pause off%显示其后的 pause 命令,但不执行该命令。,keyboard命令 keyboard命令与input命令的作用相似。当程序遇到此命令时,MATLAB就将暂时停止运行程序,处于等待键盘输入状态
4、且在屏幕上显示字符 K。键盘处理完毕后,输入字符串return,程序将继续执行。在M文件中使用该命令,对于程序的调试和在程序运行中修改变量都很方便。,6,例如:disp(please input a month:)%显示提示信息keyboard%控制权交给键盘demo_switch_case(ans)输入数字(例如3)回车,继续在命令行输入“return”,控制权返回给MATLAB,即可显示3月是春天。,程序调试与诊断 MATLAB程序出错时的基本处理方法 语法格式错误 如缺“(”或“)”等,在运行时可检测出大多数该类错误,并指出错在哪一行。算法逻辑错误 这样的错误非常隐蔽,往往是对算法考虑不
5、周全,程序可以顺利通过,显示的结果也是正常的数值,但是与先验的预期不符合。,7,注意:在包含函数调用的 MATLAB 程序运行时,当发生运行错误时,不会显示出错信息,又无法检测各个局部变量。应采用调试技术来查找问题。,8,(1)在可能发生错误的 M 文件中,删去某些语句行末的分号,使显示其运行中间结果,从中可发现一些问题;(2)在 M 文件的适当位置上加上keyboard命令,使在执行时在此暂停,从而检查局部工作空间中变量的内容,从中找到出错的线索,利用 return 命令可恢复程序的执行;(3)注释掉 M 函数文件的函数定义行,使函数文件转变成脚本文件;(4)使用MATLAB调试器,设置断点
6、,或单步执行。,MATLAB的代码编辑调试器MATLAB的代码编辑调试器是一个综合了代码编写与调试的集成开发环境。MATLAB代码调试过程主要是通过调试器菜单Debug下的各子项进行的。调试选项及其功能见表1-3。,9,M文件调试器Debug菜单,表1-3 调试选项及其功能,10,Set/Clear Breakpoint:设置或清除断点。1、可以选择该选项对当前行进行操作;2、通过快捷键F12;3、直接点击该行左侧的“-”。注:设置断点时该处显示为红点。再次进行相同的操作则删除该断点。例子:tiyidianba,11,Set/Modify Conditional Breakpoint:该选项用
7、于设置或修改条件断点。条件断点为一种特殊的断点,当满足指定的条件时则程序执行至此时停止,否则程序继续进行。其设置界面如图1-12所示,在输入框中输入断点条件则将当前行设置为条件断点。此时设置的断点处显示为黄色。例子:tiyidianba,12,Enable/Disable Breakpoint:开启或关闭当前行的断点,如果当前行不存在断点,则设置当前行为断点;如果当前行是断点,则改变该断点的状态。在调试时,被关闭的断点将会被忽略。例子:tiyidianba,13,在程序调试中,变量的值是查找错误的重要线索,在MATLAB中查看变量的值可以有三种方法:(1)在编辑器中将鼠标放置在待查看的变量处,
8、停留,则在此处显示该变量的值;(2)在工作空间中查看该变量的值;(3)在命令窗口中输入变量名,则显示该变量的值。,以上介绍了程序调试的方法和工具,在真正编写程序时,需要根据不同的情况灵活应用这些功能,达到最高的调试效率。,本章小结简要介绍了控制系统仿真的基本概念及仿真工具MATLAB的语言特点;(1.1)详细讲述了在系统仿真过程中可能用到的MATLAB基本功能,从数值计算功能入手,介绍了MATLAB中的数组、矩阵、绘图、函数、M文件及编程控制等基础知识。希望通过本章的学习能够掌握MATLAB的基本用法,为后续利用MATLAB进行仿真打下基础。,14,习题:1.查看MATLAB的目录结构,并检查
9、计算机中安装了 哪些MATLAB工具箱。2.使用help命令查找函数plot和plot3的帮助信息。3.已知矩阵A为四阶魔方矩阵,矩阵B=1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0,求矩阵A和矩阵B的矩阵乘积和数 组乘积。%magic(4)4.用符号计算验证三角等式。%expand(),15,syms x y;expand(sin(x-y),5.求f=sin(x)2的导数,求 f=sin(x)2+cos(y)2对y 的导数。%diff()6.求积分。%int(f,t,a,b)7.解方程x3-6*x2+11*x-5=1。%solve()8.绘图:f=(x2+y2)4-(x2-
10、y2)2,其中1 x 1。9.编程求12+22+32+.+1002,并计算运算时间。%(tic toc)10.Fibonacci数组的元素满足规则:(k=1,2,),;且。试编程求该数组中 第一个大于10000的元素及序号。,16,17,6.syms tao omiga t A;int(A*exp(-i*omiga*t),t,-tao/2,tao/2)8.x=-1:0.01:1;y=x;X,Y=meshgrid(x,y);F=(X.2+Y.2).4-(X.2-Y.2).2;mesh(X,Y,F);xlabel(x);ylabel(y);title(f的图像)9.tica(1)=12;sum(1
11、)=a(1);for i=2:100 a(i)=i2;sum(i)=sum(i-1)+a(i);endsum_100=sum(100)toc,10.a(1)=1;a(2)=1;for i=3:50 a(i)=a(i-1)+a(i-2);if a(i)10000 element=a(i)order=i break end end,控制系统仿真与CAD,第2章 控制系统的数学描述河南工业大学 电气工程学院闫晶晶,系统的数学模型,系统数学模型的重要性 系统仿真分析必须已知数学模型 系统设计必须已知数学模型 数学模型是本课程的基础系统数学模型的获取 建模方法:从已知的物理规律出发,用数学推导的方法建立
12、起系统的数学模型 辨识方法:由实验数据拟合系统的数学模型,19,第2章 控制系统的数学描述,2.1 控制系统数学模型与控制工具箱函数2.1.1 传递函数模型2.1.2 状态空间模型2.2 控制系统模型的转换及连接2.2.1 模型转换函数2.2.2 模型连接与化简2.3 控制系统建模工程实例,20,2.1.1 传递函数模型,主要内容:介绍一下如何把经典控制里最常用的传递函数模型输入给计算机。线性系统通常是以线性常微分方程来描述:,2.1 控制系统数学模型与控制工具箱函数,21,22,传递函数的理论基础 Laplace变换,Pierre-Simon Laplace(1749-1827),法国数学家
13、Laplace变换,t域s域,定义:,Laplace变换的一条重要性质:若,传递函数模型传递函数即放大倍数G(s)=Y(s)/U(s)在零初始条件下,线性常微分方程经Laplace变换后,即为线性系统的传递函数模型:对线性定常系统,式中s的系数均为常数,且不等于零,这时系统在MATLAB中可以方便地由分子(numerator)和分母(denominator)系数构成的向量组唯一地确定出来。,23,在MATLAB中,传递函数的分子、分母分别用num和den表示,表达方式为:num=b0,b1,b(m-1),bmden=a0,a1,a(n-1),an其中:它们都是按s的降幂进行排列的,缺项补零。如
14、果ai,bi都为常数,这样的系统又称为线性时不变系统(Linear Time-invariant systems,简称LTI);系统的分母多项式称为系统的特征多项式。对物理可实现系统来说,一定要满足mn。对于离散时间系统,其单输入单输出系统的LTI系统差分方程为:,24,对应的脉冲传递函数为:用不同向量分别表示分子和分母多项式,就可以利用控制系统工具箱的函数表示传递函数变量G:num=b0,b1,b(m-1),bmden=a0,a1,a(n-1),an在MATLAB中,不论是连续还是离散时间系统,都用函数命令tf()来建立控制系统的传递函数模型,还可以将零极点模型或者状态空间模型转换为传递函数
15、模型。,25,表2-1 tf()函数的具体用法见下表,26,例2-1 将已知系统的传递函数模型 输入到MATLAB工作空间中。解:方法一:在MATLAB命令窗口中输入:num=1 1;%分子多项式向量den=1 3 2 0;%分母多项式向量G=tf(num,den)%系统传递函数模型执行后结果如下:Transfer function:s+1-s3+3 s2+2 s,27,方法二:在MATLAB命令窗口中输入:s=tf(s)%定义Laplace算子符号变量G=(s+1)/(s3+3*s2+2*s)%直接给出系统传递函数表达式执行后结果如下:Transfer function:s+1-s3+3 s
16、2+2 s,28,例2-2 已知传递函数模型,将其输入到MATLAB工作空间中。解:方法一:在MATLAB命令窗口中输入:num=conv(10,2 1);%分子向量多项式den=conv(1 0 0,1 7 13);%分母向量多项式G=tf(num,den)%系统传递函数模型执行后结果如下:Transfer function:20 s+10-s4+7 s3+13 s2,29,方法二:在MATLAB命令窗口中输入:s=tf(s);%定义Laplace算子符号变量G=10*(2*s+1)/(s2*(s2+7*s+13)%直接给出系统传递函数表达式执行后结果如下:Transfer function
17、:20 s+10-s4+7 s3+13 s2,30,例2-3 RLC电路如图2-1所示,试建立以电容上电压Uc(t)为输出变量,输入电压Ur(t)为输入变量的运动方程;如果R=1.6,L=1.0H,C=0.40F时,建立其传递函数模型。解:第一步:建立系统的微分方程。设回路电流为i(t),根据基尔霍夫电压定律、电流定律得到系统的回路方程为:(2-6)(2-7)将(2-7)代入(2-6),消去中间变量i(t),得到描述RLC网络输入输出关系的微分方程为:,(2-8),31,第二步:根据微分方程写出传递函数。在零初始条件下,对上述方程中各项求拉氏变换,并令,,可得s的代数方程为:由传递函数定义,得
18、系统传递函数为:将R=1.6,L=1.0H,C=0.40F代入(2-10)得:,(2-9),(2-10),(2-11),32,33,第三步:将系统模型输入到MATLAB工作空间中。程序如下:clearclcs=tf(s);%定义Laplace算子符号变量G=25/(10*s2+16*s+25)%直接给出系统传递函数表达式程序运行结果为:Transfer function:25-10 s2+16 s+25,例2-4 某一以微分方程描述系统的传递函数,其微分方程描述如下:试使用MATLAB建立其模型。解:首先求取系统传递函数。在零初始条件下,对微分方程两边取Laplace变换,可得系统传递函数:然
19、后建立系统模型,MATLAB程序如下:num=1 0 6;%分子多项式系数行向量den=1 6 11 6;%分母多项式系数行向量G=tf(num,den)%建立传递函数模型程序运行结果如下:Transfer function:s2+6-s3+6 s2+11 s+6,34,例2-5 已知传递函数的分子为(s+1),分母项为(s3+4s2+2s+6),时滞是2,试建立系统的传递函数模型。解:方法一,由于系统有时滞项,除了设置分子项num和分母项den外,还要在tf()函数中设置输入传输延时iodelay的属性,其值赋给变量dt,程序如下:num=1 1;den=1 4 2 6;dt=2;G=tf(
20、num,den,iodelay,dt)程序运行结果为:Transfer function:s+1 exp(-2*s)*-s3+4 s2+2 s+6,35,方法二,也可以采用Laplace算子的符号变量直接建立传递函数模型,程序为:s=tf(s);G=(s+1)/(s3+4*s2+2*s+6);set(G,iodelay,2);G程序运行后结果与方法一相同。,36,零极点增益模型实质:零极点增益模型实际上是传递函数模型的另一种表现形式。原理:分别对原系统传递函数的分子、分母进行因式分解处理,获得系统的零点和极点的表示形式。其中:K为系统增益,zi(i=1,2,m)为零点,pj(j=1,2,n)为
21、极点。注:对系数为实数的传递函数模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。,37,(2-12),离散系统的传递函数也可表示为零极点增益模式:在MATLAB中零极点增益模型用z,p,k矢量组表示。即:z=z1,z2,zmp=p1,p2,.,pnk=K调用zpk()函数就可以输入这个零极点增益模型,还可以将传递函数模型或者状态空间模型转换为零极点增益模型,具体用法如表2-2所示。,38,(2-13),表2-2 zpk函数的具体用法,39,例2-6 双T网络如图2-2所示,试求以Uc为输出,Ur为输入的传递函数和零极点增益模型。其中R1=40,R2=80,C1=100F,C2=50
22、F。解:首先,根据基尔霍夫电压定律、电流定律建立各元件的微分方程。方程如下:(2-14),图2-2 双T网络,40,再求取系统传递函数。将(2-14)中各元件的微分方程进行拉氏变换,并改写成以下形式:消去中间变量I1(s)和I2(s),得到系统的传递函数为:,(2-15),(2-16),41,将R1=40,R2=80,C1=100F,C2=50F代入上式,可得系统的传递函数为:最后,编写MATLAB程序。程序如下:num=1;den=16 10 1;G=tf(num,den)G1=zpk(G)运行后,获得系统的传递函数和零极点增益模型,结果为:Transfer function:1-16 s2
23、+10 s+1Zero/pole/gain:0.0625-(s+0.5)(s+0.125),42,例2-7 已知系统的传递函数为,将零极点增益模型输入MATLAB工作空间。解:在MATLAB的命令窗口输入:z1=-5;-5;%零点向量p1=-1;-2;-2-2*j;-2+2*j;%极点向量k=4;%增益向量G1=zpk(z1,p1,k)%得到系统零极点增益模型则执行后得到如下结果:Zero/pole/gain:4(s+5)2-(s+1)(s+2)(s2+4s+8),43,例2-8 已知系统的传递函数为:,求系统 的零极点向量和增益值,并绘制系统零极点分布图。解:在MATLAB的命令窗口输入:s
24、=zpk(s);%定义算子G=4*(s+5)/(s+1)/(s+2)/(s+6)%直接得到系统模型z,p,k=zpkdata(G,v)%得到系统零极点向量和增益值pzmap(G)%绘制系统零极点分布图则执行后得到的系统传递函数及零极点向量和增益值:Zero/pole/gain:4(s+5)-(s+1)(s+2)(s+6)z=-5p=-1-2-6k=4 系统的零极点分布图,44,部分分式模型优点:方便应用Laplace反变换求系统的输出响应。函数:r,p,k=residue(b,a)可以求出传递函数的部分分式之和形式。传递函数的部分分式之和形式为:注:使用函数r,p,k=residue(b,a)
25、时,余数返回到向量r,极点返回到列向量p,常数项返回到k。另外,函数b,a=residue(r,p,k)也可以将部分分式转化为多项式比p(s)/q(s)。,45,(2-17),例2-9 已知系统的传递函数为,求取系统的部分分式模型。解:在MATLAB命令窗口中输入:num=2,0,9,1;den=1,1,4,4;r,p,k=residue(num,den)则执行后得到如下结果:r=0.0000-0.2500i 0.0000+0.2500i-2.0000 p=-0.0000+2.0000i-0.0000-2.0000i-1.0000 k=2根据MATLAB程序运行结果,可写出系统的部分分式模型:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 判断 语句 switchcase
链接地址:https://www.31ppt.com/p-5934776.html