模糊控制在倒立摆中的MATLAB仿真应用(2)

2020-03-27 04:45

图2-1 模糊控制原理框图

如图2-2所示是模糊控制器的组成部分,它包括输入量模糊化接口、知识库、模糊推理机和解模糊化接口四个部分

图2-2模糊控制器结构图

1) 模糊化接口

系统的输入量通常是一个精确值,必须由模糊化接口处理之后,才能适用于模糊控制器的求解。因此模糊化接口实际上是模糊控制器的输入接口,它的作用是把精确的输入量转化为一个模糊量。对于模糊变量 e,通常可以将它的模糊子集划分为

a) e={负,零,正}={N,Z,P}

b) e={负大,负小,零,正小,正大}={NB,NS,Z,PS,PB}

c) e={负大,负中,负小,零,正小,正中,正大}={NB,NM,NS,Z,PS,PM,PB}

2) 知识库

知识库是由数据库和规则库构成。输入变量和输出变量的模糊子集的隶属度值都存放在数据库中;规则库用来存储所有的模糊控制规则,为模糊推理机推理时提供控制律。,

3) 模糊推理机

模糊控制量是由模糊推理机得到的,它是根据输入模糊量,由模糊控制规则推理得到的。目前模糊推理方法很多,常用的有 Mamdani 推理法、Larsen 推理法、Zadel推理法等

4) 解模糊接口

模糊推理得到的结果通常是一个模糊量,不能直接作为控制量作用到被控系统上。因此,需要把它转换为一个可以被执行机构识别的精确值,该过程就叫做解模糊。通常采用的解模糊方法也有很多种,例如重心法、最大隶属度法、加权平均法、中位数法等.

3、倒立摆在仿真中的应用 3.1 连续的模糊控制 3.1.1 S函数

function [sys,x0,str,ts] = whatisit(~,x,u,flag )

switch flag case 0

[sys,x0,str,ts]=mdlInitializeSizes; case 1

sys=mdlDerivatives(x,u); case 3

sys=mdlOutputs(x); case {2,4,9} sys=[]; otherwise

error(['Unhandled flag=',num2str(flag)]); end

function [sys,x0,str,ts]=mdlInitializeSizes() sizes=simsizes; sizes.NumContStates=2; sizes.NumDiscStates=0; sizes.NumOutputs=1; sizes.NumInputs=1; sizes.DirFeedthrough=0; sizes.NumSampleTimes=1; sys=simsizes(sizes); x0=[10;10]; str=[]; ts=[0 0];

function sys=mdlDerivatives(x,u) sys(1,1)=x(2);

sys(2,1)=(10.78*sin((x(1)*pi)/180)-cos(x(1)*pi/180)*(u+0.05*(x(2)*pi/180)^2*sin(x(1)*pi/180)))/((4/3)*0.55-0.05*(cos(x(1)*pi/180))^2)*180/pi; function sys=mdlOutputs(x) sys=x(1);

3.1.2 simulink模块图

图3.1 仿真模块图

将设置好的模糊规则放进模块fuzzy logic controller,编写好的s函数放进模块s-function中。

3.1.3 模糊控制规则

图3.2 模糊控制

图3.3 输入x的隶属函数和论域

图3.4 输入y的隶属函数和论域

图3.5 输出z的隶属函数和论域

图3.6 模糊控制规则


模糊控制在倒立摆中的MATLAB仿真应用(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:主体防水施工专项方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: