Rambler's Top100 II Всероссийская конференция пользователей MATLAB >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Раздел "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

Ограничение

Значение

Описание

'SearchDepth'

scalar

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

'LookUnderMasks'

'none'

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

{'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 возвращает массив ячеек содержащих имена всех открытых подсистем и блоков.

Пример 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

Символ

Описание

.

Заменяет любой символ. Например, шаблону '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]).

\<WORD\>

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

Пример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 {
BlockType Step
Name "Step"
Position [125, 75, 155, 105]
Time "0.1"
Before "10"
After "20"
SampleTime "0"
VectorParams1D on
}
.

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

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 
  

 

Rambler's Top100    TopList   
Сайт управляется системой uCoz