exponenta event banner

Контроль температуры в душе

В этой модели показано, как реализовать систему нечеткого вывода (FIS) в модели Simulink ®.

Модель Simulink

Модель управляет температурой душа с помощью системы нечеткого вывода, реализованной с помощью блока контроллера нечеткой логики. Откройте окно shower модель.

open_system('shower')

Для этой системы вы контролируете расход и температуру душа, регулируя клапаны горячей и холодной воды.

Поскольку имеется два входа для нечеткой системы, модель объединяет входные сигналы с помощью блока Mux. Выход блока мультиплексора соединен с входом блока контроллера нечеткой логики. Аналогично, два выходных сигнала получают с использованием блока Demux, соединенного с контроллером.

Система нечеткого вывода

Нечеткая система определяется в объекте FIS, fisMatrix, в рабочей области MATLAB ®. Дополнительные сведения о том, как указать FIS в блоке контроллера нечеткой логики, см. в разделе Контроллер нечеткой логики.

Двумя входами в нечеткую систему является температурная ошибка, tempи погрешность расхода, flow. Каждый вход имеет три функции членства.

figure
plotmf(fisMatrix,'input',1)
figure
plotmf(fisMatrix,'input',2)

Двумя выходами нечеткой системы является скорость открытия или закрытия клапанов холодной и горячей воды. cold и hot соответственно. Каждый выход имеет пять функций членства.

figure
plotmf(fisMatrix,'output',1)
figure
plotmf(fisMatrix,'output',2)

Нечеткая система имеет девять правил регулирования клапанов горячей и холодной воды на основе погрешностей расхода и температуры. Правила регулируют общий расход на основе погрешности расхода и относительные скорости горячего и холодного расхода на основе погрешности температуры.

fisMatrix.Rules
ans = 

  1x9 fisrule array with properties:

    Description
    Antecedent
    Consequent
    Weight
    Connection

  Details:
                                  Description                          
         ______________________________________________________________

    1    "temp==cold & flow==soft => cold=openSlow, hot=openFast (1)"  
    2    "temp==cold & flow==good => cold=closeSlow, hot=openSlow (1)" 
    3    "temp==cold & flow==hard => cold=closeFast, hot=closeSlow (1)"
    4    "temp==good & flow==soft => cold=openSlow, hot=openSlow (1)"  
    5    "temp==good & flow==good => cold=steady, hot=steady (1)"      
    6    "temp==good & flow==hard => cold=closeSlow, hot=closeSlow (1)"
    7    "temp==hot & flow==soft => cold=openFast, hot=openSlow (1)"   
    8    "temp==hot & flow==good => cold=openSlow, hot=closeSlow (1)"  
    9    "temp==hot & flow==hard => cold=closeSlow, hot=closeFast (1)" 

Моделирование

Модель моделирует контроллер с периодическими изменениями уставок температуры и расхода воды.

set_param('shower/flow scope','Open','on','Ymin','0','Ymax','1')
set_param('shower/temp scope','Open','on','Ymin','15','Ymax','30')
sim('shower',50)

Расход отслеживает заданную точку скважины. Температура также отслеживает свою уставку, хотя есть отклонения температуры, когда контроллер настраивается, чтобы соответствовать новой уставке расхода.

bdclose('shower') % Closing model also clears its workspace variables.

См. также

Блоки

Связанные темы