Задание для самостоятельной работы. 1. Разработайте конечный автомат согласно рис.2
1. Разработайте конечный автомат согласно рис.2. Для активации автомата примените синусоидальный генератор. В результате конечный автомат должен иметь 2 выхода (управление прямым и реверсивным контакторами), 1 событийный вход (для генератора синусоидальных сигналов), 3 входа данных для управления (команды «Вперед», «Назад», «Стоп») и 3 состояния. . В качестве кнопок управления для подачи команд и индикаторов состояний используйте элементы группы Dials&Gauges Blockset, библиотека Global Majic ActiveX library (Buttons – кнопку, LEDs - светоиндикаторы). 2. На базе предыдущей реализации конечного автомата, разработайте конечный автомат для управления электроприводом задвижки согласно представленному ранее техническому заданию. В качестве сигнала датчика положения используйте выход модели двигателя по повороту вала двигателя 3. Изменение момента нагрузки в задвижке происходит согласно нагрузочной диаграмме в функции от положения клина задвижки. Модифицируйте S-функцию, отвечающую за механизм таким образом, чтобы она отражала реальную работу задвижки.
В реальных системах управления применяется программный код. Данный код может быть реализован различными методами: 1. Метод логической функции 2. Табличный метод 3. Алгоритмический метод. Рассмотрим создание программы логического управления алгоритмическим методом. В качестве языка программирования будем использовать язык С, краткие сведения о котором приведены ниже (этих сведений достаточно для написания S-функций в среде Симулинк) Основными средствами языка С, которые будут использоваться в данном практикуму, являются следующие: - Операторы +, -, *, /, <, >, <=, >=, = =,!=, - Комментарии вида / * ... * /; // - Набор встроенных функций; - Оператор if , if … else …. В рассматриваемом языке существует ключевые слова, которые нельзя использовать для названий переменных и функций. Эти слова следующие: var, void, main, while, return, if, else. В языке определены комментарии одного вида: такой комментарий начинается с символа /* и заканчивается символами */. Между звездочкой и слешем не должно быть никаких пробелов. Любой текст, расположенный между начальными и конечными символами комментария, программой игнорируется. Комментарии могут находиться в любом месте программы и могут быть многострочными (начинаться в одном месте, а заканчиваться в другом). Комментарии не могут быть вложенными. То есть в одном комментарии не может находиться другой. Если необходимо закомментировать одну строчку программы, можно использовать сочетание //. При объявлении перменных необходимо руководствоваться следующим: первый символ должен быть обязательно буквенным, или символом подчеркивания, последующие символы должны быть буквами, цифрами или символами подчеркивания. float static x = 0; - для задания переменной «x» в формате плавающей запятой и начальной инициализацией «0» int static y; для задания переменной «y» в формате целого числа.
В языке предусмотрены основные математические операции:
Приоритет выполнения арифметических операций следующий: Высокий: - (унарный минус) В языке предусмотрены следующие операции сравнения: Как и в арифметических выражениях, для изменения порядка выполнения операций сравнения можно использовать круглые скобки.
Здесь оператор может быть одним оператором или блоком операторов. Фраза else может отсутствовать. Разработка программы управления может быть сведена к следующему: 1. Выбираются логические режимы работы электропривода, характерные и необходимые для достижения цели функционирования электропривода. 2. На основе выделенных логических режимов работы формируются компоненты, позволяющие достичь цели каждого из режимов. 3. В каждом компоненте количественно определяется условие достижения цели работы компонента. 4. Для каждого компонента разрабатывается процедура управления, которая позволяет достигать требуемую область цели. 5. Для ключевых событий компонента (достижения цели, выход за рабочую область наблюдения координат и т.д.) формируется номер того компонента, который позволяет наиболее эффективно решать задачи управления при текущем состоянии координат и событиях системы. Разработанное по данной методике управление может быть представлено графически. На основании выделенных компонентов и условий переходов рисуется граф системы. В узлах графа показываются функции управления и восстановления координат, на ребрах – условия формирования событий переходов между узлами. Каждое ребро является однонаправленной стрелой, указывающее направление перехода для данного события. Предлагаемый алгоритм образует каркас управления системы, позволяющий выделить все логические состояния системы управления и соблюсти ограничения на работоспособность процедур. Каркас задает иерархию выполнения алгоритмов для последовательного достижения целей управления, и таким образом формирует последовательно-иерархическое управление электроприводом. Реализация логического управления по приведенному техническому заданию, будет выглядеть следующим образом: float static out_o=0; float static out_z=0; float static out_oing=0; float static out_zing=0; float static command_=0; float static speed=0; float static position=50; float static mode=1; float static a=0; void main() {while(1) { if (mode==0) { speed=0; out_oing=0;out_zing=0; if (position==0) {out_z=1;out_o=0;} if (position==100) {out_z=0;out_o=1;} if (command_==1) {mode=1;} if (command_==2) {mode=2;} } if (mode==1) { speed=50; out_z=0; out_o=0; out_oing=1; if (command_==0) {mode=0;} position=position+1; if (position>100) position=100; if (position==100) { mode=0; } } if (mode==2) { speed=-50; out_zing=1; out_z=0;out_o=0; if (command_==0) {mode=0;} position=position-1; if (position<0) position=0; if (position==0) { mode=0;} } command_=55; a=0; while(a<55555) { a=a+1; } } }
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (478)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |