Zero order hold simulink что это

от admin

1.1.2. Моделирование дискретных сигналов в Simulink

Генерирование сигналов в Simulink, естественно, имеет свои особенности. Рассмотрим их.

Возьмем из библиотеки блоков Simulink два блока: Sine Wave (из раздела Sources) и Scope (из раздела Sinks). Соединив их, получим простую схему (рис.4).

Рис.4. Схема генерации и отображения синусоидального сигнала

Затем двойным щелчком по блоку осциллоскопа (осциллографа) активизируем окно, имитирующее экран осциллоскопа, и запустим модель (кнопка Start simulation). В результате получим изображение отрезка синусоиды (рис.5).

Рис.5. Отображение отрезка синусоиды на экране осциллоскопа

Как видим, генерировать гармонический сигнал в среде Simulink даже проще, чем в среде MATLAB. Однако это первое впечатление весьма обманчиво. Действительно, ведь важно еще уметь управлять параметрами гармонического сигнала. То, что амплитуда гармонического сигнала оказалась равной единице – нам просто «повезло». Действительно, по умолчанию амплитуда генерируемого сигнала принята равной единице. Однако частотой, начальной фазой и длительностью сигнала мы пока не управляем.

Дважды щелкнем по блоку Sine Wave – в результате появится окно настроек параметров (рис.6). Щелкнув по кнопке Help, получим инструкцию по данному блоку, сущность которой сводится вкратце к тому, что в данном блоке выполняется операция

Из приведенной формулы и надписей на рис.6 становится понятным смысл четырех переменных: амплитуды, угловой частоты, начальной фазы и постоянной составляющей. Остается пока зашифрованным смысл переменной «время».

Останавливаясь на этом важном вопросе, отметим различие понятий «время» и «модельное время». Так, генерирование отрезка сигнала длительностью 1 с (модельное время) может длиться значительно, чем более короткий промежуток времени, например, 0.1 с (реальное время). Скорость генерирования зависит от объема вычислений, быстродействия компьютера, от выбранного «решателя», т.е. алгоритма моделирования и т.д. Кстати, вполне возможен обратный эффект – для сложного алгоритма процедура моделирования отрезка сигнала длительностью 0.1 с может растянуться на несколько секунд.

Сигнал может генерироваться двух типов: непрерывный time-based и дискретный sample-based. Соответственно, для моделирования работы непрерывных систем рекомендуют использовать непрерывный тип time-based, а для моделирования работы дискретных систем – дискретный тип sample-based.

Если установлен тип time-based, тогда параметр Sample time может принимать значения:

– 0 (по умолчанию) – блок работает в непрерывном режиме;

– > 0 – блок работает в дискретном режиме;

– -1 – блок наследует тот же режим, что и принимающий блок.

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

Рис.6. Окно настроек параметров блока Sine Wave

Работа в дискретном режиме заставляет блок вести себя так, как если бы к выходу непрерывного генератора был присоединен блок Zero-Order Hold (из раздела Discrete). Действительно, собрав две схемы (рис.7) и задав в обоих случаях значение параметра Sample time, равное 0.5 (окно настройки блока Zero-Order Hold показано на рис.8), получаем идентичные результаты (рис.9).

Рис.7. Вставка в схему генерации и отображения синусоидального сигнала

блока Zero-Order Hold

Рис.8. Окно настройки блока Zero-Order Hold

Рис.9. Идентичность результата работы схем показанных на рис. 7

Таким образом, блок Zero-Order Hold можно трактовать как «дискретизатор», т.е. часть аналого-цифрового преобразователя (АЦП), ответственную за дискретизацию сигнала. Иногда блок Zero-Order Hold именуют АЦП. По нашему мнению, это не корректно, поскольку дискретизированный сигнал в «подлинном» АЦП подвергается еще и квантованию по уровню. В блоке Zero-Order Hold, однако, квантование не производится.

Несколько замечаний о способах построения графиков. Помимо блока Scope, график можно построить и с помощью блока X-Y-Graf, на верхний вход X которого нужно подать последовательность моментов времени с помощью блока Clock (часы), а на нижний вход Y – значения генерируемого сигнала (рис.10).

Рис.10. Применение для построения графиков блока X-Y-Graf

В результате предварительно настроенный (в соответствующем окне настройки задаются граничные значения аргумента и функции, а также указывается значение параметра Sample time) графопостроитель выдаст показанный на рис.11 график, если для блока X-Y-Graf задано Sample time=-1 (т.е. период дискретизации наследуется).

Рис.11. Отображение синусоиды блоком X-Y-Graf

График будет несколько иным (рис.12), если для блока X-Y-Graf задано Sample time=0.5.

Рис.12. Отображение синусоиды блоком X-Y-Graf, Sample time=0.5

Еще об одном способе построения графиков. Массивы отсчетов моментов времени и соответствующих значений сигнала можно с помощью блока To Workspace экспортировать из среды Simulink в среду MATLAB (рис.13).

Рис.13. Применение блока To Workspace

При этом, как показывает практика, лучше всего задать формат array для экспортируемых данных (рис.14).

Рис.14. Задание формата array для блока To Workspace

Дальнейшее построение графика в среде MATLAB с помощью команды plot(x,y) не представляет никакого труда (рис.15).

Рис.15. Построение графика данных, экспортированных

с помощью блока To Workspace

Подытожим полученные результаты.

Сигнал типа time-based при работе блока генерации в режиме непрерывного времени имеет вид гладкой функции времени, а в режиме дискретного времени – вид ступенчатого сигнала, такого, как если бы к выходу генератора плавного сигнала был подсоединен блок Zero-Order Hold, являющийся дискретизатором типа «отсчет-хранение».

Иными словами, задавая режим дискретного времени, мы уходим от необходимости в использовании блока Zero-Order Hold.

А теперь сгенерируем в Simulink отрезок дискретного гармонического сигнала с темы же параметрами, что были заданы в MATLAB: амплитуда 1, частота 100 Гц, частота дискретизации 1000 Гц, начальная фаза π/2, количество отсчетов 20.

Собираем снова схему из генератора и осциллоскопа. В окне-маске настройки генератора производим указание нужных числовых значений параметров, задаем тип time-based и присваиваем значение Sample time = 0.001 (рис.16).

Рис.16. Окно настройки генератора

После запуска модели получаем на экране осциллоскопа совсем не ту картину, которую ожидали (рис.17).

Рис.17. Результат осциллоскопа

Причина проста – нужно еще настроить параметры моделирования: задать начало и конец модельного времени (в нашем случае это 0 и 0.02 с, соответственно), а также выбрать алгоритм моделирования (тип «решателя»). На рис.18 показано окно настроек параметров моделирования, активизирующееся при выборе позиции меню Simulation/Simulation parameters. Зачастую эти параметры настраиваются автоматически, но для выделения отдельных частей функции знание их необходимо.

