Преобразуйте массив ячеек, содержащий информацию о шине, в 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
The Bus
объекты идентичны не их именам.
busCell
- Информация об объекте Simulink.BusBus
информация об объекте, заданная как массив ячеек из массивов ячеек. Каждый подчиненный массив ячеек должен содержать это Bus
информация об объекте:
Имя шины
Заголовочный файл
Описание
Возможности данных
Выравнивание
Сохраните размерности элемента
Элементы
Поле elements является массивом ячеек, который содержит эту информацию для каждого из Simulink.BusElement
объекты, которые Bus
ссылки на объекты:
Поле элементов должно содержать массивы или массивы ячеек с этой информацией для каждого из 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
The SampleTime
свойство Simulink.BusElement
объекты больше не поддерживаются.
BusElement
объекты, которые задают шаг расчета, вызывают ошибку во время компиляции. Чтобы удалить спецификацию шага расчета из BusElement
объект, установите его SampleTime
на -1
.
Simulink.Bus.cellToObject
продолжает принимать массивы ячеек, которые задают шаг расчета для элементов шины. Simulink.Bus.objectToCell
, Simulink.Bus.save
, и Simulink.Bus.createObject
продолжайте возвращать массивы ячеек или массивы, которые включают шаг расчета, когда оно не наследуется. Когда шаг расчета наследуется (-1
), они опускают это. Точно так же Bus Editor и Model Explorer опускают шаг расчета, когда она унаследована.
Чтобы задать шаг расчета для элемента массива шины, используйте 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.