exponenta event banner

Интегратор дискретного времени

Выполнить дискретно-временную интеграцию или накопление сигнала

  • Библиотека:
  • Simulink/Часто используемые блоки

    Симулинк/дискретный

    Кодер HDL/дискретный

    Кодер HDL/Операции с плавающей точкой HDL

  • Discrete-Time Integrator block

Описание

Используйте блок интегратора дискретного времени вместо блока интегратора для создания чисто дискретной модели. Блок интегратора дискретного времени позволяет:

  • Определение начальных условий в диалоговом окне блока или в качестве входных данных блока

  • Определение значения входного коэффициента усиления (K)

  • Вывод состояния блока

  • Определение верхнего и нижнего пределов интеграла

  • Сброс состояния с помощью дополнительного входа сброса

Выходные уравнения

При первом шаге времени состояние блокировки n = 0, с начальным выходом y(0) = IC или начальное состояние x(0) = IC, в зависимости от значения параметра Initial condition setting.

Для данного шага n > 0 со временем моделирования t(n), выходные данные обновлений Simulink ®y(n) следующим образом:

  • Прямой метод Эйлера:

    y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n-1)
  • Обратный метод Эйлера:

    y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n)
  • Трапециевидный метод:

    y(n) = y(n-1) + K*[t(n)-t(n-1)]*[u(n)+u(n-1)]/2

Simulink автоматически выбирает реализацию состояния-пространства этих выходных уравнений в зависимости от времени выборки блока, которое может быть явным или инициированным. При использовании явного времени выборки t(n)-t(n-1) сокращает до времени выборки T для всех n > 0.

Методы интеграции и накопления

Этот блок может интегрировать или накапливать сигнал, используя прямой Эйлер, обратный Эйлер или трапециевидный метод. Предположим, что u - вход, y - выходной сигнал, и x - это государство. Для данного шага n, обновления Simulink y(n) и x(n+1). В режиме интеграции T - время выборки блока (дельта T в случае инициированного времени выборки). В режиме накопления, T = 1. Время выборки блока определяет, когда вычисляется выходной сигнал, но не значение выходного сигнала. K - значение коэффициента усиления. Фиксация значений в соответствии с верхним или нижним пределом.

Метод Euler для пересылки

Прямой метод Эйлера (по умолчанию), также известный как прямой прямоугольник или левостороннее приближение

Программное обеспечение аппроксимирует 1/s как T/(z-1). Выражения для вывода блока на шаге n являются:

x(n+1) = x(n) + K*T*u(n)
y(n)   = x(n)

Блок использует следующие шаги для вычисления выходных данных:

Step 0:          y(0)   = IC (clip if necessary)
                 x(1)   = y(0) + K*T*u(0)

Step 1:          y(1)   = x(1)
                 x(2)   = x(1) + K*T*u(1)

Step n:          y(n)   = x(n)
                 x(n+1) = x(n) + K*T*u(n) (clip if necessary)

С помощью этого метода входной порт 1 не имеет прямого канала.

Обратный метод Эйлера

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

Программное обеспечение аппроксимирует 1/s как T*z/(z-1). Результирующее выражение для вывода блока на шаге n является

y(n) = y(n-1) + K*T*u(n).

Давайте x(n) = y((n)-1). Блок использует эти шаги для вычисления выходных данных.

  • Если параметр Initial condition setting имеет значение Output или Auto для инициируемых подсистем и подсистем функционального вызова:

    Step 0:          y(0) = IC (clipped if necessary)
                     x(1) = y(0)
  • Если параметр Initial condition setting имеет значение Auto для не запускаемых подсистем:

    Step 0:          x(0)   = IC (clipped if necessary)
                     x(1)   = y(0) = x(0) + K*T*u(0)
    
    Step 1:          y(1)   = x(1) + K*T*u(1)
                     x(2)   = y(1)
    
    Step n:          y(n)   = x(n) + K*T*u(n)
                     x(n+1) = y(n)

