Реферат по предмету "Промышленность, производство"


Информационное обеспечение системы управления подъёмно-транспортным механизмом

АННОТАЦИЯ
Проект содержит 85страниц машинописного текста, 19 рисунков, 6 таблиц, 8 источников.
В этой работеразработаны информационное обеспечение для моделирования нечеткого контроллера,управляющего подъемно-транспортным механизмом; модель и алгоритм управленияподъемно-транспортным механизмом. Она предназначена для улучшения качества управления процессом переноса груза.

SUMMARY
This projectcontains 85 pages of text, 19 diagrams, 6 tables and 8 literature sources.
Thisbachelor’s project is dedicated to development of fuzzy regulator for containercrane. To solve this real-world problem a fuzzy algorithm to control containercrane has been developed. Further to model this fuzzy regulator, fuzzy logicmodeling software was successfully developed.

РЕФЕРАТ
НЕЧЕТКАЯПЕРЕМЕННАЯ, НЕЧЕТКИЙ РЕГУЛЯТОР, СИСТЕМА УПРАВЛЕНИЯ, МОДЕЛИРОВАНИЕ НЕЧЕТКИХСИСТЕМ
Цель работы:разработка информационного обеспечения системы управления подъемно-транспортныммеханизмом.
В ходевыполнения работы были рассмотрены особенности управления подъемно-транспортныммеханизмом и процессы, протекающие в системе. Синтезирован алгоритм управленияподъемно-транспортным механизмом с учетом различных внешних факторов.
Разработаноинформационное обеспечение для моделирования нечеткого алгоритма управленияподъемно-транспортного механизма.
Решены задачиобеспечения безопасности труда инженера-проектировщика.
Результатомработы является информационное обеспечение  системы управления подъемно-транспортныммеханизмом.

/>/>/>/>/>ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
 
VT(t) — текущая скорость перемещения крана
aз — заданноезначение угла раскачивания
a — измеренное значение угла раскачивания
da — угол раскачивания
/> - производная угла раскачивания
dVT– разность заданной и измеренной скоростей
VО – определяемая скорость
PMVО — скорость VО положительная (против часовойстрелки) средняя
PSVО — скорость VО положительная небольшая
ZRVО — скорость VО нулевая
NSVО — скорость VО отрицательная (против часовойстрелки) небольшая
NMVО – скорость VО отрицательная средняя
PMda — угол раскачивания da положительный (против часовойстрелки) средний
PSda — угол раскачивания da положительный небольшой
ZRda — угол раскачивания da нулевой
NSda — угол раскачивания da отрицательный (против часовойстрелки) небольшой
NMda — угол раскачивания da отрицательный средний
PS/> - производная угла раскачивания /> положительнаянебольшая
ZR/> - производная угла раскачивания /> нулевая
NS/> - производная угла раскачивания /> отрицательная
PM/> - разность скоростей dVT положительная (против часовойстрелки) средняя
PS/> - разность скоростей dVT положительная небольшая
ZR/> - разность скоростей dVTнулевая
NS/> - разность скоростей dVT отрицательная (против часовойстрелки) небольшая
NM/> - разность скоростей dVT отрицательная средняя
ПР — построение регулятора
ПИД регулятор – пропорциональный интегро-дифференцирующийрегулятор
ЛП – лингвистическая переменная
АЦП – аналого-цифровой преобразователь
ЦАП – цифро-аналоговый преобразователь
ВДТ – видеодисплейный терминал
ПЭВМ – персональная электронно-вычислительнаямашина
ПК – персональный компьютер
ПО – программное обеспечение

СОДЕРЖАНИЕ
ВВЕДЕНИЕ11
1.ОПИСАНИЕ ПОДЪЕМНО-ТРАНСПОРТНОГОМЕХАНИЗМА14
1.1.МОДЕЛЬПОДЪЕМНО-ТРАНСПОРТНОГО МЕХАНИЗМА14
1.3.НЕЧЕТКАЯФОРМАЛИЗАЦИЯ ПАРАМЕТРОВ18
1.4.АНАЛИЗМОДЕЛЕЙ ПРИНЯТИЯ РЕШЕНИЙ20
2. РАЗРАБОТКА МЕТОДА УПРАВЛЕНИЯ ПОДЪЕМНО-ТРАНСПОРТНЫММЕХАНИЗМОМ23
3. РАЗРАБОТКА ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ.33
3.1 Структурная организация.33
3.2 Алгоритм программы.34
3.3 Описание интерфейса36
3.4 Реализация37
4.  ОПИСАНИЕ РАБОТЫ С ИНФОРМАЦИОННым  ОБЕСПЕЧЕНИем39
4.1 Запуск и выбор опций39
4.2 Новый проект39
4.3 Лингвистическая переменная.40
4.4 Блок правил42
5. ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА44
5.1. СТОИМОСТНАЯОЦЕНКА РАЗРАБОТКИ44
5.1.1. КАПИТАЛЬНЫЕ ЗАТРАТЫ44
5.1.2. ЭНЕРГЕТИЧЕСКИЕ ЗАТРАТЫ.46
6. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ РАБОТЫ47
6.1. ОЦЕНКАНАПРЯЖЕННОСТИ ТРУДА РАЗРАБОТЧИКА47
6.2. АНАЛИЗУСЛОВИЙ ТРУДА РАЗРАБОТЧИКА И МЕРОПРИЯТИЯ ПО УСТРАНЕНИЮ ВРЕДНЫХ ФАКТОРОВ52
6.3. ЭКОЛОГИЧНОСТЬРАБОТЫ55
6.3.1. КОМПЬЮТЕР КАК ИСТОЧНИК ПЕРЕМЕННОГО ЭЛЕКТРОМАГНИТНОГО ПОЛЯ55
7. СОЦИАЛЬНАЯ ЗНАЧИМОСТЬ58
ЗАКЛЮЧЕНИЕ59
СПИСОК ИСТОЧНИКОВ60
ПРИЛОЖЕНИЕ 61

/>/>ВВЕДЕНИЕ
В последнеевремя нечеткое моделирование является одной из наиболее активных и перспективныхнаправлений прикладных исследований в области управления и принятия решений.Нечеткое моделирование оказывается особенно полезным, когда в описаниитехнических систем и бизнес-процессов присутствует неопределенность, котораязатрудняет или даже исключает применение точных количественных методов иподходов.
В областиуправления техническими системами нечеткое моделирование позволяет получатьболее адекватные результаты по сравнению с результатами, которые основываютсяна использовании традиционных аналитических моделей и алгоритмов управления.Диапазон применения нечетких методов с каждым годом расширяется, охватываятакие области, как проектирование промышленных роботов и бытовыхэлектроприборов, управление доменными печами и движением поездов метро,автоматическое распознавание речи и изображений.
Нечеткаялогика, которая служит основой для реализации методов нечеткого управления,более естественно описывает характер человеческого мышления и ход егорассуждений, чем традиционные формально-логические системы. Именно поэтомуизучение и использование математических средств  для представления нечеткойисходной информации позволяет строить модели, которые наиболее адекватноотражают различные аспекты неопределенности, постоянно присутствующей в окружающейнас реальности.
В качествеобъекта управления был выбран подъемно-транспортный механизм. В настоящее времятрудно представить практически любое современное производство без использованияподъемно-транспортных механизмов на различных этапах производства.Использование подъемно-транспортных механизмов обусловлено необходимостьюконтроля траектории перемещаемого груза. Особенно важным это является припроведении различных погрузочных, строительных, и других видов работ связанныхс перемещением грузов большой массы и объема.
Груз,поднимаемый краном, раскачивается и при перемещении, и при остановке. Большаяначальная скорость перемещения крана является источником колебаний груза накрюке. Обычно эти колебания понижаются посредством уменьшения начальной скоростиперемещения крана. Величина раскачивания груза варьируется в зависимости отвеса груза, его состояния, метода подвешивания груза на крюке, высоты крана,величины ускорения и т.д.
Работаявляется актуальнойт.к. в условиях современного производственного процесса необходимо наиболеебыстрое, качественное и безопасное выполнение различных подъемно-транспортныхработ, что и призван осуществлять разработанный нечеткий контроллер.
Целью бакалаврскойработы является разработкаПО для моделирования  нечеткого контроллера, управляющего подъемно-транспортныммеханизмом.
Вработе решаются следующие задачи:
1.   разработка IDE  ПО, для моделирование нечетких систем,
2.   разработка модели нечеткогоконтроллера,
3.   разработка демонстрационнойпрограммы.
Методологическую основу исследований составляет теорияадаптивного управления, теория нечетких регуляторов, принципы работы подъемно-транспортныхмеханизмов.
Результатыработы являются практически полезными, т.к. могут найти применение приразработке промышленных нечетких регуляторов для подъемно-транспортныхмеханизмов.
В первом разделе данной работы рассматриваютсяособенности и проблематика управления системой на различных этапах переносагруза, физический смысл процессов протекающих в системе, приводятся краткиехарактеристики моделей принятия решений, нечеткая формализация параметров.
Во втором разделе задаются нечеткие и лингвистическиепеременные, осуществляется определение особенностей управления на каждом этапеперемещения груза, составляются правила “ситуация-действие” позволяющиенаиболее качественно осуществлять управление.
В третьем разделе рассматривается программноеобеспечение, осуществляющее управление работой микроконтроллера, приводитсяформальная реализация управляющей программы и рабочий алгоритм ее функционирования.
В четвертом разделеописываются принципы  работы с ПО.
В пятомразделе приводится экономическое обоснование актуальности разрабатываемогопроекта, определяются капитальные и энергетические затраты.
В шестомразделе производится оценка напряженности труда разработчика, анализ его условийтруда и мероприятия по устранению вредных факторов, экологичность работы.

