第8章 matlab在自动控制原理中的应用(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统模型的连接
输出反馈 反馈联接 系统串联联接 系统并联联接 系统增广联接

由图所示,YB= WBUB = WBWAUA = WU 故 W(s) = WA(s) WB(s) 多项式相乘由卷积函数conv实现,其表示式为:
f = conv(fA,fB), g = conv(gA,gB)

8.1.3 对象属性的获取和修改
对象属性的获取 get set 模型的参数转换和提取 dssdata ssdata tfdata zpkdata


get(s1) get(s5) s5.a set(s1,'num',[0,1,2,3,4],'den',[2,4,6,8,10]) get(s1) 用单元阵列的访问方法提取单项属性和对它单独赋值 s1.num s1.num{:} s1.num={[0,5,4,3,2]} s6.p s6.p{2} s6.p{2}=[0.5;0.7]
第 8章 Matlab在自动控 制原理中的应用
线性控制系统的特殊之处

研究线性系统中的时不变系统 系统复杂,具有各种数学描述方法,由各个数 学模型求出总的系统数学模型,研究系统特性 的同时,注意研究系统中各个部件的状态。 控制系统多为闭环反馈系统,一般研究其开环 系统如何反映和影响系统的闭环特性 由于控制系统的应用广泛性,在Matlab的控制 工具箱有很多,如鲁棒控制工具箱,神经网络 工具箱等
% 用传递函数法写出这两个系统的描述参数: fA=[5,10]; gA=[5,2,1]; fB=4; gB=[1,1,0]; % 两环节串联后合成的传递函数fh1,gh1为 fh1=conv(fA,fB); gh1=conv(gA,gB); disp('串联后的传递函数') printsys(fh1,gh1,'s') % 两环节并联后合成的传递函数fh2,gh2为 fh2=polyadd(conv(fA,gB),conv(gA,fB)); gh2=conv(gA,gB); disp('并联后的传递函数') printsys(fh2,gh2,'s') % 将B环节放在负反馈支路上后合成的传递函数fh3,gh3为 fh3=conv(fA,gB); gh3=polyadd(conv(fA,fB),conv(gA,gB)); disp('将B环节放在反馈支路上后的传递函数') printsys(fh3,gh3,'s')
系统的连接方法如图6.18-3。复合系统的传递函 数
H ( s) WA ( s ) f A ( s) g B ( s) 1 WA ( s )WB ( s ) f A ( s ) f B ( s ) g A ( s ) g B ( s )
故MATLAB表达式为 f=conv(fA,gB) g=polyadd(conv(fA,fB),conv(gA,gB)
8.1 控制工具箱中的LTI对象
线性系统可以采用四种不同方法来进行描述, 每种方法又有几个参数矩阵,因此对系统进行 调用和计算时都很不方便,基于面向对象的设 计思想,建立专用的数据结构类型,将各种模 型封装成统一的LTI对象。在一个名字下包含 了该系统的所有属性。 8.1.1 LTI 对象的类型和属性 控制工具箱中一般有三个对象ss、 tf 、zpk 共同属性p239 表8.1 Ts=0,Ts=-1 Td 输入时延 特有属性p240 表8.2
例6.19 系统的串联、并联和反馈
系统的并联 Y= WAU + WBU = (WA+WB) U = WU 故 W(s) = WAຫໍສະໝຸດ s) + WB(s)
f = polyadd(conv(fA,gB),conv(fB,gA)) g = conv(gA,gB)
例6.19 系统的串并联和反馈
系统的反馈

8.1.2 LTI模型的建立
dss(a,b,c,d…)生成描述状态空间模型 filt(num,den…)生成DSP形式的离散传递函数(z-1) ss(a,b,c,d…)生成状态空间模型 tf(num,den,…)生成传递函数模型 zpk(z,p,k…)生成零极增益模型

s1=tf([3,4,5],[1,3,5,7,9]) s2=tf([3,4,5],[1,3,5,7,9],0.1,'InputName','电 流','OutputName','转速') s3=tf([4,5],[1,5,7,9],'InputDelay',0.1,'Input Name','u','OutputName','y') s4=filt([3,4,5],[1,3,5,7,9],0.1) s5=ss(s1)

不同行代表不同输出,不同列代表不同输入
z={[],-0.5}; p={0.3,[0.1+2i,0.1-2i]}; k=[2,3]; s6=zpk(z,p,k,-1) 双输入,单输出,离散系统 z={[];-0.5}; %单元阵列 p={0.3;[0.1+2i,0.1-2i]}; k=[2;3]; s7=zpk(z,p,k) 单输入,双输出,连续系统
[f1,g1]=tfdata(s1) f1{1},g1{1}

[z1,p1,k1,T1s]=zpkdata(s1) z1{1},p1{1}


[a2,b2,c2,d2,Ts2,InputDelay]=ssdata(s2)
模型类型的检验 cs1=class(s1) isa(s1,'tf') isct isdt issiso


2.模型类型的参数转换和提取
第六章中采用转换命令:ss2tf,sstzp,tf2zp, tf2ss,zp2tf,zp2ss等。用这些命令时,输入变 元中要键入系数矩阵,不太方便。在采用LTI 模型以后,就不再用这些命令来进行模型变换 了,而用能直接调用系统的LTI名称的命令来 实现这些转换。这些命令就是dssdata,ssdata, tfdata和zpkdata,它们分别用来获得转换后的系 统状态空间、传递函数和零极增益参数。与ss, tf,zpk命令的不同在于这些带data的命令仅仅 用来转换参数,但并不生成新的系统。
相关文档
最新文档