Progress-servis55.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Fuzzy logic matlab

Matlab Fuzzy Logic Toolbox > Построение обучающей выборки

Особенностью нейронных сетей является то, каким образом происходит обработка данных. При использовании стандартного алгоритма обратного распространения ошибки сеть «видит» и анализирует данные исходной матрицы рядами. Чтобы нейронная сеть смогла «увидеть» тренды, нужно представить данные таким образом, чтобы в каждой строке обучающей матрицы отражалась «история» временного ряда т.е. содержалась информация как о текущем наблюдении, так и о прошлых.

При решении нашей задачи мы будем учитывать пятидневную историю, т.е. все изменения, которые происходили в течение предшествующей недели. Здесь нужно заметить, что попытки рассматривать более длинную «историю» приводят к сокращению числа наблюдений в обучающей выборке и к одновременному неоправданному ее росту «вширь», что может отрицательно повлиять на способность сети к обучению.

Теперь небходимо преобразовать имеющуюся информацию в вид понятный и содержательный для сети. для сети.

Невозможно получить сколько-нибудь удовлетворительный результат с помощью нейронных сетей, подав на вход необработанные данные. Для работы с нейронными сетями важно не только тщательно отобрать показатели: необходимо также представить их в определённой, понятной для сети форме.Можно выделить два основных правила , согласно которым формируется обучающая выборка.

Нейронные сети лучше реагируют не на исходные данные, а на ряды приращений. Этот факт можно объяснить тем, что в нейронной сети задаётся диапазон значений, определяемый наибольшим и наименьшим значениями из обучающей выборки. Если этот диапазон велик , а сами значения при переходе от наблюдения к наблюдению изменяется на незначительную по сравнению с диапазоном величину, то нейронная сеть попросту не придаст должного значения этим изменениям . Кроме того , использование при работе с сетью приращений позволяет получать прогноз в случае , когда абсолютные значения переменных, на основе которых строится прогноз, выходят за пределы диапазона установленного при обучении.

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

Где p[i] – значение показателя p в момент времени i.

Полученная таким образом обучающая выборка является слишком объёмной, чтобы приводить её здесь, т.к. она содержит более 200 строчек. Имеем пять входных переменных и одну выходную.

Сохраним обучающую выборку, которая была составлена в предыдущем разделе, в отдельный файл с именем yena(51).dat. После этого с помощью команды anfisedit из командной строки MATLAB запускаем ANFIS-редактор и загружаем этот файл.

Сгенерируем систему нечеткого вывода типа Сугено нажатием кнопки Generate FIS. . В появившемся окне зададим для каждой входной переменной по 3 функции принадлежности типа gaussmf. Выбор функции принадлежности здесь обусловлен тем, что мы предполгаем нормальное распределение для случайной величины(Курс Йены), которое как раз определяется гауссовской функцией по Теории Вероятности. Для выходной переменной зададим функцию принадлежности const.

Для обучения гибридной сети выберем метод backpropa(обратного распространения ошибки) с уровнем ошибки 0 и количеством циклов 100. Запустим обучение гибридной сети.

Как можно видеть из рисунка, по результатам обучения средняя ошибка составляет всего лишь приблизительно 0.007

Fuzzy logic matlab

Условия труда как совокупность санитарно-гигиенических, психофизиологических элементов производственной среды оказывают непосредственное воздействие на здоровье и работоспособность человека. Наряду с производственными процессами и работами, характеризующимися относительным комфортом, есть еще и такие, где человеку приходится работать в неблагоприятных условиях.

Чтобы уменьшить воздействие вредных факторов производственной среды, необходима разработка комплекса мероприятий, позволяющих предотвратить резкое снижение работоспособности, возникновения профессиональных заболеваний и случаев производственного травматизма, с объективной оценкой влияния условий труда на человека. Наиболее полно характеризует это влияние категория тяжести работы, которая отражает совокупное воздействие всех элементов, составляющих условия труда, на работоспособность человека, его здоровье, жизнедеятельность. Понятие тяжести труда и напряженности одинаково применимо как к умственному, так и к физическому труду. О степени тяжести труда можно судить по реакциям и изменениям в организме человека, которые служат показателями качества условий труда [1–3].