Рис.18. Окно настроек параметров моделирования

Кроме того, настроим параметры осциллоскопа, щелкнув по кнопке Parameters на окне Scope (рис.19 а,б).

Рис.19. Настройка параметров осциллоскопа:

а) настройка вкладки General; б) настройка вкладки Data history

После запуска модели на экране осциллоскопа появится изображение (рис.20).

Рис.20. Результат осциллоскопа после проведенных настроек

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

можно построить график сгенерированной функции средствами MATLAB (рис.21).

Рис.21. График сгенерированной функции средствами MATLAB

Сравнивая рис.21 и рис.2, замечаем лишь одно отличие – при моделировании в Simulink сгенерирована 21 точка, тогда как в MATLAB генерировалось 20 точек. Причина различия проста: на интервале модельного времени при частоте дискретизацииFs находится TFs+1 моментов времени, для которых будет сгенерирован сигнал. Очевидно, это обстоятельство легко учесть, добившись полного совпадения результатов моделирования в средах MATLAB и Simulink.

Заключительные замечания по 1.1.

Дискретизация аналоговых сигналов – первый шаг на пути решения задачи сопряжения аналоговых устройств и систем с дискретными.

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

Генерировать сигналы в MATLAB можно тремя способами:

в диалоговом режиме (последовательность команд в командном окне);

в автоматическом режиме, путем создания и запуска m-скрипта;

в автоматическом режиме, путем создания и вызова m-функции.

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

Важной особенностью моделирования в Simulink является очевидное различие понятий «реальное время» и «модельное время». Реальное время – это время, необходимое для проведения вычислений (моделирования). Модельное время – длительность моделируемого процесса.

Модельное время может быть непрерывным (time-based) и дискретным (sample-based). Непрерывное время рекомендуется использовать при моделировании непрерывных (аналоговых) систем, дискретное – дискретных (цифровых). Контроль результатов моделирования в Simulink можно осуществлять как путем построения графиков, так и путем распечатки значений числовых массивов.

Построение графиков удобнее производить в среде Simulink. Анализ числовых данных удобнее производить, экспортируя их в рабочее пространство MATLAB.

Zero order hold simulink что это

И.В.Черных. "Simulink: Инструмент моделирования динамических систем"

9. Библиотека блоков Simulink

9.4. Discrete – дискретные блоки

9.4.1. Блок единичной дискретной задержки Unit Delay

Выполняет задержку входного сигнала на один шаг модельного времени.

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

На рис. 9.4.1 показан пример использования блока для задержки дискретного сигнала на один временной шаг, равный 0.1с.

Рис. 9.4.1. Пример использования блока Unit Delay

9.4.2. Блок экстраполятора нулевого порядка Zero-Order Hold

Блок выполняет дискретизацию входного сигнала по времени.

Sample time – Величина шага дискретизации по времени.

Блок фиксирует значение входного сигнала в начале интервала квантования и поддерживает на выходе это значение до окончания интервала квантования. Затем выходной сигнал изменяется скачком до величины входного сигнала на следующем шаге квантования.

На рис. 9.4.2 показан пример использования блока Zero-Order Hold для формирования дискретного сигнала.

Рис. 9.4.2. Пример формирования дискретного сигнала с помощью блока Zero-Order Hold

Блок экстраполятора нулевого порядка может использоваться также для согласования работы дискретных блоков имеющих разные интервалы квантования. На рис. 9.4.3 показан пример такого использования блока Zero-Order Hold. В примере блок Discrete Transfer Fcn имеет параметр Sample time = 0.4 , а для блока Discrete Filter этот же параметр установлен равным 0.8.

Рис. 9.4.3. Использование блока Zero-Order Hold для согласования работы дискретных блоков.

9.4.3. Блок экстраполятора первого порядка First-Order Hold

Блок задает линейное изменение выходного сигнала на каждом такте дискретизации, в соответствии с крутизной входного сигнала на предыдущем интервале дискретизации.

Sample time – Величина шага дискретизации по времени.

Пример экстраполяции синусоидального сигнала этим блоком показан на рис. 9.4.4.

Рис. 9.4.4. Использование блока First-Order Hold

9.4.4. Блок дискретного интегратора Discrete-Time Integrator

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


    Forward Euler
    — Прямой метод Эйлера.

Метод использует аппроксимацию T/(z-1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k–1),
y
– выходной сигнал интегратора,
u – входной сигнал интегратора,
T – шаг дискретизации,
k – номер шага моделирования.

Метод использует аппроксимацию T*z/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k).

Метод использует аппроксимацию T/2*(z+1)/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
x(k) = y(k–1) + T/2 * u(k–1).

Остальные параметры дискретного интегратора те же, что и у блока аналогового интегратора Integrator (библиотека Continuous).

На рис. 9.4.5 показан пример демонстрирующий все три способа численного интегрирования блока Discrete-Time Integrator. Как видно из рисунка изображение блока меняется в зависимости от выбранного метода интегрирования.

Рис. 9.4.5. Выполнение интегрирования блоками Discrete-Time Integrator, реализующими разные численные методы.

9.4.5. Дискретная передаточная функция Discrete Transfer Fсn

Блок Discrete Transfer Fcn задает дискретную передаточную функцию в виде отношения полиномов:

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Порядок числителя не должен превышать порядок знаменателя.

Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет скалярным (также как и входной сигнал). На рис. 9.4.6 показан пример использования блока Discrete Transfer Fcn. В примере рассчитывается реакция на единичное ступенчатое воздействие дискретного аналога колебательного звена: .

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.6. Использование блока Discrete Transfer Fcn

9.4.6. Блок дискретной передаточной функции Discrete Zero-Pole

Блок Discrete Zero-Pole определяет дискретную передаточную функцию с заданными полюсами и нулями:

Z – вектор или матрица нулей передаточной функции,
P – вектор полюсов передаточной функции,
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

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

В том случае, если нули передаточной функции заданы матрицей, то блок Discrete Zero-Pole моделирует векторную передаточную функцию.

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

Начальные условия при использовании блока Discrete Zero-Pole полагаются нулевыми.

На рис. 9.4.7 показан пример использования блока Discrete Zero-Pole. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.7. Использование блока Discrete Zero-Pole.

9.4.7. Блок дискретного фильтра Discrete Filter

Блок дискретного фильтра Discrete Filter задает дискретную передаточную функцию от обратного аргумента (1/z):

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

