Описание блоков Часть 2

Часть 1, Часть 2, Часть 3, Часть 4


Интеграторы

1/S (интегратор)

#########

Блок 1/S (интегратор) численно интегрирует входной сигнал, используя назначенный Вами метод интегрирования: Эйлера, Трапециидальный, Рунге-Кутта 2-ого порядка, Рунге-Кутта 4-ого порядка, Адаптивный Рунге-Кутта 5-ого порядка, Адаптивный Булирша-Стоера или Обратный Эйлера (жесткий). См. раздел: Установки на вкладке 'Методы интегрирования'.

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

Блоки интегратор, насыщаемыйИнтегратор, resetИнтегратор, передаточнаяФункция, пространствоСостояний и регистрЗадержки обладают эффектом памяти. Те. текущие значения на их выходах зависят от всех или нескольких предыдущих значений. Вы можете завершить процесс симуляции в любой момент, обнулив их внутренне состояние, используя команду меню Симуляция > Сброс.

Диалоговое окно 'Настройки интегратора'

Строка ввода

Описание

Начальное условие (Initial Condition)

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

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

ID

Это идентифицирующий номер интегратора. VisSim назначает его для отслеживания порядка системы. Порядок любой системы (блок-схемы) равен числу интеграторов в ней

Фиксированное состояние (Chekpoint State)

Если при активной опции "Фиксация состояния в файле" Вы приостановите процесс симуляции и сохраните блок-схему в файле, то, в случае ее повторного открытия, данная строка будет содержать состояние интегратора на момент ее приостановки. Процесс симуляции можно будет продолжить

Метка (Label)

В этой строке ввода можно определить текстовую метку для блока. В схемах электрических принципиальных метке подобны подписи типа "R1 1k2". Метка будет отображаться под блоком

 

Интеграторы

насыщаемыйИнтегратор

#########

Блок насыщаемыйИнтегратор (1/S) численно интегрирует входной сигнал. Если значение интеграла входного сигнала достигает верхнего или нижнего предела, которые определяются входными сигналами x2 и x3 соответственно, то насыщаемыйИнтегратор теряет свои интегрирующие свойства до момента смены знака входного сигнала, или до момента расширения пределов насыщения.

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

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

Нумерация входных сигналов начинается с верхнего входа. Те: входной сигнал x1 подается на верхний вход; верхний предел насыщения x2 - на средний вход маркированный литерой 'u'; нижний предел насыщения x3 - на нижний вход маркированный литерой 'l'.

Диалоговое окно настроек блока насыщаемыйИнтегратор такое же, как у блока интегратор.

Интеграторы

resetИнтегратор (1/S)

#########

Блок resetИнтегратор (1/S) численно интегрирует входной сигнал, если модуль сигнала x2 на входе логического управления 'b' меньше 1. Если модуль сигнала x2 больше или равен 1, то внутреннее состояние этого интегратора (выходное значение) будет динамически сброшено к задаваемому на входе 'r' сигналом x3 начальному значению (будет повторять сигнал x3).

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

Диалоговое окно настроек блока resetИнтегратор такое же, как у блока интегратор. Если сигнал x3 не равен нулю, то, возможно, Вам следует определить начальное условие, устанавливаемое на первом шаге симуляции, соответствующего значения.


Линейные системы

stateSpace

 u' = A u + B x
 y = C u + D x
где:
 x - вектор входных переменных;
 y - вектор выходных переменных;
 u - вектор переменных состояния (фазовых координат системы);
 A - матрица коэффициентов системы;
 B - матрица входных коэффициентов (матрица управления);
 C - матрица выходных коэффициентов;
 D - матрица коэффициентов пропорциональных каналов (матрица компенсации).

Описание системы в пространстве состояний

Блок пространствоСостояний предназначен для моделирования системы, описанной в стандартной векторной форме называемой пространством состояний. Блок может иметь много входов и много выходов. Матрицы коэффициентов пространства состояний определяются в подключаемых к блоку .m или .mat-файлах, которые могут быть созданы следующими способами:

Максимальная размерность пространства состояний, которую поддерживает VisSim - 90 фазовых координат.

Диалоговое окно 'Задание пространства состояний - [AB;CD]'

Опция

Описание

Цифровой

