оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации
Свободно распространяемое бесплатное ПО компьютерного моделирования

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

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

И.В.Черных

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

Назначение:

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

Изображение блока и окно для просмотра графиков показаны на рис. 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. Может принимать значения:

Array – массив,

Structure – структура,

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 — Источник начального значения выходного сигнала. Выбирается из списка:

internal – внутренний

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

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.5c до 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

Назначение:

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

Параметры:

Нет.

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

На рис. 9.5.11 показан пример использования блока Manual Switch.

Рис. 9.5.11. Пример использования блока Manual Switch.

Свободно распространяемое бесплатное ПО компьютерного моделирования
оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации

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

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution