How to design a Fuzzy Controller for the Plant 1/(s² + 2·s + 100) to track the Reference signal

조회 수: 3 (최근 30일)
How to make rules for above question?

답변 (1개)

Sam Chak
Sam Chak 2025년 4월 14일
편집: Sam Chak 2025년 4월 14일
The plant has a low DC gain of and a relatively small damping coefficient of 2. If we apply a static gain of 100 (proportional control action) to achieve a DC gain of 1, the step response of the open-loop system will still exhibit oscillatory behavior. Therefore, we need to add damping to the system through derivative control action. For the derivative action, we can design only two If–Then rules for the fuzzy controller.
%% Fuzzy Controller
fis = mamfis;
% Fuzzy Input (Change in Error)
fis = addInput(fis, [-4 +4], 'Name', 'CE');
fis = addMF(fis, 'CE', 'linzmf', [-4 +4], 'Name', 'N');
fis = addMF(fis, 'CE', 'linsmf', [-4 +4], 'Name', 'P');
% Fuzzy Output (Derivative Control Action)
fis = addOutput(fis, [-8 +8], 'Name', 'U');
fis = addMF(fis, 'U', 'trimf', [-4 -4 -4], 'Name', 'N');
fis = addMF(fis, 'U', 'trimf', [ 4 4 4], 'Name', 'P');
% Fuzzy Rules
rules = [
"CE==N => U=N" % Rule 1: If CE is Negative, then U is Negative.
"CE==P => U=P" % Rule 2: If CE is Positive, then U is Positive.
];
fis = addRule(fis, rules);
figure
subplot(211)
plotmf(fis, 'input', 1, 801), grid on, title('Input fuzzy sets')
subplot(212)
plotmf(fis, 'output', 1, 16001), grid on, title('Output fuzzy sets')

카테고리

Help CenterFile Exchange에서 Fuzzy Logic in Simulink에 대해 자세히 알아보기

제품


릴리스

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by