С помощью этого метода входной порт 1 имеет прямой канал.

Трапециевидный метод

Для этого метода программное обеспечение аппроксимирует 1/s как T/2*(z+1)/(z-1).

Когда T является фиксированным (равным периоду выборки), выражения для вычисления выходных данных:

x(n) = y(n-1) + K*T/2*u(n-1)
y(n) = x(n) + K*T/2*u(n)
  • Если для параметра Initial condition установлено значение Output или Auto для инициируемых подсистем и подсистем функционального вызова:

    Step 0:          y(0)   = IC (clipped if necessary)
                     x(1)   = y(0) + K*T/2*u(0)
  • Если для параметра Initial condition установлено значение Auto для не запускаемых подсистем:

    Step 0:          x(0)   = IC (clipped if necessary)
                     y(0)   = x(0) + K*T/2*u(0)
                     x(1)   = y(0) + K*T/2*u(0)
    
    Step 1:          y(1)   = x(1) + K*T/2*u(1)
                     x(2)   = y(1) + K*T/2*u(1)
    
    Step n:          y(n)   = x(n) + K*T/2*u(n)
                     x(n+1) = y(n) + K*T/2*u(n)

Здесь, x(n+1) - наилучшая оценка следующего результата. Это не то же самое, что государство, в том, что x(n) не равно y(n).

С помощью этого метода входной порт 1 имеет прямой канал.

Когда T является переменной

КогдаT является переменной (например, полученной из времени запуска), блок использует эти шаги для вычисления выходного сигнала.

  • Если параметр Initial condition setting имеет значение Output или Auto для инициируемых подсистем и подсистем функционального вызова:

    Step 0:          y(0)   = IC (clipped if necessary)
                     x(1)   = y(0)
  • Если параметр Initial condition setting имеет значение Auto для не запускаемых подсистем:

    Step 0:          x(0)   = IC (clipped if necessary)
                     x(1)   = y(0) = x(0) + K*T/2*u(0)
    
    Step 1:          y(1)   = x(1) + T/2*(u(1) + u(0))
                     x(2)   = y(1)
    
    Step n:          y(n)   = x(n) + T/2*(u(n) + u(n-1))
                     x(n+1) = y(n)

Определение начальных условий

Можно определить начальные условия как параметр в диалоговом окне блока или ввести их из внешнего сигнала:

  • Чтобы определить начальные условия как параметр блока, задайте для параметра Initial condition source значение internal и введите значение в текстовое поле Начальное условие.

  • Для предоставления исходных условий из внешнего источника установите для параметра Initial condition source значение external. На блоке появится дополнительный входной порт.

Когда использовать порт состояния

Вместо выходного порта используйте порт состояния:

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

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

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

Ограничить интеграл

Чтобы сохранить вывод в пределах определенных уровней, установите флажок Предельный вывод (Limit output) и введите предельные значения в соответствующее текстовое поле. Это приводит к тому, что блок функционирует как ограниченный интегратор. Когда выход достигает предельных значений, интегральное действие выключается для предотвращения интегрального витка. Во время моделирования можно изменить пределы, но нельзя изменить, ограничен ли вывод. В таблице показано, как блок определяет вывод.

ИнтегралПродукция
Меньше или равно Нижнему пределу насыщения и вход отрицательный Удерживается на нижнем пределе насыщения
Между нижним пределом насыщения и верхним пределом насыщения Интеграл
Больше или равно верхнему пределу насыщения, и вход положительный Удерживается на верхнем пределе насыщения

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

Сигнал насыщения имеет одно из трех значений:

  • 1 указывает, что применяется верхний предел.

  • 0 указывает, что интеграл не ограничен.

  • -1 указывает, что применяется нижний предел.

Сброс состояния

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

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