Читать еще:  Среднее арифметическое matlab

В табл. 1 приведены категории оценки условий труда на рабочих местах.

При определении интегрального показателя в расчет принимаются биологически значимые элементы условий труда, вызывающие пограничные и патологические изменения и реакции организма работающего.Интегральный показатель категории тяжести труда определяется по формуле

(1)

где – интегральный показатель категории тяжести труда; Kоп – определяющий («ведущий», имеющий наибольший балл) элемент условий труда на рабочем месте; L – средняя арифметическая из суммы всех биологически значимых элементов условий труда, исключая определяющий.

Категории оценки условий труда на рабочих местах по санитарно-гигиеническим факторам

Оценка факторов условий труда, баллы

Температура воздуха, °С

Относительная влажность воздуха, %

Скорость движения воздуха, м/с

Токсичные вещества (кратность превышения ПДК)

Промышленная пыль (кратность превышения ПДК)

Вибрация, уровень колебательной скорости (кратность превышения ПДУ)

Шум, уровень звука, дБА

При работе операторов горных машин сочетаются виды деятельности различной степени тяжести и напряженности трудового процесса. В работе [4] произведена оценка показателей условий труда машинистов экскаваторов с учетом особенностей условий труда на постоянном рабочем месте в кабине экскаватора (табл. 2). Предлагаемая система оценок не является нормативной.

Категория тяжести труда машиниста экскаватора определяется в зависимости от величины интегральной количественной оценки Uт, которая рассчитывается по формуле

(2)

где – средняя арифметическая балльная оценка единичных показателей, формирующих тяжесть труда.

(3)

где x, k – оценка в баллах и коэффициент весомости j-го биологически значимого показателя условий труда соответственно; n – число показателей. За биологически значимые показатели принимаем те, у которых произведение x, k≥1,5.

По величине интегрального показателя условиям труда (работе) присваивается та или иная категория тяжести труда (табл. 3).

Карта аттестации рабочего места машиниста экскаватора

Оценка в баллах

Температура воздуха, °С:

Запыленность (кратность превышения ПДК)

Эквивалентный уровень звука, дБА

Освещенность забоя карьерных экскаваторов, лк

где G – процедура образования новых термов с использованием связок «и», «или» модификаторов типа «очень», «не», «более» и других, а М – процедура задания на области определения X = [18 – 38 о С] нечетких переменных; = , = , = , а также соответствующих нечетких множеств термов из G (Т) в соответствии с порядком трансляции нечетких связок и модификаторов (рис. 1).

Вторая входная лингвистическая переменная «влажность воздуха» задается аналогично (рис. 2) и имеет вид

ξ2 – «влажность» = ( , [30 – 100 %]).

Третья входная лингвистическая переменная «скорость движения воздуха» (рис. 3) формализуется в виде

ξ3 – «скорость движения воздуха» = ( , [0 – 2 м/с]).

Четвертая входная лингвистическая переменная «уровень шума (звука) в кабине машиниста ЭКГ» (рис. 4) формализуется в виде:

ξ4 – «уровень шума» = ( , [0 – 120 дБА]).

Рис. 1. График функций принадлежности соответствующих термов входной лингвистической переменной «температура воздуха»

Рис. 2. График функций принадлежности соответствующих термов входной лингвистической переменной «влажность воздуха»

Рис. 3. График функций принадлежности соответствующих термов входной лингвистической переменной «скорость движения воздуха»

Рис. 4. График функций принадлежности соответствующих термов входной лингвистической переменной «уровень шума»

Для задания выходной лингвистической переменной необходимо дать следующее пояснение. На основе работ Всесоюзного научно-исследовательского института технической эстетики (ВНИИТЭ) установлена концепция структурной схемы эргономических показателей карьерных экскаваторов. Обитаемость на рабочем месте является одним из основных показателей, входящим в данную схему. Она характеризуется – запыленностью; уровнем шума; уровнем вибрации на сиденье машиниста; параметрами микроклимата; освещенностью забоя; санитарно-бытовым обеспечением и т.п.