На рис. 9.4.8 показан пример использования блока Discrete Filter. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции:

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.8. Использование блока Discrete Filter.

9.4.8. Блок модели динамического объекта Discrete State-Space

Блок создает динамический объект, описываемый уравнениями в пространстве состояний:

x – вектор состояния,

u – вектор входных воздействий,

y – вектор выходных сигналов,

A, B, C, D — матрицы: системы, входа, выхода и обхода, соответственно,

n – номер шага моделирования.

Размерность матриц показана на рис. 9.4.9 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).

Рис. 9.4.9. Размерность матриц блока Discrete State-Space

  1. A –Матрица системы.
  2. B – Матрица входа.
  3. C – Матрица выхода
  4. D – Матрица обхода
  5. Initial condition – Вектор начальных условий.
  6. Sample time — Шаг дискретизации по времени.

На рис. 9.4.10 показан пример моделирования динамического объекта с помощью блока Discrete State-Space. Матрицы блока имеют следующие значения:

Zero order hold simulink что это

Implement a zero-order hold of one sample period

Simulink Discrete and Fixed-Point Blockset Delays & Holds

The Zero-Order Hold block samples and holds its input for the specified sample period. The block accepts one input and generates one output, both of which can be scalar or vector. If the input is a vector, all elements of the vector are held for the same sample period.

You specify the time between samples with the Sample time parameter. A setting of -1 means the Sample time is inherited.

This block provides a mechanism for discretizing one or more signals in time, or resampling the signal at a different rate. If your model contains multirate transitions, you must add Zero-Order Hold blocks between the fast-to-slow transitions. The sample rate of the Zero-Order Hold must be set to that of the slower block. For slow-to-fast transitions, use the Unit Delay block. For more information about multirate transitions, refer to the Simulink or the Real-Time Workshop documentation.

Data Type Support

The Zero-Order Hold block accepts real or complex signals of any data type except int64 and uint64 , including fixed-point data types.

Parameters and Dialog Box

Sample time Specify the time between samples. A value of -1 means the sample time is inherited. See Specifying Sample Time in the online documentation for more information.

Sinks — приемники сигналов

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

Изображение блока и окно для просмотра графиков показаны на рис. 9.2.1.

Рис. 9.2.1. Осциллограф Scope

Для того, чтобы открыть окно просмотра сигналов необходимо выполнить двойной щелчок левой клавишей “мыши” на изображении блока. Это можно сделать на любом этапе расчета (как до начала расчета, так и после него, а также во время расчета). В том случае, если на вход блока поступает векторный сигнал, то кривая для каждого элемента вектора строится отдельным цветом.

Настройка окна осциллографа выполняется с помощью панелей инструментов (рис.9.2.2).

Рис. 9.2.2. Панель инструментов блока Scope

Панель инструментов содержит 11 кнопок:

Print – печать содержимого окна осциллографа.

Parameters – доступ к окну настройки параметров.

Zoom – увеличение масштаба по обеим осям.

Zoom X-axis – увеличение масштаба по горизонтальной оси.

Zoom Y-axis – увеличение масштаба по вертикальной оси.

Autoscale – автоматическая установка масштабов по обеим осям.

Save current axes settings – сохранение текущих настроек окна.

Restore saved axes settings – установка ранее сохраненных настроек окна.

Floating scope – перевод осциллографа в “ свободный” режим.

Lock/Unlock axes selection – закрепить/разорвать связь между текущей координатной системой окна и отображаемым сигналом. Инструмент доступен, если включен режим Floating scope .

Signal selection – выбор сигналов для отображения. Инструмент доступен, если включен режим Floating scope .

Изменение масштабов отображаемых графиков можно выполнять несколькими способами:

1. Нажать соответствующую кнопку (, или ) и щелкнуть один раз левой клавишей “мыши” в нужном месте графика. Произойдет 2,5 кратное увеличение масштаба.

2. Нажать соответствующую кнопку (, или ) и, нажав левую клавишу “мыши”, с помощью динамической рамки или отрезка указать область графика для увеличенного изображения. Рис. 9.2.3 поясняет этот процесс.

Рис. 9.2.3. Увеличение масштаба графика.

3. Щелкнуть правой клавишей “мыши” в окне графиков и, выбрать команду Axes properties… в контекстном меню. Откроется окно свойств графика, в котором с помощью параметров Y-min и Y-max можно указать предельные значения вертикальной оси. В этом же окне можно указать заголовок графика (Title ), заменив выражение %<SignalLabel> в строке ввода. Окно свойств показано на рис. 9.2.4.

Рис. 9.2.4. Окно свойств графика.

Параметры блока устанавливаются в окне ‘Scope’ parameters , которое открывается с помощью инструмента ( Parameters ) панели инструментов. Окно параметров имеет две вкладки:

General – общие параметры.

Data history – параметры сохранения сигналов в рабочей области MATLAB .

Вкладка общих параметров показана на рис. рис. 9.2.5.

Рис. 9.2.5. Вкладка общих параметров General .

На вкладке General задаются следующие параметры:

1. Number of axes — число входов (систем координат) осциллографа. При изменении этого параметра на изображении блока появляются дополнительные входные порты.

2. Time range — величина временного интервала для которого отображаются графики. Если время расчета модели превышает заданное параметром Time range , то вывод графика производится порциями, при этом интервал отображения каждой порции графика равен заданному значению Time range .

3. Tick labels — вывод/скрытие осей и меток осей. Может принимать три значения (выбираются из списка):

all – подписи для всех осей,

none – отсутствие всех осей и подписей к ним,

bottom axis only – подписи горизонтальной оси только для нижнего графика.

4. Sampling — установка параметров вывода графиков в окне. Задает режим вывода расчетных точек на экран. При выборе Decimation кратность вывода устанавливается числом, задающим шаг выводимых расчетных точек. На рис. 9.2.6 и 9.2.7. показаны графики синусоидальных сигналов рассчитанных с фиксированным шагом 0.1 с. На рис. 9.2.6 в окне блока Scope выводится каждая расчетная точка (параметр Decimation равен 1 ). На рис. 9.2.7 показан вывод каждого второго значения (параметр Decimation равен 2 ). Маркерами на графиках отмечены расчетные точки.

Рис. 9.2.6. Отображение синусоидального сигнала (Decimation = 1 ).

Рис. 9.2.7. Отображение синусоидального сигнала (Decimation = 2 ).

В том случае, если режим вывода расчетных точек задается как Sample time , то его числовое значение определяет интервал квантования при отображении сигнала. На рис. 9.2.8 показан график синусоидального сигнала, для случая, когда значение параметра Sample time равно 0.1 .

Рис. 9.2.8. Отображение синусоидального сигнала (Sample time = 0.1 ).

