Simulink Инструмент моделирования динамических систем
![]()
|
На рис. 9.6.22 показан пример реализации операции логического И с помощью блока Combinatorical Logic. Параметр блока Truth table задан выражением [0;0;0;1]. ![]() Рис. 9.6.22. Пример использования блока Combinatorical Logic 9.6.20. Блок алгебраического контура Algebraic Constraint Назначение: Выполняет поиск корней алгебраических уравнений. Параметры: Initial guess – Начальное значение выходного сигнала. Блок находит такое значение выходного сигнала, при котором значение входного сигнала становится равным нулю. При этом входной сигнал должен быть прямо или опосредованно связан с входным сигналом. На рис. 9.6.23 показан пример решения системы нелинейных уравнений вида: . Поскольку данная система уравнений имеет два решения, то начальные значения блоков Algebraic Constraint заданы в виде векторов. Для первого (верхнего) блока начальное значение задано вектором [1 -1], а для второго (нижнего) блока – вектором [-1 1]. ![]() Рис. 9.6.23. Пример использования блока Algebraic Constraint Блок Algebraic Constraint может использоваться также и для решения нелинейных матричных уравнений. На рис. 9.6.24 показан пример решения нелинейного матричного уравнения вида: . ![]() Рис. 9.6.23. Пример использования блока Algebraic Constraint для решения нелинейного матричного уравнения. 9.7. Signal&Systems - блоки преобразования сигналов и вспомогательные блоки 9.7.1. Мультиплексор (смеситель) Mux Назначение: Объединяет входные сигналы в вектор. Параметры:
Входные сигналы блока могут быть скалярными и (или) векторными. Если среди входных сигналов есть векторы, то количество входов можно задавать как вектор с указанием числа элементов каждого вектора. Например, выражение [2 3 1] определяет три входных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. В том случае, если размерность входного вектора не совпадает с указанной в параметре Number of Inputs, то после начала расчета Simulink выдаст сообщение об ошибке. Размерность входного вектора можно задавать как -1 (минус один). В этом случае размерность входного вектора может быть любой. Параметр Number of Inputs можно задавать также в виде списка меток сигналов, например: Vector1, Vector2, Scalar. В этом случае метки сигналов будут отображаться рядом с соответствующими соединительными линиями. Сигналы, подаваемые на входы блока должны быть одного типа (действительного или комплексного). Примеры использования блока Mux показаны на рис. 9.7.1. ![]() Рис. 9.7.1. Примеры использования блока Mux 9.7.2. Демультиплексор (разделитель) Demux Назначение: Разделяет входной векторный сигнал на отдельные составляющие. Параметры:
Входным сигналами в обычном режиме является вектор, сформированный любым способом. Выходными сигналами являются скаляры или векторы, количество которых и размерность определяется параметром Number of Outputs и размерностью входного вектора. Если количество выходов P (значение параметра Number of Outputs) равно размерности входного сигнала N, то блок выполняет разделение входного вектора на отдельные элементы. Если количество выходов P меньше, чем размерность входного сигнала N, то размерность первых P-1 выходных сигналов равна отношению N/P, округленному до ближайшего большего числа, а размерность последнего выходного сигнала равна разности между размерностью входного сигнала и суммой размерностей первых P-1 выходов. Например, если размерность входного сигнала равна 8, а количество выходов равно 3, то первые два выходных вектора будут иметь размерность ceil(8/3) = 3, а последний выходной вектор будет иметь размерность 8 - (3+3) = 2. Параметр Number of Outputs может быть задан также с помощью вектора, определяющего размерность каждого выходного сигнала. Например, выражение [2 3 1] определяет три выходных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. Размерность можно также задавать как -1 (минус один). В этом случае размерность соответствующего выходного сигнала определяется как разность между размерностью входного вектора и суммой размерностей заданных выходных сигналов. Например, если размерность входного вектора равна 6, а параметр Number of Outputs задан выражением [1 -1 3], то второй выходной сигнал будет иметь размерность 6 - (3+1) = 2. Примеры использования блока Demux показаны на рис. 9.7.2. ![]() Рис. 9.7.2. Примеры использования блока Demux В режиме Bus Selection Mode блок Demux работает не с отдельными элементами векторов, а с векторными сигналами в целом. Входной сигнал в этом режиме должен быть сформирован блоком Mux или другим блоком Demux. Параметр Number of Outputs в этом случае задается в виде скаляра, определяющего количество выходных сигналов, либо в виде вектора, каждый элемент которого определяет количество векторных сигналов в данном выходном сигнале. Например, при входном сигнале, состоящем из трех векторов параметр Number of Outputs, заданный вектором [2 1], определит два выходных сигнала, первый из которых будет содержать два векторных сигнала, а второй - один. Примеры использования блока Demux в режиме Bus Selection Mode показаны на рис. 9.7.3. ![]() Рис. 9.7.3. Примеры использования блока Demux в режиме Bus Selection Mode 9.7.3. Блок шинного формирователя Bus Creator Назначение: Формирует шину из сигналов различных типов. Параметры:
Блок позволяет объединять любые сигналы (векторные, матричные, комплексные, действительные и целые разных типов) в единую шину. Такая шина позволяет сократить количество соединительных линий в модели. Для разделения шины на отдельные составляющие необходимо использовать блок Bus Selector. Окно параметров блока позволяет отыскать блок, который является источником сигнала. Для такого поиска необходимо выделить название сигнала в списке Signals in bus и нажать с помощью мыши кнопку Find. Блок являющийся источником выбранного сигнала будет выделен цветом. На рис. 9.7.4 показан пример формирования шины с помощью блока Bus Creator и окно параметров этого блока. Там же показан, выделенный цветом, источник сигнала signal 2 - блок Constant3, найденный с помощью изложенной выше процедуры. ![]() Рис. 9.7.4. Пример использования блока Bus Creator. 9.7.4. Блок шинного селектора Bus Selector Назначение: Выделяет из шины требуемые сигналы. Параметры:
Шина может быть сформирована блоком Mux или Bus Creator. Для извлечения сигнала из шины необходимо открыть окно параметров блока, выделить сигнал в окне Signals in the bus и, с помощью кнопки Select, скопировать имя сигнала в окно Selected signals. Для удаления сигнала из списка Selected signals необходимо выделить его имя в правом списке окна параметров блока и, затем, воспользоваться кнопкой Remove. С помощью кнопок Up и Down можно изменить порядок расположения сигналов в шине, перемещая их в окне Selected signals вверх или вниз, соответственно. Установка параметра Muxed output позволяет объединить сигналы в шину. На рис. 9.7.5 показаны примеры использования блока Bus Selector и окно его параметров. ![]() Рис. 9.7.5. Примеры использования блока Bus Selector. 9.7.5. Блок селектора Selector Назначение: Выбирает из вектора или матрицы требуемые элементы. Параметры:
Список параметров блока изменяется в зависимости от типа входного сигнала.
Внешний вид блока изменяется в зависимости от установленных параметров блока. При выборе внешних источников индексов элементов на изображении блока появляются дополнительные входы, обозначенные следующими символами:
Блок выбирает во входном векторе или матрице и передает на выход только те сигналы, которые определены в параметрах блока или заданы внешним входным сигналом. На рис. 9.7.6 приведены примеры использования блока Selector для различных вариантов настройки блока. ![]() Рис. 9.7.6. Примеры использования блока Selector. 9.7.6. Блок присвоения новых значений элементам массива Assignment Назначение: Заменяет элементы вектора или матрицы. Параметры:
Список параметров блока изменяется в зависимости от типа входного сигнала.
Блок выполняет замену отдельных элементов первого входного массива на элементы второго входного массива в соответствии со списком индексов. Список индексов может задаваться как параметр блока или считываться из внешнего управляющего сигнала. Внешний вид блока изменяется в зависимости от установленных параметров блока. При выборе внешних источников индексов элементов на изображении блока появляются дополнительные входы, обозначенные следующими символами:
На рис. 9.7.7 приведены примеры использования блока Assignment для различных вариантов настройки блока. ![]() Рис. 9.7.7. Примеры использования блока Assignment. 9.7.7. Блок объединения сигналов Merge Назначение: Блок выполняет объединение входных сигналов в единый векторный сигнал. Параметры:
Блок передает на выход значение сигнала вычисленное последним. С помощью параметра Input port offsets можно регулировать расположение входных сигналов в результирующем векторе. Размерность выходного сигнала определяется в соответствии с выражением: ![]() где wk – размерность k-го входного сигнала, ok – смещение k-го входного сигнала. На рис. 9.7.8 приведен пример использования блока Merge для объединения двух векторов. Параметр Input port offsets в примере задан вектором [0 3]. ![]() Рис. 9.7.8. Пример использования блока Merge для объединения входных сигналов. Следующий пример (рис. 9.7.9) демонстрирует свойство блока пропускать на выход сигнал, который был вычислен последним. В примере использованы блоки управляемых подсистем Enabled Subsystem, которые выполняют вычисления только в том случае, если на управляющий вход подсистемы подан не нулевой сигнал. В данном примере подсистема не выполняет какие-либо вычисления, а лишь пропускает сигнал со своего входа на выход. Таким образом, на выход блока Merge поочередно проходят гармонический либо пилообразный сигналы. ![]() Рис. 9.7.9. Пример использования блока Merge 9.7.8. Блок объединения сигналов в матрицу Matrix Concatenation Назначение: Блок выполняет объединение (конкатенацию) входных векторов или матриц. Параметры:
|