Активация опции замещает в блоке матрицу интеграторов [1/S] матрицей регистров задержки [1/Z]. При этом Вы должны указать период дискретизации dT. Система ДУ становится системой РУ. Перерасчет коэффициентов матриц ABCD для дискретного Z-домена VisSim не выполняет. Для их получения Вы можете выполнить линеаризацию дискретной передаточной функции

.mat-файл

Эта позиция переключателя позволяет подключить к блоку ABCD матрицы коэффициентов определенные в .mat-файле пакета MatLab. Имя файла нужно ввести в одноименной строке ввода в поле ".mat/.m Файл"

.m-файл

Эта позиция переключателя позволяет подключить к блоку ABCD матрицы коэффициентов определенные в .m-файле. Имя файла нужно ввести в одноименной строке ввода в поле ".mat/.m Файл"

dT

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

Начальные условия

В этой строке ввода, через пробел, можно определить начальные условия, те начальные значения фазовых координат u, которые будут установлены на матрице интеграторов [1/S] на первом шаге симуляции. Самое правое значение будет установлено на нижнем интеграторе в матрице. Неопределенные начальные значения принимаются равными 0

Имя

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

Переменных / Входов / Выходов

Это статистическая информация о размерности векторов входных и выходных координат (о количестве входов и выходов). И о порядке системы. Порядок системы определяется размером матрицы A

 

Линейные системы

transferFunction

где: s - оператор дифференцирования

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

Линейные системы

Задание передаточной функции

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

Диалоговое окно 'Задание передаточной функции'

Опция

Описание

Полиномы

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

.mat файл

Переключатель необходимо установить в эту позицию, если коэффициенты полиномов числителя и знаменателя передаточной функции требуется извлечь из ABCD матриц коэффициентов пространства состояний, которые определены в .mat-файле MatLab-а подготовленном ранее. Имя файла нужно ввести в одноименной строке ввода в поле ".mat/.m Файл". Для цепочки интеграторов, при необходимости, Вы можете указать начальные условия

.m файл

Переключатель необходимо установить в эту позицию, если коэффициенты полиномов числителя и знаменателя передаточной функции требуется извлечь из ABCD матриц коэффициентов пространства состояний, которые определены в .m-файле подготовленном ранее. Имя файла нужно ввести в одноименной строке ввода в поле ".mat/.m Файл". Для цепочки интеграторов, при необходимости, Вы можете указать начальные условия. Подробней о создании .m или .mat-файлов см. в описании блока: пространствоСостояний

Цифровой

Активация опции замещает в блоке цепь интеграторов [1/S] цепью регистров задержки [1/Z]. При этом Вы должны указать период дискретизации dT. Таким образом, блоком будет решаться не дифференциальное уравнение, а разностное. Если в вашем распоряжении имеются коэффициенты непрерывного прототипа цифрового фильтра, то следует воспользоваться кнопкой "Convert S->Z" (Конвертировать S->Z) при этом опция активируется автоматически

dT

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

Tapped delay (сигнальная задержка)

Активация опции, приводит к линейному увеличению требований к вычислительным ресурсам и к объему памяти пропорционально порядку КИХ-фильтра. Поскольку КИХ-фильтрам свойственна тенденция иметь высокий порядок (в 5..10 раз выше чем у БИХ-эквивалентов), то имеет смысл проектировать КИХ-фильтры с активной опцией

Корни (полюсы и нули)

Активация опции позволяет определить передаточную функцию вводом в полях для "Числителя" и "Знаменателя" координат корней соответствующих полиномов, те нулей и полюсов. Каждый корень вводится в следующем формате:

(вещественная часть, мнимая часть) (-1, -2) (-1, 2) (0, 0)

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

Подписать тип фильтра

Активация опции полезна, когда ваша передаточная функция имеет высокий порядок, и блок передаточнаяФункция начинает загромождать рабочее поле. Вместо полиномиальных коэффициентов, при этом, будет отображено название фильтра. Например: "Трехполосный КИХ-фильтр 24-ого порядка"

Использовать 32-х битную точность

Активация опции позволяет проконтролировать отсутствие эффектов квантования параметров (коэффициентов) в проектируемых цифровых фильтрах при их дальнейшей реализации на ЦВМ имеющих 32-разрядную математику с плавающей точкой. По умолчанию, все блоки в VisSim-е выполняют преобразования, используя 64-разрядную математику с плавающей точкой

Целочисленное масштабирование

