2016. — 196 p. Simulink is a block diagram environment for multidomain simulation and Model-Based Design. It supports system-level design, simulation, automatic code generation, and continuous test and verification of embedded systems. Simulink provides a graphical editor, customizable block libraries, and solvers for modeling and simulating dynamic systems. It is integrated…
The MathWorks, Inc., 2016. — 196 p. — ISBN: 978-1-537-31044-2. Simulink is a block diagram environment for multidomain simulation and Model-Based Design. It supports system-level design, simulation, automatic code generation, and continuous test and verification of embedded systems. Simulink provides a graphical editor, customizable block libraries, and solvers for modeling and…
2016. — 185 p. — ASIN: B01KBDU5PK. Simulink is a block diagram environment for multidomain simulation and Model-Based Design. It supports system-level design, simulation, automatic code generation, and continuous test and verification of embedded systems. Simulink provides a graphical editor, customizable block libraries, and solvers for modeling and simulating dynamic systems. It…
Abell J. MATLAB and SIMULINK.Simulink Introduction. — 2016. — 185p. Simulink is a block diagram environment for multidomain simulation and Model-Based Design. It supports system-level design, simulation, automatic code generation, and continuous test and verification of embedded systems. Simulink provides a graphical editor, customizable block libraries, and solvers for modeling…
www.twirpx.com
Рис. 5.6.4. Примеры использования блокаProduct при выполнении скалярных и поэлементных операций
При выполнении матричных операций необходимо соблюдать правила их выполнения. Например, при умножении двух матриц необходимо, чтобы количество строк первой матрицы равнялось количеству столбцов второй матрицы. Примеры использования блока Product при выполнении матричных операций показаны на рис. 5.6.5. В примере показаны операции формирования обратной матрицы, деление матриц, а также умножение матриц.
Рис. 5.6.5. Примеры использования блокаProduct при выполнении матричных операций
50
5.6.4. Блок определения минимального или максимального значения MinMax
Назначение:
Определяет максимальное или минимальное значение из всех сигналов, поступающих на его входы.
Параметры:
1.Function – Выходной параметр. Выбирается из списка:
•min – Минимальное значение.
•max – Максимальное значение.
2.Number of input ports – Количество входных портов.
Входные сигналы блока могут быть скалярными или векторными. Блок определяет максимальное или минимальное значение из всех скалярных сигналов, поступающих на его входы. Если входные сигналы являются векторными, то блок выполняет поэлементную операцию поиска минимального или максимального значения. В этом случае размерности векторов должны совпадать. Если количество входных портов блока задано равным 1, то блок может использоваться для нахождения минимального или максимального значения во входном векторе.
Примеры использования блока MinMax показаны на рис. 5.6.6.
Рис. 5.6.6. Примеры использования блокаMinMax
5.6.5. Блок округления числового значения
Rounding Function
Назначение:
Выполняет операцию округления числового значения.
51
Параметры:
Function – Способ округления (выбирается из списка):
•floor – Округление до ближайшего меньшего целого.
•ceil – Округление до ближайшего большего целого.
•round – Округление до ближайшего целого.
•fix – Округление отбрасыванием дробной части.
Входные сигналы блока могут быть скалярными, векторными или матричными действительного и комплексного типа. При векторном или матричном входном сигнале блок выполняет поэлементные операции.
Выходной сигнал блока будет иметь тип double илиsingle.
Примеры использования блока Rounding Function показаны на рис. 5.6.7.
Рис. 5.6.7. Примеры использования блока Rounding Function
5.6.6. Блок логических операций Logical Operation
Назначение:
Реализует одну из базовых логических операций.
Параметры:
1.Operator – Вид реализуемой логической операции (выбирается из списка):
•AND – Логическое умножение (операцияИ).
•OR – Логическое сложение (операцияИЛИ).
•NAND – ОперацияИ-НЕ.
•NOR – ОперацияИЛИ-НЕ.
•XOR – ИсключающееИЛИ (операция сложения по модулю2).
•NOT – Логическое отрицание (НЕ).
2.Number of input ports – Количество входных портов.
Выходным сигналом блока является 1, если результат вычисления
логической операции есть “ИСТИНА”, и0, если результат –“ЛОЖЬ”. Входные сигналы блока могут быть скалярными, векторными или
матричными. Если входные сигналы – векторы или матрицы, то блок выполняет поэлементную логическую операцию, при этом размерность входных сигналов должна совпадать. Если часть входных сигналов – векторы или матрицы, а другая часть входных сигналов – скаляры, то блок выполняет логическую операцию для скалярных входных сигналов и каждого элемента векторных или матричных сигналов. Размерность выходного сигнала, в этом случае, будет определяться размерностью векторных или матричных входных сигналов.
При выполнении логической операции отрицания блок будет иметь лишь один входной порт.
Входные сигналы могут быть как действительного, так и логического типа
(boolean).
Примеры использования блока Logical Operation показаны на рис. 5.6.8.
5.6.7. Блок комбинаторной логики Gombinatorical Logic
Назначение:
Преобразует входные сигналы в соответствии с таблицей истинности.Параметры:
Truth table – Таблица истинности.
Блок Combinatorical Logic обеспечивает преобразование входного сигнала в соответствии с правилами, определяемыми таблицей истинности. Таблица истинности представляет собой список возможных выходных значений блока. Такое описание работы устройств принято в теории конечных автоматов. Число строк в таблице истинности определяется соотношением:
,
где
number of inрuts – число входных сигналов,number of rows – число строк таблицы истинности.
Рис. 5.6.8. Примеры использования блока Logical Operation
Входные сигналы при составлении таблицы истинности считаются заданными. Они определяют индекс (номер) строки, в которой записываются выходные значения блока. Индекс каждой строки определяется выражением:
,
где
row index – индекс строки,
m – количество входных сигналов (элементов во входном векторе),u(1) – первый входной сигнал (первый элемент входного вектора),
u(m) – последний входной сигнал (последний элемент входного вектора). Например, в случае операции логическогоИ (AND) для двух операндов выражение, определяющее индекс строки будет выглядеть следующим
образом:
.
Ниже приведен пример формирования таблицы истинности операции логического И (AND) для двух операндов:
54
Таблица 5.6.1
|
|
|
|
|
|
|
|
Вход 2 | Вход 1 |
| Выражение для | Значение | Таблица | ||
|
| индекса строки | индекса | истинности | |||
|
|
|
|
|
| строки | (Выход) |
|
|
|
|
|
|
|
|
0 | 0 |
|
|
|
| 1 | 0 |
|
|
|
|
|
|
|
|
1 | 0 |
|
|
|
| 2 | 0 |
|
|
|
|
|
|
|
|
0 | 1 |
|
|
|
| 3 | 0 |
|
|
|
|
|
|
|
|
1 | 1 |
|
|
|
| 4 | 1 |
|
|
|
|
|
|
|
|
На рис. 5.6.9 показан пример реализации операции логического И с помощью блокаCombinatorical Logic. Параметр блокаTruth table задан выражением[0;0;0;1].
Рис. 5.6.9. Пример использования блока Combinatorical Logic
5.7.Signal&Systems — блоки преобразования сигналов
ивспомогательные блоки
5.7.1. Мультиплексор (смеситель) Mux
Назначение:
Объединяет входные сигналы в вектор.
Параметры:
1.Number of Inputs – Количество входов.
2.Display option – Способ отображения. Выбирается из списка:
•bar – Вертикальный узкий прямоугольник черного цвета.
•signals – Прямоугольник с белым фоном и отображением меток входных сигналов.
•none – Прямоугольник с белым фоном без отображения меток
входных сигналов.
Входные сигналы блока могут быть скалярными и (или) векторными. Если среди входных сигналов есть векторы, то количество входов можно
задавать как вектор с указанием числа элементов каждого вектора. Например, выражение [2 3 1] определяет три входных сигнала, первый сигнал – вектор из двух элементов, второй сигнал – вектор из трех
55
элементов, и последний сигнал – скаляр. В том случае, если размерность входного вектора не совпадает с указанной в параметре Number of Inputs, после начала расчетаSimulink выдаст сообщение об ошибке. Размерность входного вектора можно задавать как-1 (минус один). В этом случае размерность входного вектора может быть любой.
Параметр Number of Inputs можно задавать также в виде списка меток сигналов, например:Vector1, Vector2, Scalar. В этом случае метки сигналов будут отображаться рядом с соответствующими соединительными линиями.
Сигналы, подаваемые на входы блока должны быть одного типа (действительного или комплексного).
Примеры использования блока Mux показаны на рис. 5.7.1.
Рис. 5.7.1. Примеры использования блокаMux
5.7.2. Демультиплексор (разделитель) Demux
Назначение:
Разделяет входной векторный сигнал на отдельные составляющие.
Параметры:
1.Number of Outputs – Количество выходов.
2.Bus Selection Mode (флажок) – Режим разделения векторных сигналов. Входным сигналом в обычном режиме является вектор, сформированный
любым способом. Выходными сигналами являются скаляры или векторы, количество которых и размерность определяется параметром Number of Outputs и размерностью входного вектора.
Если количество выходов P (значение параметраNumber of Outputs) равно размерности входного сигналаN, то блок выполняет разделение входного вектора на отдельные элементы.
Если количество выходов P меньше, чем размерность входного сигналаN, то размерность первыхP-1 выходных сигналов равна отношениюN/P, округленному до ближайшего большего числа, а размерность последнего выходного сигнала равна разности между размерностью входного сигнала и суммой размерностей первыхP-1 выходов. Например, если размерность входного сигнала равна восьми, а количество выходов равно трем, то первые два выходных вектора будут иметь размерностьceil(8/3) = 3, а последний выходной вектор будет иметь размерность8 — (3+3) = 2.
Параметр Number of Outputs может быть задан также с помощью вектора, определяющего размерность каждого выходного сигнала. Например, выражение[2 3 1] определяет три выходных сигнала, первый сигнал – вектор из двух элементов, второй сигнал — вектор из трех элементов, и последний сигнал – скаляр. Размерность можно также задавать как-1 (минус один). В этом случае размерность соответствующего выходного сигнала определяется как разность между размерностью входного вектора и суммой размерностей заданных выходных сигналов. Например, если размерность входного вектора равна шести, а параметрNumber of Outputs задан выражением [1 -1 3], то второй выходной сигнал будет иметь размерность6 —
(3+1) = 2.
Примеры использования блока Demux показаны на рис. 5.7.2.
Рис. 5.7.2. Примеры использования блокаDemux
В режиме Bus Selection Mode блокDemux работает не с отдельными элементами векторов, а с векторными сигналами в целом. Входной сигнал в
этом режиме должен быть сформирован блоком Mux или другим блокомDemux. ПараметрNumber of Outputs в этом случае задается в виде скаляра, определяющего количество выходных сигналов, либо в виде вектора, каждый элемент которого определяет количество векторных сигналов в данном выходном сигнале. Например, при входном сигнале, состоящем из трех векторов параметрNumber of Outputs, заданный вектором[2 1], определит два выходных сигнала, первый из которых будет содержать два векторных сигнала, а второй – один.
Примеры использования блока Demux в режимеBus Selection Mode показаны на рис. 5.7.3.
Рис. 5.7.3. Примеры использования блокаDemux в режимеBus Selection Mode
5.7.3. Блок создания общей области памяти
Data Store Memory
Назначение:
Блок создает поименованную область памяти для хранения данных.
Параметры:
1.Data store nаmе – Имя области памяти.
2.Initial value – Начальное значение.
3.Interpret vector parameters as 1-D(флажок) – Интерпретировать вектор параметров данных как одномерный вектор.
Блок используется совместно с блоками Data Store Write (запись данных) иData Store Read (считывание данных).
Параметр Initial value задает не только начальное значение сигнала, но и его размерность. Например, если начальное значение сигнала задано матрицей[0 1; 2 3], то сохраняемый сигнал должен быть матрицей2×2.
Если блок Data Store Memory расположен в модели верхнего уровня, то заданную им область памяти можно использовать как в самой модели, так и во всех подсистемах нижнего уровня иерархии. Если блокData Store Memory расположен в подсистеме, то заданную им область памяти можно использовать в данной подсистеме и во всех подсистемах нижнего уровня иерархии.
Блок работает с действительными сигналами типа double.
Пример использования блока Data Store Memory совместно с блоками
Data Store Write и Data Store Readпоказан на рис. 5.7.4.
5.7.13. Блок записи данных в общую область памяти
Data Store Write
Назначение:
Блок записывает данные в поименованную область памяти.
Параметры:
1.Data store nаmе – Имя области памяти.
2.Sample time – Шаг модельного времени.
Операция записи выполняется для значения сигнала полученного на предыдущем шаге расчета.
В модели могут использоваться несколько блоков Data Store Write, выполняющих запись в одну область памяти. Однако, если запись производится на одном и том же шаге расчета, то результат будет не предсказуем.
Пример использования блока Data Store Write совместно с блокамиData Store Memory иData Store Read показан на рис. 5.7.4.
5.7.14. Блок считывания данных из общей области памяти
Data Store Read
Назначение:
Блок считывает данные из поименованной области памяти.
Параметры:
1.Data store nаmе – Имя области памяти.
2.Sample time – Шаг модельного времени.
studfiles.net
N | Скобочная запись таблицы | N | Скобочная запись таблицы |
| истинности |
| истинности |
1 | [0,1,2,8,9,(11,12,13,14,15)] | 16 | (0,1,2,8,9,[11,12,13,14,15]) |
2 | [1,2,3,9,10,(8,12,13,14,15)] | 17 | (1,2,3,9,10,[8,12,13,14,15]) |
3 | [2,3,4,10,11,(7,8,13,14,15)] | 18 | (2,3,4,10,11,[7,8,13,14,15]) |
4 | [3,4,5,11,12,(6,7,13,14,15)] | 19 | (3,4,5,11,12,[6,7,13,14,15]) |
5 | [4,5,6,12,13,(0,1,8,14,15)] | 20 | (4,5,6,12,13,[0,1,8,14,15]) |
6 | [5,6,7,13,14,(0,1,8,9,15)] | 21 | (5,6,7,13,14,[0,1,8,9,15]) |
7 | [6,7,8,14,15,(0,1,9,10,11)] | 22 | (6,7,8,14,15,[0,1,9,10,11]) |
8 | [0,1,8,9,10,(4,5,6,13,15)] | 23 | (0,1,8,9,10,[4,5,6,13,15]) |
9 | [1,3,5,10,11,(2,4,8,12,13)] | 24 | (1,3,5,10,11,[2,4,8,12,13]) |
10 | [3,5,7,11,12,(4,8,10,14,15)] | 25 | (3,5,7,11,12,[4,8,10,14,15]) |
11 | [5,7,9,13,14,(6,8,12,11,15)] | 26 | (5,7,9,13,14,[6,8,12,11,15]) |
12 | [7,9,11,13,15,(4,6,8,10,12)] | 27 | (7,9,11,13,15,[4,6,8,10,12]) |
13 | [0,2,4,13,15,(5,6,8,10,12)] | 28 | (0,2,4,13,15,[5,6,8,10,12]) |
14 | [2,4,6,10,12,(8,9,11,13,15)] | 29 | (2,4,6,10,12,[8,9,11,13,15]) |
15 | [4,6,8,12,14,(1,3,9,13,15)] | 30 | (4,6,8,12,14,[1,3,9,13,15]) |
studfiles.net