Сбросить типы триггеров

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

  • rising - сбрасывает состояние, когда сигнал сброса имеет передний фронт. Например, на этом рисунке показано влияние восходящего триггера сброса на обратную интеграцию Эйлера.

  • falling - сбрасывает состояние, когда сигнал сброса имеет задний фронт. Например, на этом рисунке показано влияние падающего триггера сброса на обратную интеграцию Euler.

  • either - Сброс состояния при повышении или падении сигнала сброса. Например, на следующем рисунке показано влияние триггера сброса на обратную интеграцию Euler.

  • level - сбрасывает и удерживает выходной сигнал в исходном состоянии, в то время как сигнал сброса ненулевой. Например, на этом рисунке показано влияние триггера сброса уровня на обратную интеграцию Euler.

  • sampled level - сбрасывает выходной сигнал в исходное состояние, когда сигнал сброса ненулевой. Например, на этом рисунке показано влияние выборочного триггера сброса уровня на обратную интеграцию Euler.

    sampled level опция сброса требует меньшего количества вычислений, что делает ее более эффективной, чем level опция сброса.

    Примечание

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

Поведение в упрощенном режиме инициализации

Упрощенный режим инициализации включен, если для параметра Обнаружение недозаданной инициализации задано значение Simplified в диалоговом окне «Параметры конфигурации». При использовании упрощенного режима инициализации поведение блока дискретного интегратора времени отличается от классического режима инициализации. Новое поведение инициализации является более надежным и обеспечивает более согласованное поведение в следующих случаях:

  • В алгебраических петлях

  • При включении и отключении

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

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

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

Включить и отключить поведение при установке начального условия в значение «Вывод»

При использовании упрощенного режима инициализации с параметром Initial condition (Начальное условие) Output для триггерных подсистем и подсистем функционального вызова режим включения и отключения блока упрощается следующим образом.

Во время отключения td:

 y(td) = y(td-1)

Во время включения te:

  • Если порт управления родительской подсистемой имеет состояния при активизации set reset:

    y(te) = IC.
  • Если порт управления родительской подсистемой имеет состояния при активизации set held:

    y(te) = y(td).

    На следующем рисунке показано это состояние.

Подсистемы итератора

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

В упрощенном режиме инициализации подсистемы итератора не поддерживают истекшее время. Таким образом, если блок интегратора дискретного времени, которому требуется прошедшее время, помещен в блок подсистемы итератора, Simulink сообщает об ошибке.

Поведение в подсистеме Enabled в подсистеме Function-Call

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

Метод интегратораТип времени выборки порта триггера вызова функции Значение delta T Когда подсистема Function-Call выполняется впервые после включения Причина поведения

Форвард Эйлер

Вызванный

t — tstart

Когда подсистема вызова функции выполняется впервые, алгоритм интегратора использует tstart как и предыдущее время моделирования.

Обратный эйлер и трапециевидный

Вызванный

t — tprevious

Когда подсистема вызова функции выполняется впервые, алгоритм интегратора использует tprevious как и предыдущее время моделирования.

Форвард Эйлер, Задний Эйлер и Трапециевидная

Периодический

Время выборки генератора вызова функции

В периодическом режиме блок интегратора дискретного времени использует время выборки генератора вызова функции для delta T.

Порты

Вход

развернуть все

Входной сигнал, заданный как скаляр, вектор или матрица

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Начальные условия состояний, заданные как конечный скаляр, вектор или матрица.

Зависимости

Чтобы включить этот порт, установите для параметра Initial condition source значение external.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Продукция

развернуть все

Дискретно-временная интеграция или накопление входного сигнала, заданного как скаляр, вектор или матрица.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Сигнал, указывающий, когда состояние ограничено, указывается как скаляр, вектор или матрица. Сигнал имеет одно из трех значений:

  • 1 указывает, что применяется верхний предел.

  • 0 указывает, что интеграл не ограничен.

  • -1 указывает, что применяется нижний предел.

Зависимости

Чтобы включить этот порт, установите флажок Показать порт насыщения.

Типы данных: single | double | int8

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

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

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

