您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MATLAB在控制理论中的应用.
补充内容MATLAB应用1控制系统模型2控制系统的时域分析3控制系统的根轨迹4控制系统的频域分析5系统的状态空间分析函数6极点配置和观测器设置7最优控制系统设计MATLAB命令列表1控制系统模型pipipxx1.1控制系统的描述与LTI(lineartime-invariantsystems)对象1.控制系统的模型及转换线性控制系统是一般线性系统的子系统。在MATLAB中,对自动控制系统的描述采用三种模型:状态空间模型(ss)、传递函数模型(tf)以及零极点增益模型(zpk)。模型转换函数:ss2tf,ss2zp,tf2ss,tf2zp,zp2ss和zp2tf。2.LTI对象为了对系统的调用和计算带来方便。根据软件工程中面向对象的思想,MATLAB通过建立专用的数据结构类型,把线性时不变系统(LTI)的各种模型封装成为统一的LTI对象。MATLAB控制系统工具箱中规定的LTI对象包含了三种子对象:ss对象、tf对象和zpk对象。每个对象都具有其属性和方法,通过对象方法可以存取或者设置对象的属性值。在MATLAB的ControlSystemToolbox(控制系统工具箱)中提供了许多仿真函数与模块,用于对控制系统的仿真和分析。属性说明:(1)当系统为离散系统时,给出了系统的采样周期Ts。Ts=0或缺省时表示系统为连续时间系统;Ts=-1表示系统是离散系统,但它的采样周期未定。(2)输入时延Td仅对连续时间系统有效,其值为由每个输入通道的输入时延组成的时延数组,缺省表示无输入时延。(3)输入变量名InputName和输出变量名OutputName允许用户定义系统输入输出的名称,其值为一字符串单元数组,分别与输入输出有相同的维数,可缺省。(4)Notes和用户数据Userdata用以存储模型的其它信息,常用于给出描述模型的文本信息,也可以包含用户需要的任意其它数据,可缺省。对象名称属性名称意义属性值的变量类型tf对象(传递函数)den传递函数分母系数由行数组组成的单元阵列num传递函数分子系数由行数组组成的单元阵列variable传递函数变量s、z、p、k、z-1中之一zpk对象(零极点增益)k增益二维矩阵p极点由行数组组成的单元阵列variable零极点增益模型变量s、z、p、k、z-1中之一z零点由行数组组成的单元阵列ss对象(状态空间)a系数矩阵二维矩阵b系数矩阵二维矩阵c系数矩阵二维矩阵d系数矩阵二维矩阵StateName状态变量名字符串单元向量1.2LTI模型的建立及转换函数在MATLAB的控制系统工具箱中,各种LTI对象模型的生成和模型间的转换都可以通过一个相应函数来实现。1z函数名称及基本格式功能dss(a,b,c,d,…)生成(或将其它模型转换为)描述状态空间模型filt(num,den,…)生成(或将其它模型转换为)DSP形式的离散传递函数ss(a,b,c,d,…)生成(或将其它模型转换为)状态空间模型tf(num,den,…)生成(或将其它模型转换为)传递函数模型zpk(z,p,k,…)生成(或将其它模型转换为)零极点增益模型表3生成LTI模型的函数[例4]生成离散系统的零极点模型。MATLAB源程序为:z={[],-0.5};p={0.3,[0.1+2i,0.2-2i]};k=[2,3];s6=zpk(z,p,k,-1)运行结果为:Zero/pole/gainfrominput1tooutput:←从第1输入端口至输出的零极点增益2-------(z-0.3)Zero/pole/gainfrominput2tooutput:←从第2输入端口至输出的零极点增益3(z+0.5)-------------------------(z-(0.1+2i))(z-(0.2-2i))Samplingtime:unspecified表明该系统为双输入单输出的离散系统。1.3LTI对象属性的设置与转换1.LTI对象属性的获取与设置函数名称及基本格式功能get(sys,‘PropertyName’,数值,…)获得LTI对象的属性set(sys,‘PropertyName’,数值,…)设置和修改LTI对象的属性ssdata,dssdata(sys)获得变换后的状态空间模型参数tfdata(sys)获得变换后的传递函数模型参数zpkdata(sys)获得变换后的零极点增益模型参数class模型类型的检测表4对象属性的获取和修改函数2.LTI模型的转换函数表5模型检测函数函数名及调用格式功能isct(sys)判断LTI对象sys是否为连续时间系统。若是,返回1;否则返回0isdt(sys)判断LTI对象sys是否为离散时间系统。若是,返回1;否则返回0isempty(sys)判断LTI对象sys是否为空。若是,返回1;否则返回0isproper判断LTI对象sys是否为特定类型对象。若是,返回1;否则返回0issiso(sys)判断LTI对象sys是否为SISO系统。若是,返回1;否则返回0size(sys)返回系统sys的维数1.4典型系统的生成1.随机生成N阶稳定的连续状态空间模型函数rss()格式:sys=rss(N,P,M)功能:随机生成N阶稳定的连续状态空间模型,该系统具有M个输入,P个输出。缺省是P=M=1,即sys=rss(N)。2.随机生成N阶稳定的连续线性模型系数函数rmodel()格式:[num,den]=rmodel(N,P)功能:生成一个N阶连续的传递函数模型系统,该系统具有P个输出。3.离散时间N阶稳定随机系统生成函数drss()和drmodel()drss和drmodel函数的用法与rss和rmodel函数的用法相仿,不同点仅仅在于它生成的是离散系统。4.二阶系统生成函数ord2格式:[A,B,C,D]=ord2(Wn,Z)功能:生成固有频率为Wn,阻尼系数为Z的连续二阶的状态空间模型系统。系统时间延迟的Pade近似函数pade()格式:sysx=pade(sys,N)功能:对连续系统sys产生N阶Pade近似的延时后,生成新的系统sysx。1.5LTI模型的简单组合与复杂模型组合1.LTI模型的简单组合(1)若假定两环节均为单输入单输出的系统SA和SB。·两个环节级联:sys=series(SA,SB)·两个环节并联:sys=parallel(SA,SB)·A环节前向,B环节反馈:S=feedback(SA,SB)(2)当在多输入多输出系统中,必须增加输入变量和输出变量的编号:·级联:sys=series(SA,SB,outputA,inputB)·并联:sys=parallel(SA,SB,InputA,InputB,OutputA,OutputB)·反馈:sys=feedback(SA,SB,feedout,feedin,sign)[例]计算所示系统的传递函数。MATLAB源程序为:s1=tf([2,5,1],[1,2,3])%系统s1的传递函数模型s2=zpk(-2,-10,5)%系统s2的零极点增益模型sys=feedback(s1,s2)%s1环节前向,s2环节反馈5(s+2)/(s+10)程序运行结果为:Transferfunction:←系统s1的传递函数模型2s^2+5s+1------------------s^2+2s+3Zero/pole/gain:←系统s2的零极点增益模型5(s+2)-----------(s+10)Zero/pole/gain:←系统s1、s2的反馈零极点增益模型0.18182(s+10)(s+2.281)(s+0.2192)-----------------------------------------(s+3.419)(s^2+1.763s+1.064)2.LTI模型的复杂模型组合对复杂系统的任意组合,在MATLAB中,则采用集成的软件包,让机器自动去完成复杂的组合,人们只要输入各环节的LTI模型和相应的联接矩阵与输入矩阵,指定输出变量,软件包会自动判别输入的模型表述方式,作出相应的运算并最后给出组合后系统的状态方程。在求解过程中,主要涉及append()函数和connect()函数。通常,由以下五个步骤来完成:①对方框图中的各个环节进行编号,建立它们的对象模型。②利用append函数命令建立无连接的状态空间模型。sap=append(s1,s2,…,sm)③按规定写出系统的互联接矩阵q互联矩阵q中的每一行由组合系统的一个输入编号和构成该输入的其它输出编号组成,其中该行的第一个元素为该输入的编号,接下来的元素则由构成该输入的其它子框的输出编号组成,如果为负反馈,则编号应取负号。④选择组合系统中需保留的对外的输入和输出端的编号并列出。Inputs=[i1,i2,…]outputs=[j1,j2,…]⑤用connect命令生成组合后的系统。1.6连续系统与采样系统之间的转换若连续系统的状态方程为:DuCxyBuAxx则对应的采样系统状态方程为:)()()()()()1(kxuDkxCkykuBkxAkxdddd其中AtdeAsTtAdBdeB0)(CCdDDd,Ts为采样周期。、、、反之,采样系统到连续系统的转换关系为上式的逆过程:)ln(1dsATAddABIAB1)(dCCdDD、、、1.转换原理2.连续系统与采样系统之间的转换函数函数名功能调用格式c2d连续系统转换为采样系统sysd=c2d(sysc,Ts,method)d2c采样系统转换为连续系统sysc=d2c(sysd,method)d2d采样系统改变采样频率sys=d2d(sys,Ts)[例17]系统的传递函数为:输入延时Td=0.5秒,试用一阶保持法对连续系统进行离散,采样周期Ts=0.1s。MATLAB程序为:sys=tf([2,5,1],[1,2,3],'td',0.5);%生成连续系统的传递函数模型sysd=c2d(sys,0.1,'foh')%形成采样系统程序运行结果为:Transferfunction:2.036z^2-3.628z+1.584z^(-5)*-------------------------------------z^2-1.792z+0.8187Samplingtime:0.132152)(22sssssH2控制系统的时域分析时域分析是一种直接在时间域中对系统进行分析的方法,具有直观和准确的优点。它是根据控制系统输入与输出之间的时域表达式,分析系统的稳定性、瞬态过程和稳态误差。控制系统最常用的分析方法有两种:一是当输入信号为单位阶跃时,求出系统的响应;二是当输入信号为单位冲激函数时,求出系统的响应。1.生成特定的激励信号的函数gensig()格式:[u,t]=gensig(type,tau)功能:按指定的类型type和周期tau生成特定类型的激励信号u。其中变元type可取字符为:‘sin’(正弦)、‘square’(方波)、‘pulse’(脉冲)。2.LTI模型的单位冲激响应函数impulse()格式:impulse(sys)功能:绘制系统sys(sys由函数tf、zpk或ss产生)的单位冲激响应,结果不返回数据,只返回图形。[例19]系统传递函数为:求脉冲响应。MATLAB程序如下:sys=tf(4,[114]);%生成传递函数模型impulse(sys);%计算并绘制系统的单位冲激响应title('脉冲响应');该程序运行所得结果如图5所示。44)(2sssG图5系统的脉冲响应3.状态空间模型系统的零输入响应函数initial()格式:initial(sys,x0)功能:绘制状态空间模型sys在初始条件x0下的零输入响应,不返回数据,只绘出响应曲线。该响应由如下方程表征:连续时间:Axx'Cxy0)0(xx离散时间:][]1[kAxkx][][kCxky0]0[xx、、、、4.LTI模型任意输入的响应函数lsim()格式:lsim(sys,u,T
本文标题:MATLAB在控制理论中的应用.
链接地址:https://www.777doc.com/doc-2887279 .html