MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Simulink\Stateflow

Г.Н.Рогачев. Таблицы истинности.

Начиная с версии 5.1, Stateflow представляет возможность использовать в своих диаграммах таблицы истинности. Таблицы истинности позволяют задавать логические функции в табличной форме. Являясь графическими функциями Stateflow, таблицы истинности обеспечивают пользователям следующие функциональные возможности: таблицы истинности доступны из любого места диаграммы, таблицы истинности могут вызывать другие таблицы истинности, таблицам истинности доступны все данные Stateflow-диаграммы (входные, выходные, локальные), таблицы истинности могут передавать события в Simulink. Stateflow обеспечивает анализ и диагностику для недоопределенных и переопределенных таблиц истинности .

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

Что такое таблица истинности.

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

Condition (логическое условие)

Decision 1 (Решение- комбинация 1)

Decision 2 (Решение- комбинация 2)

Decision 3 (Решение- комбинация 3)

Default Decision (Решение-заданная по умолчанию комбинация)

x = = 1

T

F

F

-

y = = 1

F

T

F

-

z = = 1

F

F

T

-

Action (действие)

t = 1

t = 2

t = 3

t = 4

Каждое из условий в первом столбце Condition должно быть истинным (значение, отличное от нуля) или ложным (нулевое значение). Результаты для каждого условия обозначены как T (истина), F (ложь), или - (истина или ложь). В каждом из остальных столбцов результаты для всех условий объединяются посредством логического И в составное условие. Оно обозначено как Decision (решение).

Таблица истинности оценивается путем перебора решений по одному, начиная с первого. Если некоторое решение истинно, исполняется его действие. На этом выполнение таблицы истинности закончено. Например, если условия 1 и 2 ложны, а условие 3 истинно, решение 3 истинно и переменная t устанавливается в 3. Остающиеся решения не проверяются, а выполнение таблицы истинности заканчивается. Последнее решение в примере, Default Decision, охватывает все возможные остающиеся решения. Если решения 1, 2 и 3 ложны, то решение Default Decision автоматически истинно и его действие (t = 4) выполняется. Приведенный ниже псевдокод эквивалентен таблице истинности из примера.

Описание

Псевдокод

Decision 1

Decision 1 Action

if ((x == 1) & !(y == 1) & !(z == 1))

t = 1;

Decision 2

Decision 2 Action

elseif (!(x == 1) & (y == 1) !(z == 1))

t = 2;

Decision 3

Decision 3 Action

elseif (!(x == 1) & !(y == 1) (z == 1))

t = 3;

Decision 4

Decision 4 Action

else

t = 4;

endif

Создание Simulink-модели с таблицей истинности Stateflow.

Для создания таблицы истинности вначале создадим Simulink-модель, которая вызывает Stateflow-диаграмму. И только затем создается Stateflow-диаграмма, которая вызывает таблицу истинности.

1. В командном окне MATLAB введите команду sfnew. При этом будет создана Simulink-модель untitled с Stateflow-блоком Chart.

2. Щелкните на блоке Chart и перетащите его в центр окна. Это создаст место для блоков, которые будут добавлены на последующих шагах.

3. В меню View окна Simulink выберите команду Library browser. Откроется окно Simulink Library Browser с раскрытым пунктом Simulink.

4. В пункте Simulink выберите библиотеку Sources. Правая область окна окна Simulink Library Browser отображает блок библиотеки Sources.

5. В правой области окна Simulink Library Browser нажмите и перетащите блок Constant в область слева от Stateflow-блока Chart в Simulink-модели.

6. Добавте еще два блока налево от блока Constant и блок Display (нз библиотеки Sinks) в область справа от Stateflow-блока Chart. Модель должна теперь иметь следующий вид:

7. В окне Simulink-модели, дважды щелкните на блоке Constant1.

8. В появившемся диалоговом окне Block Parameters измените поле Constant value на 0 и щелкните на кнопке OK, чтобы закрыть диалоговое окно.

9. Аналогичным образом измените поле Constant value блока Constant2.

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

10. В меню Simulation окна модели Simulink выберем команду Simulation Parameters. Откроется диалоговое окно Simulation Parameters.

11. В диалоговом окне Simulation Parameters оставим в поле Solver Options переменный шаг Variable-step. Однако изменим Stop Time (время останова) на inf.

