① 构造状态空间模型:idss模型 定义具有如下形式的状态空间模型结构:
x(kT?T)?Ax(kT)?Bu(kT)?Ke(kT)y(kT)?Cx(kT)?Du(kT)?e(kT) (9.18) x(0)?x0%x&(t)?Ax(t)?Bu(t)?K?(t)或 y(t)?Cx(t)?Du(t)??(t) (9.19)
x(0)?x0定义式(9.18)离散模型的语法结构为:m= idss(A,B,C,D,K,X0,'Ts',T),若令T=0,则表示连续时间模型(见式9.19)即:m=idss(A,B,C,D,Kt,X0,'Ts',0)
② 黑箱。离散时间参数化的模型:
假设对离散时间状态空间模型的内部结构一无所知,如果是线性系统,可以使用下列简单的命名方法,可以对1-10阶的系统进行估计:m = pem(Data)
对于某一阶次n的黑箱模型可以使用:m = pem(Data,n)
也可以指定一系列不同的阶次nn = [n1,n2,...,nN]进行辨识并绘图比较来决定所需的阶次:m = pem(Data,'nx',nn)
所有这些黑箱模型可以由子空间方法进行初始化,可以使用n4sid命令对状态空间模型进行估计:m = n4sid(Data,n)
③ 离散/连续时间系统的参数结构模型:
对于给定结构的状态空间模型,主要讨论带自由参数的idss模型。一旦定义了结构为ms,则可以通过如下命令估计它的参数:m = pem(Data,ms)
例9.10 估计一个系统的自由参数 A=[-0.2 0;0 -0.3]; B=[2;4]; C=[1 1 ];D=0; m0=idss(A,B,C,D); m0.As=[NaN 0;0 NaN]; m0.Bs=[NaN; NaN]; m0.Cs=[1 1]; m0.Ts=0;
u=iddata([],idinput([300,1])); e=iddata([],randn(300,1));
18
y=sim(m0,[u,e]); z=[y,u]; plot(y) m=pem(z,m0)
9.3 模糊逻辑工具箱
针对模糊数学的广泛应用,MathWorks公司在其MATLAB中加入了Fuzzy Logic工具箱,该工具箱由长期从事模糊逻辑和模糊控制的专家和技术人员编制,提供了强大的功能。
① 图形化的系统设计界面。
② 支持模糊逻辑中的高级技术,如自适应神经-模糊推理系统、用于模式识别的模糊聚类技术和模糊推理方法选择等。
③ 集成的仿真和代码生成功能,实现了MATLAB模糊逻辑控制工具箱和SIMULINK的无缝连接,还可以通过Real-Time Workshop生成ANSIC原代码有利于实际应用。
④ 用户完成模糊逻辑系统的设计后,可以将设计结果以ASCⅡ码的形式保存。 模糊工具箱提供了三种类型的工具。
① 命令行函数。通过调用系统的命令函数或者用户自定义的函数,这些函数通常是以MATLAB的M文件形式来完成模糊逻辑算法;
② 图形界面工具。通过该工具用户可以在基于图形界面的环境下直观方便地设计、分析和实现模糊推理系统;
③ 仿真模块与实例。提供在Simulink环境下实现高速模糊逻辑推理的设计和使用。 9.3.1.模糊逻辑工具箱的图形界面 用fuzzy命令打开FIS编辑器的图形界面,见图9.14,通过此界面可以定义整个模糊系统。默认的是,界面提供Mamdani法的单输入单输出;OR和AND算子分别由max和min实现,蕴含关系用min,合成规则用max,用重心法(centroid)去模糊化。
下面以一个调节一阶过程的模糊控制器来说明模糊工具
图9.14 FIS编辑器的图形界面
19
箱图形界面。考虑传递函数:
0.8z?1 (9.18) H(z)??11?0.5z令r(t)为给定信号,y(t)为离散输出。模糊控制器有两个输入:误差e(t)及它的变化Δe(t),其中:
e(t)?y(t)?r(t)?e(t)?e(t)?e(t?1) (9.20)
这两个输入量分别用变量error和d_error表示,并定义在三个模糊集上,其高斯隶属度函数定义在[-10 10]区间。
(1) 在图9.14所示窗口中,在Edit菜单下选择“Add input”添加一个输入量。用鼠标选中输入输出变量后,可以指定其变量名称或max-min、sum-prod等方法。 (2) 图9.15是定义在[-10 10]区间上的误差变量,并使用三个高斯隶属函数,分别命名为Negative、Nil和Positive。
(3) 定义了全部的输入输出变量后,在菜单View下选择“Rules”打开规则编辑窗口,如图9.16所示,每个规则末尾有一个括号括起来的权重系数。选中相应的规则可以对其进行修改,或者点击右键选择“Add rule”添加规则。
在这个窗口中,还可以选择规则的编写语言种类,并通过菜单View能够打开规则观察窗口和表面视图窗
图9.16 模糊规则编辑器
20
图9.15 定义误差变量的隶属度函数编辑器
口。在规则视图窗口(见图9.17)中可以用鼠标拖拽或直接输入来调整输入向量并可观察到输出结果的表面图形和它去除离散化后的值。在表面视图窗口可以看到随输入变量变化的输出变量的表面图形。
本例的系统可以通过主窗口File菜单下的“Export to Disk”导出至一个FIS模糊调节器扩展文件中,也可以以模糊矩阵的形式导出至工作变量空间(workspace)中。导出的文件能够在集成的调试编辑器中得到模糊控制器的语言描述。使用如下命令进入调试编辑:
>> edit ex_fuzzy.fis
回车后在编辑器(Editor)显示其对应的fis文本:
[System] Name='ex_fuzzy' Type='mamdani' Version=2.0 NumInputs=2 NumOutputs=1 NumRules=9 AndMethod='min' OrMethod='max' ImpMethod='min' AggMethod='max'
DefuzzMethod='centroid' [Input1] Name='error' Range=[-10 10] NumMFs=3
MF1='Negative':'gaussmf',[4.247 -10] MF2='Nil':'gaussmf',[4.247 -1.11e-016] MF3='Positive':'gaussmf',[4.247 10] [Input2] Name='d_error' Range=[-10 10] NumMFs=3
MF1='Negative':'gaussmf',[4.247 -10] MF2='Nil':'gaussmf',[4.247 -1.11e-016]
21
图9.17 查看规则视图窗口
MF3='Positive':'gaussmf',[4.247 10] [Output1] Name='shuchu' Range=[-10 10] NumMFs=5
MF1='NG':'trimf',[-15 -10 -5.001] MF2='N':'trimf',[-9.999 -5 -0.000717] MF3='Z':'trimf',[-4.999 -5.551e-017 4.999] MF4='P':'trimf',[0.000717 5 9.999] MF5='PG':'trimf',[5.001 10 15] [Rules] 1 1, 5 (1) : 1 1 2, 4 (1) : 1 1 3, 3 (1) : 1 2 1, 4 (1) : 1 2 2, 3 (1) : 1 2 3, 1 (1) : 1 3 1, 3 (1) : 1 3 2, 1 (1) : 1 3 3, 2 (1) : 1
通过主窗口File菜单下的“Export to Worksapce”导出至工作变量空间中,如图9.18所示,并可以为该矩阵变量命名。可以在SIMULINK模型或M文件中应用这个模糊推理系统。
图9.18 导出模糊结构到工作变量空间 图9.19 SIMULINK中的模糊逻辑控制器模块
9.3.2 在SIMULINK中应用模糊推理系统 MATLAB的模糊逻辑工具箱提供了与SIMULINK的无缝连接,建立了模糊逻辑推理系统后,可以在SIMULINK中对其仿真。
图9.20 模糊系统模块参数输入窗口
22
系统识别 matlab第6章 控制工程类工具箱介绍
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)