Активация опции позволяет проконтролировать отсутствие эффектов квантования параметров (коэффициентов) в проектируемых цифровых фильтрах при их дальнейшей реализации на ЦВМ имеющих математику с фиксированной точкой. Так же Вы должны указать основание системы счисления и дину слова вашей ЦВМ

Radix Point (Основание системы счисления)

В этом списке Вы должны выбрать основание системы счисления. Вероятно указав максимальное число: 1 - двоичная; 7 - восьмеричная; 15 - шестнадцатеричная

Длина слова

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

БИХ-фильтр (IIR)

Эта кнопка вызывает диалоговое окно "Свойства БИХ-фильтра (IIR)", которое поможет Вам генерировать полиномиальные коэффициенты для классических фильтров: Бесселя, Баттерворта, Чебышева и Инверсного Чебышева. Эти фильтры имеют бесконечную импульсную характеристику. См. раздел: Диалоговое окно проектирования БИХ-фильтра

KИХ-фильтр (FIR)

Эта кнопка вызывает диалоговое окно проектирования КИХ-фильтров, которое поможет Вам генерировать требуемые полиномиальные коэффициенты. Кроме фильтров (как правило, имеющих линейную фазовую характеристику) к системам с конечной импульсной характеристикой относятся "Дифференциаторы" и "преобразователь Гильберта". КИХ-фильтры могут быть только цифровыми, поэтому обязательно активируйте одноименную опцию. См. раздел: Диалоговое окно проектирования КИХ-фильтра

Convert S->Z

Нажатие на эту кнопку вызывает выполнение билинейного преобразования, которое конвертирует непрерывную передаточную функцию к эквивалентной дискретной с указанным периодом дискретизации dT. См. раздел: Конвертация непрерывной передаточной функции в дискретную

Convert Z->S

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

.mat/.m Файл

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

Начальные условия

В этой строке ввода, через пробел, можно определить начальные условия, которые будут установлены на интеграторах [1/S] на первом шаге симуляции. Самое правое значение будет установлено на последнем интеграторе в цепи. Неопределенные начальные значения принимаются равными 0

Коэфф. усиления

В этой строке ввода нужно задать коэффициент усиления передаточной функции. Обратите внимание, что реальное значение коэффициента усиления может отличаться от введенного, если отношение влияющих на него полиномиальных коэффициентов в числителе и знаменателе не равно единице (для ФНЧ это свободные члены в полиномах, для ФВЧ - это коэффициенты при s-опрераторах в наибольшей степени). Значение по умолчанию 1

Числитель

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

Знаменатель

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

 

Линейные системы

Конвертация непрерывной передаточной функции в дискретную

Рассмотрим непрерывную передаточную функцию:
#########.

Билинейное преобразование выполняется осуществлением подстановки:
#########,
где: dT - требуемый период дискретизации ЦВМ; z - оператор запаздывания; s - оператор Лапласа.

В результате получим эквивалентную дискретную передаточную функцию:
#########.

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

Заметим, что из непрерывной передаточной функции можно получить бесконечное количество вариантов дискретной передаточной функции, при разных периодах дискретизации ЦВМ dT.

Обычно в итоге проектирования частота дискретизации f0=1/dT оказывается в 6..10 раз больше частоты единичного усиления f1 разомкнутой системы W(s). Первоначально частоту дискретизации выбирают большой (f0=10..30f1), за тем, за две три попытки стремятся ее уменьшить. При низких частотах дискретизации качество переходного процесса ухудшается настолько, что платить за это понижением производительности ЦВМ не представляется возможным. Предыдущий вариант передаточной функции WdT(z) используют в дальнейшем.

Линейные системы

Конвертация дискретной передаточной функции в непрерывную

Рассмотрим дискретную передаточную функцию:
#########.

Билинейное преобразование выполняется осуществлением подстановки:
#########,
где: dT - период дискретизации ЦВМ; z - оператор запаздывания; s - оператор Лапласа.

В результате получим эквивалентную непрерывную передаточную функцию:
#########.

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

Заметим, что из дискретной передаточной функции, при известном периоде дискретизации ЦВМ dT можно получить только одну непрерывную передаточную функцию.


Матричные операции

buffer

Блок буфер накапливает последовательность входных значений, работая согласно принципу первый вошел - первый вышел (FIFO), и предоставляет на выходе параллельный доступ к данным, формируя их в шину (матрицу-строку). Основное назначение блока - группировка данных для операций цифровой обработки сигналов.