12. Щелкнем OK, чтобы принять эти значения, и закроем диалоговое окно Simulation Parameters.

13. В меню Simulink File выберите Save As и сохраните модель с именем first_truth_table.mdl.

Создание таблицы истинности Stateflow.

Нами была создана Simulink-модель, которая содержит блок Stateflow. Теперь мы должны открыть Stateflow-диаграмму и определить таблицу истинности для этого блока. Создание таблицы истинности описано ниже:

1. В Simulink-модели дважды щелкните на блок Stateflow с именем Chart (Диаграмма). Появляется пустое окно редактора Stateflow-диаграмм.

2. В редакторе Stateflow-диаграмм выберите инструмент создания таблиц истинности.

3. Переместите курсор в пустую область диаграммы.

4. Щелкните, чтобы разместить новую таблицу истинности, как показано на рисунке.

Появится блок с заголовком truthtable и мигающим курсором.

5. Введите текст метки t = ttable (x, y, z) и щелкните вне блока таблицы истинности.

Метка определяет имя таблицы истинности (ttable), ее параметры (x, y, и z), и возвращаемое значение (t). Параметры и возвращаемое значение могут быть как скалярами, так и матрицами. Однако допустимо лишь одно возвращаемое значение.

Если необходимо повторно редактировать метку таблицы истинности, нужно просто щелкнуть по метке, чтобы разместить курсор редактирования в текст метки.

Вызов таблиц истинности в Stateflow.

Опишем теперь вызов функции таблицы истинности в диаграмме Stateflow. Позже, когда диаграмма будет выполняться, это будет вызывать таблицу истинности. Функция таблицы истинности может вызываться как действие любого состояния или перехода. Таблицы истинности могут также вызываться другими функциями, включая графические функции и другие таблицы истинности. Кроме того, если экспортировать таблицу истинности, ее можно будет вызыватьиз любой Stateflow-диаграммы в модели.

Создадим вызов функции ttable из перехода по умолчанию в той же Stateflow-диаграмме.

1. Выберем кнопку Default Transition (переход по умолчанию) на панели рисования.

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

3. Щелчком поместим переход по умолчанию в нужное место.

4. Нажмем на знак вопроса ?, который появляется переходе по умолчанию. В текстовом поле появится мигающий курсор для ввода метки переходе по умолчанию.

5. Введем текст {d = ttable (a, b, c);} и щелчком вне перехода закончим редактирование. Законченная Stateflow-диаграмма должна иметь следующий вид:

Ярлык, созданный на переходе по умолчанию, является действием условия. Оно вызывает таблицу истинности ttable с аргументами a, b, c и возвращает значение переменной d. Когда Simulink запускает Stateflow-блок в процессе моделирования, происходит переход по умолчанию и осуществляется вызов таблицы истинности ttable. При вызове таблицы истинности для формальных и фактических параметров типы входных и выходных переменных должны соответствовать друг другу. Это необходимо иметь в виду в последующем, при описании используемых в Stateflow данных.

6. В меню File выберем команду Save, чтобы сохранить модель.

Создание данных таблицы истинности в Stateflow и Simulink.

При создании таблица истинности определяются ее переменные, выходные (t) и входные или аргументы (x, y, z). При создании вызова таблица истинности определяются соответствующие им фактические параметры (d, a, b, и c). Теперь нужно описать эти данные для диаграммы Stateflow. Для этого необходимы следующие шаги:

1. Двойным щелчком по таблице истинности откроем редактор таблицы истинности.

В редакторе таблицы истинности выберем инструмент Goto Explorer.

Окно Model Explorer появляется, как показано на рисунке.

На панели Model Hierarchy (левая панель) ярлык функции ttable выделен, а панель Contents (средняя панель) показывает входы (x, y, z) и выход (t) для ttable. По умолчанию эти переменные определены, как скалярные типа double. Если необходимо изменить тип или размерность данных, это можно сделать в Model Explorer. Однако, для этого примера никакие изменения не нужны. Заметьте также, что в панели Model Hierarchy выше ярлыка функции ttable распологается ярлык Stateflow блока Chart. Это - Stateflow-диаграмма, которая содержит таблицу истинности ttable.

2. В панели Model Hierarchy выберем Chart.

Заметьте, что Chart пока не имеет переменных в панели Contents. Нужно добавить возвращаемые переменные и аргументы, используемые при вызове ttable.