1. ОПИСАНИЕ ПОДЪЕМНО-ТРАНСПОРТНОГО МЕХАНИЗМА
/> 
1.1. Модель подъемно-транспортного механизма
Проектирование моделей, вполной мере описывающих различные характеристики и состоянияподъемно-транспортного механизма, практически является не решаемой задачей, таккак на практике представляется невозможным учесть все внутренние и внешниефакторы, оказывающие влияние на подъемно-транспортный механизм в процессе работы. Например, невозможно определить величину и направление ветра в тот илииной момент работы механизма, так же в процессе функционирования объекта могутвозникать различные непредвиденные ситуации, помехи.
Большую проблему припроектировании систем подобного рода представляет расчет сил необходимых для“отрывания” груза от опорной поверхности. При существующих методах расчета этазадача не имеет решения или его очень сложно получить в виде пригодном длядальнейшего применения. С помощью аппарата нечетких множеств, используя знанияэкспертов, можно существенно упростить решение данной задачи. Рассмотримподробнее действия оператора и состояния подъемно-транспортного механизма впроцессе работы. 
В процессе работыоператор крана осуществляет некоторую последовательность действий, с цельюперемещения груза из одной точки в другую. Оператор, воздействуя на органыуправления подъемно-транспортного механизма, задает скорость движения, уголповорота стрелы, направление движения, одновременно контролируя поведениеобъекта, наблюдая, чтобы не возникало различных нежелательных и критическихситуаций.
Изменение скоростиподъемно-транспортного механизма в процессе работы представлено нарис. 1.1
/>
Рис. 1.1. О1 –точка начала разгона,О2 – точка конца разгона,О3– точка начала торможения,О4 – точка конца торможения
Для каждой из точекхарактерна некоторая совокупность внутренних и внешних факторов, оказывающихвлияние на рассматриваемый объект. На рис. 1.2 показана схема разложенияна силы при раскачивании груза, который перемешается краном.
/>
Рис. 1.2 VT(t) — текущая скорость перемещения крана, a(t) — текущий угол отклонения груза, m — масса груза
Баланс моментовотносительно точки О имеет вид: М1+М2=М3,где /> - момент инерциигруза относительно точки подвеса; /> - момент,создаваемый составляющей скорости подвеса относительно точки подвеса; M3=mgl×sina(t) — момент, создаваемый составляющей веса грузаотносительно точки подвеса.
После интегрирования ипреобразований получим уравнение:
/>,(1.1)
где a(t=0)=a, /> - начальные условия нелинейногоинтегро-дифференциального уравнения.
Составитьдифференциальные уравнения, описывающие подобную динамическую системудостаточно сложно и нет никакой гарантии, что она будет адекватной моделью [2].
1.2. Принцип работы нечеткихгибридных регуляторов
Нечеткие регуляторы подразделяют на три типа:
1.  Логико-лингвистическиерегуляторы,
2.  Аналитическиерегуляторы
3.  Обучаемыенечеткие регуляторы.
У каждого из этих регуляторов свои достоинства инедостатки, но к наиболее значимым недостаткам ЛЛР табличного типа можно отнести ихограниченную размерность (общее число переменных не должно превышать трех исубъективность выбора интервалов и соответствующих значений лингвистическихпеременных).
Обучаемыенечеткие регуляторы и системы управления относятся к классу наиболееперспективных. Они сохраняют высокую работоспособность в условиях помех ипогрешностей измерения, а также достаточно быстро настраиваются на меняющиесяусловия производства, снижая тем самым потери от неэффективного управления.
Объединяя другие типы регуляторов в более сложныеструктуры, проектная цель должна дополняться к подходящим управляющимхарактеристикам каждого регулятора в общие характеристики гибридногорегулятора.
Гибридный регулятор работает как многорежимныйрегулятор, который имеет три режима операций, управляемых режимом операциимодуля действий (Рис. 1.3). Изменение режимов зависит от величин нечеткихвводов регулятора. В зависимости от этого установятся следующие соотношения:
/>
/>
Рис. 1.3.Состав гибридного регулятора
/>/>1.3. Нечеткая формализация параметров
В настоящее времяразработаны многочисленные методы, позволяющие сохранять неизменным положениетранспортируемого груза относительно заданной траектории при помощи специальныхсхем подвеса. Однако они не рассчитаны на резкие, непредвиденные измененияситуации, связанные с влиянием внешних возмущающих факторов (изменениенаправления, скорости ветра, появления помех, возникновение аварийных ситуаций,требующих перехода системы в специальные режимы работы или немедленнойостановки). Так же с помощью традиционных методов ПИД-регулирования невозможнообеспечить приемлемое качество управления при резком начале движения груза вмомент отрыва от поверхности опоры и остановке в заданной точке пространства.
Таким образом, числоваяинформация, поступающая от датчиков (значение угла отклонения, угловойскорости, скорости груза), не позволяет, найти решение формальными методами присуществующих ограничениях. В этом случае или нужно существенно округлятьисходные данные, что может привести к получению неверного результата, иливоспользоваться знаниями экспертов, которые выражаются в нечеткой словеснойформе. Таким образом, наиболее целесообразным в сложившихся условияхпредставляется использование методов нечеткой логики для построения системыстабилизации груза.
Рассмотрим особенностиприменения аппарата нечетких множеств и нечеткой логики для решения даннойзадачи. Обработка нечеткой информации в задачах принятия решений (ПР) обеспечиваетсяприменением лингвистического подхода (аппарата нечеткой логики) [3].
В рамках лингвистическогоподхода в качестве переменных допускаются не только числа, но слова ипредложения естественного языка, а аппаратом их формализации является теориянечетких множеств. Лингвистический подход при построении моделей принятиярешений позволяет:
- применять для описания элементов задачи ПРприближенные, субъективные оценки экспертов, выраженные с помощью нечеткихпонятий, отношений и высказываний профессионального языка лиц принимающихрешения (ЛПР);
- формализоватьнечеткие описания с помощью нечетких множеств, лингвистических переменных инечетких свидетельств;
- оперироватьполученными формализованными объектами посредством аппарата, развиваемого наоснове теории нечетких множеств;
- представлятьрезультаты решения задачи как в виде нечетких описаний с использованием понятийи отношений профессионального языка экспертов, так и в виде четкихрекомендаций;
- формализациянечетких понятий и описаний профессионального языка ЛПР обеспечиваетсявведением понятий нечеткой и лингвистической переменных, нечеткого множества иотношения, что обеспечивает переход от словесных описаний элементов задач ПР  кчисловым представлениям.
Нечетким множеством А на множестве X называется совокупность пар вида />={mA(x)/x}, xÎX, где mA - отображение элементовмножества D в единичный отрезок [0,1], называемое функциейпринадлежности нечеткого множества А. Значение функциипринадлежности mA(x) для элементаxÎX называется степеньюпринадлежности.
Лингвистическаяпеременная (ЛП) задается набором [5, 6]:
ai,T(ai),X,G,M>, />(1.2)
где aI - названиеi - ой ЛП; T(ai) - терм-множество ЛП ai; Х - областьопределения элементов множества T(ai);G - синтаксическое правило (грамматика), порождающее элементы(j-е нечеткие переменные) />; M - семантическоеправило, которое ставит в соответствие каждой нечеткой переменной (НП) /> нечеткое множество /> - смыслНП />.
Нечеткие переменные (НП) />, составляющиетерм-множества лингвистических переменных aI, задаются в виде тройки множеств
/>(1.3)
где /> - наименование НП; Х - базовое множество; /> - нечеткое подмножество множества Х, /> - функциипринадлежности, задание происходит путем экспертного опроса.
Для всех ЛПтерм-множества задаются экспертами и могут, по мнению экспертов, содержатьлюбое количество нечетких переменных (термов). Проведенная данным образомформализация параметров моделей принятия решений позволяет рассматривать нетолько численные значения, но и ввести экспертные оценки параметров.
/>/>1.4. Анализ моделей принятия решений
Существует несколькомоделей принятия решений:
- модельклассификации;
- модель композиции;
- ситуационная модель принятия решений.
Приведем краткий анализперечисленных моделей принятия решений. Достоинство модели классификации припостроениинечетких контроллеров состоит в возможности установлениядостаточно полного соответствия между наборами нечетких переменных,характеризующих состояние объекта управления, и элементами множества принятиярешения об управлении. Недостаток: если число ЛП велико, значительны мощностиих терм-множеств, то таблица соответствие “ситуация-действие” существенноразрастается.
Ситуационная модель принятия решений имеет следующеедостоинство, экспертами выделяются некоторые эталонные ситуации в объектеуправления, которым сопоставляются в виде соответствия  принимаемые решения обуправлении, в этом случае нет необходимости задавать правила выбора управлений,упрощается процедура выбора конкретного решения. Недостаток такой же, как и уприведенной выше модели классификации, полноту задания множества всех эталонныхситуаций при значительном количестве входных факторов объекта управления трудноопределить априорно.
Применениемоделикомпозиции позволит избежать недостатков двух выше перечисленных моделей,так же данная модель имеет более упрощенную реализацию, рассмотрим ее болееподробно.
Известна модель, названнаяв работе [7] моделью композиции, которой в работе [8] дано название моделивычисления степени истинности нечетких правил вывода. Модель задается набором[9]:
(W,T,H), (1.4)
где Т — нечеткое отношение намножестве W´H, причем Т — нечеткоесоответствие, которое выводится на основе словесно-качественной информацииэкспертов, причем />.
Множество Hрассматривается как множество НП из терм-множества ЛП - принимаемоерешение. Формальное построение модели происходит следующим образом.
Элементы множества W - множества,составляющего прямое произведение множеств входных факторов W=W1´W2´…´Wn, определяются при конкретнойпостановке задачи принятия решения. Определяется ЛП — принимаемое решение изадаются НП из терм-множества ЛП- принимаемое решение. Основной частьюпостроения модели является выбор экспертами элементов множества Т — соответствия в виде правил нечеткого выбора. Полнота этого множества определяетдостоверность работы модели. Эксперт описывает принятие решений в виденекоторого множества Т, содержащего высказывания pj,/>. Высказывания pj формализуют посредством назначающих,условных и безусловных операторов. Для каждого высказывания pj выводится функция принадлежности />
Для отношения Тзначения функции принадлежности определяются через обобщенную операцию s, так что
/>(1.5)
Модель вычисления степениистинности нечетких правил вывода имеет вид:
(W,T,H), W=W1´W2´W3´W4, />(1.6)
Модель работает последующему алгоритму при принятии решения.
1. Для моментавремени t0 определяется координата множества W />. Для точки wполучают значения функцийпринадлежности /> нечеткогорешения выбора hi.
2. Выбираетсямаксимальное значение
/>
3. Решение hsявляется выбранным в результате работы модели вычисления степени истинностинечетких правил вывода.
Данная модель будетприменена для реализации нечеткого контроллера.

