.
7.2.2. Оперирование с блоками
Копирование блоков из одного окна в другое
В процессе создания и редактирования модели нужно копировать блоки из библиотеки или другой модели в текущую модель. Для этого достаточно:
открыть нужный раздел библиотеки или окно модели-прототипа;
перетянуть мышкой нужный блок в окно создаваемой (редактируемой) модели.
Другой способ заключается в следующем:
1) выделить блок, который нужно скопировать;
2) выбрать команду Copy (Копировать) из меню Edit (Редактирование);
3) сделать активным окно, в которое нужно скопировать блок;
4) выбрать в нем команду Paste (Вставить) из меню Edit.
SimuLINK присваивает имя каждому из скопированных блоков. Первой
скопированный блок будет иметь то же имя, что и блок в библиотеке. Каждый
следующий блок того же типа будет иметь такое же имя с добавлением поряд-
кового номера. Пользователь может переименовать блок (см. далее).
7.2. Построение блок-схем 354При копировании блок получает те же значения настраиваемых парамет-ров, что и блок-оригинал.
Перестановка блоков в моделиЧтобы
переставить блок внутри модели с одного места в другое, доста- точно перетянуть его в это положение с помощью мыши.
SimuLINK автоматиче- ски перерисовывает линии связей других блоков с тем, который переставлен.
Переставить несколько блоков одновременно, включая соединительные линии можно так:
выделить блоки и линии (см. предыдущий раздел);
перетянуть мышью один из выделенных блоков на новое место; ос- тальные блоки, сохраняя все относительные расстояния, займут новые места.
На рис. 7.61 показан результат таких действий с блоками, выделенными на рис. 7. 60.
Рис. 7.61Дублирование блоков внутри модели Чтобы
скопировать блоки внутри модели нужно сделать следующее:
1) нажать клавишу
;
2) не отпуская клавишу , установить курсор на блок, что необхо- димо скопировать и перетянуть его в новое положение.
Того же результата можно достичь, если просто перетянуть мышкой блок в новое положение, но с помощью правой клавиши мыши.
На рис. 7.62 представлен результат копирования блоков Scope и XYGraph.
Задание параметров блока
7.2. Построение блок-схем 355Функции, которые выполняет блок, зависят от значений параметров блока.
Установления этих значений осуществляется в окне настраивания блока, которое вызовется, если дважды щелкнуть на изображении блока в блок-схеме.
Удаление блоков Для
удаления ненужных блоков из блок-схемы достаточно выделить эти блоки так, как было указано ранее, и нажать клавишу
или .
Можно также использовать команду Clear или Cut из меню Edit окна блок-схемы.
Если использована команда Cut, то в дальнейшем удаленные блоки можно скопи- ровать обратно в модель, если воспользоваться командой Paste того же меню окна схемы.
Рис. 7.62
Отсоединение блока
Для отсоединения блока от соединяющих линий достаточно нажать кла- вишу на изображении блока, и, не отпуская ее, перетянуть блок в некото- рое другое место.
Изменение угловой ориентации блока
В обычном изображении блоков сигнал проходит сквозь блок слева направо
(по левую сторону размещены входы блока, а по правую сторону - выходы). Что- бы изменить угловую ориентацию блока нужно:
выделить блок, который нужно повернуть;
избрать меню Format в окне блок-схемы;
в дополнительном меню, которое появится на экране, выбрать команду
Flip Block - поворот блока на 180 градусов, или Rotate Block - поворот блока по часовой стрелке на 90 градусов.
На рис. 7.63 показан результат применения команды Rotate Block к блоку
Constant и команд Rotate Block и Flip Block - к блоку SignalGenerator.
Изменение размеров блока
Чтобы изменить размеры блока, нужно сделать следующее:
7.2. Построение блок-схем
356
выделить блок, размеры которого надо изменить;
привести курсор мыши на одну из угловых меток блока; при этом на экране у этой метки должен возникнуть новый курсор в виде обоюдной стрелки под наклоном 45 градусов;
захватить эту метку мышью и перетянуть в новое положение; при этом противоположная метка этого блока останется неподвижной.
На рис. 7.64 показан результат применения этих операций для растяжения блока XYGraph, а также середина процесса увеличения размеров блока Scope.
Рис.
7.63 Рис. 7.64
Изменение имен блоков и манипулирования с ними
Все имена блоков в модели должны быть уникальными и иметь, как мини- мум один символ. Если блок ориентирован слева направо, то имя, по умолчанию, находится под блоком, если справа налево - выше блока, если же сверху вниз или снизу вверх - по правую сторону блока (см. рис. 7.63).
Изменение имени блока осуществляется так: надо щелкнуть на сущест- вующем имени блока, потом, используя клавиши обычного редактирования тек- ста, изменить это имя на нужное.
Для изменения шрифта следует выделить блок, потом выбрать команду
Font из меню Format окна модели и, наконец, выбрать нужный шрифт из пред- ставленного перечня.
Чтобы изменить местоположение имени выделенного блока, существуют два пути:
перетянуть имя на противоположную сторону мышью;
воспользоваться командой Flip Name из раздела Format меню окна мо- дели - она тоже переносит имя на противоположную сторону.
Удалить имя блока можно, используя команду Hide Name из меню Format окна модели. Чтобы восстановить потом отображение имени рядом с изобра- жением блока, следует воспользоваться командой Show Name того же меню.
7.2.3. Проведение соединительных линий
7.2. Построение блок-схем 357Сигналы в модели передаются по линиям.
Каждая линия может передавать или скалярный, или векторный сигнал. Линия соединяет выходной порт одного блока с входным портом другого блока. Линия может также соединять выходной порт одного блока с входными портами нескольких блоков через разветвление линии.
Создание линии между блокамиДля соединения выходного порта одного блока с входным портом другого блока следует выполнить такую последовательность действий:
установить курсор внутрь выходного порта первого блока; при этом
курсор должен превратиться на перекрестие;
нажав левую клавишу мыши и, удерживая ее в этом положении, пере- двинуть перекрестие к входному порту второго блока;
отпустить ЛКМ;
SimuLINK заменит символы портов соединительной линией с представлением направления передачи сигнала.
Именно таким образом соединен на рис. 7.65 выход блока
Clock с входом блока
XYGraph.
Линии можно рисовать как от выходного порта к входному, так и наоборот.
SimuLINK рисует соединительные линии, используя лишь горизонтальные и вертикальные сегменты.
Для образования диагональной линии нажмите и удерживайте клавишу на протяжении рисования.Рис. 7.65 Рис. 7.66 Создание разветвления линииЛиния, которая разветвляется, начинается с существующей и передает ее сигнал к входному порту другого блока. Как существующая, так и ответвленная линия передают тот самый сигнал. Разветвленная линия дает возможность пере- дать тот самый сигнал до нескольких блоков.
Чтобы
образовать ответвление от существующей линии, нужно:
установить курсор на точку линии, от которой должна ответвляться другая линия;
нажав и удерживая клавишу
, нажать и удерживать ЛКМ;
7.2. Построение блок-схем
358
провести линию к входному порту нужного блока; отпустить клавишу
и ЛКМ (см. рис. 7.66).
Создание сегмента линии
Линии могут быть нарисованы по сегментам. В этом случае для создания следующего сегмента следует установить курсор в конец предыдущего сегмента и нарисовать (с помощью мыши) следующий сегмент. Таким образом, например, соединены на рис. 7.67 блоки Clock с XYGraph и SignalGenerator с XYGraph.
Рис. 7.67
Передвижение сегмента линии
Чтобы передвинуть отдельный сегмент линии, необходимо выполнить следующее:
Рис. 7.68
установить курсор на сегмент, который нужно передвинуть;
нажать и удерживать левую клавишу мыши (ЛКМ); при этом курсор должен превратиться на "крест";
передвинуть "крест" к новому положению сегмента;
отпустить ЛКМ.
На рис. 7.68 показан результат передвижения вертикального сегмента ли- нии, которая соединяет блоки Random Number с XYGraph1.
7.2. Построение блок-схем 359Нельзя передвинуть сегмент, который непосредственно прилегает к порту блока.
Разделение линии на сегментыЧтобы
разделить линию на два сегмента, нужно:
выделить линию;
установить курсор в ту точку выделенной линии, в которой линия должна быть разделена на два сегмента;
удерживая нажатой клавишу
, нажать и удерживать ЛКМ; кур- сор превратится на маленький круг; на линии образуется слом;
передвинуть курсор в новое положение слома;
отпустить ЛКМ и клавишу .
Рис. 7.69
Пример проведения этих действий представлен на рис. 7.69, где линия, ко- торая соединяет блоки Sine Wave и XYGraph1 разделена на два сегмента.
Передвижение слома линии
Для передвижения слома линии достаточно перетянуть точку этого слома в новое положение на блок-схеме.
7.2.4. Проставление меток сигналов и комментариев
Для наглядности оформления блок-схемы и удобства пользованием ею можно сопровождать линии метками сигналов, протекающим по ним. Метка раз- мещается под или над горизонтальной линией, по левую сторону или по правую сторону вертикальной линии. Метка может быть расположена в начале, в конце или посреди линии.
Создание и манипулирование метками сигналов
Чтобы создать метку сигнала, надо дважды щелкнуть на сегменте линии и ввести метку (рис. 7.70). При создании метки сигнала необходимо дважды щелк-
нуть именно точно на линии, так как иначе будет создан комментарий к модели.
7.2. Построение блок-схем 360Рис. 7.70Для
передвижения метки надо ее просто перетянуть на новое место мы- шью. Чтобы
скопировать метку, следует нажать и удерживать клавишу
и перетянуть метку к новому положению на линии, или избрать другой сегмент ли- нии, на котором нужно установить копию метки и дважды щелкнуть по этому сегменту линии. Отредактировать метку, можно щелкнув на ней и осуществ- ляя потом соответствующие изменения как в обычном текстовом редакторе. Что- бы удалить метку, нажмите и удерживайте клавишу , выделите метку и уничтожьте ее, используя клавиши или . При этом будут удалены все метки этой линии.
Рис. 7.71
Распространение меток линии
Распространение меток линии - это процесс автоматического переноса име- ни метки к сегментам одной линии, которые разорваны блоками From/Goto, Mux
(рис. 7.71).
Чтобы распространить метки, создайте во втором и следующих сегмен- тах линии метки с именем '<'. После выполнения команды Update Diagram из раздела Edit меню окна модели, или одновременного нажатия клавиш + в этих сегментах автоматически будут проставлены метки (см. рис. 7.71)
7.2. Построение блок-схем
361
Создание комментария и манипулирование ним
Комментарии дают возможность снабжать блок-схемы текстовой информа- цией о модели и отдельных ее составляющих. Комментарии можно проставлять в любом свободном месте блок-схемы (см. рис. 7.72).
Для создания комментария дважды щелкните в любом свободном месте блок-схемы, а потом введите комментарий в возникшем прямоугольнике. Для пе-
ремещения комментария в другое место его нужно перетянуть на это место с помощью мыши. Чтобы скопировать комментарий, достаточно нажать клавишу
и, удерживая ее в этом положении, перетянуть комментарий в новое место.
Для редактирования комментария надо щелкнуть на нем, а потом внести нуж- ные изменения как в обычном текстовом редакторе. Чтобы изменить при этом
шрифт, его размер или стиль, следует выделить текст комментария, который нужно изменить, а потом избрать команду Font из меню Format окна блок-схемы, выбрать в окне, которое возникнет, название шрифта, его размер, атрибуты и стиль и нажать кнопку в этом окне.
Рис. 7.72
Чтобы удалить комментарий, нажмите и удерживайте клавишу , выделите комментарий и нажмите клавишу или .
7.2.5. Создание подсистем
Если сложность и размеры блок-схемы модели становятся весьма больши- ми, ее можно существенно упростить, группируя блоки в подсистемы. Использо- вание подсистем дает следующие преимущества:
сокращения количества блоков, которые выводятся в окне модели;
объединение в единую группу (подсистему) функционально связанных блоков;
возможность создания иерархических блок-схем.
Существуют две возможности создания подсистем:
7.2. Построение блок-схем 362 добавить блок
Subsystem в модель, потом войти в этот блок и
создать подсистему в возникшем окне подсистемы;
выделить часть блок-схемы модели и объединить ее в подсистему.
Создание подсистемы через добавление блока SubsystemВ этом случае следует поступить так:
скопировать блок
Subsystem в окно модели, перетянув его из библиотеки
Sygnals&Systems;
раскрыть окно блока
Subsystem, дважды щелкнув на изображении блока в блок-схеме;
в пустом окне модели создать подсистему, используя блоки
In и
Out для создания входов и выходов подсистемы.
Создание подсистемы путем группирования существующих блоков Если блок-схема уже содержит блоки, которые нужно объединить в подсис- тему, то последнюю можно образовать таким образом:
выделить объединяющим боксом блоки и соединительные блоки, которые нужно включить в состав подсистемы (рис. 7.73);
избрать команду
Create Subsystem из меню
Edit окна модели; при этом
SimuLINK заменит выделенные блоки одним блоком
Subsystem (см. рис.
7.73)
Рис. 7.73
7.3. Примеры моделирования
363
Если раскрыть окно блока Subsystem, дважды щелкнув на нем, то
SimuLINK отобразит блок-схему созданной подсистемы (рис. 7.74). Как видно,
SimuLINK прибавил блоки In и Out для отображения входов и выходов в систему высшего уровня.
Рис. 7.74
7.2.6. Запись и распечатка блок-схемы S-модели
Для записи модели (блок схемы) на диск нужно выполнить команду Save или Save As в меню File окна модели. При этом SimuLINK записывает в указан- ную директорию файл с указанным (введенным из клавиатуры) именем, присваи- вая нему расширение MDL.
Чтобы распечатать модель (блок-схему) на принтере, достаточно восполь- зоваться командой Print из меню File окна модели.
Довольно интересной является возможность "распечатать" блок-схему в
документе любого текстового редактора, например, Word. Для этого следует ис- пользовать команду Copy Model из меню Edit окна модели, которая запоминает в буфере содержимое окна модели. Если после этого войти в окно текстового ре- дактора и нажать клавиши +, в открытом документе редактора воз- никнет изображение блок-схемы модели. Именно таким образом получены рисун- ки 7.68...7.71.
7.3. Примеры моделирования
7.3.1. Моделирование поведения физического маятника
Рассмотрим ту же задачу моделирования поведения физического маятника при гармонической вибрации точки его опоры.
Пользуясь результатами ранее проведенных (п. 2.6.2) преобразований, исходное уравнение движения маятника примем в такой безразмерной форме
)
,
,
(
sin
ϕ
ϕ
τ
ϕ
ϕ
′
=
+
′′
S
, (7.1) где обозначено
7.3. Примеры моделирования 364],
sin
)
sin(
cos
)
sin(
[
2
)
,
,
(
ϕ
ε
τ
ν
ϕ
ε
τ
ν
ϕ
ζ
ϕ
ϕ
τ
⋅
+
⋅
⋅
+
⋅
+
⋅
⋅
−
−
′
⋅
⋅
−
=
′
ymyxmxnnS (7.2
) причем безразмерные величины
ζ
и
ν
определяются выражениями:
JmglR⋅
⋅
=
2
ζ
;
0
ω
ω
ν
=
;
Jmgl=
0
ω
Исходными (задаваемыми) параметрами для моделирования будем считать:
1)
параметры самого маятника; к ним в анализируемом случае относятся только относительный коэффициент затухания
ζ
;
2) параметры, характеризующие внешнее ввоздействие; сюда входят:
амплитуды виброперегрузок в вертикальном и горизонтальном направлениях;
mynmxn
относительная (относительно частоты собственных колебаний маятника) частота вибрации точки опоры
ν
;
начальные фазы
yε
и
xε
вибрации точки опоры;
3) начальные условия движения маятника:
начальное отклонение
ϕ
от вертикали;
начальная безразмерная угловая скорость маятника
oω
ϕ
ϕ
/
&
=
′
К выходным (моделируемым) величинам будем относить текущий угол отклонения маятника от вертикали
)
(
τ
ϕ
и его безразмерную угловую скорость
)
(
τ
ϕ
′
Запишем уравнение (7.1) несколько в другой форме:
ϕ
ϕ
ϕ
τ
ϕ
sin
)
,
,
(
−
′
=
′′
S. (7.3)
В основу воплощения этого уравнения в блок-схему положим такую идею:
если сформировать правую часть уравнения по "известным" процессам )
(
τ
ϕ
и )
,
,
(
ϕ
ϕ
τ
′
S, то тем самым станет известным угловое ускорение )
(
τ
ϕ
′′
. Если теперь проинтегрировать ускорение, можно получить угловую скорость )
(
τ
ϕ
′
. Наконец, проинтегрировав и ее, можно получить закон изменения угла )
(
τ
ϕ
от времени. Последние полученные две величины (процессы) можно отныне использовать для формирования правой части уравнения (7.3).
Итак, для формирования блок-схемы, осуществляющей численное интегрирование уравнения (7.1), можно поступить так:
в основу блок-схемы положить два последовательно соединенных интегратора (блоки