3. В меню Add выберите Data. Скалярная переменная типа double с именем data добавится к Stateflow-диаграмме, и это отобразится на панели Contents.

Эта переменная имеет тот же тип и размерность, что и аргумент x, но ей необходимо поменять имя и область видимости.

4. В панели Contents, дважды щелкните по имени переменной data в колонке Name. В открывшемся поле ввода текста измените имя с data на a и нажмите Enter.

5. В колонке Scope щелкните по Local. Откроется меню с вариантами возможных областей видимости. Выберите Input и нажмите Enter. Видимость Input (сокращенное от Input from Simulink) означает, что величина этой переменной определяется в Simulink и передается Stateflow-диаграмме через входной порт Stateflow-блока. Теперь можно наблюдать новую переменную а в панели Contents.

6. Повторите шаги 3-5 для создания переменных b и c видимости Input, и переменную d видимости Output (сокращенное от Output to Simulink). Видимость Output to Simulink означает, что величина этой переменной определяется в Stateflow и передается в Simulink через выходной порт Stateflow-блока. Теперь можно наблюдать новые переменные в Stateflow Explorer.

Данные a, b, c и d соответствуют переменным x, y, z и t в заголовке таблицы истинности как по размерности (скалярные), так и по типу (double), но имеют источник вне блока Stateflow. Заметьте, что входные порты для a, b и c и выходной порт для d появляются в Stateflow-блоке Simulink-модели.

7. Произведите соединения в Simulink-модели, как показано на рисунке.

8. В меню File выберите команду Save, чтобы сохранить модель.

Программирование таблиц истинности.

Нами была создана Simulink-модель с Stateflow-диаграммой, которая вызывает таблицу истинности ttable. Эта таблица истинности пока пуста и ее необходимо запрограммировать, чтобы определить ее поведение. Рассмотрим, как это можно сделать.

Редактирование таблицы истинности.

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

Имя редактора таблицы истинности имеет формат <имя модели> / <имя таблицы истинности >. Пустая таблица истинности содержит таблицу условий (Condition Table) и таблицу действий (Action Table), в каждой из которых одна строка. Таблица условий Condition Table также содержит единственную колонку решений D1 и единственную строку действий.

Ввод условий (Conditions) таблицы истинности.

Условия - отправная точка для определения логического поведения таблицы истинности. Условия задаются в колонке Conditions таблицы условий Condition Table . Каждому условию можно также придавать дополнительное описание в колонке Description (описание). Используйте следующую процедуру, чтобы ввести условия в таблице истинности ttable:

1. Щелкните где-нибудь в поле таблицы условий Condition Table , чтобы выбрать ее в качестве объекта редактирования.

2. Щелкните дважды по кнопке инструмента <Добавить строку>.

Две строки будут добавлены к таблице условий и общее их количество станет равно трем.

3. В таблице условий щелкните по верхней ячейке колонки Description (описание), имеющей порядковый номер 1. Ячейка будет выделена, и в ней появится текстовый курсор. Введите следующий текст: x is equal to 1 (x равен 1). Описания условий не обязательны, но они переносятся в генерируемый код таблицы истинности как комментарии к коду.

4. Нажмите кнопку Tab, чтобы перейти к следующей ячейке, находящейся справа, в колонке Condition (условия). (Чтобы выбрать ячейку слева, используется комбинация Shift+Tab). В первой ячейке ряда колонок Condition (условия) введите следующий текст: XEQ1:

Это - необязательный ярлык условия, которым Вы помечаете условие. Нажмите Enter, чтобы разместить ярлык и условие на разных строчках.

Ярлык условия должен начинаться с буквы ([a-z] или [a-z]), за которой может следовать любая комбинация букв, цифр или подчеркиваний. В генерируемом коде таблицы истинности ярлык условия становится именем временной переменной, которая хранит результат соответствующего условия. Если ярлык не введен, Stateflow называет временную переменную по имени условия.

5. Нажмите Enter и введите следующий текст: x == 1

Это - само условие. Каждое условие, которое Вы вводите, должно принимать значение ноль (ложь) или быть отлично от нуля (истина). Вы можете использовать дополнительно прямые скобки при записи условий (например, [x == 1]), как если бы Вы записывали его на языке действий (action language) Stateflow.