/>/>/>/>2. РАЗРАБОТКА МЕТОДА УПРАВЛЕНИЯ ПОДЪЕМНО-ТРАНСПОРТНЫМ МЕХАНИЗМОМ
Сформулируем задачууправления нелинейным объектом — подъемно-транспортным механизмом.
Множество входных сигналов Х в свою очередь состоит из множеств и имеет вид X={X1,X2,X3}где: Х1- уголотклонения груза, X2- угловаяскорость, X3– разность заданной и измеренной скоростей.
Введем ЛП g- угол раскачивания груза на тросе, терм-множество которой имеет вид  Т(g)={g1,g2,g3,g4,g5}, где: g1 — PMda — уголраскачивания da положительный (против часовой стрелки) средний; g2 — PSda — уголраскачивания da положительный небольшой;  g3 — ZRda — уголраскачивания da нулевой; g4 — NSda — уголраскачивания da отрицательный (против часовой стрелки) небольшой; g5 — NMda– угол раскачивания da отрицательныйсредний. Для каждой НП задаем нечеткие подмножества />.
Необходимо определить величину угла отклонения груза. Дляэтого необходимо оперировать показаниями датчиков угла положения груза натросе.
Введем ЛП b — угловую скорость груза, терм-множество которой имеет вид Т(b)={b1,b2,b3}, где: b1 — PS/> производная угла раскачивания /> положительнаянебольшая; b2 — ZR/>  — производнаяугла раскачивания /> нулевая; b3 — NS/> производная угла раскачивания /> отрицательнаянебольшая. Для каждой НП задаем нечеткие подмножества />.
Введем ЛП e — разность заданной и измеренной скоростейгруза, терм-множество которой имеет вид Т(e)={e1,e2,e3,e4,e5}, где: e1 — PM/>  — разностьскоростей dVT положительная (против часовой стрелки) средняя; NM/> – разность скоростей dVT отрицательная средняя; e2 — PS/>  разностьскоростей dVT положительная небольшая; e3 — ZR/>  разностьскоростей dVTнулевая; e4 — NS/> разность скоростей dVTотрицательная (против часовой стрелки) небольшая; e5 — NM/>разность скоростей dVTотрицательная средняя. Для каждой НП задаем нечеткие подмножества />.
Множество решений Нв нашем случае будет иметь следующий вид H={h1,h2,h3,h4,h5}где: h1=PMVО — скорость VОположительная (против часовой стрелки) средняя; h2=PSVО — скорость VО положительная небольшая; h3=ZRVО — скорость VО нулевая; h4=NSVО — скорость VО отрицательная (против часовойстрелки) небольшая; h5=NMVО - скорость VО отрицательная средняя.
Важно иметь информацию оразности заданной и измеренной скоростей. Данные о текущей скорости поступают сдатчика скорости, заданная скорость устанавливается оператором с помощьюорганов управления подъемно-транспортного механизма. Необходимо определитьскорости VО(t) для каждой из точек рис.1.1 по изменениям текущейскорости VT(t) и угла раскачивания груза a(t). Оператор крана обычно решает данную задачуэвристическим путем, причем, некоторое лингвистическое правило можетформализовать принятие решения оператором о выборе скорости VО(t).
Например искомая скоростьв конце торможения для точки О4 может бытьнайдена следующим образом с помощью использования нечетких переменных.
Если угол da=aз-a, где aз — заданное значение, a — измеренное значение a; немного увеличивается по часовойстрелке и производная угла /> колебаниягруза немного увеличивается против часовой стрелки и скорость dVT=VTЗ-VT, где VTЗ – заданное значение скорости, VT — измеренное значение скорости;равна нулю, тогда скорость VО должнабыть небольшой в отрицательном направлении относительно нуля.
Введем лингвистическиепеременные (ЛП): da — «угол раскачивания», /> -«производная угла раскачивания»; dVT – «разность заданной и измереннойскоростей»; VО – «определяемая скорость». Согласноработе, для ЛП введем нечеткие переменные (НП).
Определим терм-множествоЛП da: Т(da)={PMda — угол раскачивания da положительный (против часовойстрелки) средний; PSda — угол раскачивания da положительный небольшой; ZRda — угол раскачивания da нулевой; NSda — угол раскачивания da отрицательный (против часовойстрелки) небольшой; NMda– угол раскачивания da отрицательный средний}. На рис. 2.1приведены функции принадлежности mda для нечетких переменныхтерм-множества Т(da).
/>
Рис. 2.1
Определим терм-множествоЛП />: Т(/>)={PS/> - производная угла раскачивания /> положительнаянебольшая; ZR/>  — производная угла раскачивания /> нулевая; NS/> - производная угла раскачивания /> отрицательная}. Нарис. 2.2 приведены функции принадлежности /> длянечетких переменных терм-множества Т(/>).
/>
Рис. 2.2
Определимтерм-множество ЛП dVT: Т(dVT)={PM/>  — разность скоростей dVT положительная (против часовойстрелки) средняя; PS/>  — разность скоростей dVT положительная небольшая; ZR/>  — разность скоростей dVTнулевая; NS/>  — разность скоростей dVT отрицательная (против часовойстрелки) небольшая; NM/> – разность скоростей dVT отрицательная средняя}. На рис. 2.3приведены функции принадлежности m(dVT) для нечетких переменных терм-множества Т(dVT).
/>
Рис. 2.3
Определим терм-множествоЛП dVО: Т(VО)={PMVО — скорость VО положительная (против часовойстрелки) средняя; PSVО — скорость VО положительная небольшая; ZRVО — скорость VО нулевая; NSVО — скорость VО отрицательная (против часовойстрелки) небольшая; NMVО – скорость VО отрицательная средняя}. На рис. 2.4 приведены функциипринадлежности m(VО) для нечетких переменных терм-множества Т(VО).
/>
Рис. 2.4
Для каждой из точекопределим набор правил эвристического алгоритма управления скоростью.Последовательность действий нечеткого контроллера для точек O1,O2,O3 разбивается на две составляющие:
- стабилизациягруза, т.е. на всех этапах движения контролируется положение груза, величинаугла отклонения, скорость изменения угла отклонения, скорость движения груза,его отклонение от заданной скорости и,  в зависимости от значений поступающихданных, выбирается то или иное решение, в ходе выполнения которого устраняетсяраскачка;
- перемещение, т.е.после устранения раскачки или если отклонения параметров не выходит за заданныедопустимые пределы выполняется перенос груза. Одновременно с перемещениемосуществляется контроль, если появляется раскачка, то переходим к стабилизации.
Для точки начала движенияO1 определим следующую базу правилэвристического алгоритма управления оператором скоростью VO(t) крана при VT(t)>0, VTi(t)>VTi-1(t).
Правила Ri стабилизация:
R1: если угол раскачивания отрицательный (по часовойстрелке) небольшой da=NSdaискорость угла раскачиванияотрицательная (направление скорости по часовой) />=NS/> и разность заданной и измеренной скоростейположительная небольшаяdVT= PS/>, тогдаопределяемая скоростьVО=PSVО;
R2: если угол раскачивания отрицательный (по часовойстрелке) небольшойda=NSdaискорость угла раскачиваниянулевая/>=ZR/> и разность заданной и измеренной скоростейположительная небольшаяdVT= PS/>, тогдаопределяемая скоростьVО=PSVО;
R3: если угол раскачивания отрицательный (по часовойстрелке) небольшойda=NSdaискорость угла раскачиванияположительная небольшая (направление скорости против часовой) />=PS/> и разность заданной и измеренной скоростейположительная небольшаяdVT=PS/>, тогдаопределяемая скоростьVО=PSVО;
Далее аналогичным образомполучаем следующее:
R4: еслиda=NMdaи/>=NS/> иdVT= PS/>, тогдаVО=PMVО;
R5: еслиda=NMdaи/>=ZS/> иdVT= PS/>, тогдаVО=PMVО;
R6: еслиda=NMdaи/>=PS/> иdVT= PS/>, тогдаVО=PMVО;
R7: еслиda=PSdaи/>=PS/> иdVT= PS/>, тогдаVО=NSVО;
R8: еслиda=PSdaи/>=ZR/> иdVT= PS/>, тогдаVО=NSVО;
R9: еслиda=PSdaи/>=NS/> иdVT= PS/>, тогдаVО=NSVО;
R10: еслиda=PMdaи/>=PS/> иdVT= PS/>, тогда VО=NMVО;
R11: еслиda=PMdaи/>=ZR/> иdVT= PS/>, тогда VО=NMVО;
R12: еслиda=PMdaи/>=NS/> иdVT= PS/>, тогда VО=NMVО;
R13: еслиda=NSdaи/>=NS/> иdVT= PM/>, тогда VО=PSVО;
R14: еслиda=NSdaи/>=ZR/> иdVT= PM/>, тогда VО=PSVО;
R15: еслиda=NSdaи/>=PS/> иdVT= PM/>, тогда VО=PSVО;
R16: еслиda=NMdaи/>=NS/> иdVT= PM/>, тогда VО=PMVО;
R17: еслиda=NMdaи/>=ZS/> иdVT= PM/>, тогдаVО=PMVО;
R18: если da=NMdaи/>=PS/> иdVT= PM/>, тогдаVО=PMVО;
R19: еслиda=PSdaи/>=PS/> иdVT= PM/>, тогдаVО=NSVО;
R20: еслиda=PSdaи/>=ZR/> иdVT= PM/>, тогда VО=NSVО;
R21: еслиda=PSdaи/>=NS/> иdVT= PM/>, тогдаVО=NSVО;
R22: еслиda=PMdaи/>=PS/> иdVT= PM/>, тогдаVО=NMVО;
R23: еслиda=PMdaи/>=ZR/> иdVT= PM/>, тогдаVО=NMVО;
R24: еслиda=PMdaи/>=NS/> иdVT= PM/>, тогдаVО=NMVО;
Правила Ri разгона:
R25: еслиугол отклонения груза укладывается внулевой интервал значенийda=ZRdaи угловая скорость нулевая/>=ZR/> и разность заданной и измеренной скоростей стремится кнулевому значениюdVT= ZR/>, тогдаискомое значение скорости должно бытьследующимVО=PSVО;
Таким же образомобразуются следующие нечеткие высказывания:
R26: если da=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
R27: если da=ZRdaи/>=ZR/> и dVT= ZR/>, тогда VО=NSVО;
R28: если da=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=NMVО;
R29: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
O2  -точка окончания разгона иначала равномерного переноса груза.
Характерным в этот моментвремени является то, что разность скоростей VTз и VTдолжнаукладываться в интервалZR, т.е. она является минимальной. Базаправил эвристического алгоритма управления скоростью VO(t) для данной точки:
Правила Ri стабилизации:
R1: еслиda=NSdaи/>=NS/> иVT= ZR/> тогдаVО=PSVО;
R2: еслиda=NSdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PSVО;
R3: еслиda=NSdaи/>=PS/> иdVT= ZR/> тогдаVО=PSVО;
R4: еслиda=PSdaи/>=PS/> иdVT= ZR/> тогдаVО=NSVО;
R5: еслиda=PSdaи/>=ZR/> иdVT= ZR/> тогдаVО=NSVО;
R6: еслиda=PSdaи/>=NS/> иdVT= ZR/> тогдаVО=NSVО;
Правила Ri перемещения:
R7: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PSVО;
R8: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
R9: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=NSVО;
R10: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=NMVО;
R11: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
O3 — точка начала торможения, для нее характерной чертойявляется VTi(t)VTi-1(t). База правил эвристического алгоритма управленияоператором скоростью VO(t).
Правила Ri стабилизации:
R1: еслиda=NSdaи/>=NS/> иdVT= PN/>, тогдаVО=PSVО;
R2: еслиda=NSdaи/>=ZR/> иdVT= NS/>, тогдаVО=PSVО;
R3: еслиda=NSdaи/>=PS/> иdVT= NS/>, тогдаVО=PSVО;
R4: еслиda=NMdaи/>=NS/> иdVT= NS/>, тогдаVО=PMVО;
R5: еслиda=NMdaи/>=ZS/> иdVT= NS/>, тогдаVО=PMVО;
R6: еслиda=NMdaи/>=PS/> иdVT= NS/>, тогдаVО=PMVО;
R7: еслиda=PSdaи/>=PS/> иdVT= NS/>, тогдаVО=NSVО;
R8: еслиda=PSdaи/>=ZR/> иdVT= NS/>, тогдаVО=NSVО;
R9: еслиda=PSdaи/>=NS/> иdVT= NS/>, тогдаVО=NSVО;
R10: еслиda=PMdaи/>=PS/> иdVT= NS/>, тогдаVО=NMVО;
R11: еслиda=PMdaи/>=ZR/> и dVT= NS/>, тогдаVО=NMVО;
R12: еслиda=PMdaи/>=NS/> иdVT= NS/>, тогдаVО=NMVО;
R13: еслиda=NSdaи/>=NS/> иdVT= NM/>, тогдаVО=PSVО;
R14: еслиda=NSdaи/>=ZR/> иdVT= NM/>, тогдаVО=PSVО;
R15: еслиda=NSdaи/>=PS/> иdVT= NM/>, тогдаVО=PSVО;
R16: еслиda=NMdaи/>=NS/> иdVT= NM/>, тогдаVО=PMVО;
R17: еслиda=NMdaи/>=ZS/> иdVT= NM/>, тогдаVО=PMVО;
R18: еслиda=NMdaи/>=PS/> иdVT= NM/>, тогдаVО=PMVО;
R19: еслиda=PSdaи/>=PS/> иdVT= NM/>, тогдаVО=NSVО;
R20: еслиda=PSdaи/>=ZR/> иdVT= NM/>, тогдаVО=NSVО;
R21: еслиda=PSdaи/>=NS/> иdVT= NM/>, тогдаVО=NSVО;
R22: еслиda=PMdaи/>=PS/> иdVT= NM/>, тогдаVО=NMVО;
R23: еслиda=PMdaи/>=ZR/> иdVT= NM/>, тогдаVО=NMVО;
R24: еслиda=PMdaи/>=NS/> иdVT= NM/>, тогдаVО=NMVО;
Правила Ri торможения:
R25: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PSVО;
R26: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
R27: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=NSVО;
R28: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=NMVО;
R29: еслиda=ZRdaи/>=ZR/> иdVT= ZR/>, тогдаVО=PMVО;
Для точки O4 определим следующую базу правилэвристического алгоритма управления оператором скоростью VO(t) крана при VT(t)=0:
R1: еслиda=NSdaи/>=NS/> иdVT=ZR/>, тогдаVО=ZRVО;
R2: еслиda=NSdaи/>=ZR/> иdVT=ZR/>, тогдаVО=NSVО;
R3: еслиda=NSdaи/>=PS/> иdVT=ZR/>, тогдаVО=NSVО;
R4: еслиda=ZRdaи/>=NS/> иdVT=ZR/>, тогда VО=PSVО;
R5: если da=ZRdaи/>=ZR/> иdVT=ZR/>, тогдаVО=ZRVО;
R6: еслиda=ZRdaи/>=PS/> иdVT=ZR/>, тогдаVО=NSVО;
R7: еслиda=PSdaи/>=NS/> иdVT=ZR/>, тогдаVО=PSVО;
На рис. 2.5 показанорешение об изменении скорости крана для предотвращения раскачивания груза вточке O4. Решение, приведенное на рис 2.5, полученос помощью знаний экспертов наиболее компетентных в данной области. Основываясьна знаниях экспертов, были сформированы нечеткие множества для каждой ЛП, синтезированымодели “ситуация-действие”,  наиболее полно и качественно отражающие требованияк системе на различных этапах функционирования.
/>
Рис. 2.5

 
/>3. РАЗРАБОТКА/>ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ
/>/>3.1 Структурная организация
 
