Преобразовать массив ячеек, содержащий информацию о шине, в объекты Simulink.Bus
Simulink.Bus Объект из массива ячеек информации шиныВ этом примере показано, как создать и использовать массив ячеек для создания Simulink.Bus объектов в базовом рабочем пространстве.
Чтобы определить элементы, которые Bus содержит объект, создайте массив из Simulink.BusElement объекты или массив ячеек значений свойств для BusElement объекты.
При определении элементов в массиве BusElement необходимо указать значения, отличающиеся от значений по умолчанию.
elementsArray(1) = Simulink.BusElement; elementsArray(2) = Simulink.BusElement; elementsArray(2).Name = 'b'; elementsArray(2).Min = -3; elementsArray(2).Max = 3; elementsArray(2).Unit = 'm'; elementsArray(2).Description = 'b is distance from the origin.';
При определении элементов в массиве ячеек значений свойств необходимо указать имя элемента, размеры, тип данных, сложность и режим выборки. Можно также указать режим размеров, минимум, максимум, единицы измерения и описание.
elementsCellArray = {{'a',1,'double',-1,'real','Sample'}; ...
{'b',1,'double','real','Sample',...
'Fixed',-3,3,'m','b is distance from the origin'}};В этом примере: elementsArray и elementsCellArray создать то же самое BusElement объекты в Bus объекты.
Создание массива ячеек с двумя подчиненными массивами ячеек, которые определяют Bus объекты. Для каждого Bus укажите имя шины, файл заголовка, описание, область данных, выравнивание, размеры сохраняемых элементов и элементы. Для первого Bus объект, укажите элементы с помощью elementsArray. Для второго Bus объект, укажите элементы с помощью elementsCellArray.
busCells = { ...
{ ...
'myBusObjArray', ...
'MyHeader.h', ...
'My description', ...
'Exported', ...
'-1', ...
'0', ...
elementsArray,...
}, ...
{ ...
'myBusObjCellArray', ...
'MyHeader.h', ...
'My description', ...
'Exported', ...
'-1', ...
'0', ...
elementsCellArray,...
}, ...
};Создать Bus объектов в базовом рабочем пространстве из массива ячеек массивов ячеек.
Simulink.Bus.cellToObject(busCells)
Сравнение сгенерированных Bus в редакторе шины.
buseditor
Bus объекты идентичны, кроме имен.
busCell - Сведения об объекте Simulink.BusBus объектная информация, заданная как массив ячеек массивов ячеек. Каждый подчиненный массив ячеек должен содержать Bus информация об объекте:
Название автобуса
Файл заголовка
Описание
Объем данных
Выравнивание
Сохранить размеры элемента
Элементы
Поле elements представляет собой массив ячеек, который содержит эту информацию для каждого из Simulink.BusElement объекты, которые Bus ссылки на объекты:
Поле elements должно содержать массивы или массивы ячеек с этой информацией для каждого из Simulink.BusElement объекты, которые Bus ссылки на объекты:
Имя элемента
Размеры
Тип данных
Время выборки (необязательно) - если указано время выборки, укажите наследуемое время выборки (-1). Отсутствие наследования времени выборки приводит к ошибке во время компиляции модели. Для получения дополнительной информации см. раздел Объекты Simulink.BusElement, которые больше не поддерживают свойство SampleTime.
Сложность
Режим отбора проб
Массивы полей элементов или массивы ячеек также могут содержать следующую информацию:
Режим «Размеры»
Минимум
Максимум
Единицы
Описание
Пример: Simulink.Bus.cellToObject(busCell);
scope - Словарь данных, содержащий объекты Simulink.BusSimulink.data.Dictionary объектСловарь данных, указанный как Simulink.data.Dictionary объект. Перед использованием этого аргумента представляйте словарь с помощью Simulink.data.Dictionary с помощью, например, Simulink.data.dictionary.create или Simulink.data.dictionary.open функция.
Если scope пуст, функция использует базовую рабочую область MATLAB в качестве источника Bus объекты.
Пример: Simulink.Bus.cellToObject(busCell,dataDictionaryObject);
Обратная функция Simulink.Bus.objectToCell.
Simulink.BusElement объекты больше не поддерживают SampleTime собственностьОшибки, начинающиеся с R2020b
SampleTime имущество Simulink.BusElement объекты больше не поддерживаются.
BusElement объекты, указывающие время выборки, вызывают ошибку во время компиляции. Удаление спецификации времени образца из BusElement объект, задайте его SampleTime кому -1.
Simulink.Bus.cellToObject продолжает принимать массивы ячеек, которые задают время выборки для элементов шины. Simulink.Bus.objectToCell, Simulink.Bus.save, и Simulink.Bus.createObject продолжать возвращать массивы ячеек или массивы, которые включают время выборки, когда они не являются наследниками. Когда время выборки наследуется (-1), они опускают его. Аналогично, редактор шины и обозреватель моделей пропускают образец времени, когда он наследуется.
Чтобы указать время выборки для элемента шины, используйте SampleTime параметр блока соответствующих блоков. Например, можно использовать блоки In Bus Element, Out Bus Element и Signal Specification для задания времени выборки.
Simulink.BusElement объекты больше не будут поддерживать SamplingMode собственностьНе рекомендуется начинать с R2016b
В R2016b, SamplingMode имущество Simulink.BusElement объекты были удалены. Сценарии, использующие SamplingMode имущество Simulink.BusElement объекты продолжают работать. Simulink.Bus.cellToObject продолжает требовать SamplingMode поле и Simulink.Bus.objectToCell продолжает включать режим выборки в массивы выходных ячеек.
В будущем выпуске поддержка SamplingMode свойство будет удалено.
Чтобы определить, основан ли сигнал на выборке или на кадре, определите режим выборки входных сигналов на уровне блока, а не на уровне сигнала.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.