6. Повторите шаги 3-5, чтобы задать еще два условия так, как показано на следующем рисунке:

Ввод решений (Decisions) в таблицу истинности

Каждая колонка решения (D1, D2 и так далее) связывает группу условий логическим И в решение (Decision). Для условий в решении допустимы значения T (истина), F (ложь), и - (истина или ложь). В предыдущем разделе было рассмотрено, как в редакторе таблицы истинности были введены условия таблицы истинности ttable. Продолжим редактирование, вводя решения в колонки решения следующим образом:

1. Щелкните где-нибудь в Condition Table (таблице условий), чтобы выбрать ее.

2. Щелкните три раза по кнопке <Добавить колонку>

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

3. Щелкните по верхней части колонки решений D1. Ячейка будет выделена и появится курсор ввода текста.

4. Нажимайте клавишу <Пробел> один, два или три раза, чтобы ввести символы F, - или T. Эти символы можно вводить и непосредственно. Ввод любых других символов запрещен. Нажимая стрелки, можно перейти к любой ячейке в любом направлении. Также можно использовать Tab и Shift+Tab, чтобы переместиться влево или вправо. Введите необходимые значения колонок решения, как показано на рисунке:

В процессе выполнения таблицы истинности решения проверяются в направлении слева направо. Порядок проверки выполнения отдельных условий в пределах решения не определен.

Колонка для заданного по умолчанию решения.

Последняя колонка ttable, D4, является колонкой для заданного по умолчанию решения этой таблицы истинности. Это решение охватывает все остающиеся решения, не найденные в предшествующих колонках решения. Оно вводится в последней справа колонке таблицы решения символами " - " для всех условий в решении, где " - " представляет любой результат для условия. Так, в нашем примере следующие решения охвачены колонкой для заданного по умолчанию решения D4:

Condition (логическое условие)

Decision 4 (Решение- комбинация 4)

Decision 5 (Решение- комбинация 5)

Decision 6 (Решение- комбинация 6)

Decision 7 (Решение- комбинация 7)

Decision 8 (Решение- комбинация 8)

x = = 1

F

T

F

T

T

y = = 1

F

F

T

T

T

z = = 1

F

T

T

F

T

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

Ввод действий (Actions) в таблицу истинности.

Во время выполнение таблицы истинности решения проверяются в порядке их следования слева направо. Когда найдено истинное решение, выполняется соответствующее действие. Затем осуществляется выход из таблицы истинности.

В предыдущем разделе было показано, как ввести решения в таблицу истинности, используя редактор таблицы истинности. Следующим шагом должен быть ввод в таблицу действий Action Table тех действий, которые должны произойти в случае истинности того или иного решения в Таблице Действия. Затем каждому решению в строке действий Actions таблицы условий Condition Table назначается какое-либо действие.

1. Щелкните по таблице действий Action Table, чтобы выбрать ее.

2. Щелкните три раза по кнопке <Добавить строку>

К таблице действий добавится три ряда.

3. Щелкните по первой ячейке в колонке Description (описание) таблицы действий Action Table. Ячейка выделится и появится курсор ввода текста.

4. Введите следующее описание:

set t to 1

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

5. Нажмите Tab, чтобы перейти вправо к следующей ячейке, расположенной в колонке Action (действие).

6. Введите следующий текст:

A1:

Действие начинается с необязательного ярлыка с двоеточием. Далее эти ярлыки можно использовать в строке Actions (действия) таблицы условий Condition Table, чтобы определить действие для каждого столбца решений. Подобно ярлыкам условий, ярлыки действий должны начинаться с буквы ([a-z] [a-z]), за которой может следовать любое количество букв, цифр или подчеркиваний.

7. Нажмите Enter и введите следующий текст:

t=1;

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

Если точка с запятой в конце оператора будет отсутствовать, результат действия отобразится в окне MATLAB, когда это действие будет выполнено в процессе моделирования. Это можно использовать в процессе отладки.

8. Введите остальные действия в таблицу действий, как показано на следующем рисунке:

Сопоставление решениям таблицы истинности определенных действий.

Каждому решению из таблицы условий (Condition Table) должно быть назначено по крайней мере одно действие из таблицы действий (Action Table). Рассмотрим, как связать действия с решениями, используя строку действий Actions в таблице условий (Condition Table).

