×
 

1 Использование модели MATLAB/Simulink в EULER

 Метод используется для подключения к исследуемым ММС моделей подсистем, созданных в среде MATLAB/Simulink, и оформленных в виде DLL-модулей средствами MATLAB/Real-Time Workshop.
Подключаемая модель рассматривается как «черный ящик», описываемый следующими характеристиками:
−    U – вектор входных переменных, значения которых поступают в модель из ПК;
−    Y – вектор выходных переменных, значения которых модель передает в ПК;
−    X – вектор переменных состояния модели;
−   P – настраиваемые параметры, значения коэффициентов, которые определяют рабочие характеристики модели и могут быть изменены без перестройки DLL-модуля.
Схематичное изображение подключаемой модели представлено на рис. 1.
 
Рис. 1. Модель MATLAB/Simulink
 
Вектор переменных состояния модели в общем случае может содержать непрерывные переменные состояния  и дискретные переменные состояния .
Изменение непрерывных переменных состояния описывается системой дифференциальных уравнений: . Значения этих переменных определяются путем численного интегрирования системы из начальных условий, заданных пользователем при создании модели в MATLAB/Simulink.
Изменение дискретных переменных состояния описывается системой разностных уравнений: . Значения дискретных переменных вычисляются в моменты дискретного времени , кратные интервалу дискретизации модели, и не изменяются до начала следующего интервала.
Значения выходных переменных вычисляются по значениям входных переменных и значениям переменных состояния: . Для контроля значения переменных состояния модели пользователь может добавить их к выходным переменным при создании модели в MATLAB/Simulink.
Данный метод создает не один датчик, а массив датчиков. Тип объекта, создаваемого этим методом, записывается в файле проекта как: sensor_array.
Массив датчиков содержит значения выходных переменных подключенной модели MATLAB/Simulink. Датчики массива можно использовать при описании механизма в соответствии с общими правилами. Все датчики массива являются не дифференцируемыми по параметрам положения механизма.
В рамках одного проекта ПК ЭЙЛЕР нельзя использовать один и тот же DLL-модуль несколько раз. В случае такой необходимости нужно создать и использовать копию DLL-модуля с другим полным именем.
При создании объекта данным методом пользователь указывает единицы измерения:
−    входных переменных, в которых они передаются в модель MATLAB/Simulink;
−    выходных переменных, в которых они передаются из модели MATLAB/Simulink в программный комплекс;
−    настраиваемых параметров модели, значения которых переопределены скалярами из проекта.
 
Синтаксис метода создания
simulink(SimDLLName, U, Y, P, step, integrMethod = …)
 
Обязательные позиционные параметры метода
string SimDLLName
Имя DLL-модуля, содержащего модель MATLAB/Simulink.
string U
Строка описания имен входных датчиков и единиц измерения их значений, в которых они передаются в модель MATLAB/Simulink.
Входные объекты в строке отделяются друг от друга запятыми, единицы измерения каждого объекта указываются после его имени в квадратных скобках. Объекты типа скаляр или датчик, соответствующие заданным именам, ищутся в текущем проекте Euler. В случае если заданное имя объекта не найдено или тип найденного объекта не соответствует скаляру или датчику, то диагностируется ошибка. Имена входных объектов никак не связаны с их названиями в DLL, сопоставление идёт по порядку их упоминания в строке.
Пример строки, описывающей входные датчики:
“sensor_U1 [kg], sensor_U2 [], sensor_U3 [m/s]”
 
string Y
Строка описания имен выходных датчиков и единиц измерения их значений, в которых они передаются из модели MATLAB/Simulink в программный комплекс.
Датчики в строке отделяются друг от друга запятыми, единицы измерения каждого объекта указываются после его имени в квадратных скобках. Имена выходных объектов никак не связаны с их названиями в DLL, сопоставление идёт по порядку их упоминания в строке. Имена датчиков в рамках формируемого выходного массива должны быть уникальными. Выходные параметры с заданными именами создаются автоматически в виде дочерних объектов, значение которых меняется в соответствие с моделью MATLAB/Simulink.
Пример строки, описывающей выходные датчики:
“sensor_Y1 [], sensor_Y2 [N], sensor_Y3 [m]”
 
