资源简介
大时滞系统的模糊控制MATLAB仿真\大时滞系统的模糊控制MATLAB仿真.rar

代码片段和文件信息
function [sysx0strts]=fuzzy01(txuflag)
switch flag
case 0 % 初始化
[sysx0strts] = mdlInitializeSizes;
case 2
sys=mdlUpdates(xu);
case 3 % 计算输出量,亦即控制率和权值
sys = mdlOutputs(x);
case {1 4 9} % 未定义的 flag 值
sys = [];
otherwise % 错误处理
error([‘Unhandled flag = ‘num2str(flag)]);
end;
function [sysx0strts] = mdlInitializeSizes
sizes = simsizes; % 读入系统变量的默认值
sizes.NumContStates = 0; % 没有连续状态
sizes.NumDiscStates = 3; % 设置三个离散状态,亦即权值
sizes.NumOutputs = 3; % 设置四路输出,分别为控制率和归一化的权值
sizes.NumInputs = 2; % 设置四路输入,分别为误差的三个时刻值即控制率
sizes.DirFeedthrough = 0; % 输入信号直接在输出中反映出来
sizes.NumSampleTimes = 1; % 单采样速率系统
sys = simsizes(sizes); % 设置系统模型变量
x0 = [0;0;0]; % 初始状态变量,亦即权值,设置成随机数
str = []; ts = [10 0]; % 继承输入信号的采样周期
function sys = mdlUpdates(xu)
if u(1)>200
sys=[12.5;0;1250]
else
a=newfis(‘fuzzpid‘);
a=addvar(a‘input‘‘e‘[010]); %Parameter e
;
a=addmf(a‘input‘1‘Z‘‘zmf‘[03]);
a=addmf(a‘input‘1‘PS‘‘trimf‘[036]);
a=addmf(a‘input‘1‘PM‘‘trimf‘[3610]);
a=addmf(a‘input‘1‘PB‘‘smf‘[610]);
a=addvar(a‘input‘‘ec‘[-33]); %Parameter ec
a=addmf(a‘input‘2‘Z‘‘zmf‘[01]);
a=addmf(a‘input‘2‘PS‘‘trimf‘[012]);
a=addmf(a‘input‘2‘PM‘‘trimf‘[123]);
a=addmf(a‘input‘2‘PB‘‘smf‘[23]);
a=addvar(a‘output‘‘kp‘[03]); %Parameter kp
a=addmf(a‘output‘1‘Z‘‘zmf‘[01]);
a=addmf(a‘output‘1‘PS‘‘trimf‘[012]);
a=addmf(a‘output‘1‘PM‘‘trimf‘[123]);
a=addmf(a‘output‘1‘PB‘‘smf‘[23]);
a=addvar(a‘output‘‘ki‘[00.0003]); %Parameter ki
a=addmf(a‘output‘2‘Z‘‘zmf‘[00.0001]);
a=addmf(a‘output‘2‘PS‘‘trimf‘[00.00010.0002]);
a=addmf(a‘output‘2‘PM‘‘trimf‘[0.00010.00020.0003]);
a=addmf(a‘output‘2‘PB‘‘smf‘[0.00020.0003]);
a=addvar(a‘output‘‘kd‘[0300]); %Parameter kp
a=addmf(a‘output‘3‘Z‘‘zmf‘[0100]);
a=addmf(a‘output‘3‘PS‘‘trimf‘[0100200]);
a=addmf(a‘output‘3‘PM‘‘trimf‘[100200300]);
a=addmf(a‘output‘3‘PB‘‘smf‘[200300]);
rulelist=[
1 1 1 4 1 1 1;
1 2 4 4 1 1 1;
1 3 4 4 1 1 1;
1 4 3 4 1 1 1;
2 1 2 3 2 1 1;
2 2 4 3 2 1 1;
2 3 4 4 2 1 1;
2 4 3 3 1 1 1;
3 1 3 1 3 1 1;
3 2 3 1 3 1 1;
3 3 3 2 3 1 1;
3 4 2 2 3 1 1;
%*******************************************
4 1 4 1 4 1 1;
4 2 4 1 4 1 1;
4 3 4 1 4 1 1;
4 4 2 1 2 1 1;]
a=addrule(arulelist);
a=setfis(a‘DefuzzMethod‘‘mom‘);
writefis(a‘fuzzpid‘);
a=readfis(‘fuzzpid‘);
k_pid=evalfis([u(1)u(2)]a)
kp0=10;kd0=1250;ki0=0.000289;
sys(11)=kp0+k_pid(11)*2
sys(21)=ki0+k_pid(12)
sys(31)=kd0+k_pid(13)*2
end
function sys = mdlOutputs(x)
sys=x
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21821 2007-12-22 22:56 大时滞系统的模糊控制MATLAB仿真\新建文件夹\fu1.mdl
文件 2884 2007-12-21 21:58 大时滞系统的模糊控制MATLAB仿真\新建文件夹\fuz2164.m
文件 1212 2007-12-25 12:10 大时滞系统的模糊控制MATLAB仿真\新建文件夹\fuzzpid.fis
文件 40826 2007-12-25 12:11 大时滞系统的模糊控制MATLAB仿真\新建文件夹\fuzzypid.mdl
文件 35293 2007-12-25 12:11 大时滞系统的模糊控制MATLAB仿真\新建文件夹\putongpid.mdl
文件 64512 2007-12-22 22:55 大时滞系统的模糊控制MATLAB仿真\新建文件夹\基于S函数实现的参数自整定模糊PID控制器.doc
文件 146 2007-12-21 11:27 大时滞系统的模糊控制MATLAB仿真\新建文件夹\附2.txt
文件 3543 2009-02-01 16:19 大时滞系统的模糊控制MATLAB仿真\使用帮助:新手必看.htm
文件 183 2009-02-02 09:47 大时滞系统的模糊控制MATLAB仿真\Matlab中文论坛--助努力的人完成毕业设计.url
目录 0 2009-04-09 16:37 大时滞系统的模糊控制MATLAB仿真\新建文件夹
目录 0 2009-04-09 16:46 大时滞系统的模糊控制MATLAB仿真
----------- --------- ---------- ----- ----
170420 11
相关资源
-
Fuzzysimuli
nk有关模糊PID问题概述-自适 - 论文研究-电加热模糊PID控制及仿真研
- 模糊PID在热水锅炉温度控制系统中的
- 多种PID控制算法-matlab 实现
- 基于模糊PID的麦克纳姆轮移动平台的
- 无刷直流电机基于模糊PID的速度控制
- 主动悬架LQG控制与模糊PID控制的比较
- 基于模糊PID控制无刷直流电动机调速
- 基于MATLAB的模糊PID控制器的设计
-
Simuli
nk仿真模糊PID -
Fuzzy-PID-DC-Motor-Matlab-Simuli
nk-master.z - 基于Matlab的步进电机闭环建模与仿真
- 模糊PID控制在交流伺服电机系统中的
-
模糊PID的simuli
nk仿真及结果分析 - 模糊PID控制器仿真
- 永磁同步电机模糊PID控制-chap3_6.m
- Matlab模糊PID参数设定-work.rar
- 模糊PID控制器
- 驱动防滑,模糊PID控制
-
模糊PID控制器的simuli
nk模型 - 主动悬架系统模糊PID控制器的仿真英
- pmsm模糊PID控制系统仿真模型
- MATLAB 模糊PID仿真文件
- MATLAB 模糊PID
-
在simuli
nk中建立的模糊pid模型 - 模糊PID轨迹跟踪
-
Simuli
nk仿真_模糊PID控制 - 模糊PID控制m文件代码实现
- 模糊PID控制和专家PID控制matlab仿真程
-
模糊PID设计+simuli
nk仿真
评论
共有 条评论