在matlab中设计一个炉温控制系统的模糊控制
时间: 2024-05-01 19:22:08 浏览: 119
模糊控制—基于matlab的锅炉水位控制系统设计.docx
5星 · 资源好评率100%
炉温控制系统的模糊控制一般是基于模糊逻辑控制(FLC)实现的,下面我们给出一个matlab中实现炉温控制系统的模糊控制的基本步骤:
1. 定义输入变量和输出变量
根据炉温控制系统的特点,我们可以定义炉温为输入变量,加热器输出功率为输出变量,代码如下:
```matlab
fis = newfis('fuzzy_temp_control');
fis = addvar(fis,'input','temp',[0 100]);
fis = addvar(fis,'output','power',[0 100]);
```
2. 定义模糊集合
根据炉温和输出功率的实际情况,我们可以将它们分别划分成几个模糊集合,代码如下:
```matlab
fis = addmf(fis,'input',1,'low','trapmf',[-10 0 20 30]);
fis = addmf(fis,'input',1,'medium','trimf',[20 40 60]);
fis = addmf(fis,'input',1,'high','trapmf',[50 80 100 110]);
fis = addmf(fis,'output',1,'low','trapmf',[-10 0 20 30]);
fis = addmf(fis,'output',1,'medium','trimf',[20 40 60]);
fis = addmf(fis,'output',1,'high','trapmf',[50 80 100 110]);
```
3. 规则定义
根据炉温和输出功率之间的关系,我们可以定义规则,代码如下:
```matlab
ruleList = [1 1 1 1;
2 2 1 1;
3 3 1 1;
1 2 2 1;
2 3 2 1;
3 1 3 1];
fis = addrule(fis,ruleList);
```
4. 模糊控制
将输入变量和输出变量分别输入到模糊控制器中,得到输出功率值,代码如下:
```matlab
temp = 70;
power = evalfis([temp],fis);
```
5. 结果可视化
将结果可视化,代码如下:
```matlab
gensurf(fis);
```
完整的matlab代码如下所示:
```matlab
fis = newfis('fuzzy_temp_control');
fis = addvar(fis,'input','temp',[0 100]);
fis = addvar(fis,'output','power',[0 100]);
fis = addmf(fis,'input',1,'low','trapmf',[-10 0 20 30]);
fis = addmf(fis,'input',1,'medium','trimf',[20 40 60]);
fis = addmf(fis,'input',1,'high','trapmf',[50 80 100 110]);
fis = addmf(fis,'output',1,'low','trapmf',[-10 0 20 30]);
fis = addmf(fis,'output',1,'medium','trimf',[20 40 60]);
fis = addmf(fis,'output',1,'high','trapmf',[50 80 100 110]);
ruleList = [1 1 1 1;
2 2 1 1;
3 3 1 1;
1 2 2 1;
2 3 2 1;
3 1 3 1];
fis = addrule(fis,ruleList);
temp = 70;
power = evalfis([temp],fis);
gensurf(fis);
```
以上就是在matlab中设计炉温控制系统的模糊控制的基本步骤。
阅读全文