5. floating scope – перевод осциллографа в “ свободный” режим (при установленном флажке).

На вкладке Data history (рис. 9.2.9)задаются следующие параметры:

1. Limit data points to last – максимальное количество отображаемых расчетных точек графика. При превышении этого числа начальная часть графика обрезается. В том случае, если флажок параметра Limit data points to last не установлен, то Simulink автоматически увеличит значение этого параметра для отображения всех расчетных точек.

2. Save data to workspace – сохранение значений сигналов в рабочей области MATLAB .

3. Variable name – имя переменной для сохранения сигналов в рабочей области MATLAB .

4. Format – формат данных при сохранении в рабочей области MATLAB . Может принимать значения:

Structure with time – структура с дополнительным полем “время”.

Рис. 9.2.9. Вкладка Data history .

9.2.2. Осциллограф Floating Scope

Осциллограф Floating Scope , по сути, есть обычный осциллограф Scope , переведенный в “ свободный” режим. Пример модели с осциллографом Floating Scope показан на рис. 9.2.10.

Рис. 9.2.10. Пример модели с осциллографом Floating Scope .

В этом режиме блок осциллографа не имеет входов, а выбор отображаемого сигнала осуществляется с помощью инструмента ( Signal selection ) панели инструментов. Для выбора сигналов необходимо выполнить следующие действия:

1. Выделить систему координат, в которой будет отображаться график. Это достигается с помощью одиночного щелчка левой клавишей “мыши” внутри нужной системы. Выбранная система координат будет подсвечена по периметру синим цветом.

2. С помощью инструмента открыть окно диалога Signal Selector (рис. 9.2.11).

3. Отметить флажком имена блоков, сигналы с выхода которых требуется исследовать.

После выполнения расчета в окне блока Floating Scope будут отображены выбранные сигналы.

Рис. 9.2.11. Окно диалога Signal Selector

9.2.3. Графопостроитель ХУ Graph

Строит график одного сигнала в функции другого (график вида Y(X) ).

x-min – Минимальное значение сигнала по оси X .

x-max – Максимальное значение сигнала по оси X

y-min – Минимальное значение сигнала по оси Y .

y-max – Максимальное значение сигнала по оси Y

Sample time – шаг модельного времени.

Блок имеет два входа. Верхний вход предназначен для подачи сигнала, который является аргументом (X ), нижний – для подачи значений функции (Y ).

На рис.9.2.12, в качестве примера использования графопостроителя, показано построение фазовой траектории колебательного звена.

Рис. 9.2.12. Пример использования графопостроителя ХУ Graph .

Графопостроитель можно использовать и для построения временных зависимостей. Для этого на первый вход следует подать временной сигнал с выхода блока Clock . Пример такого использования графопостроителя показан на рис. 9.2.13.

Рис. 9.2.13. Пример использования блока ХУ Graph для отображения временных зависимостей.

9.2.4. Цифровой дисплей Display

Отображает значение сигнала в виде числа.

Format – формат отображения данных. Параметр Format может принимать следующие значения:

short – 5 значащих десятичных цифр.

long – 15 значащих десятичных цифр.

short_e – 5 значащих десятичных цифр и 3 символа степени десяти.

long_e – 15 значащих десятичных цифр и 3 символа степени десяти.

bank – » денежный » формат. Формат с фиксированной точкой и двумя десятичными цифрами в дробной части числа.

Decimation – кратность отображения входного сигнала. При Decimation = 1 отображается каждое значение входного сигнала, при Decimation = 2 отображается каждое второе значение, при Decimation = 3 – каждое третье значение и т.д.

Sample time – шаг модельного времени. Определяет дискретность отображения данных.

Floating display (флажок)– перевод блока в “ свободный ” режим. В данном режиме входной порт блока отсутствует, а выбор сигнала для отображения выполняется щелчком левой клавиши “мыши” на соответствующей лини связи. В этом режиме для параметра расчета Signal storage reuse должно быть установлено значение off (вкладка Advanced в окне диалога Simulation parameters… ).

На рис. 2.9.14 показано применение блока Display с использованием различных вариантов параметра Format .

Рис. 9.2.14. Применение блока Display с использованием различных вариантов параметра Format.

Блок Display может использоваться для отображения не только скалярных сигналов, но также векторных, матричных и комплексных. Рис. 2.9.15 иллюстрирует это. Если все отображаемые значения не могут поместиться в окне блока, в правом нижнем углу блока появляется символ , указывающий на необходимость увеличить размеры блока (см. блок Display4 на рис. 2.9.15).

Рис. 9.2.15 Применение блока Display для отображения векторных, матричных и комплексных сигналов.

9.2.5. Блок остановки моделирования Stop Simulation

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

При подаче на вход блока ненулевого сигнала Simulink выполняет текущий шаг расчета, а затем останавливает моделирование. Если на вход блока подан векторный сигнал, то для остановки расчета достаточно, чтобы один элемент вектора стал ненулевым. На рис. 2.9.16 показан пример использования данного блока. В примере остановка расчета происходит, если выходной сигнал блока Transfer Function становится большим или равным 0.99 .

Рис. 9.2.16. Применение блока Stop Simulation

9.2.6. Блок сохранения данных в файле То File

Блок записывает данные, поступающие на его вход, в файл.

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

Variable name – имя переменной, содержащей записываемые данные.

Decimation – кратность записи в файл входного сигнала. При Decimation = 1 записывается каждое значение входного сигнала, при Decimation = 2 записывается каждое второе значение, при Decimation = 3 – каждое третье значение и т.д.

Sample time – шаг модельного времени. Определяет дискретность записи данных.

Данные в файле сохраняются в виде матрицы:

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

Файл данных (mat -файл), в который записываются данные, не является текстовым. Структура файла подробно описана в справочной системе MATLAB . Пользователям Simulink удобнее всего считывать данные из mat -файла с помощью блока From File (библиотека Sources ).

На рис. 9.2.17 показан пример использования данного блока. Результаты расчета сохраняются в файле result.mat .

Рис. 9.2.17. Применение блока To File

9.2.7. Блок сохранения данных в рабочей области То Workspace

Блок записывает данные, поступающие на его вход, в рабочую область MATLAB .

Variable name – имя переменной, содержащей записываемые данные.

Limit data points to last – максимальное количество сохраняемых расчетных точек по времени (отсчет ведется от момента завершения моделирования). В том случае, если значение параметра Limit data points to last задано как inf , то в рабочей области будут сохранены все данные.

Decimation – кратность записи данных в рабочую область.

Sample time – шаг модельного времени. Определяет дискретность записи данных.