Диалоговое окно 'Параметры буфера'

Опция

Описание

Длина буфера

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

Период стробирования

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

 

Матричные операции

dotProduct

#########

Блок dotОператор вычисляет сумму всех произведений соответствующих элементов в двух матрицах-столбцах или строках.

Матричные операции

fft

Блок БПФ на каждом шаге симуляции выполняет операцию быстрого преобразования Фурье, в результате которой данные временного домена конвертируются в частотный домен. Если на вход блока подается количество выборок не кратное степеням двойки (8, 16, 32, 64, 128, ...), то блок автоматически дополняет массив выборок нулями. Размерность выходного массива (n) совпадает с размерностью входного. Возвращаемые данные - это пары ортогональных коэффициентов ряда Фурье пропорциональные вещественным и мнимым составляющим каждой гармоники в количестве n/2. Амплитуды гармоник могут быть определены по формуле:

Amk = (a[2k+1]2+a[2k+2]2)1/2 / (n/2),

где: k О 0, 1, 2, 3, ..., n/2;  Am0 - постоянная составляющая.

Доступ к индивидуальным коэффициентам возможен с помощью блока вектор->скаляр.

Матричные операции

ifft

Блок ОБПФ на каждом шаге симуляции выполняет операцию обратного быстрого преобразования Фурье, в результате которой данные частотного домена конвертируются во временной домен. Если на вход блока подается количество выборок не кратное степеням двойки (8, 16, 32, 64, 128, ...), то блок автоматически дополняет массив выборок нулями. Размерность выходного массива (n) совпадает с размерностью входного. Возвращаемые данные - это массив временных выборок сигнала.

Доступ к индивидуальным выборкам возможен с помощью блока вектор->скаляр.

Матричные операции

index

 y = X3 [ x1x2 ]

Блок элемент позволяет Вам адресоваться к отдельному элементу в матрице (в шине). Если будет предпринята попытка адресации элемента вне границ матрицы, то VisSim отобразит сообщение о выходе первого или второго индекса за размерность матрицы, и установит флаг ошибки, закрасив блок элемент красным цветом.

Верхний вход блока, помеченный литерой 'c', используется для адресации колонки в матрице (x1), средний вход, помеченный литерой 'r' адресует строку (x2). На нижний вход подается вектор координат (матрица X3). Если Вы работаете с матрицей-столбцом, то один из адресных входов может быть удален.

При индексировании сигналами x1 и x2 действуют правила:

Матричные операции

invert

Y = X -1,  где: #########

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

Будьте внимательны. Если Вам требуется выполнить операцию поэлементного масштабирования сигналов в матрице-шине, то следует пользоваться блоком / (деление). Если Вам требуется выполнить поэлементную операцию нахождения обратных величин для сигналов в матрице-шине, то следует пользоваться блоком 1/X.

Матричные операции

multiply

Y = X1 X2

Блок умножитель выполняет матричное умножение двух сцепленных матриц (число столбцов в первой матрице должно быть равно числу строк во второй).

Будьте внимательны. Если Вам требуется выполнить операцию поэлементного масштабирования сигналов в матрице-шине, то следует пользоваться блоком * (умножение).

Матричные операции

psd

Рабочий файл [psd.vsm]

Блок psd на каждом шаге симуляции возвращает спектр мощности сигнала, используя быстрое преобразование Фурье для массива выборок и соответствующее масштабирование. При увеличении амплитуды входного сигнала в 10 раз спектр поднимается на 40 дБ, поскольку мощность увеличивается пропорционально квадрату сигнала. Если на вход блока подается количество выборок (n) не кратное степеням двойки (8, 16, 32, 64, 128, ...), то блок автоматически дополняет массив выборок нулями. Размерность выходного массива (n/2) в два раза меньше размерности входного. Шаг частоты между спектральными полосами (для выходных данных блока psd) определяется по формуле:

(1/2  частота_стробирования_буфера) / (n/2)

Доступ к индивидуальным полосам спектра возможен с помощью блока вектор->скаляр.

Матричные операции

transpose

Y = X T,  где: [ xij ]T = [ xji ]

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

Матричные операции

vsum

y = ∑ xij

Блок суммаЭлементов суммирует все сигналы в матрице-шине (возвращает число равное сумме всех элементов).