1. Щелкните в колонке решений D1 по нижней ячейке, которая является также первой ячейкой строки действий таблицы условий.

2. Введите спецификатор действия A1 для столбца решений D1. Это связывает действие с меткой A1 из таблицы действий с решением D1.

3. Введите спецификаторы действия для остальных столбцов решения, как показано на следующем рисунке:

В этом примере ячейка строки действий каждой колонки решений содержит метку некоторого действия из таблицы действий. Решению D1 соответствует действие t=1, решению D2 - действие t=2 и так далее.

Когда таблица истинности выполняется, решения проверяются слева направо по порядку следования колонок. Если какое-либо решение истинно, соответствующее ему действие немедленно выполняется и таблица истинности покидается.

Вы можете также определить действие для решения, указывая номер строки соответствующего действия в таблице действий Action Table. Например, вместо A1 в столбце D1 решения можно ввести 1, чтобы определить то же самое действие.

Добавление начальных и конечных действий.

В дополнение к действиям для решений, Stateflow позволяет добавлять начальные и конечные действия к функции таблицы истинности. Начальные действия определяют действие, которое выполняется прежде, чем любые решения проверены. Конечные действия определяют действие, которое выполняется как последнее действие прежде, чем осуществляется выход из таблицы истинности. Чтобы задать начальные и конечные действия таблицы истинности, используйте метки действий INIT и FINAL.

Например, чтобы добавить начальные и конечные действия, выводящие до и после выполнения таблицы истинности ttable диагностические сообщения в командном окне Command Window MATLAB, используйте следующую процедуру.

1. В редакторе таблицы истинности ttable щелкните правой кнопкой мыши по строке 1 таблицы действий.

2. В появившемся всплывающем меню выберите команду Insert Row. Пустая строка будет вставлена в начале таблицы действий.

3. Щелкните по кнопке <Добавить строку>

Пустая строка будет добавлена снизу к таблице действий.

4. Зацепите и перетащите границу редактора таблицы истинности, чтобы были видны все шесть строк таблицы действий, как показано на рисунке.

5. Редактируйте содержание строк 1 и 6 таблицы действий, как показано на следующем рисунке:

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

Отладка таблицы истинности.

Теперь, когда Simulink-модель с таблицей истинности закончена, необходимо провести процедуру отладки таблицы истинности. Она состоит из трех этапов.

1. Проверка таблиц истинности на наличие ошибок. На этом этапе Stateflow выполняет диагностику синтаксиса.

2. Задание контрольных точек при вызове таблице истинности. Позволяет через диалоговое окно свойств таблицы истинности задавать контрольные точки для таблицы истинности.

3. Отладка таблицы истинности в процессе моделирования. Позволяет отлаживать условия и решения таблицы истинности в ходе моделирования.

Проверка таблиц истинности на наличие ошибок.

При запуске модели first_truth_table.mdl на выполнение вначале выполняется синтаксическая проверка. Если, например, при вводе спецификатора действия для столбца решений D4 была допущена ошибка, и вместо A4 мы указали A5, появится следующее диагностическое сообщение.

Задание контрольных точек при вызове таблице истинности.

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

1. В редакторе Stateflow-диаграмм щелкают правой кнопкой мыши по таблице истинности.

2. В контекстном меню выбирают команду Properties. Появляется диалоговое окно таблицы истинности Truthtable

Для задания контрольных точек отладки (Debugger breakpoints), выберите Function call. Контрольной точкой будет являться момент вызова функции таблицы истинности Stateflow-диаграммой. Нажмите OK, чтобы сохранить параметры настройки и закройте диалоговое окно.

Примечание. Если Вам не удалось выполнить этот пункт по причине отсутствия поля Debugger breakpoints в диалоговом окне таблицы истинности, пошаговую отладку можно производить, связывая точки останова с событиями (Event Broadcast), состояниями (State Entry) либо переходами (When Tested или When Valid).

Отладка таблицы истинности в процессе моделирования.

Последний этап в разработке модели таблицы истинности - ее проверка в процессе выполнения. После того, как установлена контрольная точка, выполнение процесса моделирования будет приостанавливаться на каждом шаге выполнения таблицы истинности. Для управления процессом отладки служит отладчик Stateflow Debugger.

1. Выберите кнопку Debug на инструментальной панели Stateflow-редактора, чтобы запустить окно Stateflow Debugging.