Дополнительные сведения см. в разделе Когда использовать порт состояния.

Зависимости

Чтобы включить этот порт, установите флажок Показать порт состояния.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

развернуть все

Главный

Укажите метод интегрирования или накопления. Дополнительные сведения см. в разделе Уравнения вывода и методы интегрирования и накопления.

Программное использование

Параметр блока: IntegratorMethod
Текст: символьный вектор
Значения: 'Integration: Forward Euler' | 'Integration: Backward Euler' | 'Integration: Trapezoidal' | 'Accumulation: Forward Euler' | 'Accumulation: Backward Euler' | 'Accumulation: Trapezoidal'
По умолчанию: 'Integration: Forward Euler'

Укажите скаляр, вектор или матрицу для умножения входного сигнала интегратора. Каждый элемент усиления должен быть положительным действительным числом.

  • Указание значения, отличного от 1,0 (по умолчанию), семантически эквивалентно подключению блока усиления к входу интегратора.

  • Допустимые записи:

    • double(1.0)

    • single(1.0)

    • [1.1 2.2 3.3 4.4]

    • [1.1 2.2; 3.3 4.4]

Совет

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

Программное использование

Параметр блока: gainval
Текст: символьный вектор
Значения: скаляр | вектор
По умолчанию: '1.0'

Выберите тип события триггера, возвращающего состояния в исходное состояние:

  • none - Не переводите состояние в исходное состояние.

  • rising - Сброс состояния, когда сигнал сброса имеет передний фронт.

  • falling - Сброс состояния, когда сигнал сброса имеет задний фронт.

  • either - Сброс состояния при повышении или падении сигнала сброса.

  • level - Сброс и удержание выхода в исходном состоянии при ненулевом сигнале сброса.

  • sampled level - Сброс выходного сигнала в исходное состояние при ненулевом сигнале сброса.

Дополнительные сведения см. в разделах Сброс состояния и Сброс типов триггеров.

Программное использование

Параметр блока: ExternalReset
Текст: символьный вектор
Значения: 'none' | 'rising' | 'falling' | 'either' | 'level' | 'sampled level'
По умолчанию: 'none'

Выберите источник исходного состояния:

  • internal - Получение начальных условий состояний из параметра Initial condition block.

  • external - Получение исходных условий состояний из внешнего блока через входной порт IC.

Зависимости

Выбор internal включает параметр Initial condition.

Выбор external отключает параметр Initial condition и активизирует входной порт IC.

Программное использование

Параметр блока: InitialConditionSource
Тип: символьный вектор, строка
Значения: 'internal' | 'external'
По умолчанию: 'internal'

Укажите начальное состояние состояний блока. Минимальное и максимальное значения привязаны к параметрам блока «Выходной минимум» и «Выходной максимум».

Совет

Программное обеспечение Simulink не позволяет исходному состоянию этого блока быть inf или NaN.

Зависимости

Для включения этого параметра установите для параметра Initial condition source значение internal.

Программное использование

Параметр блока: InitialCondition
Тип: символьный вектор, строка
Значения: скаляр | вектор | матрица
По умолчанию: '0'

Выберите, следует ли применить значение параметра «Начальное условие» к состоянию блока или выводу блока. Начальное условие также является значением сброса.

  • Auto - Блок выбирает место применения параметра «Начальное условие».

    • Если блок находится в неотключаемой подсистеме, а метод Integrator настроен на метод интеграции, установите начальные условия:

      x(0) = IC

      При сбросе:

      x(n) = IC

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

  • Output - Используйте эту опцию, когда блок находится в триггерной подсистеме или подсистеме функционального вызова, и метод интегратора устанавливается в метод интеграции.

    Задать начальные условия:

    y(0) = IC

    При сбросе:

    y(n) = IC

  • Compatibility - Этот параметр используется для обеспечения обратной совместимости. Этот параметр нельзя выбрать для блоков интегратора дискретного времени в моделях Simulink, но его можно выбрать для блоков интегратора дискретного времени в библиотеке. Используйте этот параметр для поддержания совместимости с моделями Simulink, созданными до R2014a.

    До R2014a вариант Auto был известен как State only (most efficient). Выбор Output был известен как State and output. Поведение блока с опцией Compatibility является следующим.

    • Если для обнаружения инициализации с неопределенным значением установлено значение Classic, параметр Initial condition setting ведет себя как Auto.

    • Если для обнаружения инициализации с неопределенным значением установлено значение Simplified, параметр Initial condition setting ведет себя как Output.

