2020年智能控制实验报告
- 格式:doc
- 大小:96.00 KB
- 文档页数:33
智能控制实验报告
姓名
学院
专业自动化班级
学号
指导教师
成绩
2019 年 12 月 25 日
实验一
模糊控制在角度随动系统中的应用一、实验目的与意义学习 Matlab 中建立模糊控制器的方法;了解模糊控制在角度随动系统中的
应用。
二、实验内容在 Matlab 中建立模糊控制器,将生成的模糊规则表插入程序代码中,交叉
编译代码,下载到目标版中进行测试。
1 、Matlab 文本模式建立模糊控制器(必做)
2 、利用 Matlab 模糊逻辑工具箱建立模糊控制器(选做)
3 、模糊控制器 Simulink 仿真(必做)
4 、嵌入式程序交叉编译(选做)
三、实验结果 1 、matlab 文本模式建立模糊控制器 %Fuzzy Controller Design clear all;
close all;
%新建 FIS a=newfis("myfuzzy");
%输入e,范围[-48,48],7 个模糊语言,NB,NM,NS,Z,PS,PM,PB
a=addvar(a,"input","e",[-48 48]);
%Parameter e a=addmf(a,"input",1,"NB","trimf",[-48 -36 -24]); a=addmf(a,"input",1,"NM","trimf",[-36 -24 -12]); a=addmf(a,"input",1,"NS","trimf",[-24 -12 0]); a=addmf(a,"input",1,"Z","trimf",[-12 0 12]); a=addmf(a,"input",1,"PS","trimf",[0 12 24]); a=addmf(a,"input",1,"PM","trimf",[12 24 36]);
a=addmf(a,"input",1,"PB","trimf",[24 36 48]);
%输入ec,范围[-64,64],7 个模糊语言,NB,NM,NS,Z,PS,PM,PB a=addvar(a,"input","ec",[-64 64]);
%Parameter ec a=addmf(a,"input",2,"NB","trimf",[-64 -48 -32]); a=addmf(a,"input",2,"NM","trimf",[-48 -32 -16]); a=addmf(a,"input",2,"NS","trimf",[-32 -16 0]); a=addmf(a,"input",2,"Z","trimf",[-16 0 16]); a=addmf(a,"input",2,"PS","trimf",[0 16 32]); a=addmf(a,"input",2,"PM","trimf",[16 32 48]); a=addmf(a,"input",2,"PB","trimf",[32 48 64]);
%输出u,范围[-90,90],7 个模糊语言,NB,NM,NS,Z,PS,PM,PB a=addvar(a,"output","u",[-90 90]);
%Parameter u a=addmf(a,"output",1,"NB","trimf",[-90 -65 -45]); a=addmf(a,"output",1,"NM","trimf",[-65 -45 -25]); a=addmf(a,"output",1,"NS","trimf",[-45 -25 0]); a=addmf(a,"output",1,"Z","trimf",[-25 0 25]); a=addmf(a,"output",1,"PS","trimf",[0 25 45]); a=addmf(a,"output",1,"PM","trimf",[25 45 65]); a=addmf(a,"output",1,"PB","trimf",[45 65 90]);
%模糊规则表,7*7=49 行,5 列 rulelist=[1 1 1 1 1;
1 2 1 1 1;
1 3 1 1 1;
1 4
2 1 1;
1 5
2 1 1;
1 6 3 1 1;
1 7 4 1 1;
2 1 1 1 1;
2 2 1 1 1;
2 3 1 1 1;
2 4 2 1 1;
2 5 2 1 1;
2 6
3 1 1;
2 7 4 1 1;
3 1 1 1 1;
3 2 2 1 1;
3 3 2 1 1;
3 4 3 1 1;
3 5
4 1 1;
3 6 5 1 1;
3 7 6 1 1;
4 1 1 1 1;
4 2 3 1 1;
4 3 3 1 1;
4 4 4 1 1;
4 5 5 1 1;
4 6 6 1 1;
4 7 7 1 1;
5 1 2 1 1;
5 2 3 1 1;
5 3 4 1 1;
5 4 5 1 1;
5 5
6 1 1;
5 6 7 1 1;
5 7 7 1 1;
6 1 3 1 1;
6 2 4 1 1;
6 3 5 1 1;
6 4 6 1 1;
6 5
7 1 1;
6 6
7 1 1;
6 7 7 1 1;
7 1 4 1 1;
7 2 5 1 1;
7 3 6 1 1;
7 4 6 1 1;
7 5 7 1 1;
7 6 7 1 1;
7 7 7 1 1;
];
a=addrule(a,rulelist); %showrule(a)