Основы моделирования в Simulink

Глава 15 Основные команды MATLAB для управления Simulink-моделью


Команда add_block

Назначение: Добавление нового блока в модель

Синтаксис:
add_block('src', 'dest')
Команда добавляет блок, полный путь которого задан параметром 'src', в модель в соответствии с путем назначения 'dest'.

add_block('src', 'dest', 'parameter1', value1, ...)
Команда добавляет блок, полный путь которого задан параметром 'src', в модель в соответствии с путем назначения 'dest' и устанавливает значения параметров блока.

Пример 1:
Команда add_block('built-in/Gain', 'EX_add_block/Gain') добавляет в модель EX_add_block.mdl усилитель Gain из встроенной библиотеки.

Пример 2:
Команда add_block('EX_add_block / In1', 'EX_add_block/My_Subsystem / In1')
копирует блок входного порта In1 измодели EX_add_block.mdl вподсистему My_Subsystem той же самой модели.

Пример 3:
Команда add_block('built-in/Constant', 'EX_add_block/Constant','Value','150') добавляет в модель EX_add_block.mdl блок Constant и устанавливает параметр Value этого блока равным 150.




Команда add_line

Назначение: Добавление новой линии связи в модель

Синтаксис:
h = add_line('sys','oport','iport')
Команда добавляет новую линию связи в модели sys от выходного порта oport ко входному порту iport. Параметры oport и iport задают полные пути блоков.

h = add_line('sys','oport','iport', 'autorouting','on')
Команда аналогична предыдущей. Дополнительный параметр autorouting (автоматическая трассировка), значение которого равно on, обеспечивает создание линии без пересечения пиктограмм блоков. По “умолчанию” значение этого параметра равно off.

h = add_line('sys', points)
Команда добавляет новую линию связи в модели sys в соответствии с координатами, заданными матрицей points. Началом системы координат окна модели считается левый верхнийугол окна.

Пример 1. Команда add_line('EX_add_line','Step/1','Sum/2') добавляет новую линию связи в модели EX_add_line.mdl между выходом блока Step (блок имеет один выход) и вторым входом блока Sum.

Пример 2. Команда add_line ('EX_add_line', 'Step1/1', 'Sum/2', 'autorouting','on') добавляет новую линию связи в модели EX_add_line.mdl между выходом блока Step1 и вторым входом блока Sum, при включенном режиме авто трассировки.

Пример 3. Команда add_line('EX_add_line',[20 55; 40 10; 60 60]) добавляет новую линию связи в модели EX_add_line.mdl в соответствии с координатами, заданными матрицей [20 55;40 10;60 60]) .




Команда add_param

Назначение: Добавление нового параметра в модель.

Синтаксис:
Команда add_param('sys', ,value1, ,value2,...) добавляет в модель sys новые параметры parameter1, parameter2…и присваивает им значения value1, ,value2,... Новые параметры доступны командам get_param, set_param и ничем не отличаются от стандартных параметров Simulink-модели. Имена параметров не чувствительны к регистру символов. Значения параметров чувствительны к регистру символов.