Читать еще:  Matlab несколько графиков на одном

Поэтому считаем целесообразным в качестве обобщенной характеристики по оценке состояния условий труда использование в качестве выходной лингвистической переменной – «обитаемость», которая может быть задана в виде

ω – «обитаемость» = ( , [0 – 100 %]).

Оценка адекватности построенной системы нечеткого вывода для определения уровня обитаемости в кабине машиниста экскаватора, для частного случая, когда текущая температура воздуха в кабине будет составлять 24 оС, влажность воздуха – 60 %, скорость движения воздуха равна 0,8 м/с и уровень шума равен 80 дБА. В результате процедуры нечеткого вывода значение выходной переменной «обитаемость» составит 56,4 %. Полученное значение обитаемости говорит о средней комфортности работы машиниста в кабине экскаватора.

Вывод

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

Fuzzy Logic Toolbox и Matlab скрипт

Здравствуйте, уважаемые специалисты. Мне в программном скрипте нужно встроить файл Parameter8.fis приложения Fuzzy Toolbox, который разработан, содержит два входа (input1, input2), один выход (output) и должен выдавать нечеткий логический вывод, используя исходные данные скрипта следующего вида:

1. input 1 это a(9,2:end) — массив в виде строчки, состоящей из 5 значений, который индексируется из матрицы а скрипта, например а = rand (27;6).
2. input 2 это a1 (9,3) — число, которое индексируется из другой матрицы скрипта. Матрица, например а1 = rand (27;3).
3. output это массив в виде строчки, состоящей из 5 значений, который должен заменить в матрице a строчку a(9,2:end) на новые значения логического вывода.

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

15.10.2019, 11:48

Fuzzy Logic в GUI
Есть вопрос. Имеется программа для тестирования в gui matlab. Итог теста (в баллах) выводится в.

Пираммида Маслоу. Fuzzy Logic.
Здрасте, может кто сможет помочь, потому как в матлабе не бумбум совсем. Нужно построить.

Как нужно использовать Fuzzy Logic Controller?
Здравствуйте! Есть вот такая схема ( во вложении) и ошибка : Error reported by S-function ‘sffis’.

Вывод и ввод нечетких множеств для работы с Fuzzy Logic
Доброго времени суток. Очень хотелось бы узнать способы вывести из системы нечеткого вывода (FIS).

17.10.2019, 15:01 [ТС]2 Вложения

Parameter8 — копия.txt (940 байт, 0 просмотров)
17.10.2019, 15:40

Меню пользователя @ Krasme
18.10.2019, 22:20 [ТС]4 Вложения

Parameter8.rar (527 байт, 1 просмотров)
18.10.2019, 23:395
Matlab M
19.10.2019, 16:26 [ТС]6

Добрый день. Видимо, я что то не понимаю. Что такое параметр?

fs.input(1).mf(4).params % Для чего он нужен? Зачем его менять потом?

У меня все значения представлены массивами. Для Parametr8 input1 — это должны быть 5 значений массива a(9,2:end) , и input2 — это одно число из a1 (9,3); одинаково для всех значений input 1.

ans
40000 60000 70000 50000 80000

Можно ли вместо input1 и input 2 вставлять соответствующие значения массивов, как было указано мною первоначально (a(9,2:end) и a1 (9,3)). А потом вернуть с другими значениями логического вывода. Output должен выглядеть так, например:

r1
0.8345 0.9367 0.9127 0.7185 0.9745

Таких параметров у меня будет еще 4 (всего 5): Parametr8, Parametr20, Parametr16 и т.д., на каждый имеется свой файл с расширением _________.fis
Это я, по аналогии сделаю , наверное.

