資源簡介
模糊PID控制的matlab m文件實現,程序可以直接運行出波形
代碼片段和文件信息
%Fuzzy?Tunning?PID?Control
clear?all;
close?all;
a=newfis(‘fuzzpid‘);
a=addvar(a‘input‘‘e‘[-33]);?%Parameter?e
a=addmf(a‘input‘1‘NB‘‘zmf‘[-3-1]);
a=addmf(a‘input‘1‘NM‘‘trimf‘[-3-20]);
a=addmf(a‘input‘1‘NS‘‘trimf‘[-3-11]);
a=addmf(a‘input‘1‘Z‘‘trimf‘[-202]);
a=addmf(a‘input‘1‘PS‘‘trimf‘[-113]);
a=addmf(a‘input‘1‘PM‘‘trimf‘[023]);
a=addmf(a‘input‘1‘PB‘‘smf‘[13]);
a=addvar(a‘input‘‘ec‘[-33]);?%Parameter?ec
a=addmf(a‘input‘2‘NB‘‘zmf‘[-3-1]);
a=addmf(a‘input‘2‘NM‘‘trimf‘[-3-20]);
a=addmf(a‘input‘2‘NS‘‘trimf‘[-3-11]);
a=addmf(a‘input‘2‘Z‘‘trimf‘[-202]);
a=addmf(a‘input‘2‘PS‘‘trimf‘[-113]);
a=addmf(a‘input‘2‘PM‘‘trimf‘[023]);
a=addmf(a‘input‘2‘PB‘‘smf‘[13]);
a=addvar(a‘output‘‘kp‘[-0.30.3]);?%Parameter?kp
a=addmf(a‘output‘1‘NB‘‘zmf‘[-0.3-0.1]);
a=addmf(a‘output‘1‘NM‘‘trimf‘[-0.3-0.20]);
a=addmf(a‘output‘1‘NS‘‘trimf‘[-0.3-0.10.1]);
a=addmf(a‘output‘1‘Z‘‘trimf‘[-0.200.2]);
a=addmf(a‘output‘1‘PS‘‘trimf‘[-0.10.10.3]);
a=addmf(a‘output‘1‘PM‘‘trimf‘[00.20.3]);
a=addmf(a‘output‘1‘PB‘‘smf‘[0.10.3]);
a=addvar(a‘output‘‘ki‘[-0.060.06]);?%Parameter?ki
a=addmf(a‘output‘2‘NB‘‘zmf‘[-0.06-0.02]);
a=addmf(a‘output‘2‘NM‘‘trimf‘[-0.06-0.040]);
a=addmf(a‘output‘2‘NS‘‘trimf‘[-0.06-0.020.02]);
a=addmf(a‘output‘2‘Z‘‘trimf‘[-0.0400.04]);
a=addmf(a‘output‘2‘PS‘‘trimf‘[-0.020.020.06]);
a=addmf(a‘output‘2‘PM‘‘trimf‘[00.040.06]);
a=addmf(a‘output‘2‘PB‘‘smf‘[0.020.06]);
a=addvar(a‘output‘‘kd‘[-33]);?%Parameter?kp
a=addmf(a‘output‘3‘NB‘‘zmf‘[-3-1]);
a=addmf(a‘output‘3‘NM‘‘trimf‘[-3-20]);
a=addmf(a‘output‘3‘NS‘‘trimf‘[-3-11]);
a=addmf(a‘output‘3‘Z‘‘trimf‘[-202]);
a=addmf(a‘output‘3‘PS‘‘trimf‘[-113]);
a=addmf(a‘output‘3‘PM‘‘trimf‘[023]);
a=addmf(a‘output‘3‘PB‘‘smf‘[13]);
rulelist=[1?1?7?1?5?1?1;
1?2?7?1?3?1?1;
1?3?6?2?1?1?1;
1?4?6?2?1?1?1;
1?5?5?3?1?1?1;
1?6?4?4?2?1?1;
1?7?4?4?5?1?1;
2?1?7?1?5?1?1;
2?2?7?1?3?1?1;
2?3?6?2?1?1?1;
2?4?5?3?2?1?1;
2?5?5?3?2?1?1;
2?6?4?4?3?1?1;
2?7?3?4?4?1?1;
3?1?6?1?4?1?1;
3?2?6?2?3?1?1;
3?3?6?3?2?1?1;
3?4?5?3?2?1?1;
3?5?4?4?3?1?1;
3
評論
共有 條評論