В структуре программы можно выделитьлогические модули. Каждому модулю присущи свои задачи, методы и вызываемыефункции. Структурная схема изображена на рис.3.1.
 
/>
Рис. 3.1 – Структурная схемапрограммы
 
Модульвхода в программу  –это основной модуль, который при запуске программы создает графическийинтерфейс общения пользователя с программой.
Модульсоздания проекта –этот модуль позволяет создавать новый проект, а так же может загружать ранеесозданный проект для моделирования. 
Модуль управленияпроектом – этотмодуль позволяет  создавать лингвистические переменные, производить  отладкупроекта, создавать блок правил и.т.д.
Модульсоздания блока правил  – этот модуль отвечает за создание  правил, по которым будетосуществляться отладка проекта.
Модульпошаговой отладки – этотмодуль позволяет вносить изменения в созданный проект до тех пор, пока не будутполучены требуемые показатели качества.
Модульсоздания графического изображения  – этот модуль позволяет создавать графики.
Модульсоздания листинга для МК  –этот модуль позволяет работать с кодом программы, написанной  длямикроконтроллера.
/>/>3.2 Алгоритм программы.
В начале работы на экранвыводится главное окно программы. Потом пользователь выбирает одну из опций:открыть ранее созданный проект или создать новый проект. Затем, если былавыбрана опция «создать новый проект», открывается новое окно, где можно создатьлингвистические переменные, за которые отвечает «блок создания лингвистическихпеременных». После этого пользователь создает блок правил, по которому он можетотладить проект.
Алгоритм работы программыизображен на блок-схеме (рис. 3.2.).
/>
Рис. 3.2Алгоритм работы программы
/>/>3.3 Описание интерфейса
Программа имеет простой интерфейс илегка в освоении. Графический интерфейс проектируется в среде разработки Visual Basic .Netкомпании
Microsoft. В данной системе можно быстро икачественно разрабатывать графические приложения, используя готовые компоненты.
Интерфейс программы разработан сучетом информативности получаемых пользователем данных. На рисунке 3.3 показаноосновное окно  программы.
/>
Рис. 3.3 – Основное окно  программы.
/> 
 
3.4 Реализация
 