Примечание

Этот параметр получил имя Use initial condition as initial и reset value for in Simulink перед R2014a.

Программное использование

Параметр блока: InitialConditionSetting
Текст: символьный вектор
Значение: 'Auto' | 'Output' | 'Compatibility'
По умолчанию: 'Auto'

Введите дискретный интервал времени между шагами.

По умолчанию блок использует время дискретной выборки, равное 1. Чтобы задать другое время выборки, введите другое дискретное значение, например 0.1.

Дополнительные сведения см. в разделе Указание времени образца.

Совет

  • Не указывайте время выборки 0. Это значение определяет непрерывное время выборки, которое блок интегратора дискретного времени не поддерживает.

  • Не указывайте время выборки inf или NaN поскольку эти значения не являются дискретными.

  • Если для наследования времени выборки из вышестоящего блока задано значение -1, убедитесь, что вышестоящий блок использует время дискретной выборки. Например, блок интегратора дискретного времени не может наследовать время выборки, равное 0.

Программное использование

Параметр блока: SampleTime
Текст: символьный вектор
Значения: скаляр | вектор
По умолчанию: '-1'

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

  • Установка этого флажка ограничивает вывод блока значением между параметрами Нижний предел насыщения и Верхний предел насыщения.

  • Снятие этого флажка не ограничивает выходные значения блока.

Зависимости

При выборе этого параметра включаются параметры Нижний предел насыщения и Верхний предел насыщения.

Программное использование

Параметр блока: LimitOutput
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Укажите верхний предел для интеграла как скаляр, вектор или матрицу. Необходимо указать значение между значениями параметра Минимум вывода (Output minimum) и Максимум вывода (Output maximum).

Зависимости

Чтобы включить этот параметр, установите флажок Предельный вывод (Limit output).

Программное использование

Параметр блока: UpperSaturationLimit
Тип: символьный вектор, строка
Значения: скаляр | вектор | матрица
По умолчанию: 'inf'

Укажите нижний предел для интеграла как скаляр, вектор или матрицу. Необходимо указать значение между значениями параметра Минимум вывода (Output minimum) и Максимум вывода (Output maximum).

Зависимости

Чтобы включить этот параметр, установите флажок Предельный вывод (Limit output).

Программное использование

Параметр блока: LowerSaturationLimit
Тип: символьный вектор, строка
Значения: скаляр | вектор | матрица
По умолчанию: '-inf'

Установите этот флажок, чтобы добавить выходной порт насыщения в блок. При снятии этого флажка блок не имеет выходного порта насыщения.

Зависимости

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

Программное использование

Параметр блока: ShowSaturationPort
Тип: символьный вектор, строка
Значения: 'off' | 'on'
По умолчанию: 'off'

Установите этот флажок, чтобы добавить в блок выходной порт состояния. При снятии этого флажка блок не имеет выходного порта состояния.

Зависимости

При выборе этого параметра включается порт вывода состояния.

Программное использование

Параметр блока: ShowStatePort
Тип: символьный вектор, строка
Значения: 'off' | 'on'
По умолчанию: 'off'

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

Совет

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

Программное использование

Параметр блока: IgnoreLimit
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Атрибуты сигнала

Меньшее значение диапазона вывода, которое проверяет Simulink.

Simulink использует минимум для выполнения:

Примечание

Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

Программное использование

