Настройка Simulink LTI-Viewer
С помощью команды Edit\Viewer Preferences…выполняются следующие виды настройки:
1. Установка единиц измерения (вкладка Units). Вид окна при настройке единиц измерения показан на рис. 11.6.
Рис. 11.6 Вкладка Units
Вкладка Unitsокна позволяет задать единицы измерения частоты (рад/cили Гц), уровня (dB или абсолютные единицы), фазы (градусы или радианы), а также установить вид шкалы частоты (логарифмический или линейный).
2. Установка стиля графиков (вкладка Style). На данной вкладке можно выполнить настройку шрифтов окна Simulink LTI-Viewer(панель Fonts),выбрать цвет осей графиков (панель Colors), а также задать нанесение линий сетки на графики (флажок Show grids). Внешний вид вкладки Styleпоказан на рис. 11.7.
Рис. 11.7 Вкладка Style
3. Установка параметров расчета переходного процесса (вкладка Characteristics). Данная вкладка позволяет задать параметры установленные "по умолчанию" для вычисления времени нарастания и времени переходного процесса. По умолчанию Simulink LTI-Viewerвычисляет время переходного процесса как время, когда переходная функция входит в 2% зону и больше не выходит из нее (параметр Show setting time within). Также можно изменить параметры для вычисления времени переходного процесса (Show rise time from). На данной вкладке имеется также флажок Unwrap phase, установка которого позволяет избежать отображения разрывов в фазо-частотной характеристике, связанных с областью определения функции arctg, вычисляющей фазовый сдвиг. Внешний вид вкладки Characteristicsпоказан на рис. 11.8.
Рис. 11.7 Вкладка Characteristics
4. Установка интервалов времени и частоты (вкладка Parameters). На данной вкладке задается временной интервал для расчета переходного процесса (панель Time Vector), а также интервал частот для расчета частотных характеристик (панель Frequency Vector). Внешний вид вкладки Parametersпоказан на рис. 11.8.
Рис. 11.8. Вкладка Parameters
Векторы времени и частоты можно вычислять в автоматическом режиме (Generate automatically), ввести конкретное значение для времени окончания расчета (Define stop time) или диапазон значений по частоте (Define range), либо задать непосредственно вектор значений времени или частоты (Define vector).
Экспорт модели
Команда File/Exportпозволяет выполнить экспорт модели в виде матриц уравнений пространства состояния в рабочую область MATLAB или в файл. При выполнении этой команды открывается окно диалога (см. рис. 11.9) в котором необходимо выбрать вариант экспорта.
Рис. 11.9. Окно диалога при экспорте модели.
В случае экспорта в рабочую область MATLAB в ней появляется структура с именем имя_модели_1 (при последующих операциях экспорта имя_модели_2, имя_модели_3 и т.д.). Для рассматриваемой модели с именем EX_S_LTI_V.mdl имя структуры будет EX_S_LTI_V_1 .Для просмотра значений матриц уравнений пространства состояния необходимо ввести в командной строке MATLAB имя структуры и нажать клавишу Enter на клавиатуре. В командном окне появится распечатка значений матриц:
>> EX_S_LTI_V_1 % Ввод с клавиатуры (символы >> не вводятся)
a =
EX_S_LTI_V/T EX_S_LTI_V/T EX_S_LTI_V/T
EX_S_LTI_V/T -0.5 -1 -10
EX_S_LTI_V/T 1 0 0
EX_S_LTI_V/T 0 1 -10
b =
Input Point
EX_S_LTI_V/T 1
EX_S_LTI_V/T 0
EX_S_LTI_V/T 0
c =
EX_S_LTI_V/T EX_S_LTI_V/T EX_S_LTI_V/T
Output Point 0 1 0
d =
Input Point
Output Point 0
Continuous-time model.
Для работы с матрицами удобно извлечь их из структуры командами вида:
A = имя_структуры.a
B = имя_структуры.b
C = имя_структуры.c
D = имя_структуры.d
Применительно к рассматриваемой модели эти команды будут выглядеть следующим образом:
>> A=EX_S_LTI_V_1.a % Ввод с клавиатуры (символы >> не вводятся)
A =
-0.5000 -1.0000 -10.0000
1.0000 0 0
0 1.0000 -10.0000
>> B=EX_S_LTI_V_1.b % Ввод с клавиатуры (символы >> не вводятся)
B =
1.0000
0
0
>> C=EX_S_LTI_V_1.c % Ввод с клавиатуры (символы >> не вводятся)
C =
0 1.0000 0
>> D=EX_S_LTI_V_1.d % Ввод с клавиатурым (символы >> не вводятся)
D =
0
Сформированные в рабочей области матрицы A, B, C и D могут использоваться для дальнейших преобразований (создание LTI-объектов, переход к передаточным функциям, переход к дискретным моделям и т.д.).
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', соответственно.
[Скачать пример]
Bdclose
Назначение: Команда закрывает Simulink-модель (все модели) без сохранения изменений.
Синтаксис:
Bdclose
Команда закрывает активную модель.
Bdclose('sys')
Команда закрывает модель sys.
Bdclose('all')
Команда закрывает все открытые модели.
Пример:
Команда bdclose('my_model')закрывает модель my_model.mdl.
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.
[Скачать пример]
Gcb
Назначение: Получение пути текущего блока.
Синтаксис:
Gcb
Команда возвращает полный путь текущего блока.
Gcb('sys')
Команда возвращает полный путь текущего блока в модели sys.
Под текущим блоком понимается выделенный в окне модели блок, блок который выполняется в данный момент времени под управлением S-функции, блок callback-функция которого выполняется в данный момент времени или маскированный блок для которого выполняется функция инициализации.
Команду удобно использовать при получении пути блока для команд get_param и set_param.
Пример:
Команда get_param(gcb,'Gain')для текущего блока Gainвозвращает значение параметра Gain.
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
}.
Из приведенного фрагмента хорошо видно, какие фактические имена имеют параметры данного блока.
Simulink
Назначение: Команда открывает окно библиотеки блоков simulink.
Синтаксис:
Simulink
13. Отладчик Simulink моделей
ОтладчикSimulink является инструментом для поиска и диагностирования ошибок в моделях Simulink. Он дает возможность точно определить проблемы, выполняя моделирование постепенно с отображением значений входных и выходных сигналов любого из интересующих блоков модели. Simulink-отладчик имеет и графический, и интерфейс пользователя командной строки. Графический интерфейс позволяет наиболее удобно использовать основные возможности отладчика. Интерфейс командной строки дает способ обращаться ко всем возможностям отладчика. Пользователь, как правило, работает с графическим интерфейсом отладчика и обращается к интерфейсу командной строки по мере необходимости.