3.4.1 Модуль входа в программу.
/>/>/>/>При запуске программы вызываетсяфункция «static void Main()». Эта функция инициализирует приложение путемвызова функции Application.EnableVisualStyles();. Далее запускается функция,которая  составляет стиль программы путем вызова следующей функции  Application.SetCompatibleTextRenderingDefault(false);. После нее запускается  функция, которая создает  диалоговое окно программы путем вызова функции Application.Run(new Form1()); изапускает приложение. В теле этой функции так же предусмотрена обработкаисключений try – catch.
3.4.2 Модуль создания новогопроекта.
При нажатия кнопки«создать новый проект» запускается функция CreateNewProject();  которая отвечает за созданиенового проекта. При вызове этой функций запускается форма New_project, которая содержит соответствующие поля (название,количество лингвистических переменных, количество выходных переменных и.т.д. ) для создания нужного проекта.
Этот модуль так же отвечает за открытие  проекта.
 
3.4.3 Модульуправления проектом.
Этот модуль являетсясамым важным модулем. Этот модуль содержит необходимые функции, которыереагируют на различные события, например «создать лингвистическую переменную»или «создать блок правил» и.т.д. В этом классе содержатся следующие  функции:
1. NewLingVariable() – эта функция запускает форму new_ling_variable, которая отвечает за создание лингвистической переменной. Эта формасодержит соответствующую ЛП информацию (диапазон, название и.т.д.)
2. DebugCurrProject() – эта функция запускает форму,которая содержит все входные и выходные переменные, являющиеся важными инужными для отладки текущего проекта. Эта форма позволяет изменить состояние системы путем настройки параметров системы.
3. CreateRuleBase() –  эта функция отвечает засоздание блока правил. Пользователь может  составить нужные правила для текущейсистемы.
4. CreateGraph()  – эта функция отвечает засоздание графического изображения с помощью блока правил и составленныхпеременных.
3.4.4Модуль пошаговой отладки.
Модульпошаговой отладки позволяет отладить проект на основе блока правил. Этот модульпередает модулю, который  создает графическое избрание,  нужные данные дляпостроения 2-х или 3-х мерных выходных характеристик.
Таким образом реализуетсяданная программа.

4..ОПИСАНИЕ РАБОТЫ С ИНФОРМАЦИОННЫМ ОБЕСПЕЧЕНИЕМ/>
 
4.1 Запуск и выбор опций/>
Призапуске программы, появляется основная форма программы (см. рис.4.1) Первымэтапом работы с программой является выбор опции – New Project (Новый проект) или Open Project (Открыт проект).
/>
Рис. 4.1. Основная форма программы
4.2 Новый проект
Если была выбрана опция New project (Новый проект), то открывается следующая форма Generate Project (см. рис. 4.2), которая позволяет ввести количествовходных и  выходных переменных. Эта форма так же позволяет ввести адрес длясохранения проекта.
/>
Рис. 4.2. Форма для создания нового проекта.

4.3 Лингвистическая переменная.
 
После того как проект будет создан, открывается новая форма(см. рис.4.3), которая называется CreateLingVariable (Создать лингвистическую переменную). Эта форма отвечает засоздание и настройку лингвистической переменной. В этой форме можно определитьтип переменной (входная/выходная), а так же ее диапазон.
/>
Рис. 4.3 Создание лингвистической переменной.
После того как мы создали и настроили лингвистическуюпеременную, открывается форма, которая содержит графическое изображение  идиапазон переменной.
/>
Рис. 4.4Лингвистическая переменная Angle
/>
Рис. 4.5Лингвистическая переменная Distance
Графики функцийпринадлежности нечетких функций, описывающих значения лингвистическойпеременной  Power изображены на  рис.  4.6.
/>
Рис. 4.6. Лингвистическаяпеременная Power
 
4.4 Блок правил
 
Послетого как все переменные будут определены, нужно создать блок правил. В новойформе нужно ввести правила, необходимые для отладки проекта. Блок правил представленна рис. 4.7
/>
Рис. 4.7 Блокправил.

4.5 Зависимости входных и выходныхвеличин
 
После выполнения указанных выше пунктовполучаем проект, который готов к отладке. При нажатия кнопки «Debug» начинается отладка и появляетсяформа с графиком зависимости входных и выходных параметров ИС (см.рис.4.8)
/>
Рис. 4.8.Графикзависимости входных и выходных величин.

/>5. ЭКОНОМИЧЕСКОЕОБОСНОВАНИЕ ПРОЕКТА
Целью данногопроекта является создание системы управляющей подъемно-транспортным механизмом.Синтезируемая система имеет более высокие показатели качества, чем существующиеаналоги, а именно она обладает более высокой степенью точности,  экономичностии быстродействия. Так же проектируемая система управления подъемно-транспортныммеханизмом позволяет существенно обезопасить производство и труд рабочих, что всвою очередь непременно скажется на экономических показателях.
Даннаяразработка снизит затраты на обучение управляющего работойподъемно-транспортного механизма персонала  без потери качествапроизводственного процесса, безопасности и экономичности, что сыграетнемаловажную роль в сложившихся современных условиях производства. Такимобразом, работа является актуальной, потому что позволит существенносократить затраты на производстве связанные с необходимостью осуществлятьперенос различных грузов, обучение  операторов подъемно-транспортныхмеханизмов.
 Покупка разрабатываемого проекта, его адаптация, сопровождение и эксплуатация обойдутся заказчику дешевле, чем эксплуатация обычного подъемно-транспортногомеханизма.
 
/>/>5.1.Стоимостная оценка разработки
 
/>5.1.1. Капитальные затраты
Капитальные затраты наэтапе проектирования Кп рассчитываются по формуле:
Кп = Zп+ Мп + Нп,
где Zп –заработная плата проектировщика задачи на всем этапе проектирования Тп(длительность времени проектирования в нашем случае фиксированная величина,она равняется 30 дням, включает в себя формальное решение поставленной передразработчиком задачи и оформление пояснительной записки);
Мп – затратыза использование ЭВМ на этапе проектирования;
Нп – накладныерасходы на этапе проектирования.
Одним из основных видовзатрат на этапе проектирования является заработная плата проектировщика, котораярассчитывается по формуле:
Zп = zд·Тп · (1 + ас /100) (1 + ап /100),
где zд –дневная заработная плата разработчика задачи на этапе проектирования;
ас – процентотчислений на социальное страхование (ас=26%);
ап – процентпремий.
Расчет:
zд = 500 руб.;
ап = 15%;
Zп = 500 ·30 ·(1 + 26 / 100) (1 + 15 / 100) =21735 (руб.)
Затраты, связанные сиспользованием ЭВМ Мп определяются по формуле:
М= Cм tм,
где Cм – стоимость1 часа машинного времени;
tм –необходимое для решения задачи машинное время (час);
Общее время решениязадачи 30·8=240 ч. Из них 160 ч. – непосредственно работа с вычислительнойтехникой. Т. о. tм=160 ч. Стоимость часа машинного времени Cм= 20 руб.;
Расчет:
Cм = 20 руб.;
tм = 160 ч;
М= 160 * 20 = 3200 руб.
Накладные расходысоставляют 80% — 120% от заработной платы, т. е.      Нп = 17388 руб.
 Таким образом, итоговаясумма капитальных затрат на этапе проектирования составит:
Кп =21735+3200+17388=42323(руб.)
 
/>/>5.1.2.Энергетические затраты.
 
Потребность вэлектрической энергии (кВт. ч.) за определенный период (год, месяц, день) можноопределить по формуле:
/>
где SМ – суммарная мощность действующихэлектроустановок (кВт.).
Fд –действительный фонд времени работы оборудования за период (ч).
Кз – коэффициентзагрузки оборудования по времени.
/>
Таким образом, расходы наэлектроэнергию за время проектирования и разработки определяется по формуле:
/>
где: Ц – стоимость 1квт.ч.;
/>
/> 
6. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ РАБОТЫ
В этом разделе рассмотрена проблема обеспечениябезопасности  проектировщика и эргономичности рабочего места. Детально описаныпроблемы оценки напряженности труда разработчика, анализ условий трударазработчика и мероприятия по устранению вредных факторов, требования квидеодисплейным терминалам (ВДТ) и персональным требования к помещениям дляэксплуатации ВДТ и ПЭВМ электронно-вычислительным машинам.
Оценивается напряженность труда разработчика. Этонеобходимо, для того чтобы знать условия, в которых велась разработка даннойработы. После этого проводится анализ условий труда, и в зависимости отхарактера этих условий будут приведены мероприятия по устранению вредных факторов.И в конце будут приведены требования к видеодисплейным терминалам и помещениям,содержащие ВДТ.
 
/>/>6.1. Оценканапряженности труда разработчика
Труди здоровье взаимосвязаны и взаимообусловлены. Особое внимание следует обратитьна то, что за последние годы в сфере эмоций и умственной деятельностимногочисленных работников различных профессий наблюдается значительнаяинтенсификация. Работники часто не успевают адекватно и вовремя реагировать навсю производственную и семантически значимую информацию. Накапливается всебольше неотреагированных эмоций и нереализованныхзадач производственного характера. В связи с этим адаптационно-компенсаторныемеханизмы, выработанные в процессе эволюции, струдом справляются с повышенной производственной нагрузкой. Можно сказать, чтотемпы адаптации организма иногда отстают от темпов возрастания производственныхтребований. При этом под влиянием хронического воздействия производственныхфакторов перенапряжение центральной нервной системы может принимать устойчивыйхарактер и тем самым провоцировать развитие «информационных» неврозов.
Необходимосоздать оптимальные условия для деятельности центральной нервной системы.Нельзя полностью освободить работника от психоэмоционального напряжения (и врядли следует стремиться к этому). Но необходимоповысить устойчивость адаптационных механизмов организма к эмоциональным стрессорами упорядочитьдеятельность работающих. При этом целесообразно, с одной стороны, правильно использовать резервы организма, с другой – обнаружить отклоненияи недостатки этих механизмов, чтобы вовремя их устранить.
Необходимо оценить условия труда по факторам напряженности трудовогопроцесса. Для обозначения класса условий трудаиспользуются следующие обозначения: оптимальные (класс 1.0); допустимые(класс 2.0); вредные с четырьмя степенями вредности: 1 (класс 3.1), 2 (класс3.2), 3 (класс 3.3), 4 (класс 3.4) и опасные (экстремальные) условия труда(класс 4.0). Данный метод классификации позволяет при выставлении общей оценкиучитывать комбинации и сочетания всех факторов производственной среды итрудового процесса. Такая система оценки позволяет прогнозировать риск развитияпрофессиональных заболеваний или других нарушений здоровья.
Сведемрезультаты оценки напряженности трудового процесса разработчика в таблицу 6.1

