Пространство состояний фиксированной точки

Реализуйте пространство состояний дискретного времени

  • Библиотека:
  • Simulink / Additional Math & Discrete / Дополнительный Дискретный

Описание

Блок Fixed-Point State-Space реализует систему, описанную

y (n) =Cx (n) +Du (n)

x (n+1) =Ax (n) +Bu (n)

где u является входным параметром, x является состоянием, и y является вывод. Оба уравнения имеют совпадающий тип данных.

  • Быть n на n матрицей, где n является количеством состояний.

  • B должен быть n-by-m матрицей, где m является количеством входных параметров.

  • C должен быть r-by-n матрицей, где r является количеством выходных параметров.

  • D должен быть r-by-m матрицей.

Кроме того:

  • Состояние x должно быть n-1 вектором.

  • Входной параметр необходимо быть m-1 вектором.

  • Вывод y должен быть r-1 вектором.

Блок принимает входной параметр того и генерирует тот вывод. Ширина входного вектора является количеством столбцов в B и матриц D. Ширина выходного вектора является количеством строк в C и матрицах D. Чтобы задать вектор начального состояния, используйте параметр Начальных условий.

Порты

Входной параметр

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

Входной вектор, где ширина равняется количеству столбцов в B и матриц D. Для получения дополнительной информации см. Описание.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

Вывод

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

Выходной сигнал, с шириной равняются количеству строк в C и матрицах D. Для получения дополнительной информации см. Описание.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

Параметры

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

Основной

Задайте матрицу состояний как n на n матрица с действительным знаком, где n является количеством состояний. Для получения дополнительной информации о коэффициентах матрицы см. Описание.

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

Блочный параметр: A
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '[2.6020 -2.2793 0.6708; 1 0 0; 0 1 0]'

Задайте вектор - столбец входных параметров как n-by-m матрица с действительным знаком, где n является количеством состояний, и m является количеством входных параметров. Для получения дополнительной информации о коэффициентах матрицы см. Описание.

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

Блочный параметр: B
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '[ 1; 0; 0]'

Задайте вектор - столбец выходных параметров как r-by-n матрица с действительным знаком, где r является количеством выходных параметров, и n является количеством состояний. Для получения дополнительной информации о коэффициентах матрицы см. Описание.

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

Блочный параметр: C
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '[0.0184 0.0024 0.0055]'

Задайте матрицу для прямого сквозного соединения как r-by-m матрица с действительным знаком, где r является количеством выходных параметров, и m является количеством входных параметров. Для получения дополнительной информации о коэффициентах матрицы см. Описание.

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

Блочный параметр: D
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '[0.0033]'

Задайте начальное условие для состояния.

Ограничения

Начальным состоянием не может быть inf или NaN.

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

Блочный параметр: X0
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '0.0'

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

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

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

Блочный параметр: InternalDataType
Ввод: символьный вектор
Значения: строка типа данных
Значение по умолчанию: 'fixdt('double')'

Задайте масштабирование для уравнения состояния AX+BU.

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

Блочный параметр: StateEqScaling
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '2^0'

Задайте масштабирование для выходного уравнения CX+DU.

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

Блочный параметр: InternalDataType
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '2^0'

Выберите, чтобы заблокировать установку типа выходных данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

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

Блочный параметр: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

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

Блочный параметр: RndMeth
Ввод: символьный вектор
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль'
Значение по умолчанию: пол

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

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

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

Блочный параметр: DoSatur
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Блокируйте характеристики

Типы данных

double | single | Boolean[a] | base integer | fixed point

Прямое сквозное соединение

No

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

No

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

Yes

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

No

A 

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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

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

Была ли эта тема полезной?