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

 Метод используется для подключения к исследуемым ММС моделей подсистем, созданных в среде MATLAB/Simulink, и оформленных в виде DLL-модулей средствами MATLAB/Real-Time Workshop.
Подключаемая модель рассматривается как «черный ящик», описываемый следующими характеристиками:
      U – вектор входных переменных, значения которых поступают в модель из программного комплекса;
      Y – вектор выходных переменных, значения которых модель передает в программный комплекс;
      X – вектор переменных состояния модели;
      P – настраиваемые параметры, значения коэффициентов, которые определяют рабочие характеристики модели и могут быть изменены без перестройки DLL-модуля.
Схематичное изображение подключаемой модели представлено на рис.1.
 
 
Рис. 1. Модель MATLAB/Simulink
 
Вектор переменных состояния модели в общем случае может содержать непрерывные переменные состояния  и дискретные переменные состояния .
Изменение непрерывных переменных состояния описывается системой дифференциальных уравнений: . Значения этих переменных определяются путем численного интегрирования системы из начальных условий, заданных пользователем при создании модели в MATLAB/Simulink.
Изменение дискретных переменных состояния описывается системой разностных уравнений: . Значения дискретных переменных вычисляются в моменты дискретного времени , кратные интервалу дискретизации модели, и не изменяются до начала следующего интервала.
Значения выходных переменных вычисляются по значениям входных переменных и значениям переменных состояния: . Для контроля значения переменных состояния модели пользователь может добавить их к выходным переменным при создании модели в MATLAB/Simulink.
Данный метод создает не один датчик, а массив датчиков. Поэтому тип объекта, создаваемого этим методом, записывается в файле проекта не sensor, а 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. Датчики в строке отделяются друг от друга запятыми, единицы измерения каждого объекта указываются после его имени в квадратных скобках.
Пример строки, описывающей входные датчики:
“sensor_U1 [kg], sensor_U2 [], sensor_U3 [m/s], …”
string Y
Строка описания имен выходных датчиков и единиц измерения их значений, в которых они передаются из модели 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. Для редактирования значения или единиц измерения щелкните левой кнопкой мыши по редактируемому полю.
      Кнопка  - завершает работу и подтверждает все внесенные изменения.
      Кнопка  - завершает работу и отказывается от всех изменений.