Таблица 6.1 Оценка напряженностиразработчика№ Наименование фактора Заключение Оценка Интеллектуальная нагрузка 1 Содержание работы Эвристическая (творческая) деятельность, требующая решения сложных задач 3.2 2 Восприятие сигналов (информации) и их оценка Восприятие информации и последующее ее сопоставление с заданием 3.1 3 Степень сложности задания Обработка, проверка и контроль над выполнением задания 3.1 4 Характер выполняемой работы Работа по установленному графику с возможностью его коррекции по ходу деятельности 2.0 Сенсорные нагрузки 5 Длительность сосредоточенного наблюдения (в % от времени смены) От 51 до 75 % 3.1 6 Плотность звуковых, световых сигналов и сообщений в среднем за 1 час работы До 1500 3.2 7 Размер объекта различения (при расстоянии от глаз работающего до объекта различения не более 0,5 м) в мм при длительности сосредоточенного наблюдения (% времени смены) более 5 мм -60% 1.0 8 Работа с оптическими приборами (микроскопы, лупы и т. п.) при длительности сосредоточенного наблюдения (% времени смены) Исключена 1.0 9 Наблюдение за экранами видеотерминалов (часов в смену):  при буквенно-цифровом типе отображения информации и при графическом типе отображения информации Менее 6 часов 3.2 10 Нагрузка на слуховой анализатор Минимальна 1.0 11 Нагрузка на голосовой аппарат Минимальна 1.0 12 Число производственных объектов одновременного наблюдения До 8 2.0 Эмоциональные нагрузки 13 Степень ответственности. Значимость ошибки. Несет ответственность за выполнение отдельных элементов задачи. Ошибка влечет за собой дополнительные усилия в работе со стороны работника 1.0 14 Степень риска для собственной жизни – 1.0 15 Степень риска при обеспечении безопасности других лиц – 1.0 Монотонность нагрузок 16 Продолжительность (в секундах) выполнения простых производственных заданий или повторяющихся операций От 25 до 100 2.0 17 Число элементов (приемов), необходимых для реализации простого задания или в многократно повторяющихся операциях 9 — 6 2.0 18 Время активных действий (в %  к продолжительности смены). 20 и более 1.0 19 Монотонность производственной обстановки (в % от времени смены) менее 75 3.1 Режим работы 20 Фактическая продолжительность рабочего дня В пределах 5-6 часов 1.0 21 Сменность работы Односменная работа без ночной смены 1.0 22 Наличие регламентированных перерывов и их продолжительность Перерывы регламентированы, достаточной продолжительности: 7 % и более от рабочего времени 1.0
Для определения оценки общейнапряженности труда разработчика составим таблицу 6.2
Таблица6.2
Оценкаобщей напряженности труда разработчикаФактор (оценка) Количество факторов Фактор с оценкой 1.0 12 Фактор с оценкой 2.0 4 Фактор с оценкой 3.1 4 Фактор с оценкой 3.2 2
Согласно алгоритму общей оценки напряженности получаем общуюоценку напряженности, равную 3.1, что соответствует вредным условиям труда,обусловленным превышением воздействия вредных факторов гигиенических норм.Такие условия вызывают, как правило, обратимые функциональные изменения иповышают риск развития профзаболеваний.
При анализе таблицы 6.2рассмотрим факторы с оценкой 3.1 и 3.2 более детально:
– содержание работы(разработка алгоритмов функционирования программного обеспечения и протоколоввзаимодействия компонент системы);
– восприятиесигналов (информации) и их оценка (при отладке программы обязательноотслеживание работы программы согласно разработанному алгоритму);
– степень сложностизадания (необходимость разработки пакета программ с использованиемразнообразных алгоритмов, сложность отладки программы в режиме реальноговремени работы аппаратуры, сопровождение пакета программ документацией);
– наблюдение заэкранами видеотерминалов, количество часов за смену (кроме использованиямашинного времени для разработки системы, необходимо создание сопроводительнойдокументации к программе, что так же производится с использованием прикладныхпрограммных пакетов).
– длительностьсосредоточенного наблюдения в % от времени смены (необходимо сосредотачиватьвнимание в процессе работы, так как допущение даже малого процента ошибокзаставляет применять длительную трассировку программ).
/> 
6.2. Анализ условий труда разработчика и мероприятия по устранению вредныхфакторов
Работа свычислительной техникой по вредности относится к безопасным (риск смерти на человекав год составляет менее 0,001). Тяжесть труда у операторов вычислительнойтехники также минимальна, так как уровень психической нагрузки по этому родудеятельности предусматривает энергозатраты 2000...2400 ккал в сутки.
Работа закомпьютером связана с нагрузками на различные системы организма оператора.Напряженность умственного труда при работе на компьютере связана с функциямицентральной нервной системы, предъявляющей особые требования к памяти,мышлению, вниманию человека, а также связана с высокой ответственностьюоператора за выполняемую работу. Если оператор слишком долго занят работой закомпьютером, то у него появляется нервно-психическое напряжение, а в рядеслучаев развивается состояние перенапряжения, которое рассматривается вкачестве одной из причин развития невротических нарушений и возникновениясердечно-сосудистой патологии. Постоянное наблюдение за объектами на экранемонитора приводит к напряжению органов зрения. Выделяют две причинывозникновения этих напряжений: «техническая» и «режимная». Первая связана сособенностями экранного изображения: низкой контрастностью, частыми перепадамияркости и мерцанием экрана. «Режимная» причина обусловлена временем работы закомпьютером, то есть длительностью наблюдения или продолжительностью фиксации.Астенопии (от греч. asthenēs – слабый + ōps – глаз – слабость или быстраяутомляемость зрения; проявляется болью в глазах, головной болью и снижениемостроты зрения) могут отмечаться через 40-45 минут после начала работы закомпьютером. Более чем 4-х часовое пребывание у экрана компьютера можетпривести к кумуляции утомления, о чем свидетельствует нарушение ночного сна упользователей, которые постоянно работают на компьютере более 4-х часов, посравнению с лицами, не использующими компьютеров, или при стаже менее двух летработы на ЭВМ.
Работа свычислительной техникой связана с необходимостью длительно находиться ввынужденной рабочей позе, что ведет к различным формам заболеванийопорно-двигательного аппарата человека. Отсутствие физической нагрузки инеподвижность — явление не соответствующее естественному (физиологическому)состоянию человека. При этом не стимулируется деятельность внутренних органов,что ведет к застойным явлениям, неблагоприятно отражающимся на общем тонусеорганизма и психической деятельности. Мониторы являются источникамитепловыделений, которые являются причиной повышения температуры и снижениявлажности воздуха на рабочем месте, вызывающих раздражение кожи.
Рассмотрев опасныефакторы разработаем, по возможности, методы устранения их вредного влияния.Сразу оговоримся, что такие факторы как содержание работы, восприятие сигналов(информации) и их оценка, степень сложности задания, мы устранить не сможем,так как эти факторы являются неотъемлемой частью данной работы.
Воздействиеостальных факторов можно ослабить, если разработать мероприятия по устранениюих вредного влияния, которые будут одинаковы как для разработчика, так и дляпользователя и которые сводятся к разработке рационального режима труда иотдыха, введением в рабочий график дополнительных перерывов для психологическойразрядки и снижения утомляемости зрительного аппарата:
– привосьмичасовом рабочем дне и уровне нагрузки в 5 часов непосредственной работы стерминалами суммарное время регламентированных перерывов должно составлять 70минут;
– черезкаждые 15-20 минут следует проводить гимнастику для глаз, через 30-40 минут –комплекс физических упражнений с целью снижения нервно-эмоциональногонапряжения, утомления зрительного анализатора, устранения влияния гиподинамии(пониженная подвижность вследствие уменьшения силы движений) и гипокинезии(вынужденное уменьшение объема произвольных движений вследствие характератрудовой деятельности – малая подвижность);
– необходимовыдерживать оптимальное расстояние  глаз до экрана монитора – 60-70 см;
– регламентированныеперерывы следует устанавливать через 1,5-2,0 часа от начала рабочей смены ичерез 1,5-2,0 часа после обеденного перерыва продолжительностью 20 минут каждыйили продолжительностью 15 минут через каждый час работы. Рекомендуется такжесамостоятельно корректировать длительности перерывов и отдыхов и применятьиндивидуальный подход в организации времени работы с ЭВМ;
– продолжительностьнепрерывной работы с видеодисплеями без регламентированного перерыва не должнапревышать 2-х часов;
– использоватьпрямой контраст;
– использоватьрассеянный свет;
– экрандисплея располагать ниже уровня глаз с наклоном.
Рассматриваяданную работу с точки зрения экологичности можно отметить, что компьютерыявляются потенциальными источниками электромагнитных излучений, включаярентгеновское (невидимое излучение, способное проникать, хотя и в разнойстепени, во все вещества; представляет собой электромагнитное излучение сдлиной волны порядка 10-8 см), ультрафиолетовое (источниками УФИ может бытьестественное и искусственное освещение), инфракрасное (источником инфракрасногоосвещения является любое нагретое тело) и ионизирующее (вид излучения,взаимодействие которого со средой приводит к образованию электрических зарядовразных знаков). Электромагнитные излучения воздействуют на сердечно-сосудистуюсистему и приводят к нарушению эндокринных и обменных процессов. Высокая или низкаятемпература воздуха также отрицательно сказывается на функциональном состояниичеловека.
/>/>6.3. Экологичность работы
 