string P
Строка описания настраиваемых параметров модели MATLAB/Simulink и единиц измерения, в которых они записываются в модель.
Настраиваемые параметры модели имеют значения по умолчанию, заданные пользователем при создании модели в MATLAB/Simulink, они могут переопределяться объектами типа скаляр. Для безразмерных величин возможно использование скаляров, созданных по месту. Описания параметров отделяются в строке друг от друга запятыми. Каждое описание содержит имя параметра, знак равенства, значение параметра и единицы измерения в квадратных скобках.
Пример строки, описывающей настраиваемые параметры:
“par1_name = scalar_P1 [deg], par2_name = 12.5 [], par3_name = scalar_P2 [m/s2]”
 
scalar step [time]
Шаг интегрирования модели MATLAB/Simulink.
 
Необязательные именованные параметры метода
integrMethod = [constRK4:/ EULER:]
Параметр определяет метод интегрирования модели MATLAB/Simulink. По умолчанию integrMethod = constRK4:
−    integrMethod = constRK4:
Для численного интегрирования модели MATLAB/Simulink используется метод Рунге-Кутта четвертого порядка с постоянным шагом.
−    integrMethod = euler:
Для численного интегрирования модели MATLAB/Simulink используется явный метод Эйлера с постоянным шагом.
 
Создание объекта
Для создания объекта данного метода используется диалоговое окно Модель MATLAB/Simulink, внешний вид которого представлен на рис. 2 и рис. 3.
 
Рис. 2. Диалоговое окно Интерфейс MATLAB/Simulink, закладка Входные переменные
 
Рис. 3. Диалоговое окно Интерфейс MATLAB/Simulink, закладка Параметры
 
Структура окна и назначение его элементов управления (рис. 2):
−    Имя объекта – поле для задания имени объекта.
−    Модель MATLAB/Simulink – поле для задания имени DLL-модуля, содержащего подключаемую модель.
−    Кнопка  – открывает диалоговое окно выбора DLL-модуля.
−    Сведения о модели – не редактируемое поле, отображающее информацию о выбранной модели:
−    Имя модели;
−    Количество входных переменных;
−    Количество выходных переменных;
−    Количество настраиваемых параметров;
−    Количество непрерывных переменных состояния;
−    Количество дискретных переменных состояния;
−    Интервал дискретизации.
−    Входные переменные – закладка с таблицей для задания входных датчиков
(рис. 2). Число строк в таблице соответствует количеству входных переменных модели. В поле Имя заносится имя датчика, соответствующего данному входу. В поле Единицы измерения - единицы измерения, в которых значение передается в модель MATLAB/Simulink. Для редактирования имени или единиц измерения щелкните левой кнопкой мыши по редактируемому полю.
−    Выходные переменные – закладка с таблицей для описания выходных датчиков. Число строк в таблице соответствует количеству выходных переменных модели. В поле Имя заносится имя создаваемого выходного датчика, в поле Единицы измерения – единицы измерения данного датчика. Для редактирования имени или единиц измерения щелкните левой кнопкой мыши по редактируемому полю.
−    Настраиваемые параметры – закладка с таблицей для задания настраиваемых параметров модели MATLAB/Simulink (рис. 3). Число строк в таблице соответствует количеству настраиваемых параметров модели. В поле Имя отображается название параметра, определённое в модели MATLAB/Simulink, поле не редактируемое. В поле Значение по умолчанию – значение по умолчанию данного параметра, определённое в модели MATLAB/Simulink, поле не редактируемое. В поле Новое значение – пользовательское значение данного параметра. В поле Единицы измерения – единицы измерения данного параметра. Для каждого настраиваемого параметра, переопределяемого скаляром из проекта, в поле Новое значение заносится имя соответствующего скаляра, в поле Единицы измерения - единицы измерения, в которых значение скаляра записывается в модель MATLAB/Simulink. Для редактирования значения или единиц измерения щелкните левой кнопкой мыши по редактируемому полю.
−    Кнопка  – завершает работу и подтверждает все внесенные изменения.
−    Кнопка  – завершает работу и отказывается от всех изменений.