Save format – формат сохранения данных. Может принимать значения:

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

Structure – структура. Данные сохраняются в виде структуры, имеющей три поля: time – время, signals – сохраняемые значения сигналов, blockName – имя модели и блока To Workspace . Поле time для данного формата остается не заполненным.

Structure with Time – структура с дополнительным полем (время). Для данного формата, в отличие от предыдущего, поле time заполняется значениями времени.

На рис. 9.2.18 показан пример использования данного блока. Результаты расчета сохраняются в переменной simout .

Для считывания данных сохраненных в рабочей области MATLAB можно использовать блок From Workspace (библиотека Sources ).

Рис. 9.2.18. Применение блока To Workspace

9.2.8. Концевой приемник Terminator

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

В том случае, если выход блока оказывается не подключенным ко входу другого блока, Simulink выдает предупреждающее сообщение в командном окне MATLAB . Для исключения этого необходимо использовать блок Terminator . На рис. 9.2.19 показан пример использования концевого приемника. Извлекаемый, с помощью блока Demux, из матрицы второй элемент не никак не используется, поэтому он подается на вход блока Terminator .

Рис. 9.2.19. Применение блока Terminator

9.2.9. Блок выходного порта Outport

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

Port number – номер порта.

Output when disabled – вид сигнала на выходе подсистемы, в случае если подсистема выключена. Используется для управляемых подсистем. Может принимать значения (выбираются из списка):

held – выходной сигнал подсистемы равен последнему рассчитанному значению.

reset – – выходной сигнал подсистемы равен значению задаваемому параметром Initial output .

Initial output — значение сигнала на выходе подсистемы до начала ее работы и в случае, если подсистема выключена. Используется для управляемых подсистем.

9.2.9.1. Использование блока Outport в подсистемах

Блоки Outport подсистемы являются ее выходами. Сигнал, подаваемый в блок Outport внутри подсистемы, передается в модель (или подсистему) верхнего уровня. Название выходного порта будет показано на изображении подсистемы как метка порта.

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

При создании подсистемы с помощью команды Edit/Create subsystem выходные порты создаются и нумеруются автоматически начиная с 1 .

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

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

Если в последовательности номеров портов имеется разрыв, то при выполнении моделирования Simulink выдаст сообщение об ошибке и остановит расчет. В этом случае необходимо вручную переименовать порты таким образом, чтобы последовательность номеров портов не нарушалась.

На рис. 9.2.19 показана модель, использующая подсистему и схема этой подсистемы.

Рис. 9.2.19. Использование блока Outport в подсистеме

В том случае, если подсистема является управляемой, то для ее выходных портов можно задать вид выходного сигнала для тех временных интервалов, когда подсистема заблокирована. На рис. 9.2.20 показана модель, использующая управляемую подсистему (схема подсистемы такая же, как и в предыдущем примере). Для первого выходного порта подсистемы параметр Output when disabled задан как held , а для второго – как reset , причем величина начального значения задана равной нулю. Графики сигналов показывают, что когда подсистема заблокирована, сигнал первого выходного порта остается неизменным, а сигнал второго становится равным заданному начальному значению (нулю).

Рис. 9.2.20. Управляемая подсистема с различными настройками выходных портов.

9.2.9.2 . Использование блока Outport в модели верхнего уровня

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

Для передачи сигнала в рабочее пространство MATLAB .

Для обеспечения связи функций анализа с выходами модели.

Для передачи сигнала в рабочее пространство MATLAB требуется не только установить в модели выходные порты, но и выполнить установку параметров вывода на вкладке Workspace I/O окна диалога Simulation parameters… (должен быть установлен флажок для параметра Output и задано имя переменной для сохранения данных). Тип сохраняемых данных — Array массив, Structure (структура) или Structure with time (структура с полем “ время ”) задается на этой же вкладке.

На рис. 9.2.21 показана модель, передающая сигналы в рабочее пространство MATLAB .

Рис. 9.2.21. Модель, передающая сигналы в рабочее пространство MATLAB с помощью блоков Outport .

Блок Outport может использоваться также для связи модели с функциями анализа, например: linmod или trim .

9.3. Continuous – аналоговые блоки

9.3.1. Блок вычисления производной Derivative

Выполняет численное дифференцирование входного сигнала.

Для вычисления производной используется приближенная формула Эйлера:

где u – величина изменения входного сигнала за время t,

t – текущее значение шага модельного времени.

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

Точность вычисления производной существенно зависит от величины установленного шага расчета. Выбор меньшего шага расчета улучшает точность вычисления производной.

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

Рис.9.3.1. Использование блока Derivative для дифференцирования сигнала.

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

9.3.2. Интегрирующий блок lntegrator

Выполняет интегрирование входного сигнала.

External reset – Внешний сброс. Тип внешнего управляющего сигнала, обеспечивающего сброс интегратора к начальному состоянию. Выбирается из списка:

none – нет (сброс не выполняется),

rising — нарастающий сигнал (передний фронт сигнала),

falling — спадающий сигнал (задний фронт сигнала),

either – нарастающий либо спадающий сигнал,

level – не нулевой сигнал (сброс выполняется если сигнал на управляющем входе становится не равным нулю);

В том случае, если выбран какой-либо (но не none ), тип управляющего сигнала, то на изображении блока появляется дополнительный управляющий вход. Рядом с дополнительным входом будет показано условное обозначение управляющего сигнала.

Initial condition source — Источник начального значения выходного сигнала. Выбирается из списка:

external – внешний. В этом случае на изображении блока появляется дополнительный вход, обозначенный x 0 , на который необходимо подать сигнал задающий начальное значение выходного сигнала интегратора.

Initial condition — Начальное условие. Установка начального значения выходного сигнала интегратора. Параметр доступен, если выбран внутренний источник начального значения выходного сигнала.

Limit output (флажок) — Использование ограничения выходного сигнала.

Upper saturation limit — Верхний уровень ограничения выходного сигнала. Может быть задан как числом, так и символьной последовательностью inf , то есть + .

Lower saturation limit — Нижний уровень ограничения выходного сигнала. Может быть задан как числом, так и символьной последовательностью inf , то есть — .

Show saturation port — управляет отображением порта, выводящего сигнал, свидетельствующий о выходе интегратора на ограничение. Выходной сигнал данного порта может принимать следующие значения:

Ноль , если интегратор не находится на ограничении.

+1 , если выходной сигнал интегратора достиг верхнего ограничивающего предела.

-1 , если выходной сигнал интегратора достиг нижнего ограничивающего предела.

