控制系统Matlab计算与仿真

上传人:沈*** 文档编号:171389156 上传时间:2022-11-26 格式:PPT 页数:72 大小:1.53MB
返回 下载 相关 举报
控制系统Matlab计算与仿真_第1页
第1页 / 共72页
控制系统Matlab计算与仿真_第2页
第2页 / 共72页
控制系统Matlab计算与仿真_第3页
第3页 / 共72页
点击查看更多>>
资源描述
1 1控制系统Matlab计算与仿真华南理工大学华南理工大学刘桂雄刘桂雄 教授,博士生导师教授,博士生导师20122012年年0404月月1111日日2目录一、Matlab简介二、控制系统Matlab仿真基础三、Simulink仿真基础3一、Matlab简介1.Matlab简介o 1980年前后,美国moler博士构思并开发;o 最初的Matlab版本是用fortran语言编写,现在的版本用c语言改写;o 1992年推出了具有划时代意义的Matlab 4.0版本;并于1993年推出了其windows平台下的微机版,现在比较新的版本是r2012a版 4一、Matlab简介2.Matlab语言特点o Matlab以复数矩阵为最基本的运算单元,既可以对它整体地进行处理,也可以对它的某个或某些元素进行单独地处理。在Matlab中,数据的存储/输入/输出都是以矩阵为基础的,矩阵和其它变量不需要预先定义。o Matlab语言最基本的赋值语句结构为 变量名列表=表达式 变量名为Matlab语句的返回值;等号右边是表达式的定义,它可以是矩阵,也可是函数调用。5一、Matlab简介2.Matlab语言特点o Matlab下提供了两种文件格式:M文件,Matlab函数 M文件是普通的ascii码构成的文件,只有由Matlab语言所支持的语句,用户只需在Matlab的提示符下键入该M文件的文件名,Matlab就会自动执行该M文件中的各条语句。它采用文本方式,编程效率高,可读性很强。Matlab函数是最常用的特殊m文件,该函数是由function语句引导,其基本格式如下:Function 返回变量列表=函数名(输入量列表)6二、控制系统Matlab仿真基础1.控制系统数学模型 要分析系统,首先需要能够描述这个系统要分析系统,首先需要能够描述这个系统。在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型);状态方程模型(系统的内部模型);零极点增益模型;动态结构图(Simulink中使用)。这些模型之间都有着内在的联系,实际应用中,根据要解决问题的需要,往往要进行不同种类模型之间的转换,Matlab控制系统工具箱中为此提供了相应的命令函数。7二、控制系统Matlab仿真基础1.控制系统数学模型(1)传递函数模型11211121)(nnnnmmmmasasasabsbsbsbsG Matlab中用函数命令tf()来建立控制系统的传递函数模型。函数命令的调用格式为:sys=tf(num,den)函数返回的变量为连续系统的传递函数模型,函数输入参量num与den分别为系统的分子与分母多项式系数向量。sys=tf(num,den,Ts)函数返回的变量为离散系统的传递函数模型,函数输入参量num与den分别为系统的分子与分母多项式系数向量,Ts为采样时间。Matlab中还用函数printsys()来输出系统模型。8二、控制系统Matlab仿真基础1.控制系统在Matlab中的描述(2)零极点增益模型 Matlab中用函数命令zpk()来建立控制系统的零极点增益模型。函数命令的调用格式为:sys=zpk(z,p,k)其中的z、p、k分别代表系统零点、极点、增益向量,函数返回连续系统零极点模型。sys=zpk(z,p,k,Ts)其中的z、p、k分别代表系统零点、极点、增益向量,Ts为采样时间,函数返回离散系统零极点模型。).()().()()(2121nmpspspszszszsKsG9二、控制系统Matlab仿真基础1.控制系统在Matlab中的描述表1 模型转换函数名函数名函数功能函数功能tf2zp将传递函数模型转换为零极点增益模型zp2tf将零极点增益模型转换为传递函数模型二、控制系统Matlab仿真基础例例1 用Matlab表示传递函数为 的系统。解:num=2 3;den=4 3 2 1;sys=tf(num,den)执行结果:Transfer function:2 s+3-4 s3+3 s2+2 s+112343223ssss10二、控制系统Matlab仿真基础例例2 用Matlab表示传递函数为 的系统。解:z=-3;p=0 -1 -2;k=2;sys=zpk(z,p,k)执行结果:Zero/pole/gain:2(s+3)-s(s+1)(s+2)2)(1()3(2ssss11二、控制系统Matlab仿真基础例例3 已知某控制系统的传递函数为 ,求Matlab描述的传递函数模型及零极点增益模型。解:num=0 0 1;den=1 3 2;sys1=tf(num,den)z p k=tf2zp(num,den);sys2=zpk(z,p,k)执行结果:231)(2sssGZero/pole/gain:1-(s+2)(s+1)Transfer function:1 -s2+3 s+212二、控制系统Matlab仿真基础 在Matlab中描述系统的模型形式不仅仅拘泥于数学表达式,还有应用在Simulink仿真环境中的动态方框图形式。只要按照一定的规则画出系统模型图,然后用实际系统的数据进行设置,就可以对其实现仿真。模型化简模型化简包括:环节串联化简;环节并联化简;反馈环节化简。(3)方框图模型化简1.控制系统在Matlab中的描述二、控制系统Matlab仿真基础 环节串联化简 多个环节相串联的连接形式是控制系统最基本的组成结构形式之一。在Matlab中用函数命令series()来实现串联化简。其调用格式为:sys=series(sys1,sys2)说明说明:也可简单地通过命令sys=sys1sys2实现。14G1(s)G2(s)R(s)C(s)1.控制系统在Matlab中的描述(3)方框图模型化简二、控制系统Matlab仿真基础 环节并联化简 多个环节相并联的连接形式也是控制系统最基本的组成结构形式之一。Matlab中用函数命令parallel()来实现并联化简。其调用格式为:sys=parallel(sys1,sys2)说明说明:也可以简单地通过命令sys=sys1+sys2实现。15G1(s)G2(s)R(s)C(s)+1.控制系统在Matlab中的描述(3)方框图模型化简二、控制系统Matlab仿真基础 反馈环节化简 反馈连接结构是控制系统动态方框图动中常见连接形式。Matlab中用函数命令feedback()来实现反馈化简。其调用格式为:sys=feedback(sys1,sys2,sign)其中sign缺省值为-1,表示负反馈;若为正反馈,则sign=1。16G(s)H(s)C(s)R(s)-+1.控制系统在Matlab中的描述(3)方框图模型化简二、控制系统Matlab仿真基础(1)时域响应仿真 时域响应Matlab仿真的方法有两种:在Matlab的函数指令方式下进行时域仿真;在Simulink环境下的菜单方式的时域仿真。命令方式下的时域仿真命令方式下的时域仿真 控制系统工具箱中提供了一系列关于时域响应求取的函数命令。阶跃响应:step(sys)step(sys,t)dstep(a,b,c,d)dstep(num,den)脉冲响应:impulse(sys)impulse(sys,t)dimpulse(a,b,c,d)dimpulse(num,den)172.系统时域分析18例例4 用Matlab绘制典型二阶系统的单位阶跃响应曲线。解:取 ,分别取 程序实现如下:c=0 3 7 10 20 40;k=25;t=linspace(0,10,100);num=k;for i=1:6 den=1 c(i)25;sys=tf(num,den);y(:,i)=step(sys,t);end plot(t,y(:,1:6)二、控制系统Matlab仿真基础182222)(nnnsssG5n4217.03.00nc2%2nk%191920二、控制系统Matlab仿真基础(1)时域响应仿真 时域响应Matlab仿真的方法有两种:在Matlab的函数指令方式下进行时域仿真;在Simulink环境下的菜单方式的时域仿真。命令方式下的时域仿真命令方式下的时域仿真 控制系统工具箱中提供了一系列关于时域响应求取的函数命令。Simulink环境下的仿真环境下的仿真 此种方式的响应仿真将在第三部分作详细介绍。202.系统时域分析21二、控制系统Matlab仿真基础(2)系统稳定性分析 线性定常系统稳定性的数学定义是控制系统闭环特征方程的全部根,不论是实根或复根,其实部均应为负值,则闭环系统就是稳定的。由此可知,求解控制系统闭环特征方程的根并进而判断所有根的实部是否小于零,这是控制系统判稳的最基本方法,同时也是Matlab中提供和使用的思路。Matlab中提供命令函数roots()实现,其调用格式为:roots(P)其中,P是系统闭环特征多项式降幂排列的系数向量。212.系统时域分析22二、控制系统Matlab仿真基础例例5 已知单位负反馈系统的开环传递函数为 试判断系统的闭环稳定性。解:k=1;z=-2;p=0,-1,-3;num,den=zp2tf(z,p,k);D=num+den;roots(D)执行结果:ans=-2.8393 -0.5804+0.6063i -0.5804-0.6063i从结果看,特征根均为负实部根,因而该系统闭环稳定。22)3)(1(2)(sssssG23二、控制系统Matlab仿真基础例例6 已知单位负反馈系统的闭环传递函数为 试判断系统的稳定性。解:den=1 -1.3 0.7 1.2 0.2;num=2 1 -1;sys=tf(num,den)roots(sys.den1)执行结果:ans=1.0000+1.0000i 1.0000-1.0000i -0.5000 -0.2000 232.02.17.03.112)(2342sssssssG从结果看,特征根中有正实部根,因而该系统不稳定。24二、控制系统Matlab仿真基础(3)系统稳态误差分析 稳态误差是系统控制准确度的评价指标,实际计算是基于响应曲线的稳态值与期望值之差。控制理论的研究中典型的外作用有单位阶跃信号、单位速度(斜坡)信号、单位加速度信号,Matlab中,通过step()函数,其稳态误差为阶跃响应曲线的稳态值与期望值(1)之差。242.系统时域分析25二、控制系统Matlab仿真基础例例7 已知一单位负反馈系统的开环传递函数为 G(s)=试求单位阶跃信号作为参考输入时产生的稳态误差。解:(a)判断系统稳定性 k=5;z=-0.2;p=0 0.5 -1.5;num,den=zp2tf(z,p,k);sys=tf(num,den);sys1=feedback(sys,1);roots(sys1.den1)执行结果:ans=-0.3770+1.9805i -0.3770-1.9805i -0.246025)5.1)(5.0()2.0(5ssss26二、控制系统Matlab仿真基础例例7 已知一单位负反馈系统的开环传递函数为 G(s)=试求单位阶跃信号作为参考输入时产生的稳态误差。解:(b)单位阶跃输入产生的稳态误差 step(sys1);t=0:0.1:300;y=step(sys1,t);ess=1-y;ess(length(ess)执行结果:ans=1.4433e-01526)5.1)(5.0()2.0(5ssss从结果来看,1.4433e-015近似为零,说明一型系统承受阶跃信号时的稳态误差为零。27二、控制系统Matlab仿真基础 频域分析法是控制系统研究中应用频率特性来分析系统性能:稳定性、快速性和稳态精度的方法。此法不必直接求解系统的微分方程,而是间接地运用系统开环频率特性曲线分析闭环系统的响应。Matlab中提供了相应绘制频率特性曲线的命令函数。(1)nyquist曲线图调用格式为:Nyquist(sys)得到连续系统的极坐标图。Dnyquist(num,den,Ts)Dnyquist(a,b,c,d,Ts)得到关于离散系统的极坐标图。273.系统频域分析28二、控制系统Matlab仿真基础(2)伯德图 Matlab中绘制系统的伯德图使用命令函数bode()实现。其调用格式为:bode(sys)得到关于连续系统的伯德图;dbode(num,den,Ts)dbode(a,b,c,d,Ts)得到关于离散系统的伯德图。(3)系统相对稳定性分析 控制理论中用幅值裕度幅值裕度和相角裕度相角裕度评价系统相对稳定性,Matlab中提供命令函数margin()从频域响应数据中计算出幅值裕度和相角裕度及其对应的角频率。gm,pm,wcp,wcg=margin(mag,phase,w)其中,wcg为剪切频率,pm为相角裕度,wcp为穿越频率,gm为幅值裕度Kg283.系统频域分析29二、控制系统Matlab仿真基础例例8 已知系统开环传递函数为 试利用Matlab画出系统的奈奎斯特图。解:num=0,0,4;den=3,7,2,0;nyquist(num,den);grid on;title(Nyquist plot G(s)=4/(3s3+7s2+2s);29)15.0)(13(2)(ssssG303031二、控制系统Matlab仿真基础例例9 已知系统的开环传递函数为试利用Matlab绘制系统的奈奎斯特图解:其程序:num=0,0,500;den=1,1,100,0;nyquist(num,den);31)100(500)(2ssssG323233二、控制系统Matlab仿真基础例例10 已知系统的开环传递函数为 试利用Matlab绘制系统的伯德图。解:程序:num=0,0,500;den=1,1,100,0;bode(num,den);grid on;3310052500)(2sssG343435二、控制系统Matlab仿真基础例例11 已知一单位反馈系统开环传递函数为试绘制bode图并计算系统频域性能指标。解:程序如下:num=0 0 0 2;den=1 6 5 0;sys=tf(num,den);mag,phase,w=bode(sys);gm,pm,wcp,wcg=margin(mag,phase,w)执行结果:gm=15.0000 pm=65.1454 wcp=2.2361 wcg=0.3731 margin(sys)35s562)(23sssG363637三、Simulink仿真基础1 Simulink简介(1)Simulink由来p 1990年,MathWorks软件公司为Matlab提供了新的控制系统模型图 输入与仿真工具,并命名为SIMULAB,使得仿真软件进入了模型 化图形组态阶段。因其名字与当时比较著名的软件SIMULA类似,1992年将该软件更名为Simulink;p 软件名称表明了系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模 型,然后利用Simulink提供的功能来对系统进行仿真和分析。作为 Matlab的一个重要组成部分,Simulink由于它所具有的上述的两大 功能和特色,以及所提供的可视化仿真环境、快捷简便的操作方 法,而使其成为目前最受欢迎的仿真软件。38q Simulink是Matlab软件的扩展,它是实现动态系统建模和仿真的一个 软件包,它与Matlab语言的主要区别在于:其与用户交互接口是基 于Windows的模型化图形输入;其结果是使得用户可以把更多的精力 投入到系统模型的构建,而非语言的编程上;q 所谓模型化图形输入是指Simulink提供了一些按功能分类的基本的 系统模块,用户只需要知道这些模块的输入输出及模块的功能,而 不必考察模块内部是如何实现的,通过对这些基本模块的调用,再 将它们连接起来就可以构成所需要的系统模型(以.mdl扩展文件存 取),进而进行仿真与分析。(2)Simulink特点39利用Simulink进行系统仿真的步骤:启动Simulink,打开Simulink模块库打开空白模型窗口;建立Smulink仿真模型;设置仿真参数,进行仿真;输出仿真结果。2 Simulink仿真基础(1)Simulink基本操作40 启动Simulink两种方法l单击Matlab Command窗口工具条上的Simulink图标;l在Matlab命令窗口输入Simulink;即弹出图示的模块库窗口界面(Simulink Library Browser),该界面右边的窗口给出Simulink所有的子模块库。每个子模块库中包含同类型的标准模型,这些模块可直接用于建立系统的Simulink框图模型。启动Simulink41菜单名菜单名菜单项菜单项功能功能FileNew-Model新建模型Model properties模型属性PreferencesSimulink界面的默认设置选项Print打印模型Close关闭当前Simulink窗口Exit Matlab退出Matlab系统EditCreate subsystem创建子系统Mask subsystem封装子系统Look under mask查看封装子系统的内部结构Update diagram更新模型框图的外观ViewGo to parent显示当前系统的父系统Model browser options模型浏览器设置Block data tips options鼠标位于模块上方时显示模块内部数据Library browser显示库浏览器Fit system to view自动选择最合适的显示比例Normal以正常比例(100%)显示模型42SimulationStartStop启动停止仿真PauseContinue暂停继续仿真Simulation Parameters设置仿真参数Normal普通Simulink模型Accelerator产生加速Simulink模型FormatText alignment标注文字对齐工具Filp name翻转模块名ShowHide name显示隐藏模块名Filp block翻转模块Rotate Block旋转模块Library link display显示库链接ShowHide drop shadow显示隐藏阴影效果Sample time colors设置不同的采样时间序列的颜色Wide nonscalar lines粗线表示多信号构成的向量信号线Signal dimensions注明向量信号线的信号数Port data types标明端口数据的类型Storage class显示存储类型ToolsData explorer数据浏览器Simulink debuggerSimulink调试器Data class designer用户定义数据类型设计器Linear Analysis线性化分析工具43 Simulink模块库(R2008a版本)模块模块名称名称Commonly Used Blocks常用模块Continuous连续模块Discontinuities 非连续模块Discrete离散模块Logic and Bit Operations 逻辑和位操作模块Lookup Table)查找表模块Math Operations 数学模块Model Verification模型检测模块Model-Wide Utilities模型扩充模块Ports&Subsystems 端口和子系统模块Signal Attributes 信号属性模块Signal Routing 信号线路模块Sinks 接收器模块Sources输入源模块User-Defined Functions 用户自定义函数模块Simulink模块库按功能进行分类,包括以下15类子库:441.连续模块连续模块Continuous名称名称功能说明功能说明Derivative微分环节Integrator积分环节State-Space状态方程模型Transfer Fcn传递函数模型Transport Delay把输入信号按给定的时间做延时Variable Transport Delay把输入信号按一个可变的时间做延时Zero-Pole零极点增益模型2.非连续模块非连续模块Discontinuous名称名称功能说明功能说明Backlash间隙非线性Coulomb&Viscous Friction库仑和黏度摩擦非线性Dead Zone死区非线性Dead Zone Dynamic动态死区非线性Hit Crossing冲击非线性Quantizer量化非线性Rate Limiter静态限制信号的变化速率Rate Limiter Dynamic动态限制信号的变化速率Relay滞环比较器,限制输出值在某一范围内变化Saturation饱和输出,让输出超过某一值时能够饱和Saturation Dynamic动态饱和输出Wrap To Zero还零非线性453.离散模块离散模块Discrete名称名称功能说明功能说明Difference差分环节Discrete Derivative离散微分环节Discrete Filter离散滤波器Discrete State-Space离散状态空间系统模型Discrete Transfer-Fcn离散传递函数模型Discrete Zero-Pole以零极点表示的离散传递函数模型Discrete-time Integrator离散时间积分器First-Order Hold一阶保持器Integer Delay整数被延迟Memory输出本模块上一步的输入值Tapped Delay延迟Transfer Fcn First Order离散一阶传递函数Transfer Fcn Lead or Lag传递函数Transfer Fcn Real Zero离散零点传递函数Unit Delay一个采样周期的延迟Weighted Moving Average权值移动平均模型Zero Order Hold零阶保持器464.逻辑和位操作模块逻辑和位操作模块Logic and Bit Operations名称名称功能说明功能说明Bit Clear位清零Bit Set位置位Bitwise Operator逐位操作Combinatorial Logic组合逻辑Compare To Constant和常量比较Compare To Zero和零比较Detect Change检测跳变Detect Decrease检测递减Detect Fall Negative检测负下降沿Detect Fall Nonpositive检测非负下降沿Detect Increase检测递增Detect Rise Nonnegative检测非负上升沿Detect Rise Positive检测正上升沿Extract Bits提取位Interval Test检测开区间Interval Test Dynamic动态检测开区间Logical Operator逻辑操作符Relational Operator关系操作符Shift Arithmetic移位运算475.查找表模块查找表模块Lookup Table名称名称功能说明功能说明Cosine余弦函数查询表Direct Lookup Table(n-D)N个输入信号的查询表(直接匹配)Interpolation(n-D)using PreLookupN个输入信号的预插值Lookup Table输入信号的查询表(线性峰值匹配)Lookup Table(2-D)两维输入信号的查询表(线性峰值匹配)Lookup Table(n-D)N维输入信号的查询表(线性峰值匹配)Lookup Table Dynamic动态查询表PreLookup Index Search预查询索引搜索Sine正弦函数查询表6.数学模块数学模块Math Operations名称名称功能说明功能说明Abs取绝对值Add加法Algebraic Constraint代数约束Assignment赋值Bias偏移Complex to Magnitude-Angle由复数输入转为幅值和相角输出Complex to Real-Imag由复数输入转为实部和虚部输出Divide除法48Dot Product点乘运算Gain比例运算Magnitude-Angle to Complex由幅值和相角输入合成复数输出Math Function包括指数函数、对数函数、求平方、开根号等常用数学函数Matrix Concatenation矩阵级联MinMax最值运算MinMax Running Resettable最大最小值运算Polynomial多项式Product乘运算Product of Elements元素乘运算Real-Imag to Complex由实部和虚部输入合成复数输出Reshape取整Rounding Function舍入函数Sign符号函数Sine Wave Function正弦波函数Slider Gain滑动增益Subtract减法Sum求和运算Sum of Elements元素和运算Trigonometric Function三角函数Unary Minus一元减法Weighted Sample Time Math权值采样时间运算497.模型检测模块模型检测模块Model Verification名称名称功能说明功能说明Assertion确定操作Check Discrete Gradient检查离散梯度Check Dynamic Gap检查动态偏差Check Dynamic Lower Bound检查动态下限Check Dynamic Range检查动态范围Check Dynamic Upper Bound检查动态上限Check Input Resolution检查输入精度Check Static Gap检查静态偏差Check Static Lower Bound检查静态下限Check Static Range检查静态范围Check Static Upper Bound检查静态上限8.模型扩充模块模型扩充模块Model-Wide Utilities名称名称功能说明功能说明Block Support Table功能块支持的表DocBlock文档模块Model Info模型信息Timed-Based Linearization时间线性分析Trigger-Based Linearization触发线性分析509.端口和子系统模块端口和子系统模块Ports&Subsystems名称名称功能说明功能说明Configurable Subsystem结构子系统Atomic Subsystem单元子系统CodeReuseSubsystem代码重用子系统Enable使能Enabled and Triggered Subsystem使能和触发子系统Enabled Subsystem使能子系统For Iterator Subsystem重复操作子系统Function-Call Generator函数响应生成器Function-Call Subsystem函数响应子系统If假设操作If Action Subsystem假设动作子系统In1输入端口Model模型Out1输出端口Subsystem子系统Subsystem Examples子系统例子Switch Case转换事件Switch Case Action Subsystem转换事件子系统Trigger触发操作Triggered Subsystem触发子系统While Iterator Subsystem重复子系统5110.信号属性模块信号属性模块Signal Attributes名称名称功能说明功能说明Data Type Conversion数据类型转换Data Type Conversion Inherited继承的数据类型转换Data Type Duplicate数据类型复制Data Type Propagation数据类型继承Data Type Propagation Examples数据类型继承例子Data Type Scaling Strip数据类型缩放IC信号输入属性Probe探针点Rate Transition比率转换Signal Conversion信号转换Signal Specification信号特征说明Weighted Sample Time权值采样时间Width信号宽度5211.信号线路模块信号线路模块Signal Routing名称名称功能说明功能说明Bus Assignment总线分配Bus Creator总线生成Bus Selector总线选择Data Store Memory数据存储Data Store Read数据存储读取Data Store Write数据存储写入Demux将一个复合输入转化为多个单一输出Environment Controller环境控制器From信号来源Goto信号去向Goto Tag Visibility标签可视化Index Vector索引向量Manual Switch手动选择开关Merge信号合并Multiport Switch多端口开关Mux将多个单一输入转化为一个复合输出Selector信号选择器Switch开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来5312.接收器模块接收器模块Sinks名称名称功能说明功能说明Display数字显示器Floating Scope浮动观察器Out1输出端口Scope示波器Stop Simulation仿真停止Terminator连接到没有连接到的输出端To File(.mat)将输出数据写入数据文件保护To Workspace将输出数据写入Matlab的工作空间XY Graph显示二维图形13.输入源模块输入源模块Sources名称名称功能说明功能说明Band-Limited White Noise带限白噪声Chirp Signal产生一个频率不断增大的正弦波Clock显示和提供仿真时间Constant常数信号Counter Free-Running无限计数器Counter Limited有限计数器Digital Clock在规定的采样间隔产生仿真时间From File(.mat)来自数据文件From Workspace来自Matlab的工作空间Ground连接到没有连接到的输入端54In1输入信号Pulse Generator脉冲发生器Ramp斜坡输入Random Number产生正态分布的随机数Repeating Sequence产生规律重复的任意信号Repeating Sequence Interpolated重复序列内插值Repeating Sequence Stair重复阶梯序列Signal Builder信号创建器Signal Generator信号发生器,可产生正弦、方波、锯齿波及随意波Sine Wave正弦波信号Step阶跃信号Uniform Random Number一致随机数14.用户自定义函数模块用户自定义函数模块User-Defined Functions名称名称功能说明功能说明Embedded Matlab Function嵌入的Matlab函数Fcn用自定义的函数(表达式)进行运算M-file S-FunctionM文件编写的S函数Matlab Fcn利用Matlab的现有函数进行运算S-Function调用自编的S函数的程序进行运算S-Function BuilderS函数建立器S-Function ExamplesS函数例子55(2)建立模型窗口 只有先创建一个空白的模型窗口,才能将模块库的相应模块复制到该窗口,通过必要的连接,建立起Simulink仿真模型,也将这种窗口称为Simulink仿真模型窗口。以下方法可用于打开一个空白模型窗口:u 在Matlab主界面中选择【File:NewModel】菜单项;u 单击模块库浏览器的新建图标 ;u 选中模块库浏览器的【File:New Model】菜单项56(3)模块操作 移动与删除 在Simulink模型或模块库窗口内,用鼠标左键单击所需模块图标,图标四角出现黑色小方点,表明该模块已经选中。在模块库中选中模块后,按住鼠标左键不放并移动鼠标至目标模型窗口指定位置,释放鼠标即完成模块拷贝。模块删除只需选定删除的模块,按Del键即可。57 模块调整p 改变模块位置与大小 选中模块,光标变成十字叉即可移动;将光标置于四角,即可改 变大小p 改变模块方向 使模块输入端输入输出端口的方向改变。选中模块后,选取菜单 FormatRotateBlock(快捷键Ctrl+R),可使模块旋转90。58 模块参数设置 双击指定模块图标,打开模块对话框,根据对话框栏目中提供的信息进行参数设置或修改。如双击模型窗口的传递函数模块,弹出图示对话框,在对话框中分别输入分子、分母多项式的系数,点击OK键,完成该模型的设置。59连接线(左键)分支线(右键)模块的连接 模块之间连接是用连接线将一个模块的输出端与另一模块的输入端连接起来;也可用分支线把一个模块的输出端与几个模块的输入端连接起来 连接线生成是将鼠标置于某模块的输出端口(显一个十字标),按下鼠标左键拖动鼠标置另一模块的输入端口即可。分支线则是将鼠标置于分支点,按下鼠标右键,其余同上。60说明模块的修改、调整、连接通常只能在仿真模型窗口中进行,不要直接对模块库中的模块进行修改或调整。文件命名和保存 选择模型窗口菜单FileSave as后弹出一个“Save as”对话框,填入模型文件名,按保存(s)即可。61说明若不设置仿真参数,则采用Simulink缺省设置.(4)系统仿真参数设定 打开Simulink仿真模型窗口,或打开指定的.mdl文件;设置仿真参数:在模型窗口选取菜单【Simulation:Parameters】,弹出“Simulation Parameters”对话框,设置仿真参数,然后按【OK】即可。62(5)系统仿真运行 仿真运行和终止:在模型窗口选取菜单【Simulation:Start】,仿真开始,至设置的仿真终止时间,仿真结束。若在仿真过程中要中止仿真,可选择【Simulation:Stop】菜单。也可直接点击模型窗口中的 (启动)、(停止)仿真。63(1)开环与闭环3 Simulink仿真实例64(2)复杂系统仿真65(3)PID控制仿真 在自动控制发展历程中,PID(比例积分微分)调节是历史最悠久、控制性能最强的调节方式。其调节原理简单,易于整定,使用方便;调节性能指标对于被控对象特性的稍许变化不很敏感,使其具有很好的调节有效性;同时可用于补偿系统使之达到大多数品质指标的要求。PID调节的传递函数模型为:)11()(sTsTKsGDIP当TD=0、TI=时为比例调节器;当TI=时为比例微分调节器,若作为校正器相当于超前校正器;当TD=0时为比例积分调节器,若作为校正器相当于滞后校正器;当KP 0、TD 0、TI 时为全PID调节器。66Kp=1,Ki=0,Kd=0Kp=1,Ki=0.1,Kd=0Kp=1,Ki=0,Kd=10Kp=1,Ki=0.1,Kd=1067Kp=1.12,Ki=0.072,Kd=3.52Kp=1,Ki=0.1,Kd=2Kp=2,Ki=0.1,Kd=10Kp=1,Ki=0,Kd=068PID调节作用分析69比例调节作用分析随KP加大,闭环系统:超调量加大响应速度加快70积分调节作用分析随TI加大,闭环系统:超调量减小响应速度微慢71微分调节作用分析随TD加大,闭环系统:超调量增大响应速度微慢724 Simulink仿真小结 Simulink是Matlab的一个扩展软件,它是基于模型化图型输入仿 真环境。模型化图型输入使得用户可以把更多的精力投入到模型的构建上 来,要求熟悉各功能模块库中各子模块的功能,熟练掌握 Simulink环境下模块的操作及线的处理,掌握自定义功能模块。掌握Simulink解法器的设置。使用Simulink进行仿真分析的关键是熟练地运用各功能子模块 构建出需要的正确的系统模型并合理地设置解法器以使仿真得以 正常运行。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!