2. В окне Stateflow Debugging выберите кнопку Start, чтобы начать выполнение модели. При запуске модели Stateflow автоматически проверяет таблицу истинности на наличие синтаксических ошибок в том случае, если она подвергалась изменениям после предыдущего запуска. Если Вы получаете сообщения об ошибках или предупреждения, сделайте исправления. Если же Stateflow не находит никаких синтаксических ошибок в таблице истинности, то по модели строится приложение и начинается процесс моделирования.

3. Ждите, пока не будет достигнута контрольная точка вызова таблицы истинности. После этого появляется таблица истинности ttable, а кнопка Start отладчика Stateflow Debugger изменяется на кнопку Continue.

4. В окне Stateflow Debugging три раза нажмите на кнопку Step, чтобы процесс моделирования достиг этапа запрос таблицы истинности. Действие таблицы истинности INIT выделяется, но еще не выполняется.

5. Нажмите на кнопку Step, чтобы выполнить действие INIT и перевести таблицу истинности на стадию проверки первого условия.

6. Нажмите на кнопку Step, чтобы проанализировать первое условие и перевести таблицу истинности на стадию проверки второго условия.

7. Нажмите на кнопку Step, чтобы оценить второе условие и перевести таблицу истинности на стадию проверки третьего условия.

8. Нажмите на кнопку Step, чтобы оценить третье условие и перевести таблицу истинности на стадию проверки первого решения.

9. Нажмите на кнопку Step дважды. Поскольку первое решение истинно, выполнение таблицы истинности переходит к его действию, которое помечено как A1. Выходной переменной t таблицы истинности будет присвоено значение 1.

10. Нажмите на кнопку Step три раза, чтобы выполнить действие A1 и осуществить переход к конечному действию FINAL.

11. Далее в окне Stateflow Debugging нужно выбрать список Browse Data, а в нем - команду All Data (Current Chart) (Все Данные (Текущая Диаграмма)). В нижней части окна Stateflow Debugging появляется дисплей, как показано на рисунке.

Вы можете использовать этот дисплей, чтобы контролировать Stateflow данные в процессе моделирования.

12. В окне Stateflow Debugging нажмите на кнопку Step. Будет выполнено конечное действие FINAL и выход из таблицы истинности. В блоке Display окна Simulink отобразится число 1 как значение выходной переменной таблицы истинности.

13. Измените значения сигналов блоков Constant и вновь запустите моделирование. Например, установите в блоке Constant1 сигнал 1 (b = 1), а в остальных блоках Constant - нулевой сигнал (а = c = 0). Теперь будет истинным второе решение и выходной сигнал таблицы истинности примет значение 2.

Опции сопоставления решениям таблицы истинности определенных действий.

При сопоставления решениям таблицы истинности определенных действий Stateflow допускает некоторую свободу. Вот список правил, которые имеют место при назначении в таблице истинности действий решениям.

  • Действия для решений задаются вводом номера строки или метки в ячейке строки действий Actions столбца решения. Если Вы используете метку, она должна быть указана совместно с действием в таблице действий.

  • Нужно определить по крайней мере одно действие для каждого решения. Действия для решений обязательны. Каждое решение должно иметь по крайней мере один спецификатор действия, который указывает на действие в таблице действий. Если для решения не определено никакого действия, задайте пустую строку, т.е. строку, не содержащую действий.

  • Можно определять несколько действий для решения посредством нескольких спецификаторов, отделенных запятыми. Например, для столбца D1 решения можно определить A1, A2, A3 или 1, 2, 3, чтобы выполнить первые три действия, если решение D1 истинно. Можно указывать и номера строк и спецификаторы действия вперемежку в любом порядке. Следующий пример демонстрирует это правило.

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

  • Спецификаторы действия в виде номера сроки действий Actions таблицы условий Condition Table автоматически корректируются, изменяя порядок следования в соответствии со строками таблицы действий. В следующем примере решениям D3 и D4 сопоставлены соответственно действия в строках 3 и 4 таблицы действий.

    Выберите строку 4 таблицы действий и выберите инструмент перемещения строк, чтобы поменять строки 3 и 4 местами. Обратите внимание на изменение в спецификаторах действия столбцов D3 и D4, как показано.


  • Поиск по сайту:

    Система Orphus

    Яндекс.Метрика