Show state port (флажок) — Отобразить/скрыть порт состояния блока. Данный порт используется в том случае, если выходной сигнал интегратора требуется подать в качестве сигнала обратной связи этого же интегратора. На пример, при установке начальных условий через внешний порт или при сбросе интегратора через порт сброса. Выходной сигнал с этого порта может использоваться также для организации взаимодействия с управляемой подсистемой.

Absolute tolerance — Абсолютная погрешность.

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

Рис. 9.3.2. Интегрирование ступенчатого сигнала.

Пример на рис. 9.3.3 отличается от предыдущего подачей начального значения через внешний порт. Начальное значение выходного сигнала в данном примере задано равным –10 .

Рис. 9.3.3. Интегрирование ступенчатого сигнала с установкой начального значения выходного сигнала.

Пример на рис. 9.3.4 демонстрирует использование входного порта для сброса выходного сигнала и порта состояния интегратора с целью организации обратной связи. Схема работает следующим образом: входной постоянный сигнал преобразуется интегратором в линейно-изменяющийся, по достижении выходным сигналом значения равного 1 блок Relational Operator вырабатывает логический сигнал, по переднему фронту которого происходит сброс выходного сигнала интегратора до начального значения равного нулю. В результате на выходе интегратора формируется пилообразный сигнал, изменяющийся от 0 до +1 .

Рис. 9.3.4. Генератор пилообразного сигнала на основе интегратора.

Следующая схема (рис. 9.3.5) использует установку начального значения интегратора с помощью его выходного сигнала. В первый момент времени начальное значение выходного сигнала интегратора с помощью блока IC ( Initial Condition ) устанавливается равным нулю. По достижении выходным сигналом значения равного 1 блок Relational Operator подает сигнал сброса выходного сигнала интегратора на начальный уровень, при этом сигналом, задающим начальный уровень, оказывается инвертированный выходной сигнал интегратора (т.е. -1 ). Далее цикл работы схемы повторяется. В отличие от предыдущей схемы выходным сигналом генератора является двуполярный сигнал.

Рис. 9.3.5. Генератор двуполярного пилообразного сигнала

на основе интегратора.

9.3.3. Блок Memory

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

Initial condition – начальное значение выходного сигнала.

Inherit sample time (флажок) – Наследовать шаг модельного времени. Если этот флажок установлен, то блок Memory использует шаг модельного времени (Sample time ) такой же, как и в предшествующем блоке.

На рис. 9.3.6 показан пример использования блока Memory для задержки дискретного сигнала на один временной такт.

Рис. 9.3.6. Применение блока для задержки сигнала на один временной такт

9.3.4. Блок фиксированной задержки сигнала Transport Delay

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

Time Delay — Время задержки сигнала (не отрицательное значение).

Initial input — Начальное значение выходного сигнала.

Buffer size — Размер памяти, выделяемой для хранения задержанного сигнала. Задается в байтах числом, кратным 8 (по умолчанию 1024 ).

Pade order (for linearization) — Порядок ряда Паде, используемого при аппроксимации выходного сигнала. Задается целым положительным числом.

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

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

На рис. 9.3.7 показан пример использования блока Transport Delay для задержки прямоугольного сигнала на 0.5 с.

Рис. 9.3.7. Пример использования блока Transport Delay для задержки сигнала.

9.3.5. Блок управляемой задержки сигнала Variable Transport Delay

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

Maximum delay — Максимальное значение времени задержки сигнала (не отрицательное значение).

Initial input — Начальное значение выходного сигнала.

Buffer size — Размер памяти, выделяемой для хранения задержанного сигнала. Задается в байтах числом, кратным 8 (по умолчанию 1024 ).

Pade order (for linearization) — Порядок ряда Паде, используемого при аппроксимации выходного сигнала. Задается целым положительным числом.

Блок управляемой задержки Variable Transport Delay работает аналогично блоку постоянной задержки сигнала Transport Delay .

В том случае, если значение управляющего сигнала задающего величину задержки превышает значение, заданное параметром Maximum delay, то задержка выполняется на величину Maximum delay .

На рис. 9.3.8 показан пример использования блока Variable Transport Delay . Величина времени задержки сигнала изменяется от 0.5 c до 1 с в момент времени равный 5 с.

Рис. 9.3.8. Пример использования блока Variable Transport Delay .

9.3.6. Блок передаточной функции Transfer Fcn

Блок передаточной характеристики Transfer Fcn задает передаточную функцию в виде отношения полиномов:

nn и nd – порядок числителя и знаменателя передаточной функции,
num – вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Numerator — вектор или матрица коэффициентов полинома числителя

Denominator -вектор коэффициентов полинома знаменателя

Absolute tolerance — Абсолютная погрешность.

Порядок числителя не должен превышать порядок знаменателя.

Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет также скалярным (как и входной сигнал). На рис. 9.3.8 показан пример моделирования колебательного звена с помощью блока Transfer Fcn .

Рис. 9.3.8. Пример моделирования колебательного звена.

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

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

Рис. 9.3.9. Пример моделирования векторной передаточной функции и ее аналог.

Начальные условия при использовании блока Transfer Fcn полагаются нулевыми. Если же требуется, чтобы начальные условия не были нулевыми, то необходимо с помощью функции tf2ss (инструмент Control System Toolbox ) перейти от передаточной функции к модели в пространстве состояний и моделировать динамический объект с помощью блока State-Space .

9.3.7. Блок передаточной функции Zero-Pole

Блок Zero-Pole определяет передаточную функцию с заданными полюсами и нулями:

Z – вектор или матрица нулей передаточной функции (корней полинома числителя),
P – вектор полюсов передаточной функции (корней полинома знаменателя),
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

Zeros – Вектор или матрица нулей.

Poles – Вектор полюсов.

Gain – Скалярный или векторный коэффициент передаточной функции.

Absolute tolerance — Абсолютная погрешность.

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

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

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

Начальные условия при использовании блока Zero-Pole полагаются нулевыми.

На рис. 9.3.10 показан пример использования блока Zero-Pole . В примере передаточная функция имеет один действительный нуль и два комплексно-сопряженных полюса.

Рис. 9.3.10. Пример использования блока Zero-Pole .

9.3.8. Блок модели динамического объекта State-Space

Блок создает динамический объект, описываемый уравнениями в пространстве состояний:

x – вектор состояния,
u – вектор входных воздействий,
y – вектор выходных сигналов,
A, B, C, D — матрицы: системы, входа, выхода и обхода, соответственно.

Размерность матриц показана на рис. 9.3.11 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).

Рис. 9.3.11. Размерность матриц блока State-Space

A –Матрица системы.

B – Матрица входа.

C – Матрица выхода

D – Матрица обхода

Initial condition – Вектор начальных условий.

Absolute tolerance — Абсолютная погрешность.