Графики — это в принципе хорошо, можно визуализацию сделать. Но для меня первично вернуть a(9,2:end) , но уже с другими значениями — значениями логического вывода (output). Потом эти данные в дальнейших расчетах будут использоваться.
Помогите, пж .

19.10.2019, 16:397

вы сначала изучите, из чего состоит структура fis-модели.
структуру fis-модели можно посмотреть с помощью showfis()

я вам дала образец изменения одного параметра и пересчет fis-модели.

если у вас несколько fis-моделей, но их параметры менять не собираетесь, то запускайте их в цикле и собирайте результаты в отдельный вектор.

19.10.2019, 17:06 [ТС]8

Помогите, Ольга. Помогите, пожалуйста, составить скрипт для ответа на поставленный вопрос: (мне не нужны косвенные ответы и советы, нужна конкретика)

Можно ли вместо input1 и input 2 вставлять соответствующие значения массивов (не вручную, а автоматически!), как было указано мною первоначально (a(9,2:end) и a1 (9,3))? А потом вернуть с другими значениями логического вывода? Output должен выглядеть так, например:

r1
0.8345 0.9367 0.9127 0.7185 0.9745

Покажите, пожалуйста, на примере, как вставлять поочередно из массива и получить нужные значения, представив их потом опять в массиве. Я разработал пять параметров (например один из них, Parametr8). И каждый из них должен выдать массив из пяти значений, типа
r1
0.8345 0.9367 0.9127 0.7185 0.9745

19.10.2019, 17:379

а мне непонятны ваши вопросы.

прикладывайте свой код, где вы получаете массив а, прикладывайте свои fis-ы..
распишите последовательность по пунктам, что вы хотите получить, не абстрактные

т.к. input(1) в fis-модели — не вектор! а структура.

20.10.2019, 00:39 [ТС]10

Не торопитесь, пожалуйста. Не обязательно сегодня это все сделать .
Хочу прояснить. Я не специалист вообще в программировании, с Matlab познакомился в мае месяце 2019, а с Fuzzy Tolbox, вообще неделю назад. Но, чувствую, что я на правильном пути, раньше в диссертации я использовал это вручную.
Задача не сложная, я это чувствую, просто я этого сделать не могу. я не знаю программирования в принципе, . изучал когда то Фортран в 90-е годы, тога еще компьютеры были размером с комнату .
1.Исходные данные, т.е. скрипт, который формирует «исходники» (вводимые данные по проектам и ограничение) Выглядит так:
clc
a = zeros (27,6);
a (1,2:end) = [1:5];%Номера проектов.
a (2:end,1) = [1:26];% Номера оцениваемых параметров.
a (9,2:end) = [40000,60000,70000,50000,80000] %Параметр 8. Значения по пяти оцениваемым проектам устанавливаются
%вручную лицом, принимающим решения (ЛПР). Каждое значение — это input1 в Parameter8.fis. Значит будет 5 выходов (output).

a1 = zeros (27,3);
a1 (1,2:end) = [1:2];%Номер колонки ограничения и колонки статуса ограничения: 0-strict; 1-desirable.
a1 (2:end,1) = [1:26];%Номера оцениваемых ВЭП.
a1 (9,3) = [1]%8.Статус ограничения по параметру, либо 0 — строгий, либо 1 — желательный. Это input 2 в Parameter8.fis.
%Он для всех оцениваемых проектов одинаковый.Задается ЛПР.

2.Скрипт, который переводит все значения в шкалу желательности (от 0 до 1) — это есть output в Parameter8.fis.
Нужно все значения a (9,2); a (9,3); a (9,4); a (9,5); a (9,6) перевести посредством Parameter8.fis в output (получается 5 значений) типа:
r1=evalfis(v,fs) % результат
%Вот здесь у меня и загвоздка.

Потом это всё собрать в массив, типа:

По аналогии я сделаю уже сам с остальными параметрами Parameter16, Parameter20 и т.д., на которые у меня тоже
есть аналогичные файлы с расширением ___fis.
Потом я это все соберу в матрицу для дальнейших расчетов.

Ссылка на основную публикацию
Adblock
detector