Можно визуализировать и отредактировать N-мерные данные об интерполяционной таблице в диалоговом окне маски использование управления интерполяционной таблицей. Ищите таблицы аппроксимируют функции и значительно уменьшают время вычисления с помощью простых операций поиска.
Рассмотрите сценарий, где топливный поток определяется крутящим моментом и скоростью вращения двигателя. Задавать данные явным образом для табличных данных и параметров точки останова:
1. Щелкните правой кнопкой по блоку, нажмите Edit Mask, чтобы открыть Редактор Маски. В Маске Редактор переходит к панели Parameters & Dialog, создает Крутящий момент параметров редактирования и Скорость вращения двигателя для точек останова. В панели Редактора свойств введите значения для точек останова в поле Values.
2. Создайте Топливный Поток параметра Редактирования для табличных данных в панели Редактора свойств, введите значения в поле Value.
3. Добавьте управление интерполяционной таблицей. Введите Табличный Параметр свойств таблицы, Табличный Модуль, Табличное Имя Отображения, Параметры Точки останова, Модули Точки останова и Имя Отображения Точек останова. Нажать ОК.
4. Дважды кликните маскированный блок, чтобы просмотреть интерполяционную таблицу. Нажмите на ячейку, чтобы отредактировать значение.
Чтобы просмотреть карту тепла таблицы, щелкните правой кнопкой по ячейке, затем нажмите Heatmap On.
Можно выполнить те же шаги к продвинутым параметрам ссылки, чтобы создать интерполяционную таблицу.
Сослаться на объект в Управлении Интерполяционной таблицей:
1. Создайте объект под названием lutobject
в рабочем пространстве модели или базовом рабочем пространстве с таблицей и данными о точке останова.
2. Создайте параметр Редактирования и введите Значение как lutobject
созданный в рабочем пространстве модели.
3. Создайте управление интерполяционной таблицей, lutcontrol
и ссылка параметр Редактирования.
4. Интерполяционная таблица теперь заполняется с таблицей и устанавливает точки останова данные.
Можно переключиться между Явным режимом спецификации данных и режимом ссылки Данных с помощью Раскрывающегося параметра. Создайте Раскрывающийся параметр и используйте его в управлении интерполяционной таблицей, чтобы выбрать между явным режимом спецификации данных и режимом ссылки объекта.
Используйте код коллбэка для Раскрывающегося параметра.
dataspec_paramName = 'dataspec'; bp1_paramName = 'torque'; bp2_paramName = 'enginespeed'; tbl_paramName = 'fuelflow'; lutobj_paramName = 'lutobject'; underlyingLUTblock = 'slexMaskLookupTableControlExample/LUT Control with Data Specification Mode/2-D Lookup Table';
dataSpec = get_param(gcb, dataspec_paramName); maskObj = Simulink.Mask.get(gcb); lutoParam = maskObj.getParameter(lutobj_paramName); bp1Param = maskObj.getParameter(bp1_paramName); bp2Param = maskObj.getParameter(bp2_paramName); tableParam = maskObj.getParameter(tbl_paramName); set_param(underlyingLUTblock, 'DataSpecification', dataSpec);
if strcmp(dataSpec, 'Lookup table object') bp1Param.Visible = 'off'; bp2Param.Visible = 'off'; tableParam.Visible = 'off'; lutoParam.Visible = 'on'; else bp1Param.Visible = 'on'; bp2Param.Visible = 'on'; tableParam.Visible = 'on'; lutoParam.Visible = 'off'; end
Много приложений используют те же точки останова для различных видов данных. Можно создать несколько интерполяционных таблиц путем совместного использования данных о точке останова. Например, Выхлопная Температура, Давление воздуха и Топливный Поток используют тот же Крутящий момент точек останова и Скорость вращения двигателя. Создайте несколько контейнеров в Редакторе Маски для каждой интерполяционной таблицы и используйте те же точки останова в каждой таблице.
Чтобы визуализировать многомерные данные, создайте параметры Редактирования для таблицы и точек останова и введите значения. Чтобы визуализировать данные для размерности, выберите параметр для той размерности из списка.
Чтобы добавить интерполяционную таблицу маски управляют программно:
1. Получите маскирующий объект.
maskObj = Simulink.Mask.get(blkhndl);
2. Добавьте табличные данные и установите точки останова параметры к маске.
maskObj.addParameter('Name', 'torque', 'Prompt , 'Torque:', 'Type', 'edit'); maskObj.addParameter('Name', 'speed', 'Prompt', 'Engine speed:', 'Type', 'edit'); maskObj.addParameter('Name', 'fuelflowtable', 'Prompt', 'Fuel Flow Map:', 'Type', 'edit');
3. Установите свойства таблиц.
lutControl.Table.Name = 'fuelflowtable'; lutControl.Table.Unit = 'kg/s ; lutControl.Table.FieldName = 'Fuel Flow';
Установите свойства точек прерывания Размерности 1.
lutControl.Breakpoints(1).Name = 'torque'; lutControl.Breakpoints(1).Unit = 'Nm'; lutControl.Breakpoints(1).FieldName = 'Torque';
Установите Свойства точек прерывания Размерности 2
lutControl.Breakpoints(2).Name = 'speed'; lutControl.Breakpoints(2).Unit = 'rpm'; lutControl.Breakpoints(2).FieldName = 'Speed';
4. Добавьте управление интерполяционной таблицей.
lutControl = maskObj.addDialogControl('Name', 'fuelflowlut', 'Type', 'lookuptablecontrol');
Simulink.dialog.LookupTableControl
| |
Simulink.dialog.LookupTableControl.Breakpoints