И.В.Черных. Simulink. И. В. Черных. "Simulink Инструмент моделирования динамических систем"
Скачать 3.7 Mb.
|
[Скачать пример] 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. |