Таблицы истинности реализуют проект комбинаторной логики в кратком, табличном формате. Таблицы истинности поддерживаются только в блоках Stateflow® в модели Simulink®. Типовые приложения для таблиц истинности включают принятие решения для:
Обнаружение отказа и управление
Переключение режимов
Можно добавить блок Truth Table непосредственно в модель Simulink. Можно также задать функцию таблицы истинности в диаграмме Stateflow, состоянии или подграфике. Местоположение функции определяет набор состояний и переходов, которые могут вызвать функцию.
Если вы хотите вызвать функцию только в одном состоянии или подграфике и его подсостояниях, поместите свою функцию таблицы истинности в то состояние или подграфик. Эта функция заменяет любые другие функции того же имени в родительских элементах и предках того состояния или подграфика.
Если вы хотите вызвать функцию где-нибудь в том графике, поместите свою функцию таблицы истинности в уровень графика.
Если вы хотите вызвать функцию из какого-либо графика в вашей модели, поместите свою таблицу истинности в уровень графика и позвольте экспортировать функций уровня графика. Для получения дополнительной информации смотрите Экспорт Функции Stateflow для Повторного использования.
Например, эта функция таблицы истинности имеет имя ttable
. Это берет три аргумента (x
, y
и z
) и возвращает одно выходное значение (r
).
Функция состоит из этого расположения условий, решений и действий.
Условие | Решение 1 | Решение 2 | Решение 3 | Решение по умолчанию |
---|---|---|---|---|
x == 1 | T | F | F | - |
y == 1 | F | T | F | - |
z == 1 | F | F | T | - |
Действие | r = 1 | r = 2 | r = 3 | r = 4 |
Каждое из условий, вводимых в столбец Condition, должно оценить к истинному (ненулевое значение) или ложь (нулевое значение). Результаты для каждого условия заданы как T (TRUE), F (FALSE), или - (TRUE или FALSE). Каждый из столбцов решения комбинирует результат для каждого условия с логическим AND в составное условие, которое упоминается как решение.
Вы оцениваете таблицу истинности одно решение за один раз, начиная с Decision 1. Default Decision покрывает все возможные остающиеся решения. Если одно из решений верно, вы выполняете его действие, и затем выполнение таблицы истинности завершено.
Например, если условия, x == 1
и y == 1
являются ложными и условие z == 1
, верны, то Decision 3 верен, и переменная r
установлена равная 3. Остающиеся решения не тестируются, и оценка таблицы истинности закончена. Если первые три решения являются ложными, то Default Decision автоматически верен, и его действие (r=4
) выполняется. Эта таблица приводит псевдокод, соответствующий оценке этого примера таблицы истинности.
Псевдокод | Описание |
---|---|
if ((x == 1) & !(y == 1) & !(z == 1)) r = 1; | Если Decision 1 верен, то установленный |
elseif (!(x == 1) & (y == 1) & !(z == 1)) r = 2; | Если Decision 2 верен, то установленный |
elseif (!(x == 1) & !(y == 1) & (z == 1)) r = 3; | Если Decision 3 верен, то установленный |
else r = 4; endif | Если все другие решения являются ложными, то Default Decision верен. Установите |
В объектной палитре кликните по значку функции таблицы истинности. Переместите указатель в местоположение для новой функции таблицы истинности в вашем графике.
Введите метку подписи для функции, как описано в Объявляют Аргументы функции и Возвращаемые значения.
Программируйте функцию таблицы истинности. Для получения дополнительной информации см. Программу Таблица истинности.
В Model Explorer расширьте объект диаграммы и выберите функцию таблицы истинности. Аргументы и возвращаемые значения функциональной подписи появляются как элементы данных, которые принадлежат вашей функции. Аргументы имеют осциллограф Input
. Возвращаемые значения имеют осциллограф Output
.
В диалоговом окне Свойств данных для каждого значения аргумента и возвращаемого значения, задайте свойства данных, как описано в Set Data Properties.
Создайте любые дополнительные элементы данных, требуемые вашей функцией. Для получения дополнительной информации смотрите, Добавляют Данные Через Model Explorer.
Ваша функция может получить доступ к своим собственным данным или данным, принадлежащим метрополиям или графику. Элементы данных в функции могут иметь один из этих осциллографов:
Local
— Локальные данные сохраняются от одного вызова функции до следующего вызова функции. Допустимый для C строит диаграмму только.
Constant
— Постоянные данные сохраняют свое начальное значение посредством всех вызовов функции.
Parameter
— Данные о параметре сохраняют свое начальное значение посредством всех вызовов функции.
Temporary
— Временные данные инициализируют в начале каждого вызова функции. Допустимый для C строит диаграмму только.
В графиках, которые используют C в качестве языка действия, задайте временные данные когда это необходимо, чтобы использовать данные, которые только допустимы, в то время как функция выполняется. Например, можно определять счетчик цикла иметь осциллограф Temporary
, если встречное значение не должно сохраняться после того, как функция завершается.
В графиках, которые используют MATLAB® в качестве языка действия, вы не должны задавать временные функциональные данные. Если вы используете неопределенную переменную, Stateflow создает временную переменную. Переменная доступна остальной части функции.
Можно инициализировать функциональные данные (кроме аргументов и возвращаемых значений) от рабочего пространства MATLAB. Для получения дополнительной информации смотрите, Инициализируют Данные из Базового рабочего пространства MATLAB.
Функциональная метка подписи задает имя для вашей функции и официальные имена для ее аргументов и возвращаемых значений. Метка подписи имеет этот синтаксис:
[return_val1, return_val2,...] = function_name(arg1, arg2,...)
Можно использовать то же имя переменной и для аргументов и для возвращаемых значений. Например, функция с этой меткой подписи использует переменные y1
и y2
в качестве обоих вводов и выводов:
[y1, y2, y3] = f(y1, u, y2)
y1
и y2
передаются ссылкой (как указатели), и u
передается значением. Передача входных параметров ссылкой уменьшает число раз, что сгенерированный код копирует промежуточные данные, приводящие к более оптимальному коду.Можно вызвать функции таблицы истинности от действий любого состояния или перехода. Можно также вызвать функции таблицы истинности от других функций. Если вы экспортируете функцию таблицы истинности, можно вызвать ее из любого графика в модели.
Синтаксис для вызова функции таблицы истинности совпадает с функциональной подписью с действительными аргументами, заменяющими формальные единицы, заданные в подписи. Если типы данных фактического и формального аргумента отличаются, функция бросает действительный аргумент к типу формального аргумента.
Если формальные аргументы функциональной подписи являются скалярами, проверяют, что вводы и выводы вызовов функции следуют правилам скалярного расширения. Для получения дополнительной информации смотрите Как Скалярные работы Расширения для Функций.
Можно установить общие свойства для функции таблицы истинности через ее диалоговое окно свойств. Чтобы открыть функциональное диалоговое окно свойств, щелкните правой кнопкой по полю функции таблицы истинности и выберите Properties из контекстного меню.
FunctionName . Щелкните по ссылке имени функции, чтобы принести вашу функцию к переднему плану в его нативном графике.
Управляет встраиванием вашей функции в сгенерированном коде:
'auto'
Определяет, встроить ли вашу функцию на основе внутреннего вычисления.
Встроенный
Встраивает вашу функцию, если вы не экспортируете ее в другие графики, и это не часть рекурсии. (Рекурсия существует если ваши вызовы функции сама прямо или косвенно посредством другого вызова функции.)
Функция
Не встраивает вашу функцию.
Метка Signature для вашей функции. Для получения дополнительной информации смотрите, Объявляют Аргументы функции и Возвращаемые значения.
Управляет уровнем диагностики для underspecification в вашей функции таблицы истинности. Для получения дополнительной информации см. Правильные Чрезмерно определенные и Таблицы истинности Underspecified.
Управляет уровнем диагностики для сверхспецификации в вашей функции таблицы истинности. Для получения дополнительной информации см. Правильные Чрезмерно определенные и Таблицы истинности Underspecified.
Управляет языком действия для вашей функции таблицы истинности Stateflow. Выберите между MATLAB или C. Для получения дополнительной информации см. Опции Языка для Таблиц истинности Stateflow.
Функциональное описание. Можно ввести краткие описания функций в иерархии.
Соединитесь с онлайн-документацией для функции. Можно ввести веб-адрес URL или команду MATLAB, которая отображает документацию в подходящем онлайн-формате, таком как файл HTML или текст в Окне Команды MATLAB. Когда вы кликаете по гиперссылке Document link, Stateflow отображает документацию.