На рис. 9.3.11 показан пример моделирования динамического объекта с помощью блока State-Space . Матрицы блока имеют следующие значения:

Рис. 9.3.12. Пример использования блока State-Space .

9.4. Discrete – дискретные блоки

9.4.1. Блок единичной дискретной задержки Unit Delay

Выполняет задержку входного сигнала на один шаг модельного времени.

Initial condition – Начальное значение для выходного сигнала.

Sample time – Шаг модельного времени.

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

На рис. 9.4.1 показан пример использования блока для задержки дискретного сигнала на один временной шаг, равный 0.1с.

Рис. 9.4.1. Пример использования блока Unit Delay

9.4.2. Блок экстраполятора нулевого порядка Zero-Order Hold

Блок выполняет дискретизацию входного сигнала по времени.

Sample time – Величина шага дискретизации по времени.

Блок фиксирует значение входного сигнала в начале интервала квантования и поддерживает на выходе это значение до окончания интервала квантования. Затем выходной сигнал изменяется скачком до величины входного сигнала на следующем шаге квантования.

На рис. 9.4.2 показан пример использования блока Zero-Order Hold для формирования дискретного сигнала.

Рис. 9.4.2. Пример формирования дискретного сигнала с помощью блока Zero-Order Hold

Блок экстраполятора нулевого порядка может использоваться также для согласования работы дискретных блоков имеющих разные интервалы квантования. На рис. 9.4.3 показан пример такого использования блока Zero-Order Hold. В примере блок Discrete Transfer Fcn имеет параметр Sample time = 0.4 , а для блока Discrete Filter этот же параметр установлен равным 0.8 .

Рис. 9.4.3. Использование блока Zero-Order Hold для согласования работы дискретных блоков.

9.4.3. Блок экстраполятора первого порядка First-Order Hold

Блок задает линейное изменение выходного сигнала на каждом такте дискретизации, в соответствии с крутизной входного сигнала на предыдущем интервале дискретизации.

Sample time – Величина шага дискретизации по времени.

Пример экстраполяции синусоидального сигнала этим блоком показан на рис. 9.4.4.

Рис. 9.4.4. Использование блока First-Order Hold

9.4.4. Блок дискретного интегратора Discrete-Time Integrator

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

Integration method – Метод численного интегрирования:

Forward Euler — Прямой метод Эйлера.

Метод использует аппроксимацию T/(z-1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k–1),
y – выходной сигнал интегратора,
u – входной сигнал интегратора,
T – шаг дискретизации,
k – номер шага моделирования.

Backward Euler – Обратный метод Эйлера.

Метод использует аппроксимацию T*z/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k).

Trapeziodal – Метод трапеций.

Метод использует аппроксимацию T/2*(z+1)/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
x(k) = y(k–1) + T/2 * u(k–1).

Sample time — Шаг дискретизации по времени.

Остальные параметры дискретного интегратора те же, что и у блока аналогового интегратора Integrator (библиотека Continuous ).

На рис. 9.4.5 показан пример демонстрирующий все три способа численного интегрирования блока Discrete-Time Integrator . Как видно из рисунка изображение блока меняется в зависимости от выбранного метода интегрирования.

Рис. 9.4.5. Выполнение интегрирования блоками Discrete-Time Integrator , реализующими разные численные методы.

9.4.5. Дискретная передаточная функция Discrete Transfer Fсn

Блок Discrete Transfer Fcn задает дискретную передаточную функцию в виде отношения полиномов:

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num – вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Numerator — Вектор или матрица коэффициентов числителя

Denominator – Вектор коэффициентов знаменателя

Sample time — Шаг дискретизации по времени.

Порядок числителя не должен превышать порядок знаменателя.

Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет скалярным (также как и входной сигнал). На рис. 9.4.6 показан пример использования блока Discrete Transfer Fcn . В примере рассчитывается реакция на единичное ступенчатое воздействие дискретного аналога колебательного звена:

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.6. Использование блока Discrete Transfer Fcn

9.4.6. Блок дискретной передаточной функции Discrete Zero-Pole

Блок Discrete Zero-Pole определяет дискретную передаточную функцию с заданными полюсами и нулями:

Z – вектор или матрица нулей передаточной функции,
P – вектор полюсов передаточной функции,
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

Zeros – Вектор или матрица нулей.

Poles – Вектор полюсов.

Gain – Скалярный или векторный коэффициент передаточной функции.

Sample time — Шаг дискретизации по времени.

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

В том случае, если нули передаточной функции заданы матрицей, то блок Discrete Zero-Pole моделирует векторную передаточную функцию.

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

Начальные условия при использовании блока Discrete Zero-Pole полагаются нулевыми.

На рис. 9.4.7 показан пример использования блока Discrete Zero-Pole . С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.7. Использование блока Discrete Zero-Pole .

9.4.7. Блок дискретного фильтра Discrete Filter

Блок дискретного фильтра Discrete Filter задает дискретную передаточную функцию от обратного аргумента (1/z ):

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
num – вектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Numerator — Вектор или матрица коэффициентов числителя

Denominator –Вектор коэффициентов знаменателя

Sample time — Шаг дискретизации по времени.

На рис. 9.4.8 показан пример использования блока Discrete Filter . С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции:

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.8. Использование блока Discrete Filter .

9.4.8. Блок модели динамического объекта Discrete State-Space

Блок создает динамический объект, описываемый уравнениями в пространстве состояний:

x – вектор состояния,

u – вектор входных воздействий,

y – вектор выходных сигналов,

A, B, C, D — матрицы: системы, входа, выхода и обхода, соответственно,

n – номер шага моделирования.

Размерность матриц показана на рис. 9.4.9 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).

Рис. 9.4.9. Размерность матриц блока Discrete State-Space

A –Матрица системы.

B – Матрица входа.

C – Матрица выхода

D – Матрица обхода

Initial condition – Вектор начальных условий.

Sample time — Шаг дискретизации по времени.

На рис. 9.4.10 показан пример моделирования динамического объекта с помощью блока Discrete State-Space . Матрицы блока имеют следующие значения:

Рис. 9.4.10. Пример использования блока Discrete State-Space .

9.5. Nonlinear — нелинейные блоки

9.5.1. Блок ограничения Saturation

Выполняет ограничение величины сигнала.

Upper limit — Верхний порог ограничения.

Lower limit — Нижний порог ограничения.

Treat as gain when linearizing (флажок) — Трактовать как усилитель с коэффициентом передачи равным 1 при линеаризации.

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

Рис. 9.5.1. Пример использования блока Saturation

9.5.2. Блок с зоной нечувствительности Dead Zone

