MATLAB与系统仿真第三章MATLAB与基本PID控制系统仿真3.1自动控制系统与仿真概述3.2线性定常系统的数学模型3.3PID控制概述3.4PID控制系统仿真作业MATLAB与系统仿真1自动控制系统基本概念2自动控制系统分类3控制系统仿真基本概念4MATLAB/Simulink下的控制系统仿真5MATLAB中控制相关的工具箱3.1自动控制系统与仿真概述MATLAB与系统仿真1自动控制系统基本概念1.1开环控制系统与闭环控制系统图1.2闭环控制示意图图1.1开环控制示意图MATLAB与系统仿真闭环控制系统组成结构(1)给定环节:它是设定被控制量的给定值的装置。(2)比较环节:比较环节将所检测的被控制量和给定量进行比较,确定两者之间的偏差量。(3)中间环节:中间环节一般是放大元件,将偏差信号变换成适于控制执行机构工作的信号。(4)执行机构:一般由传动装置和调节机构组成,执行机构直接作用于控制对象,使被控制量达到所要求的数值。(5)控制对象或调节对象:它是指要进行控制的设备或过程。(6)检测装置或传感器:用于检测被控制量,并将其转换为与给定量统一的物理量。通常把比较环节、校正环节和放大环节合在一起称为控制装置。MATLAB与系统仿真反馈控制系统品质要求反馈控制系统品质要求可以归结为稳、快、准。1.稳定性稳定性对于不同的系统有不同的要求。稳定性是对系统的基本要求,不稳定的系统不能实现预定任务。稳定性通常由系统的结构决定,与外界因素无关。2.快速性快速性是指对过渡过程的形式和快慢提出的要求,一般称为动态性能或暂态性能。3.准确性准确性通常用稳态误差来表示,所谓稳态误差是指系统达到稳态时,输出量的实际值和期望值之间的误差。MATLAB与系统仿真2自动控制系统分类线性系统和非线性系统线性控制系统是由线性元件组成的系统,该系统的特征方程式可以用线性微分方程描述。如果系统微分方程的系数与自变量有关,则为非线性微分方程,由非线性微分方程描述的系统称为非线性控制系统。连续系统和离散系统连续系统各部分信号均以模拟的连续函数形式表示;离散系统的某一处或几处信号是以脉冲序列或数字形式表示的。恒值系统和随动系统恒值系统要求被控制量保持在恒定值,其给定量是不变。在随动系统中,给定量是按照事先不知道的时间函数变化,要求输出量跟随给定量的变化而变化。MATLAB与系统仿真3控制系统仿真基本概念系统仿真作为一种特殊的试验技术,在20世纪30~90年代的半个多世纪中经历了飞速发展,到今天已经发展成为一种真正的、系统的实验科学。仿真的基本思想是利用物理的或数学的模型来类比模仿现实过程,以寻求对真实过程的认识,它所遵循的基本原则是相似性原理。MATLAB与系统仿真计算机仿真基本概念1模型模型可以分为(1)物理模型。(2)数学模型。(3)仿真模型2仿真分类从模型角度可分为物理仿真和数学仿真。从计算机类型角度可分为模拟仿真、数字仿真、混合仿真、现代计算机仿真。3仿真应用仿真技术有着广泛的应用,而且应用的深度和广度也越来越大,目前主要应用在(1)航空与航天工业。(2)电力工业。(3)原子能工业。(4)石油、化工及冶金工业。(5)非工程领域,如医学、社会学、宏观经济和商业策略的研究等4仿真技术应用意义仿真技术的应用具有重要的意义,主要体现在(1)经济。(2)安全。(3)快捷。(4)具有优化设计和预测的特殊功能MATLAB与系统仿真控制系统仿真控制系统仿真是系统仿真的一个重要分支,它是一门涉及自动控制理论、计算数学、计算机技术、系统辨识、控制工程以及系统科学的综合性新型学科。它为控制系统的分析、计算、研究、综合设计以及控制系统的计算机辅助教学等提供了快速、经济、科学及有效的手段。控制系统仿真就是以控制系统模型为基础,采用数学模型替代实际控制系统,以计算机为工具,对控制系统进行实验、分析、评估及预测研究的一种技术与方法。控制系统仿真通过控制系统的数学模型和计算方法,编写程序运算语句,使之能自动求解各环节变量的动态变化情况,从而得到关于系统输出和所需要的中间各变量的有关数据、曲线等,以实现对控制系统性能指标的分析与设计。MATLAB与系统仿真计算机仿真技术发展趋势(1)硬件方面:基于多CPU并行处理技术的全数字仿真将有效提高仿真系统的速度,大大增强数字仿真的实时性。(2)应用软件方面:直接面向用户的数字仿真软件不断推陈出新,各种专家系统与智能化技术将更深入地应用于仿真软件开发之中,使得在人机界面、结果输出、综合评判等方面达到更理想的境界。(3)分布式数字仿真:充分利用网络技术进行分布式仿真,投资少,效果好。(4)虚拟现实技术:综合了计算机图形技术、多媒体技术、传感器技术、显示技术以及仿真技术等多学科,使人仿佛置身于真实环境之中,这就是“仿真”追求的最终目标。MATLAB与系统仿真4MATLAB/Simulink下的控制系统仿真控制系统的MATLAB/Simulink仿真有两种途径:(1)在MATLAB的命令窗口下,运行M文件,调用指令和各种用于系统仿真的函数,进行系统仿真。(2)直接在Simulink窗口上进行面向系统结构方框图的系统仿真MATLAB与系统仿真MATLAB适合控制系统仿真的特点MATLAB具有以下主要特点,非常适合于控制系统的仿真。(1)强大的运算功能。(2)特殊功能的TOOLBOX工具箱。(3)高效的编程效率。(4)简单易学的编程语言。(5)方便友好的编程环境。MATLAB与系统仿真Simulink适合控制系统仿真的特点Simulink它采用系统模块直观地描述系统典型环节,因此可十分方便地建立系统模型而不需要花较多时间编程。正由于这些特点,Simulink广泛流行,被认为是最受欢迎的仿真软件。Simulink实进行系统仿真非常简单,只需要如下的几个步骤:(1)启动Simulink,进入Simulink窗口;(2)在Simulink窗口下,借助Simulink模块库,创建系统框图模型并调整模块参数;(3)设置仿真参数后,启动仿真;(4)输入仿真结果。MATLAB与系统仿真5MATLAB中控制相关的工具箱MATLAB中与控制相关的基础工具箱主要有6个:控制系统工具箱(ControlSystemToolbox)系统辨识工具箱(SystemIdentificationToolbox)模型预测控制工具箱(ModelPredictiveControlToolbox)鲁棒控制工具箱(RobustControlToolbox)神经网络工具箱(NeuralNetworkToolbox)模糊逻辑工具箱(FuzzyLogicToolbox)MATLAB与系统仿真3.2线性定常系统的数学模型传递函数模型【调用格式】sys=tf(num,den)【说明】num和den分别是传递函数的分子多项式系数和分母多项式系数,按s的降幂排列。tf函数的返回值是一个对象,称之为TF对象,num和den是TF对象的属性。1.SISO系统的TF数学模型例:已知系统的传递函数为2()210sGsss试建立系统的TF模型。MATLAB与系统仿真•零极点模型【调用格式】sys=zpk(z,p,k)【说明】z、p、k分别为系统的零点、极点和增益。zpk函数的返回值是一个对象,称之为ZPK对象,z、p和k是ZPK对象的属性。如果没有零点,则z为空数组。例:SISO系统的传递函数为25(2)()(22)sGssss试建立系统的ZPK模型。MATLAB与系统仿真•离散系统的数学模型1、脉冲传递函数模型【调用格式】sys=tf(num,den,Ts)%建立离散系统的TF模型sys=zpk(z,p,k,Ts)%建立离散系统的ZPK模型【说明】num和den是离散系统脉冲传递函数的分子和分母多项式系数。z,p,k是离散系统脉冲传递函数的零点、极点和增益。Ts是离散系统的采样周期。MATLAB与系统仿真数学模型之间的转换•LTI对象之间的转换【调用格式】sys=tf(sys)%将sys对象转换为TF模型sys=zpk(sys)%转换为ZPK模型•LTI对象属性之间的转换【调用格式】[z,p,k]=tf2zp(num,den)%将TF对象属性转换为ZPK对象属性[num,den]=zp2tf(z,p,k)%将ZPK对象属性转换为TF对象属性•连续系统和离散系统之间的转换sysd=c2d(sysc,Ts)%将连续系统转换为采样周期为Ts的离散系统sysd=c2d(sysc,Ts,'method')%指定连续系统的离散化方法【调用格式】MATLAB与系统仿真sysc=d2c(sysd)%将离散系统转换为连续系统sysc=d2c(sysd,method)%指定离散系统的连续化方法methodsysd1=d2d(sysd,Ts)%改变采样周期,生成新的离散系统sysc表示连续系统的数学模型,sysd表示离散系统的数学模型。method为转换方法其取值和含义为:•'zoh'零阶保持器法,这是默认的转换方法。•'foh'一阶保持器法【说明】MATLAB与系统仿真例:系统的被控对象传递函数为:)5)(2(10)(sssG采样周期Ts=0.1秒,试将其进行离散化处理。程序:num=10;den=[1,7,10];ts=0.1;sysc=tf(num,den);sysd=c2d(sysc,ts)MATLAB与系统仿真比例微分积分被控对象rin(k)yout(k)_++PID控制器是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制偏差:)()()(tyouttrinterrorPID控制规律:其中:kp比例系数;TI积分时间常数;TD微分时间常数tDIpdttderrorTdtterrorTterrorktu0)()(1)()(3.3PID控制概述MATLAB与系统仿真1、比例控制求在不同的Kp(0.1,0.3,0.5,1,2,3)取值下闭环系统的单位阶跃响应曲线。例:设被控对象的数学模型为分析比例、微分、积分控制对系统的影响。30)1(1)(ssG•比例、积分、微分控制作用的分析MATLAB与系统仿真G0=tf(1,[1,3,3,1]);P=[0.10.30.5123];figure,holdonfori=1:length(P)G=feedback(P(i)*G0,1);step(G)end结论:比例系数增大,闭环系统的灵敏度增加,稳态误差减小,系统振荡增强;比例系数超过某个值时,闭环系统可能变得不稳定。MATLAB与系统仿真结论:可以提高系统的型别,使系统由有差变为无差;积分作用太强会导致闭环系统不稳定。2、积分控制(令Kp=1,研究系统在不同Ti值下的响应)G0=tf(1,[1,3,3,1]);Kp=1;Ti=[0.6:0.2:1.4];t=0:0.1:20;figure,holdonfori=1:length(Ti);Gc=tf(Kp*[1,1/Ti(i)],[1,0]);G=feedback(G0*Gc,1);step(G,t)endgridonaxis([0,20,-0.5,2.5])MATLAB与系统仿真3、微分控制(令Kp=Ti=1,研究系统在不同Td值下的响应)结论:微分具有预报作用,会使系统的超调量减小,响应时间变快。G0=tf(1,[1,3,3,1]);Kp=1;Ti=1;Td=[0.2:0.3:1.4];t=0:0.1:20;figure;holdonfori=1:length(Td)Gc=tf(Kp*[Ti*Td(i),Ti,1],[Ti,0]);G=feedback(G0*Gc,1);step(G,t)endgridonaxis([0,20,0,1.6])MATLAB与系统仿真(1)当阶跃输入作用时,P作用是始终起作用的基本分量;I作用一开始不显著,随着时间逐渐增强;D作用与I作用相反,在前期作用强些,随