347
вокруг одной из его осей ( ). Матрица моментов инерции принята диагональной, т. е. тело
предполагается динамически сбалансированным относительно осей XYZ. Наконец, моменты инерции
относительно осей, ортогональных оси собственного вращения тела приняты равными. Это означает, что
гироскоп является динамически симметричным телом с осью фигуры Y.
1
01,0
−
=ω c
Y
8.1.7. Запуск M-программ из S-модели
Следует указать еще один, более удобный, способ объединения S-модели с программами на языке MatLab,
который состоит в возможности вызова М-файлов непосредственно из S-модели специально
предусмотренными для этого средствами.
Например, вызов перед началом загрузки S-модели по имени, к примеру,
MODEL.mdl некоторого М-файла,
например, по имени
PERVdan, который содержит операции присваивания исходных значений всех данных,
можно осуществить, если при создании S-модели с этим именем в командном окне MatLab ввести команду
set_param('MODEL','PreLoadFcn','PERVdan')
Эта команда свяжет файл PERVdan.m c S-моделью MODEL.mdl так, что он будет автоматически
вызываться и исполняться при вызове этой S-модели. Если после выполнения этой команды записать на диск
эту S-модель, то при дальнейших ее вызовах сначала автоматически будет вызван и выполнен файл
PERVdan.m
и лишь после этого на экране возникнет блок-схема S-модели, готовая к моделированию.
Проверить, какой именно m-файл используется в данной S-модели как предварительно выполняемый, можно
путем привлечения команды
get_param('имя S-модели','PreLoadFcn')
Вообще при помощи функции set_param можно установить в S-модели значения многих ее параметров, в том
числе и параметров отдельных ее блоков.
В общем виде обращение к ней может иметь вид
set_param('Имя_S-mодели/Имя_блока','Параметр1',Значение1,
'Параметр2',Значение2,...)
Если указано Имя_блока, то последующие значения присваиваются параметрам этого блока.
Приведем примеры.
Вызов вида
set_param('MODEL','Solver','ode15s','StopTime','3000')
приведет к установлению в S-модели MODEL решателя
ode15s
и времени окончания процесса
моделирования 5000.
Если обратиться к этой функции так:
set_param('MODEL/Уравнение','Gain','1000')
то в блоке Уравнение S-модели MODEL параметру Gain будет присвоено значение 1000.
Команда
set_param('MODEL/Fcn','Position',[50 100 110 120])
установит изображение блока Fcn в S-модели MODEL в прямоугольник в окне бло-схемы с координатами [50
100 110 120].
Если же осуществить такое обращение:
set_param('mymodel/Compute','OpenFcn','my_open_fcn')
то блок
Compute
S-модели
mymodel
будет связан с М-программой MatLab, записанной в файле
my_open_fcn.m
. После этого файл
my_open_fcn.m
будет вызываться на исполнение всякий раз, когда на
изображении блока
Compute дважды щелкнуть мышью.
В случае, когда нужно вызвать некоторый m-файл перед или после проведения собственно моделирования на S-
модели (например, нужно вызвать программу, которая позволяет изменить установленные значения параметров
модели в диалоговом режиме, или использовать программу вывода результатов моделирования в графической
форме), можно установить на свободном месте блок-схемы пустые блоки
Subsystem (из раздела
Ports &
Subsystems
), каждый из которых будет осуществлять вызов соответствующего М-файла.
Эти пустые блоки
Subsystem в поле блок-схемы модели можно соединить с определенной М-программой,
набрав в командном окне команду, аналогичную последней.