Реализует нелинейную зависимость типа «зона нечувствительности (мертвая зона)».

Start of dead zone — Начало зоны нечувствительности (нижний порог).

End of dead zone — Конец зоны нечувствительности (верхний порог).

Saturate on integer overflow (флажок) — Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Treat as gain when linearizing (флажок) — Трактовать как усилитель с коэффициентом передачи равным 1 при линеаризации.

Выходной сигнал блока вычисляется в соответствии со следующим алгоритмом:

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

Если входной сигнал больше или равен верхнему входному порогу зоны нечувствительности, то выходной сигнал равен входному минус величина порога.

Если входной сигнал меньше или равен нижнему входному порогу зоны нечувствительности, то выходной сигнал равен входному минус величина порога.

На рис. 9.5.2 показан пример использования блока Dead Zone

Рис. 9.5.2. Пример использования блока Dead Zone

9.5.3. Релейный блок Relay

Реализует релейную нелинейность.

Switch on point — Порог включения. Значение, при котором происходит включение реле.

Switch off point — Порог выключения. Значение, при котором происходит выключение реле.

Output when on — Величина выходного сигнала во включенном состоянии.

Output when off — Величина выходного сигнала в выключенном состоянии.

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

На рис. 9.5.3 показан пример использования блока Relay. На временных диаграммах видно, что включение реле происходит при достижении входным сигналом величины 0.5, а выключение при — 0.5.

Рис. 9.5.3. Пример использования блока Relay

9.5.4. Блок ограничения скорости изменения сигнала Rate Limiter

Блок обеспечивает ограничение скорости изменения сигнала (первой производной).

Rising slew rate — Уровень ограничения скорости при увеличении сигнала.

Falling slew rate — Уровень ограничения скорости при уменьшении сигнала.

Вычисление производной сигнала выполняется по выражению:

,

где u(i) — значение входного сигнала на текущем шаге,
t(i) — значение модельного времени на текущем шаге,
y(i-1) — значение выходного сигнала на предыдущем шаге,
t(i-1) — значение модельного времени на предыдущем шаге.

Вычисленное значение производной сравнивается со значениями уровней ограничения скорости Rising slew rate и Falling slew rate. Если значение производной больше, чем значение параметра Rising slew rate, то выходной сигнал блока вычисляется по выражению:

,

где R — уровень ограничения скорости при увеличении сигнала.

Если значение производной меньше, чем значение параметра Falling slew rate, то выходной сигнал блока вычисляется по выражению:

,

где F — уровень ограничения скорости при уменьшении сигнала.

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

.

На рис. 9.5.4 показан пример использования блока Rate Limiter, при подаче на его вход прямоугольного периодического сигнала.

Рис. 9.5.4. Пример использования блока Rate Limiter

9.5.5. Блок квантования по уровню Quantizer

Блок обеспечивает квантование входного сигнала с одинаковым шагом по уровню.

Quantization interval — шаг квантования по уровню.

На рис. 9.5.5 показан пример использования блока Quantizer, выполняющего квантование по уровню синусоидального сигнала. Шаг квантования задан равным 0.5.

Рис. 9.5.5. Пример использования блока Quantizer

9.5.6. Блок сухого и вязкого трения Coulomb and Viscous Friction

Моделирует эффекты сухого и вязкого трения.

Coulomb friction value (Offset)– Величина сухого трения.

Coefficient of viscous friction (Gain) – Коэффициент вязкого трения.

Блок реализует нелинейную характеристику, соответствующую выражению:

где u – входной сигнал,
y – выходной сигнал,
Gain – коэффициент вязкого трения ,
Offset – Величина сухого трения.

На рис. 9.5.6 показан пример использования блока Coulomb and Viscous Friction . Оба параметра блока заданы равными 1 .

Рис. 9.5.6. Пример использования блока Coulomb and Viscous Friction

9.5.7. Блок люфта Backlash

Моделирует нелинейность типа “люфт”.

Deaband width – Ширина люфта.

Initial output – Начальное значение выходного сигнала.

Сигнал на выходе будет равен заданному значению Initial output , пока входной сигнал при возрастании не достигнет значения (Deaband width)/2 (где U – входной сигнал), после чего выходной сигнал будет равен U-(Deaband width)/2. После того как, произойдет смена направления изменения входного сигнала, он будет оставаться неизменным, пока входной сигнал не изменится на величину (Deaband width)/2, после чего выходной сигнал будет равен U+(Deaband width)/2 .

На рис. 9.5.7 показан пример работы блока Backlash . Входной сигнал блока гармонический с линейно возрастающей амплитудой.

Рис. 9.5.7. Пример использования блока Backlash

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

Выполняет переключение входных сигналов по сигналу управления.

Threshold – Порог управляющего сигнала.

Блок работает следующим образом:
Если сигнал управления, подаваемый на средний вход больше, чем величина порогового значения Threshold , то на выход блока проходит сигнал с первого (верхнего) входа. Если сигнал управления станет меньше, чем пороговое значение, то на выход блока будет поступать сигнал со второго (нижнего) входа.

На рис. 9.5.8 показан пример работы блока Switch . В том случае, когда сигнал на управляющем входе ключа равен 1 , на выход блока проходит гармонический сигнал, если же управляющий сигнал равен нулю, то на выход проходит сигнал нулевого уровня от блока Ground . Пороговое значение управляющего сигнала задано равным 0.5 .

Рис. 9.5.8. Применение переключателя Switch

9.5.9. Блок многовходового переключателя Multiport Switch

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

Number of inputs – Количество входов.

Блок многовходового переключателя Multiport Switch, пропускает на выход сигнал с того входного порта, номер которого равен текущему значению управляющего сигнала. Если управляющий сигнал не является сигналом целого типа, то блок Multiport Switch производит отбрасывание дробной части числа, при этом в командном окне Matlab появляется предупреждающее сообщение.

На рис. 9.5.9 показан пример работы блока Multiport Switch . Управляющий сигнал переключателя имеет три уровня и формируется с помощью блоков Constant , Step , Step1 и Sum . На выход блока Multiport Switch, в зависимости от уровня входного сигнала, проходят гармонические сигналы, имеющие разные частоты.

Рис. 9.5.9. Применение переключателя Multiport Switch.

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

На рис. 9.5.10 показан пример использования блока Multiport Switch при векторном сигнале. Временные диаграммы работы для данного примера совпадают с рассмотренными в предыдущем примере.

Рис. 9.5.10. Применение переключателя Multiport Switch при векторном входном сигнале.

9.5.10. Блок ручного переключателя Manual Switch

Выполняет переключение входных сигналов по команде пользователя.

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

Читать:
Второй монитор определяется как первый

Похожие статьи