Параметр блока: OutMin
Текст: символьный вектор
Значения: '[ ]'| скаляр
По умолчанию: '[ ]'

Верхнее значение диапазона вывода, которое проверяет Simulink.

Simulink использует максимальное значение для выполнения:

Примечание

Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

Программное использование

Параметр блока: OutMax
Текст: символьный вектор
Значения: '[ ]'| скаляр
По умолчанию: '[ ]'

Выберите тип данных для вывода. Тип может быть унаследован, указан непосредственно или выражен как объект типа данных, например Simulink.NumericType. Дополнительные сведения см. в разделе Типы данных управляющих сигналов.

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

  • Inherit: Inherit via internal rule - Simulink выбирает тип данных, чтобы сбалансировать числовую точность, производительность и размер сгенерированного кода, принимая во внимание свойства встроенного целевого оборудования. При изменении параметров встроенного целевого объекта тип данных, выбранный внутренним правилом, может измениться. Например, если блок умножает вход типа int8 на выигрыш в размере int16 и ASIC/FPGA указан как целевой тип аппаратных средств, тип выходных данных: sfix24. Если Unspecified (assume 32-bit Generic), т.е. общий 32-разрядный микропроцессор, указывается в качестве целевого аппаратного обеспечения, тип выходных данных - int32. Если длина слов, обеспечиваемая целевым микропроцессором, не может соответствовать диапазону вывода, программное обеспечение Simulink отображает ошибку в средстве просмотра диагностики.

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

    • Явно укажите тип выходных данных.

    • Используйте простой выбор Inherit: Same as input.

    • Явно укажите тип данных по умолчанию, например fixdt(1,32,16) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).

    • Чтобы указать собственное правило наследования, используйте Inherit: Inherit via back propagation а затем используйте блок распространения типа данных. Примеры использования этого блока доступны в блоке Примеры распространения типов данных библиотеки атрибутов сигнала.

  • Inherit: Inherit via back propagation - Использовать тип данных управляющего блока.

Программное использование

Параметр блока: OutDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
По умолчанию: 'Inherit: Inherit via internal rule'

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли тип данных «Вывод», указанный в блоке. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).

Программное использование

Параметр блока: LockScale
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите один из этих режимов округления.

Ceiling

Округляет как положительные, так и отрицательные числа в сторону положительной бесконечности. Эквивалентно MATLAB ®ceil функция.

Convergent

Округляет число до ближайшего представимого значения. Если возникает связь, округляется до ближайшего чётного целого числа. Эквивалентно Designer™ фиксированной точки convergent функция.

Floor

Округляет как положительные, так и отрицательные числа в сторону отрицательной бесконечности. Эквивалентно MATLAB floor функция.

Nearest

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

Round

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

Simplest

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

Zero

Округляет число до нуля. Эквивалентно MATLAB fix функция.

Программное использование

Параметр блока: RndMeth
Текст: символьный вектор
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
По умолчанию: 'Floor'

См. также

Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).

Укажите, будут ли переполнения насыщаться или переноситься.

  • off - переполнение до соответствующего значения, которое может представлять тип данных.

    Например, число 130 не помещается в знаковое 8-битовое целое число и переносится в -126.

  • on - Переполнения насыщаются минимальным или максимальным значением, которое может представлять тип данных.

    Например, переполнение, связанное со значащим 8-битным целым числом, может насытиться до -128 или 127.

Совет

  • Рекомендуется установить этот флажок, если модель имеет возможное переполнение и требуется явная защита от насыщения в сгенерированном коде.

  • Рекомендуется снять этот флажок, если требуется оптимизировать эффективность созданного кода.

    Снятие этого флажка также позволяет избежать чрезмерного указания того, как блок обрабатывает сигналы вне диапазона. Дополнительные сведения см. в разделе Устранение ошибок диапазона сигналов.

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

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

Программное использование

Параметр блока: SaturateOnIntegerOverflow
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Атрибуты состояния

