模糊控制在matlab中的实现

模糊控制在MATLAB中的实现,1、采用MATLAB语言根据具体的控制算法编程,2、利用MATLAB提供的模糊逻辑工具箱函数,3、利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境,仿真方法:,简单,直观,复杂但灵活,MATLAB工具箱提供的图形化工具:,模糊系统,例:小费问题,小费与服务及食物质量有关。,输入:服务及食物质量,2个输入。,输出:小费,1个输出。,语言值:,食物:差、好;0—10,服务:差、好、很好;0—10,小费:少、中等、高;0—30,模糊规则: 1、如果服务差或食物差,则小费少;,2、如果服务中等,则小费中等;,3、如果服务好或食物非常可口,则小费高。,在matlab工作窗口输入:fuzzy+回车或fuzzy + 文件名(.fis) 进入图形界面编辑,增加输入变量,输入mfedit或选择编辑隶属度函数菜单,输入服务的隶属度函数,输入mfedit或选择编辑隶属度函数菜单,输入食物的隶属度函数,输入mfedit,或选择编辑隶属度函数菜单,输出小费的隶属度函数,将修改保存到工作空间,输入ruleedit,或选择编辑模糊规则菜单,模糊规则: 1、如果服务差,食物差,则小费少;,2、如果服务好,则小费中等;,3、如果服务好和食物非常可口,则小费高。,浏览模糊规则,模糊推理输入输出曲面视图,完成模糊推理系统的构建。,模糊推理系统的存储:,1、选择File→Export菜单将创建的模糊推理系统 存成*.fis文件。 2、选择File→Save to Workspace as …. 保存到matlab工作空间,输入变量名(英文命名)。,例:自适应模糊PID控制器,设计一模糊控制器 步骤 1. 确定e,de和u的论域 2. e,de和u语言变量的选取 3. 规则的制定 4. 推理方法的确定,假定被控对象的传递函数为:,利用Simulink动态仿真,1. 根据系统实际情况,选择e,de和U (△Kp,△Ki,△Kd)的论域 e range : [-1 1] de range: [-0.1 0.1] u range: [0 2] 2. e,de和u语言变量的选取 e 8个:NB,NM,NS,NZ,PZ,PS,PM,PB de 7个:NB,NM,NS,Z,PS,PM,PB U 7个:NB,NM,NS,Z,PS,PM,PB,利用MATLAB的Toolbox工具,偏差的隶属度函数,输入的隶属度函数,偏差变化的隶属度函数,输出的隶属度函数,△Kp,△Ki,△Kd,根据以上规律得△Kp 、△Ki、△Kd的模糊规则表,根据设计经验,得出改变PID参数△Kp,△Ki,△Kd的规律,当偏差较大时, △Kp=较大(使系统响应加快), Kd=零或较小 Ki=0(避免过大的超调),当偏差中等时, △Kp=较小(使系统响应具有较小的超调), Kd=适当(对系统影响较大) Ki=适当,当偏差较小时, △Kp=较大(使系统具有良好的稳态性能), Kd=适当(避免在平衡点附近振荡) Ki=较大(使系统具有良好的稳态性能),,,,3.模糊规则确定,p65,4.推理方法的制定,推理方法: 采用 ‘mamdani’方法 去模糊方法:加权平均法 选择隶属函数的形式:三角型,MATLAB,利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境,,模糊规则:,,模糊规则:,,0.1,1,-0.1,-1,0,2,用surfview菜单命令看模糊控制器的输出量,整定出的△Kp,△Ki,△Kd代入PID算法的离散 差分公式,,1、双击fuzzy contrller,给模糊控制器命名→OK 2、在matlab窗口中输入命令: 命名=readfis(‘变量名. fis’),将*fis文件导入Simulink模型中的步骤:,,Scope 2,,Scope 1,Scope 3,利用MATLAB提供的模糊逻辑工具箱函数,创建一个新的模糊推理系统(模糊控制器),输入输出的量化等级都为7级 e、ec、 u ={-3,-2,-1,0,1,2,3} 各取7个语言值,可取:模糊子集:负大、负中、负小、零、正小、正中、正大 e、ec的论域 =[-3,3] u的论域 =[-4.5, 4.5] 隶属度函数任意确定。,%模糊控制器设计 a=newfis( fuzzf ); %创建新的模糊推理系统 f1=1; a=addvar(a, , e ,[-3*f1,3*f1]); %添加 e 的模糊语言变量 a=addmf(a, ,1, NB , zmf ,[-3*f1,-1*f1]); %添加 e 的模糊语言变量的隶属度函数(z型) a=addmf(a, ,1, NM , trimf ,[-3*f1,-2*f1,0]); %隶属度函数为三角形 a=addmf(a, ,1, NS , trimf ,[-3*f1,-1*f1,1*f1]); a=addmf(a, ,1, Z , trimf ,[-2*f1,0,2*f1]); a=addmf(a, ,1, PS , trimf ,[-1*f1,1*f1,3*f1]); a=addmf(a, ,1, PM , trimf ,[0,2*f1,3*f1]); a=addmf(a, ,1, PB , smf ,[1*f1,3*f1]);,f2=1; a=addvar(a, , ec ,[-3*f2,3*f2]); %添加 ec 的模糊语言变量 a=addmf(a, ,2, NB , zmf ,[-3*f2,-1*f2]); a=addmf(a, ,2, NM , trimf ,[-3*f2,-2*f2,0]); a=addmf(a, ,2, NS , trimf ,[-3*f2,-1*f2,1*f2]); a=addmf(a, ,2, Z , trimf ,[-2*f2,0,2*f2]); a=addmf(a, ,2, PS , trimf ,[-1*f2,1*f2,3*f2]); a=addmf(a, ,2, PM , trimf ,[0,2*f2,3*f2]); a=addmf(a, ,2, PB , smf ,[1*f2,3*f2]);,