Пример. Команда add_param ('EX_add_param', 'data', '01
december 2002', 'time','21.00') добавляет вмодель EX_add _param. mdl новые параметры data и time и присваивает им значения '01 december 2002' и '21.00', соответственно.



Команда bdclose

Назначение: Команда закрывает Simulink-модель (все модели) без сохранения изменений.

Синтаксис:
bdclose
Команда закрывает активную модель.

bdclose('sys') Команда закрывает модель sys. bdclose('all')
Команда закрывает все открытые модели.

Пример. Команда bdclose('my_model') закрывает модель my_model.mdl .



Команда bdroot

Назначение: Возвращает имя модели (подсистемы верхнего уровня).

Синтаксис:
bdroot
Команда возвращает имя активной модели.

bdroot('obj')
Команда возвращает имя модели содержащей объект obj.

Пример. Команда bdroot(gcb) возвращает имя модели содержащей выделенный в данный момент блок.



Команда close_system

Назначение: Команда закрывает модель с возможностью сохранения изменений.

Синтаксис:
close_system
Команда закрывает модель или подсистему. Если модель или подсистема были изменены, то на экран будет выведено окно с вопросомо сохранении изменений.

close_system('sys')
Команда закрывает модель или подсистему с указанным именем sys.

close_system('sys', saveflag)
Команда закрывает модель или подсистему и, в зависимости, от параметра saveflag выполняет или не выполняет сохранение изменений. В случае, если параметр saveflag равен 0 изменения не сохраняются. Если же значение данного параметра равно 1, то внесенные в модель или подсистему изменения сохраняются.

close_system('sys', 'newname')
Команда сохраняет модель sys под новым именем

newname. close_system('blk')
Команда закрывает окно диалога блока, полный путь которого задан параметром blk, или вызывает CloseFcn функцию, если данная функция для блокаопределена.

Пример 1. Команда close_system('my_model', 'new_model') сохраняет модель my_model.mdl под новым именем new_model.mdl .
Пример 2. Команда close_system('my_model', 1) сохраняет модель my_model.mdl со всеми изменениями.



Команда delete_block

Назначение: Удаление блока из модели.

Синтаксис:
delete_block('blk')
Команда удаляет блок в соответствии с параметром blk, задающим полный путь к блоку.

Пример 1:
Команда delete_block('EX_delete_block/My_Subsystem/In1') удаляет входной порт In1 из подсистемы My_Subsystem модели EX_delete_block.mdl .



Команда delete_line

Назначение: Удаление линии связи

Синтаксис:
delete_line('sys', 'oport', 'iport')
Команда удаляет линию связи в модели sys от выходного порта oport ко входному порту iport. Параметры oport и iport задают полные пути блоков.

delete_line('sys', [x y])
Команда удаляет линию связи, которой принадлежит точка с координатами [x y].

Пример 1. Команда delete_line('EX_delete_line', 'Step/1', 'Sum/2') удаляет линию связи в модели EX_delete_line.mdl между выходом блока Step (блок имеет один выход) и вторым входом блока Sum.

Пример 2. Команда delete_line('EX_delete_line',[20 55]) удаляет линию связи, которой принадлежит точка с координатами [20 55].



Команда delete_param

Назначение: Удаление параметра модели, добавленного командой add_param .

Синтаксис:
delete_param('sys','parameter1','parameter2',...)
Команда удаляет из модели sys параметры parameter1, parameter2…, добавленные ранее командой add_param .

Пример. Команда delete_param('EX_delete_param', 'data', 'time') удаляет из модели EX_delete_param.mdl параметры data и time , добавленные ранее командой add_param .



Команда find_system

Назначение: Поиск моделей (подсистем), блоков, линий, портов и текстовых описаний.

Синтаксис:
find_system (sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...)
Команда выполняет поиск моделей (подсистем), блоков, линий, портов и их описаний, полный путь которых задан параметром sys, с использованием ограничений, заданных параметрами c1, c2 и имеющих значения параметров v1, v2 .

Виды ограничений приведены в следующей таблице.

Ограничение

Значение

Описание

'SearchDepth'

scalar

Устанавливает глубину поиска (0 – только для открытых систем, 1 – для блоков и подсистем верхнего уровня, 2 – для системы верхнего уровня и ее дочерних подсистем, и т.д.) Значение по умолчанию all – все уровни.


'none'

Пропуск маскированных блоков.

'LookUnderMasks'

{'graphical'}

Поиск внутри маскированных блоков, не имеющих окон диалога и рабочей области маски. Этот параметр используется “по умолчанию”.


'functional'

Поиск внутри маскированных блоков, не имеющих окон диалога.


'all'

Поиск внутри всех маскированных блоков.

'FollowLinks'

'on'| {'off'}

Если параметр имеет значение 'on', то отслеживаются связи с библиотечными блоками. Значение по умолчанию 'off' .

'FindAll'

'on'| {'off'}

Если параметр имеет значение 'on', то поиск распространяется на линии, порты и текстовые описания в пределах текущей модели. Значение по умолчанию 'off' .

'CaseSensitive'

{'on'}| 'off'

Поиск с учетом регистра символов (при поиске строковых параметров). Значение по умолчанию 'on' .

'RegExp'

'on'| {'off'}

Если параметр имеет значение 'on', то допускается проводить поиск с использованием шаблонов. Значение по умолчанию 'off' .




Пример 1. Команда find_system возвращает


В таблице значения используемых “по умолчанию” параметров приведены в фигурных скобках.



Пример 1. Команда find_system возвращает массив ячеек содержащих имена всех открытых подсистем и блоков.



Пример 2. Команда find_system('type', 'block_diagram') возвращает массив ячеек содержащих имена всех открытых моделей.



Пример 3. Команда find_system('my_model','SearchDepth', 2,'BlockType','Product') выполняет поиск блоков умножения Product в модели my_model.mdl и вее вложенных подсистемах.



Пример 4. Команда find_system('my_model', 'BlockType', 'Constant','Value', '100') выполняет поиск блоков Constant у которых значение параметра Value равно 100.



Для поиска с использованием шаблонов можно применять специальные символы приведенные в следующей таблице.

Символ

Описание

.

Заменяет любой символ. Например, шаблону 'a.' соответствуют выражения 'aa', 'ab', 'ac' и т.п.

*

Заменяет любую последовательность символов (включая пустую). Например, шаблону 'a*' соответствуют выражения 'a', 'ab', 'abc' и т.п. Шаблону '.*' соответствует любая строка, в том числе и пустая.

+

Заменяет любое количество предшествующих символов. Например, шаблону 'ab+' соответствуют выражения 'ab', 'abb', 'abbb' и т.п

^

Отмечает начало последовательности символов. Например, шаблону '^a' соответствует любая строка начинающаяся на символ 'a'.

$

Отмечает последний символ строки символов. Например, шаблону '$a' соответствует любая строка, оканчивающаяся на символ 'a'.

\

Предписывает считать следующий символ




обычным текстовым символом. Например, шаблон





обычным текстовым символом. Например, шаблон '\\' соответствует строке содержащей символ '\'.

[ ]

Определяет набор символов в выражении поиска. Например, шаблон 'f[oa]r' соответствует выражениям 'for' и 'far'. Символ (-) задает диапазон символов. Например, шаблон '[a-zA-Z1-9]' соответствует любому алфавитно-цифровому символу. Символ (^) определяет исключаемые символы при поиске. Например, шаблон 'f[^i]r' соответствует строкам 'far' and 'for', но не соответствует строке 'fir'.

\w

Задает поиск строк, содержащих только алфавитно-цифровые символы. Например, шаблон '^\w' соответствует строке 'mu', но не соответствует строке '&mu'.

\d

Задает поиск строк, содержащих только цифровые символы. Например, шаблон '\d+’ задает поиск любого целого числа.

\D

Задает поиск строк, не содержащих цифровые символы (аналог шаблона [^0-9]).

\s

Задает пробел в выражении поиска (аналог шаблона [ \t\r\n\f]).

\S

Исключает пробелы из выражения поиска (аналог шаблона [^ \t\r\n\f]).

\

Задает поиск слова (последовательности символов отделенных с обеих сторон пробелами). Например, шаблону '\' соответствует слово 'to', но не соответствует слово 'today'.



Пример5. Команда find_system('my_model', 'regexp', 'on', 'blocktype', 'port') задает поиск входных и выходных портов в модели my_model.mdl.




Команда gcb

Назначение: Получение пути текущего блока.

Синтаксис:
gcb
Команда возвращает полный путь текущего блока.

gcb('sys')
Команда возвращает полный путь текущего блока в модели

sys.
Под текущим блоком понимается выделенный в окне модели блок, блок который выполняется в данный момент времени под управлением S-функции, блок callback-функция которого выполняется в данный момент времени или маскированный блок для которого выполняется функция инициализации.
Команду удобно использовать при получении пути блока для команд get_param и set_param.

Пример. Команда get_param(gcb,'Gain') для текущего блока Gain возвращает значение параметра Gain.
Команда  gcs
Назначение: Получение пути текущей модели.
Синтаксис и правила использования команды аналогичны команде gcb.



Команда get_param

Назначение: Получение значения параметров модели или блока.

Синтаксис:
get_param('obj', 'parameter')
Команда возвращает значение параметра parameter, для объекта, полный путь которого задан выражением obj.

Пример 1: Команда get_param('EX_get_param/Constant','Value') определяет значение параметра Value блока Constant модели EX_get_param.mdl .

Пример 2: Команда get_param('EX_get_param/Constant', 'ObjectParameters') определяет все атрибуты блока Constant модели EX_get_param.mdl .

Пример 3: Команда get_param('EX_get_param/Constant', 'DialogParameters') определяет параметры задаваемые в окне диалога блока Constant модели EX_get_param.mdl .

Пример 4: Команда get_param('EX_get_param', 'MaxStep') определяет значение параметра MaxStep (максимальный шаг расчета) модели EX_get_param.mdl .



Команда new_system

Назначение: Создание новой модели.

Синтаксис:
new_system('sys')
Команда создает новую модель sys . При этом окно модели не открывается. Для открытия окна следует использовать команду open_system('sys') .

Пример: Команда new_system('my_model') создает модель my_model.mdl .



Команда open_system

Назначение: Команда открывает окно модели, подсистемы, окно диалога блока.

Синтаксис:
open_system('sys')
Команда открывает модель sys.mdl .

open_system('blk')
Команда открывает окно диалога блока blk модели sys.mdl .

open_system('sys/Subsystem','force')
Команда открывает маскированную подсистему Subsystem модели sys.mdl . Команда аналогична пункту меню Look Under Mask.

Пример 1. Команда open_system('my_model') открывает модель my_model.mdl .
Пример 2. Команда open_system('my_model/Constant') открывает окно диалога блока Constant модели my_model.mdl .
Пример 3. Команда open_system('my_model/Subsystem') открывает окно маскированной подсистемы Subsystem модели my_model.mdl .



Команда replace_block

Назначение: Команда выполняет замену одного блока на другой.

Синтаксис:
replace_block('sys', 'blk1', 'blk2', 'noprompt')
Команда заменяет все блоки типа blk1 на блоки blk2 модели sys без запроса на подтверждение операции. Если blk2 не является библиотечным блоком, то требуется указать полный путь к блоку.

replace_block('sys', 'Parameter', 'value', 'blk', ...)
Команда заменяет все блоки, параметр которых Parameter равен value на блоки blk модели sys .

Пример 1. Команда replace_block('EX_replace_block', 'Step', 'Inport', 'noprompt') заменяет в модели EX_replace_block.mdl блок Step на блок Inport без запроса на подтверждение операции.

Пример 2. Команда replace_block('EX_replace_block', 'Value','100','Gain', 'noprompt') заменяет в модели EX_replace_block.mdl блоки, параметр которых равен 100 на блоки Gain без запроса на подтверждение операции.



Команда save_system

Назначение: Сохранение файла модели.

Синтаксис:
save_system
Сохранение открытой модели под текущим именем.

save_system('sys')
Сохранение модели sys под текущим именем.

save_system('sys', 'newname')
Сохранение модели sys под новым именем newname.

Пример 1. Команда save_system('my_model') сохраняет модель в файле my_model.mdl .
Пример 2. Команда save_system('my_model,'new_model') сохраняет модель в файле new_model.mdl .



Команда set_param

Назначение: Установка параметров модели или блока.

Синтаксис:
set_param('obj', 'parameter1', value1, 'parameter2', value2, ...)
Команда выполняет присваивание новых значений value1, value2… параметрам parameter1, parameter2… модели (блока) obj. Имена параметров не чувствительны к регистру символов. Значения параметров чувствительны к регистру символов.

Пример 1. Команда set_param ('EX_set_param', 'Solver', 'ode15s', 'StopTime', '100') устанавливает метод решения (параметр Solver) ode15s и время окончания расчета (параметр StopTime) 100 для модели EX_set_param.mdl.

Пример 2. Команда set_param('EX_set_param/Step', 'After', '1.5') устанавливает параметр Final Value блока Step модели EX_set _ param.mdl равным 1.5.

Пример 3. Команда set_param('EX_set_param/TransferFcn', 'Numerator', '[5 7 9]', 'Denominator', '[2 3 0]') устанавливает параметры блока Transfer Fcn

Команда может использоваться для изменения параметров модели или блока в процессе расчета. Однако не все параметры блоков могут быть изменены в этом случае. Например, нельзя изменить в процессе расчета размерности входных и выходных портов подсистемы или блока. Параметры блоков библиотеки Power System Blockset также нельзя изменять в процессе расчета. Следует иметь в виду еще и то, что иногда название параметра, данное в окне диалога, отличается от фактического названия параметра (имени переменной, которой присваивается значение параметра). Так, например, для блока Step, фактическое имя параметра Initial Value есть Before, а фактическое имя параметра Final Value есть After. Для выяснения фактических имен параметров можно открыть файл модели в каком-либо текстовом редакторе и просмотреть секцию, в которой описан данный блок.

Ниже приведен пример текстового описания блока Step в файле модели:

Block { BlockType Step Name "Step" Position [125, 75, 155, 105] Time "0.1" Before "10" After "20" SampleTime "0" VectorParams1D on } .

Из приведенного фрагмента хорошо видно, какие фактические имена имеют параметры данного блока.
Команда simulink
Назначение: Команда открывает окно библиотеки блоков simulink.

Синтаксис:
simulink.



Отладчик Simulink моделей

Отладчик Simulink является инструментом для поиска и диагностирования ошибок в моделях Simulink. Он дает возможность точно определить проблемы, выполняя моделирование постепенно с отображением значений входных и выходных сигналов любого из интересующих блоков модели. Simulink-отладчик имеет и графический, и интерфейс пользователя командной строки. Графический интерфейс позволяет наиболее удобно использовать основные возможности отладчика. Интерфейс командной строки дает способ обращаться ко всем возможностям отладчика. Пользователь, как правило, работает с графическим интерфейсом отладчика и обращается к интерфейсу командной строки по мере необходимости.






    Инновации: Менеджмент - Моделирование - Софт