Этот параметр используется для назначения уникального имени состоянию блока. Значение по умолчанию: ' '. Если это поле пустое, имя не назначается. При использовании этого параметра следует учитывать следующие соображения:

  • Допустимый идентификатор начинается с буквы или символа подчеркивания, за которым следуют буквенно-цифровые символы или символы подчеркивания.

  • Имя состояния применяется только к выбранному блоку.

Дополнительные сведения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели (Simulink Coder).

Зависимости

При указании значения для параметра Имя состояния (State name) и нажатии кнопки Применить (Apply) включается параметр Имя состояния (State name), который должен разрешаться параметром Объект сигнала симуляции (Simulink signal object).

Программное использование

Параметр: StateName
Текст: символьный вектор
Значения: уникальное имя
По умолчанию: ''

Укажите, требуется ли разрешить это имя состояния в сигнальные объекты Simulink или нет. При выборе этого параметра программа создает ошибку во время выполнения, если указано имя состояния, не совпадающее с именем сигнального объекта Simulink.

Зависимость

Активируется при присвоении параметру State имени значения и установке для параметра конфигурации модели Signal разрешения, отличного от None.

Установка этого флажка отключает класс хранения «» Создание кода «».

Программное использование

Параметр блока: StateMustResolveToSignalObject
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите пользовательский пакет класса хранения, выбрав класс сигнального объекта, определяемый целевым пакетом. Например, для применения пользовательских классов хранения из встроенного пакета mpt, выберите mpt.Signal. Если вы не используете цель создания кода на основе ERT с Embedded Coder ®, пользовательские классы хранения не влияют на созданный код.

Чтобы использовать пакет класса хранения, отличный от пакета Simulink, необходимо загрузить пакет в словарь Embedded Coder модели. См. раздел Загрузка пакетов классов хранения в словарь встроенного кодера (Embedded Coder).

Сведения о настройке данных модели с помощью классов хранения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели (встроенный кодер). Сведения о пользовательских классах хранения см. в разделе Организация данных в структуры в сгенерированном коде (встроенный кодер).

Программное использование

Параметр блока: StateSignalObject
Текст: символьный вектор
Значения: 'Simulink.Signal' | '<StorageClass.PackageName>'
По умолчанию: 'Simulink.Signal'

Выберите класс хранения состояния для создания кода. Если интерфейс с внешним кодом не требуется, выберите Auto.

Дополнительные сведения см. в разделах Конфигурация генерации кода C для элементов интерфейса модели (Simulink Coder) и Организация данных параметров в структуру с использованием класса хранения Struct (Embedded Coder).

Программное использование

Параметр блока: StateStorageClass
Текст: символьный вектор
Значения: 'Auto' | 'Model default' | 'ExportedGlobal'' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom'
По умолчанию: 'Auto'

Укажите квалификатор типа склада, например const или volatile.

Примечание

TypeQualifier будет удален в следующем выпуске. Чтобы применить квалификаторы типов хранения к данным, используйте пользовательские классы хранения и разделы памяти. Если вы не используете целевой объект создания кода на основе ERT с Embedded Coder, пользовательские классы хранения и разделы памяти не влияют на созданный код.

Зависимости

Чтобы включить этот параметр, задайте для класса хранения генерации кода значение ExportedGlobal, ImportedExtern, ImportedExternPointer, или Model default. Этот параметр скрыт, если ранее не было задано его значение.

Программное использование

Параметр блока: RTWStateStorageTypeQualifier
Текст: символьный вектор
Значения:'' | 'const' | 'volatile' | ...
По умолчанию: ''

Примеры модели

Характеристики блока

Типы данных

double | fixed point | integer | single

Прямой проход

yes

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулей

no

Расширенные возможности

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.

Преобразование с фиксированной точкой
Проектирование и моделирование систем с фиксированной точкой с помощью Designer™ с фиксированной точкой.

Представлен до R2006a