Главная страница

Simulink Инструмент моделирования динамических систем


Скачать 2.28 Mb.
НазваниеSimulink Инструмент моделирования динамических систем
АнкорSimulink Matlab.doc
Дата24.02.2018
Размер2.28 Mb.
Формат файлаdoc
Имя файлаSimulink Matlab.doc
ТипДокументы
#15867
страница13 из 15
1   ...   7   8   9   10   11   12   13   14   15

Elseif expressions – Одно или список альтернативных условных выражений разделенных запятыми, вычисляющихся, если условное выражение If expression ложно. Каждому условному выражению, записанному в списке Elseif expressions соответствует выходной Elseif-порт на котором формируется управляющий сигнал, если соответствующее условное выражение истинно. При этом алгоритм вычисления альтернативных условных выражений таков, что если одно из альтернативных условных выражений окажется истинным, то следующие в списке выражения не проверяются. Альтернативное условное выражение может включать в себя те же знаки, что и выражение If expression.

  • Show else condition (флажок) – Показать Else-порт. На Else-порту формируется управляющий сигнал, если условное выражение и все альтернативные условные выражения ложны.

    На пиктограмме блока отображаются условные выражения, записанные в его параметрах. Добавление каждого нового альтернативного условного выражения приводит к появлению нового Elseif выходного порта.

    Если входные сигналы блока являются скалярами, то для их обозначения в выражениях используется запись вида u1, u2 ,u3 и т.д. Если входные сигналы векторные, то для обозначения элементов вектора используются выражения вида u1(1), u1(2), u2(1), u2(2) и т.д.

    На рис. 9.9.7 показан пример использования блока If совместно с подсистемами If Action Subsystem. В примере первая подсистема пропускает через себя входной сигнал если входной сигал блока If больше 1, вторая – если входной сигнал меньше –1 (минус один), и третья – если входной сигнал лежит в интервале от -1 до +1.

    С-код, соответствующий алгоритму работы блока If в приведенном примере выглядит следующим образом:

    if (u1 > 1) {
    If Action Subsystem 1;
    }
    elseif (u1 < -1){
    If Action Subsystem 2;
    }
    else {
    If Action Subsystem 3;
    }




    Рис. 9.9.7 Использование блока If совместно с подсистемами If Action Subsystem



    9.9.7. Блок переключателя Switch Case

    Назначение:

    Обеспечивает формирование управляющих сигналов для подсистем Case Action Subsystem. Блок является аналогом оператора Switch языка программирования C.

    Параметры:

    1. Case conditions – Список значений входных сигналов (целое число). Каждому значению соответствует отдельный выходной Case-порт. Если значение входного сигнала, поступающего на вход блока Switch Case, совпадает с каким либо значением из списка, то на соответствующем выходе блока формируется управляющий сигнал. Если входной сигнал не является целым, то его дробная часть отбрасывается. В выражении Case conditions можно использовать квадратные скобки, если необходимо вырабатывать управляющий сигал на каком-либо порту для нескольких значений входного сигнала. Например, выражение {1,[7,9]} задает два выходных Case-порта. На первом из них управляющий сигнал формируется, если входной сигнал блока равен 1, а на втором, – если входной сигнал равен 7 или 9. В выражении Case conditions можно использовать также диапазоны значений. Например, выражение {1:5} определяет, что для единственного выходного Case-порта выходной сигал будет вырабатываться, если входной сигнал блока равен 1, 2, 3, 4 или 5.

    2. Show default case (флажок) Показать default case-порт. На выходе default case-порта формируется управляющий сигнал, если входной сигнал блока не совпадает ни с одним значением, перечисленным в списке Case conditions.

    На рис. 9.9.8 показан пример использования блока Switch Case совместно с подсистемами Switch Case Action Subsystem. В примере первая подсистема пропускает через себя входной сигнал, если входной сигал блока Switch Case равен 1, вторая – если входной сигнал равен –1 (минус один), и третья – если входной сигнал не равен ни -1 ни +1.

    С-код, соответствующий алгоритму работы блока Switch Case в приведенном примере выглядит следующим образом:

    switch (u1) {
    case 1:
    Switch Case Action Subsystem 1;
    break;
    case -1:
    Switch Case Action Subsystem 2;
    break;
    default:
    Switch Case Action Subsystem 3;
    }




    Рис. 9.9.8 Использование блока Switch Case совместно с подсистемами Switch Case Action Subsystem



    9.9.8. Управляемая по условию подсистема Action Subsystem

    Подсистема предназначена для работы под управлением блоков If или Switch Case. В первом случае она называется If Action Subsystem, а во втором Switch Case Action Subsystem.

    Параметры подсистемы определяются настройками ее выходных портов, а также настройкой блока Action Port, наличие которого в подсистеме и превращает ее в Action Subsystem.

    Блок имеет один параметр настройки:

    States when execution is resumed – Состояние подсистемы системы при следующем возобновлении работы. Значение параметра выбирается из списка:

    • held – Использовать предыдущее состояние (последнее состояние когда система была активна).

    • reset – Использовать начальное (исходное) состояние.

    Рассматриваемый параметр оказывает такое же действие на поведение подсистемы как параметр States when enabling блока Enable.

    9.9.9. Управляемая подсистема For Iterator Subsystem

    Управляемая подсистема For Iterator Subsystem представляет собой подсистему, которая выполняется неоднократно в течение одного такта моделирования. Количество повторений должно быть известно заранее и может задаваться внешним источником сигнала или с помощью параметра блока. Основные свойства подсистемы задает итерационный блок For Iterator. Блок является аналогом оператора цикла For языка программирования C.

    Блока For может находиться в любом месте подсистемы. Его параметры перечислены ниже.

    Параметры:

    1. States when starting – Состояние подсистемы при следующем запуске. Значение параметра выбирается из списка:

      • held – Использовать предыдущее состояние (последнее состояние когда система была активна).

      • reset – Использовать начальное (исходное) состояние.

    2. Source of number of iterations (флажок)Источник задающий количество итераций.

      • internal – Внутренний.

      • external – Внешний.

    3. Number of iterations – Количество итераций. Параметр доступен, если выбран внутренний источник числа итераций.

    4. Show iteration number port – Отобразить на пиктограмме блока выходной порт, с которого снимается сигнал номера итерации.

    5. Output data type – Тип данных выходного сигнала порта. Значение параметра выбирается из списка: int32, int16, int8 и double.

    На рис. 9.9.9 показан пример использования For Iterator Subsystem. В примере выполняется накопление суммы значений с шагом равным 10. Количество итераций задается внешним источником и равно 20.

    С-код, соответствующий алгоритму работы For Iterator Subsystem в приведенном примере выглядит следующим образом:

    sum = 0;
    iterations = 20;
    sum_increment = 10;
    for (i = 0; i < iterations; i + +) {
    sum = sum + sum_increment;
    }




    Рис. 9.9.9 Применение For Iterator Subsystem

    Скачать пример (EX_For_Iterator_Subsystem_1.zip)



    9.9.10. Управляемая подсистема While Iterator Subsystem

    Управляемая подсистема While Iterator Subsystem представляет собой подсистему, которая выполняется неоднократно в течение одного такта моделирования. Количество повторений заранее не известно. Цикл прекращается, если значение логического сигнала на управляющем входе подсистемы станет равно FALSE. Основные свойства подсистемы задает итерационный блок While Iterator. Блок является аналогом оператора цикла while (do-while) языка программирования C.

    Свойства While Iterator Subsystem определяются параметрами блока While Iterator. Его параметры перечислены ниже.

    Параметры:

    1. Maximum number of iterations – Максимальное количество итераций. Если значение параметра равно -1 (минус один), то количество итераций не ограничивается.

    2. While loop type (флажок)Тип цикла. Выбирается из списка:

      • while – Цикл while.

      • do-while – Цикл do-while.

    3. States when starting – Состояние подсистемы системы при следующем запуске. Значение параметра выбирается из списка:

      • held – Использовать предыдущее состояние (последнее состояние когда система была активна).

      • reset – Использовать начальное (исходное) состояние.

    4. Show iteration number port – Отобразить на пиктограмме блока выходной порт, с которого снимается сигнал номера итерации.

    5. Output data type – Тип данных выходного сигнала порта. Значение параметра выбирается из списка: int32, int16, int8 и double.

    Входной порт IC позволяет задать начальное значение сигнала прекращающего выполнение цикла while. При использовании цикла do-while подсистема будет выполнена хотя бы один раз (поскольку проверка условия в этом случае производится в конце цикла).

    На рис. 9.9.10 показан пример использования While Iterator Subsystem. В примере выполняется накопление суммы значений с шагом равным 10. Выполнение цикла прекращается, когда величина суммы достигнет значения 100.

    С-код, соответствующий алгоритму работы While Iterator Subsystem в приведенном примере выглядит следующим образом:

    sum = 0;
    IC = 1;
    iteration_number = 0;
    cond = IC;
    while (cond != 0) {
    iteration_number = iteration_number + 1;
    sum = sum + sum_increment;
    if (sum > 100 OR iterations > max_iterations) cond = 0;
    }




    Рис. 9.9.10 Применение While Iterator Subsystem



    9.9.11. Конфигурируемая подсистема Configurable Subsystem

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

    Для реализации такого механизма конфигурирования необходимо:

    1. Создать библиотеку (File/New/Library).

    2. Добавить в созданную библиотеку блок Configurable Subsystem и все необходимые варианты конфигурации подсистемы. Каждый из вариантов должен представлять собой стандартный блок Simulink либо маскированную подсистему (подсистему, имеющую собственное окно установки параметров).

    3. Открыть Configurable Subsystem и выполнить ее настройку, отметив флажками нужные варианты и выбрав отображаемые входные и выходные порты подсистемы. Пример окна диалога Configuration dialog показан на рис. 9.9.11.



    Рис. 9.9.11 Окно диалога Configuration dialog

    1. Поместить в окно модели блок Configurable Subsystem из только что созданной библиотеки.

    2. С помощью команды контекстного меню (вызывается нажатием правой клавиши мыши на объекте) Block choice (вариант блока) выбрать нужный вариант конфигурации. При открытии конфигурируемой подсистемы в окне модели будет автоматически открываться окно параметров того блока, который выбран командой Block choice.

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



    Рис. 9.9.12 Применение Configurable Subsystem

    9.10. Маскирование подсистем

    9.10.1. Общие сведения

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

    Маскирование подсистем дает пользователю следующие преимущества:

    1. Расширяет возможности пользователя по управлению параметрами модели.

    2. Позволяет создавать более понятный интерфейс подсистемы.

    3. Повышает наглядность блок-диаграммы.

    4. Расширяет возможности построения сложных моделей.

    5. Повышает защищенность модели от несанкционированной модификации.

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

    1. Определить какие параметры подсистемы должны задаваться пользователем в будущем окне параметров. Задать эти параметры в подсистеме с помощью идентификаторов (имен).

    2. Определить каким образом параметр должен задаваться в окне диалога (с помощью строки ввода, выбором из раскрывающегося списка или установкой флажка).

    3. Разработать эскиз пиктограммы блока.

    4. Создать комментарии (справку) по использованию подсистемы.

    Маскирование подсистемы выполняется с помощью Mask Editor (редактор маски). Для запуска редактора маски необходимо выделить маскируемую подсистему и выполнить команду Mask Subsystem… из меню Edit. Можно также воспользоваться контекстным меню. После запуска Mask Editor на экран будет выведено окно редактора (рис. 9.10.1), имеющее 3 вкладки: Icon (Пиктограмма), Initialization (Инициализация), Documentation (Документация). Первая из вкладок обеспечивает создание пиктограммы подсистемы, вторая – дает возможность создать окно диалога для ввода параметров и третья – позволяет ввести описание блока и создать его справку.

    В верхней части всех вкладок имеется поле Mask Type, с помощью которого можно задать имя блока. В нижней части окна имеется 5 кнопок управления редактором:

    1. OK – Сохранить внесенные изменения и закрыть окно.

    2. Cancel – Отменить внесенные изменения и закрыть окно.

    3. Unmask – Снять маску с подсистемы. До закрытия файла модели маску можно восстановить, воспользовавшись командой Edit Mask… из меню Edit.

    4. Help – Открыть окно справки редактора маски.

    5. Apply – Сохранить внесенные изменения без закрытия окна редактора.

    Повторный вызов редактора маски для уже маскированной подсистемы осуществляется командой Edit Mask… из меню Edit (или аналогичной командой из контекстного меню).

    После того как маскирование системы будет выполнено, двойной щелчок на ее изображении будет открывать окно параметров подсистемы, а не окно модели. Открыть саму подсистему (окно модели) для редактирования или просмотра можно командой Look under mask из меню Edit или контекстного меню.



    Рис. 9.10.1 Окно редактора маски Mask Editor

    9.10.2. Создание окна параметров

    Окно параметров создается с помощью вкладки Initialization (Инициализация) редактора маски. Для создания поля ввода параметра с его описанием необходимо выполнить следующие действия:

    1. Нажать кнопку Add (Добавить).

    2. Ввести описание параметра в поле Prompt (Подсказка). В качестве описания параметра обычно используется его название в виде текста, например, “Gain”, “Constant value” и т.п.

    3. Указать идентификатор параметра в поле Variable (Переменная). Естественно, что это должен быть один из тех идентификаторов, который использовался при задании параметров блоков внутри подсистемы (хотя это не обязательно, поскольку параметр может быть использован и для модификации самого окна диалога). Все переменные, идентификаторы которых заданы на вкладке Initialization, помещаются в Mask Workspace – локальную рабочую область маски и являются доступными только внутри подсистемы.

    4. Выбрать тип элемента интерфейса задающего параметр из списка Control Type:

      • Edit – Редактируемое поле ввода.

      • Checkbox – Флажок.

      • Popup – Раскрывающийся список. В этом случае в графе Popup Strings (Элементы списка) необходимо ввести элементы списка, разделенные символом вертикальной черты. Например, выражение alpha|beta|gamma задаст список из трех элементов: alpha,beta и gamma.

    5. Выбрать формат параметра из списка Assiggment:


  • написать администратору сайта