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

3 views (last 30 days)
How to make rules for above question?

Answers (1)

Sam Chak
Sam Chak on 14 Apr 2025
Edited: Sam Chak on 14 Apr 2025
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')

Categories

Find more on Fuzzy Logic in Simulink in Help Center and File Exchange

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!