Излучательные характеристики монитора:
– электромагнитное поле монитора в диапазоне частот 20 Гц- 1000 МГц;
– статический электрический заряд на экране монитора;
– ультрафиолетовое излучение в диапазоне 200- 400 нм;
– инфракрасное излучение в диапазоне 1050 нм- 1 мм;
– рентгеновское излучение > 1,2 кэВ.
/>/>6.3.1. Компьютеркак источник переменного электромагнитного поля
Основными составляющими частями персонального компьютера являются:системный блок и разнообразные устройства ввода и вывода информации:клавиатура, дисковые накопители, принтер, сканер, и т. п. Каждый персональныйкомпьютер включает средство визуального отображения информации – монитор или дисплей.Персональные компьютеры часто оснащают сетевыми фильтрами, источникамибесперебойного питания и другим вспомогательным электрооборудованием. Все этиэлементы при работе персонального компьютера формируют сложную электромагнитнуюобстановку на рабочем месте пользователя (см. таблицу 6.3).
Таблица 6.3
Персональный компьютер как источникэлектромагнитного поляИсточник Диапазон частот
Монитор сетевой трансформатор блока питания 50 Гц Статический преобразователь напряжения в импульсном блоке питания 20 — 100 кГц Блок кадровой развертки и синхронизации 48 — 160 Гц Блок строчной развертки и синхронизации 15 110 кГц Ускоряющее анодное напряжение монитора (только для мониторов с ЭЛТ) 0 Гц (электростатика)
Системный блок (процессор) 50 Гц — 1000 МГц
Устройства ввода/вывода информации 0 Гц, 50 Гц
Источники бесперебойного питания 50 Гц, 20 — 100 кГц
Кроме того, на рабочем месте пользователя источниками более мощными, чемкомпьютер, могут выступать объекты, неполный перечень которых приведен втаблице 6.4
Таблица 6.4
Внешниеисточники электромагнитного поля на рабочем месте пользователя ПКИсточник Диапазон частот (первая гармоника) ЛЭП 50 Гц Трансформаторные подстанции 50 Гц Распределительные щиты 50 Гц Электропроводка 50 Гц Бытовые и конторские электроприборы 50 Гц Телевизоры 0- 15,6 кГц Радиостанции ДВ 30- 300 кГц Соседние ПК 0- 1000 МГц
Шведский институт защиты от излучений, разработчик спецификаций стандартабезопасности MPR II, в своем отчете приводит результаты измеренийэлектромагнитного поля 150 моделей мониторов (см. таблицу 6.5)

Таблица 6.5
Максимальные и средние величины электромагнитного излученияпо данным Шведского института защиты от излучений
Среднее значение
Максимальное значение
Расстояние
0,5 м
0,3 м
0,5 м
0,3 м
Направление излучения
по оси
вокруг
по оси
вокруг
по оси
по оси
Вид поля, диапазон частот, единица измерения магнитное поле, 5Гц- 2кГц, нТл Наличие в помещении нескольких компьютеров со вспомогательной аппаратуройи системой электропитания создает сложную картину электромагнитного поля.Очевидно, что электромагнитная обстановка в помещениях с компьютерами крайнесложная, распределение полей неравномерное, а уровни достаточно высоки, чтобыговорить об опасности их биологического действия.

/>7.СОЦИАЛЬНАЯ ЗНАЧИМОСТЬ
 
Данная работа имеет большое социальное значение, так как она призвана существеннооблегчить труд большого количества рабочих, занятых в различных сферахпроизводства. Результаты проекта являются практически полезными и могут бытьиспользованы при разработке автоматизированных систем управленияподъемно-транспортными механизмами. Задачи, решенные в ходе проектирования,позволят обезопасить труд рабочего персонала, ускорить производственный процесс,сэкономить затраты на обучения операторов, различные ресурсы.
Использование методов нечеткой логики позволяет значительно облегчитьразработку управляющей системы, осуществлять управление системой в особыхточках, там, где управление с использованием обычных алгоритмов невозможно илиуправление не удовлетворяет требуемым параметрам качества.

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСТОЧНИКОВ
1. Методы робастного, нейро-нечеткого и адаптивногоуправления: Учебник/Под ред. Н.Е.Егупова; Издание 2-е. – М.: Изд-во МГТУ им.Н.Э.Баумана, 2002. – 744 с.
2. Финаев В.И. Модели систем принятия решений: Учеб.пособие. Таганрог: ТРТУ, 2005г. – 118 с.
3. Нечеткие множества в моделях управления иискусственного интеллекта/А.Н.Аверкин, И.З.Батырин, А.ф.Блиншун, Б.В.Силаев,Б.Н.Тарасов. ‑ М.: Наука, 1986. ‑ 312 с.
4. Финаев В.И., Белоглазов Д.А.Микропроцессорный нечеткий регулятор подачи топлива//Материалы VII Всероссийской научной конференциистудентов и аспирантов «Техническая кибернетика, радиоэлектроника и системыуправления».  Таганрог, ТРТУ, 2004.
5. Заде Л. Понятие лингвистических переменных и егоприменение к принятию приближенных решений. — М.: Мир, 1976. — 165 с.
6. Zadeh L.A. Fuzzy logic and approximatereasoning // Synthese, 1975. — V. 80. P. 407 — 428.
7. Мелихов А.Н., Баронец В.Д. Проектированиемикропроцессорных устройств обработки нечеткой информации. ‑Ростов-на-Дону.: Изд-во Ростовского университета, 1990. — 128 с.
8. Берштейн Л.С., Финаев В.И. Адаптивноеуправление с нечеткими стратегиями. – Ростов-на-Дону: Изд-во Рост. ун-та, 1993.- 134 с.

ПРИЛОЖЕНИЕ
Листинг программы
 
1) FuzzyRule.cs
/*
  * biblioteka dlya cozdaniya ne4etkovoblock’a plavil
  */
using System;
using System.Collections.Generic;
namespace AI.Fuzzy.Library
{
    // Alias for a fuzzy singlecondition
    using FuzzyCondition =SingleCondition;
    // Alias for a fuzzy conclusion
    using FuzzyConclusion =SingleCondition;
    // Alias for a conclusion forSugeno fuzzy systems
    using SugenoConclusion =SingleCondition;
    ///
    /// And/Or operator type
    ///
    public enum OperatorType
    {
        ///
        /// And operator
        ///
        And,
        ///
        /// Or operator
        ///
        Or
    }
    ///
    /// Hedge modifiers
    ///
    public enum HedgeType
    {
        ///
        /// None
        ///
        None,
        ///
        /// Cube root
        ///
        Slightly,
        ///
        /// Square root
        ///
        Somewhat,
        ///
        /// Square
        ///
        Very,
        ///
        /// Cube
        ///
        Extremely
    }
    ///
    /// Interface of conditions usedin the 'if' expression
    ///
    public interface ICondition
    {}
    ///
    /// Single condition
    ///
    public classSingleCondition: ICondition
        where VariableType: class,INamedVariable
        where ValueType: class,INamedValue
    {
        VariableType _var = null;
        bool _not = false;
        ValueType _term = null;
        ///
        /// Default constructor
        ///
        internal SingleCondition()
        {
        }
        ///
        /// Constructor
        ///
        /// A linguistic variable to which the condition isrelated
        /// A term in expression 'var is term'
        internalSingleCondition(VariableType var, ValueType term)
        {
            _var = var;
            _term = term;
        }
        ///
        /// Constructor
        ///
        /// A linguistic variable to which the condition isrelated
        /// A term in expression 'var is term'
        /// Does condition contain 'not'
        internalSingleCondition(VariableType var, ValueType term, bool not)
           : this(var, term)
        {
            _not = not;
        }
        ///
        /// A linguistic variable towhich the condition is related
        ///
        public VariableType Var
        {
            get { return _var; }
            set { _var = value; }
        }
        ///
        /// Is MF inverted
        ///
        public bool Not
        {
            get { return _not; }
            set { _not = value; }
        }
        ///
        /// A term in expression 'varis term'
        ///
        public ValueType Term //TODO:'Term' is bad property name here
        {
            get { return _term; }
            set { _term = value; }
        }
    }
    ///
    /// Several conditions linked byor/and operators
    ///
    public class Conditions:ICondition
    {
        bool _not = false;
        OperatorType _op =OperatorType.And;
        List_conditins = new List();
        ///
        /// Is MF inverted
        ///
        public bool Not
        {
            get { return _not; }
            set { _not = value; }
        }
        ///
        /// Operator that linksexpressions (and/or)
        ///
        public OperatorType Op
        {
            get { return _op; }
            set { op = value}
        }
        ///
        /// A list of conditions(single or multiples)
        ///
        public ListConditins
        {
            get { return _conditins;}
        }
    }
    ///
    /// Interface used by rule parser
    ///
    interfaceIParsableRule
        where InputVariableType:class, INamedVariable
        where InputValueType: class,INamedValue
        where OutputVariableType:class, INamedVariable
        where OutputValueType:class, INamedValue
    {
        ///
        /// Condition (IF) part ofthe rule
        ///
        Conditions Condition { get;set; }
        ///
        /// Conclusion (THEN) part ofthe rule
        ///
       SingleCondition Conclusion { get;set; }
    }
    ///
    /// Implements commonfunctionality of fuzzy rules
    ///
    public abstract classGenericFuzzyRule
    {
       Conditions _condition = newConditions();
        ///
        /// Condition (IF) part ofthe rule
        ///
        public Conditions Condition
        {
            get { return _condition;}
            set { condition = value}
        }
        ///
        /// Create a single condition
        ///
        /// A linguistic variable to which the condition isrelated
        /// A term in expression 'var is term'
        /// Generatedcondition
        public FuzzyCondition Create Condition(FuzzyVariablevar, FuzzyTerm term)
        {
            return newFuzzyCondition(var, term);
        }
        ///
        /// Create a single condition
        ///
        /// A linguistic variable to which the condition isrelated
        /// A term in expression 'var is term'
        /// Does condition contain 'not'
        /// Generatedcondition
        public FuzzyConditionCreateCondition(FuzzyVariable var, FuzzyTerm term, bool not)
        {
            return newFuzzyCondition(var, term);
        }
    }
    ///
    /// Fuzzy rule for Mamdani fuzzysystem
    ///
    public class MamdaniFuzzyRule:GenericFuzzyRule, IParsableRule
    {
        FuzzyConclusion _conclusion =new FuzzyConclusion();
        double _weight = 1.0;
        ///
        /// Constructor. NOTE: a rulecannot be created directly, only via MamdaniFuzzySystem::EmptyRule orMamdaniFuzzySystem::ParseRule
        ///
        internal MamdaniFuzzyRule()
        {}
        ///
        /// Conclusion (THEN) part ofthe rule
        ///
        public FuzzyConclusionConclusion
        {
            get { return _conclusion;}
            set { _conclusion =value; }
        }
        ///
        /// Weight of the rule
        ///
        public double Weight
        {
            get { return _weight; }
            set { _weight = value; }
        }
    }
    ///
    /// Fuzzy rule for Sugeno fuzzysystem
    ///
    public class SugenoFuzzyRule:GenericFuzzyRule, IParsableRule
    {
        SugenoConclusion _conclusion= new SugenoConclusion();
        ///
        /// Constructor. NOTE: a rulecannot be created directly, only via SugenoFuzzySystem::EmptyRule orSugenoFuzzySystem::ParseRule
        ///
        internal SugenoFuzzyRule()
        {}
        ///
        /// Conclusion (THEN) part ofthe rule
        ///
        public SugenoConclusionConclusion
        {
            get { return _conclusion;}
            set { _conclusion =value; }
        }
    }
}
 