模糊控制在matlab的实现,模糊控制在matlab中的实现相关推荐

  1. MATLAB水箱液位模糊控制仿真程序

    MATLAB水箱液位模糊控制仿真程序 题目 以水位的模糊控制为例,设有一个水箱,通过调节阀门可向内注水和向外抽水,设计一个模糊控制器,通过调节阀门将水位稳定在固定点附近,按照日常的操作经验,可以得到基 ...

  2. 模糊控制洗衣机MATLAB模型,基于matlab的洗衣机模糊控制仿真

    基于matlab的洗衣机模糊控制仿真 基于 Matlab 的洗衣机模糊控制仿真模糊洗衣机是一个多输入多输出的控制系统.在实际中,模糊推理的前件和后件之间的关系对于不同的因素有所不同.例如,肮脏程度和水 ...

  3. 水库调度matlab,基于MATLAB模糊系统在水库调度中的应用初探_廖明潮

    文章编号:1009-4881(2004)01-0022-03 收稿日期:2003-04-25 修回日期:2003-12-15 作者简介:廖明朝(1968-),男,湖北省洪湖市人,讲师. 基于MATLA ...

  4. matlab在电气信息类专业中的应用,MATLAB在电气信息类专业中的应用(高等学校应用型特色规划...

    第1章 matlab语言总览 1.1 matlab简介 1.1.1 matlab概况 1.1.2 matlab基本工作界面 1.2 matlab的工作环境 1.3 matlab入门 1.4 matla ...

  5. 基于matlab的磁悬浮控制系统,基于MatLab的磁悬浮球控制系统的设计

    基于MatLab的磁悬浮球控制系统的设计 对磁悬浮球系统的构成.控制器的设计.软硬件的实现进行了介绍.采用M (本文共4页) 阅读全文>> 磁悬浮技术是集电磁学.电子技术.控制工程.信号处 ...

  6. matlab选修结课作业,matlab结课作业

    文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. 山西大同大学 matlab 课程结课作业 MATLAB 程序应用 姓名: 课程序号: 2 班级: 学号: 2013 ...... 山西 ...

  7. matlab在曲线给命名,matlab 利用xlsread画图,怎么将一组excel数据导入,通过matlab作图...

    Matlab 循环 for 语句 xlsread EXCEL表格数据导入 画图 Matlab的 xlsread() 函数可以将Excel数据到matlab工作空间,然后就可以根据读入据作图.下面给出操 ...

  8. matlab科学计算及分析,matlab科学计算

    spContent=当前,科学计算已经成为科学研究.技术创新的重要方法与手段,而作为实现工具的科学计算软件无疑具有至关重要的作用.MATLAB为众多领域的计算问题提供了全面的解决方案,代表了当今国际科 ...

  9. matlab 自定义对象,面向对象:MATLAB的自定义类 [MATLAB]

    这几天刚刚开始学习MATLAB的面向对象编程.以前做的事情都是用MATLAB写一些简单的脚本或者函数,这方面MATLAB成熟的函数和直截了当的矩阵运算方法和语法都很容易上手,方便人专注于算法本身.前几 ...

  10. 控制工程matlab实验报告小结,控制工程MATLAB实验报告.doc

    控制工程MATLAB实验报告 浙江科技学院 机电系统开放性实验 设计题目: MATLAB控制机电系统实分析 专 业: 机 械 设 计 制 造及 其 自 动 化 班 级: 机 制 122 学生姓名: 王 ...

最新文章

  1. 【转载】mysql主键的缺少导致备库hang
  2. 常用的CSS命名规则
  3. python内置数据结构之str
  4. C++ Opengl 显示列表源码
  5. java运行jar命令提示没有主清单属性
  6. python3 join函数_Python3 join函数和os.path.join用法详解
  7. 安装 Git ( Windows、linux、Mac)
  8. maven构建MyBatis项目
  9. 启动项目无法打印日志处理及logback简单使用
  10. zookeeper安装与测试
  11. SelfUpdate 树不起作用
  12. 让工程师拥有一台“超级”计算机——字节跳动客户端编译加速方案
  13. 人行发布2018年度银行科技发展获奖名单
  14. 关于RIGOL可编程电源连接说明(网口连接)
  15. 万恶的less-loader
  16. 家庭NAS方案-树莓派安装使用OpenMediaVault
  17. 外星文明 未来计算机,科学家有望未来在地球“设计打印”外星生命
  18. 量子计算机 国外大学,全球首款纯硅量子计算机芯片在新南威尔士大学诞生
  19. 关于datanode进程无法启动的另一种解决方法 java.io.IOException: Incompatible clusterIDs in /export/servers/hadoop-3.1.
  20. Open-Falcon学习笔记(一)Open-Falcon v0.3.0环境搭建

热门文章

  1. java sde_Java操作Oracle空间信息介绍(SDE)
  2. 随笔荟萃 | sincerity
  3. HTTP协议的头信息详解 1
  4. 3DMax切割、拆分(分离模型)
  5. 【Window】运行指令大全
  6. Codeforces Round #579 (Div. 3)——E. Boxers
  7. Python开发植物大战僵尸游戏,详细教程
  8. android xml文件放在哪里,android 创建 xml文件
  9. ensp模拟器下简单ospf配置
  10. CC1101 433无线模块,STM8串口透传