метода Simulink (1087392), страница 6
Текст из файла (страница 6)
Назначение:
Блок записывает данные, поступающие на его вход, в файл.
Параметры:
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. Библиотека блоков Simulink
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. Интегрирование ступенчатого сигнала с установкой начального значения выходного сигнала.