![]() |
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||
![]() |
![]() |
Вход | ![]() |
Раздел "Simulink" И.В.Черных. "Simulink: Инструмент моделирования динамических систем" В оглавление книги \ К следующему разделу \ К предыдущему разделу 12. Основные команды MATLAB для управления Simulink-моделью При разработке графического интерфейса пользователя, создании S-функций и т.п. задач требующих управления конфигурацией, параметрами и работой Simulink-модели допускается использовать специальные команды (функции) языка MATLAB. С помощью таких команд можно открывать и закрывать модель, запускать модель на расчет, добавлять и убирать блоки, изменять параметры блоков и осуществлять иные операции с моделью. 12.1. 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. 12.2. 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]) . 12.3. add_param Назначение: Добавление нового параметра в модель. Синтаксис: Команда add_param('sys', ,value1, ,value2,...) добавляет в модель sys новые параметры parameter1, parameter2…и присваивает им значения value1, ,value2,... Новые параметры доступны командам get_param, set_param и ничем не отличаются от стандартных параметров Simulink-модели. Имена параметров не чувствительны к регистру символов. Значения параметров чувствительны к регистру символов. Пример 1: Команда add_param('EX_add_param','data','01 december 2002','time','21.00') добавляет в модель EX_add_param.mdl новые параметры data и time и присваивает им значения '01 december 2002' и '21.00', соответственно. 12.4. bdclose Назначение: Команда закрывает Simulink-модель (все модели) без сохранения изменений. Синтаксис: bdclose Команда закрывает активную модель. bdclose('sys') Команда закрывает модель sys. bdclose('all') Команда закрывает все открытые модели. Пример: Команда bdclose('my_model') закрывает модель my_model.mdl . 12.5. bdroot Назначение: Возвращает имя модели (подсистемы верхнего уровня). Синтаксис: bdroot Команда возвращает имя активной модели. bdroot('obj') Команда возвращает имя модели содержащей объект obj. Пример: Команда bdroot(gcb) возвращает имя модели содержащей выделенный в данный момент блок. 12.6. 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 со всеми изменениями. 12.7. delete_block Назначение: Удаление блока из модели. Синтаксис: delete_block('blk') Команда удаляет блок в соответствии с параметром blk, задающим полный путь к блоку. Пример 1: Команда delete_block('EX_delete_block/My_Subsystem/In1') удаляет входной порт In1 из подсистемы My_Subsystem модели EX_delete_block.mdl . 12.8. 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]. 12.9. 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 . 12.10. gcb Назначение: Получение пути текущего блока. Синтаксис: gcb Команда возвращает полный путь текущего блока. gcb('sys') Команда возвращает полный путь текущего блока в модели sys. Под текущим блоком понимается выделенный в окне модели блок, блок который выполняется в данный момент времени под управлением S-функции, блок callback-функция которого выполняется в данный момент времени или маскированный блок для которого выполняется функция инициализации. Команду удобно использовать при получении пути блока для команд get_param и set_param. Пример: Команда get_param(gcb,'Gain') для текущего блока Gain возвращает значение параметра Gain. 12.11. gcs Назначение: Получение пути текущей модели. Синтаксис и правила использования команды аналогичны команде gcb. 12.12. find_system Назначение: Поиск моделей (подсистем), блоков, линий, портов и текстовых описаний. Синтаксис: find_system (sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...) Команда выполняет поиск моделей (подсистем), блоков, линий, портов и их описаний, полный путь которых задан параметром sys, с использованием ограничений, заданных параметрами c1, c2 и имеющих значения параметров v1, v2 . Виды ограничений приведены в Таблице 12.1. Таблица 12.1
В таблице значения используемых “по умолчанию” параметров приведены в фигурных скобках. Пример 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. Для поиска с использованием шаблонов можно применять специальные символы приведенные в таблице Таблица 12.2 Таблица 12.2
Пример5: Команда find_system('my_model', 'regexp', 'on', 'blocktype', 'port') задает поиск входных и выходных портов в модели my_model.mdl. 12.13. 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 . 12.14. new_system Назначение: Создание новой модели. Синтаксис: new_system('sys') Команда создает новую модель sys . При этом окно модели не открывается. Для открытия окна следует использовать команду open_system('sys') . Пример: Команда new_system('my_model') создает модель my_model.mdl . 12.15. 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 . 12.16. 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 без запроса на подтверждение операции. 12.17. 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 . 12.18. 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/Transfer Fcn', 'Numerator', '[5 7 9]','Denominator', '[2 3 0]') устанавливает параметры блока Transfer Fcn , таким образом, чтобы получить передаточную функцию следующего вида: Команда может использоваться для изменения параметров модели или блока в процессе расчета. Однако не все параметры блоков могут быть изменены в этом случае. Например, нельзя изменить в процессе расчета размерности входных и выходных портов подсистемы или блока. Параметры блоков библиотеки Power System Blockset также нельзя изменять в процессе расчета. Следует иметь в виду еще и то, что иногда название параметра, данное в окне диалога, отличается от фактического названия параметра (имени переменной, которой присваивается значение параметра). Так, например, для блока Step, фактическое имя параметра Initial Value есть Before, а фактическое имя параметра Final Value есть After. Для выяснения фактических имен параметров можно открыть файл модели в каком-либо текстовом редакторе и просмотреть секцию, в которой описан данный блок. Ниже приведен пример текстового описания блока Step в файле модели: Block { Из приведенного фрагмента хорошо видно, какие фактические имена имеют параметры данного блока. 12.19. simulink Назначение: Команда открывает окно библиотеки блоков simulink. Синтаксис: simulink В оглавление книги \ К следующему разделу \ К предыдущему разделу |
![]() |
||
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.) |
||
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
E-mail: info@matlab.ru | ||
Информация на сайте была обновлена 10.11.2003 |
Copyright 2001-2003 SoftLine Co
|
|