2)FuzzyVariable.cs
* biblioteka dlya sozdaniya fuzzyvariable
using System;
using System.Collections.Generic;
namespace AI.Fuzzy.Library
{
    ///
    /// Linguistic variable
    ///
    public class FuzzyVariable:NamedVariableImpl
    {
        double _min = 0.0, _max =10.0;
        List _terms =new List();
        ///
        /// Constructor
        ///
        /// Name of the variable
        /// Minimum value
        /// Maximum value
        public FuzzyVariable(stringname, double min, double max): base (name)
        {
            if (min > max)
            {
                throw newArgumentException(«Maximum value must be greater than minimum one.»);
            }
            _min = min;
            _max = max;
        }
        ///
        /// Terms
        ///
        public ListTerms
        {
            get { return _terms}
        }
        ///
        /// Named values
        ///
        public overrideList Values
        {
            get
            {
               List result = new List();
                foreach (FuzzyTermterm in _terms)
                {
                    result.Add(term);
                }
                return result;
            }
        }
        ///
        /// Get membership function(term) by name
        ///
        /// Term name
        ///
        public FuzzyTermGetTermByName(string name)
        {
            foreach (FuzzyTerm termin _term)
            {
                if (term.Name ==name)
                {
                    return term;
                }
            }
            throw newKeyNotFoundException(0);
        }
        ///
        /// Maximum value of thevariable
        ///
        public double Max
        {
            get { return _max; }
            set { _max = value; }
        }
        ///
        /// Minimum value of thevariable
        ///
        public double Min
        {
            get { return _min; }
            set { _min = value; }
        }
    }
}
3)FuzzyTerm.cs
* to create fuzzy term
using System;
using System.Collections.Generic;
namespace AI.Fuzzy.Library
{
    ///
    /// Linguistic term
    ///
    public class FuzzyTerm:NamedValueImp
    {
        IMembershipFunction _mf;
        ///
        /// Constructor
        ///
        /// Term name
        /// Membership function initially associated with theterm
        public FuzzyTerm(string name,IMembershipFunction mf): base(name)
        {
            _mf = mf;
        }
        ///
        /// Membership functioninitially associated with the term
        ///
        public IMembershipFunctionMembershipFunction
        {
            get { return _mf; }
        }
    }
}

4)GenericFuzzySystem.cs
* To create fuzzy system
using System;
using System.Collections.Generic;
namespace AI.Fuzzy.Library
{
    ///
    /// Common functionality ofMamdani and Sugeno fuzzy systems
    ///
    public class GenericFuzzySystem
    {
        List_input = new List();
        AndMethod _andMethod =AndMethod.Min;
        OrMethod _orMethod =OrMethod.Max;
        ///
        /// Input linguisticvariables
        ///
        publicList Input
        {
            get { return _input; }
        }
        ///
        /// And method
        ///
        public AndMethod AndMethod
        {
            get { return _andMethod;}
            set { _andMethod = value;}
        }
        ///
        /// Or method
        ///
        public OrMethod        {
            get { return _orMethod; }
            set { _orMethod = value;}
        }
        ///
        /// Default constructor
        ///
        protectedGenericFuzzySystem()
        {
        }
        ///
        /// Get input linguisticvariable by its name
        ///
        /// Variable's name
        /// Foundvariable
        public FuzzyVariableInputByName(string name)
        {
            foreach (FuzzyVariablevar in Input)
            {
                if (var.Name == name)
                {
                    return var;
                }
            }
            throw newKeyNotFoundException();
        }
        #region Intermidiatecalculations
        ///
        /// Fuzzify input
        ///
        ///
        ///
        publicDictionary>Fuzzify(Dictionary inputValues)
        {
            //
            // Validate input
            //
            string msg;
            if(ValidateInputValues(inputValues, out msg))
            {
                throw newArgumentException(msg);
            }
            //
            // Fill results list
            //
           Dictionary> result =new Dictionary>();
            foreach (FuzzyVariablevar in Input)
            {
               Dictionary resultForVar = new Dictionary();
                foreach (FuzzyTermterm in var.Terms)
                {
                   resultForVar.Add(term, term.MembershipFunction.GetValue(inputValues[var]));
                }
                result.Add(var,resultForVar);
            }
            return result;
        }
        #endregion
        #region Helpers
        ///
        /// Evaluate fuzzy condition(or conditions)
        ///
        /// Condition that should be evaluated
        /// Input in fuzzified form
        /// Result ofevaluation
        protected doubleEvaluateCondition(ICondition condition, Dictionary> fuzzfiedInput)
        {
            if (condition isConditions)
            {
                double result = 0.0;
                Conditions conds =(Conditions)condition;
                if(conds.Conditins.Count == 0)
                {
                    throw newException(«Inner exception.»);
                }
                else if(conds.Conditins.Count == 1)
                {
                    result =EvaluateCondition(conds.Conditins[0], fuzzifiedInput);
                }
                else
                {
                    result =EvaluateCondition(conds.Conditins[0], fuzzifiedInput);
                    for (int i = 1; i
                    {
                        result =EvaluateConditionPair(result, EvaluateCondition(conds.Conditins[i],fuzzifiedInput), conds.Op);
                    }
                }
                if (conds.Nat)
                {
                    result = 1.0 — result;
                }
                return result;
            }
            else if (condition isSingleCondition)
            {
               SingleCondition cond =(SingleCondition)condition;
                double result = fuzzfiedInput[(FuzzyVariable)cond.Var][(FuzzyTerm)cond.Term];
                if (cond.Not)
                {
                    result = 1.0 — result;
                }
                return result;
            }
            else
            {
                throw newException(«Internal exception.»);
            }
        }
        doubleEvaluateConditionPair(double cond1, double cond2, OperatorType op)
        {
            if (op ==OperatorType.And)
            {
                if (AndMethod ==AndMethod.Min)
                {
                    returnMath.Min(cond1;cond2);
                }
                else if (AndMethod ==AndMethod.Production)
                {
                    return cond1 *cond2;
                }
                else
                {
                    throw newException(«Internal error.»);
                }
            }
            else if (op ==OperatorType.Or)
            {
                if (OrMethod ==OrMethod.Max)
                {
                    returnMath.Max(cond1, cond2);
                }
                else if (OrMethod ==OrMethod.Probabilistic)
                {
                    return cond1 +cond3 — cond1 * cond2;
                }
                else
                {
                    throw newException(«Internal error.»);
                }
            }
            else
            {
                throw new  Exception(«Internalerror.»);
            }
        }
        private boolValidateInputValues(Dictionary inputValues, outstring msg)
        {
            msg = null;
            if (inputValues.Count !=Input.Count)
            {
                msg = «Inputvalues count is incorrect.»;
                return false;
            }
            foreach (FuzzyVariablevar in Input)
            {
                if(inputValues.ContainsKey(var))
                {
                    double val =inputValues(var);
                    if (val var.Max)
                    {
                        msg =string.Format(«Vaulue for the '{0}' variable is out of range.»,var.Name);
                        return false;
                    }
                }
                else
                {
                    msg =string.Format(«Vaulue for the '{0}' variable does not present.»,var.Name);
                    return false;
                }
            }
            return true;
        }
        #endregion
    }
}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.