exponenta event banner

Из электронной таблицы

Считывание данных из электронной таблицы

  • Библиотека:
  • Симулинк/источники

  • From Spreadsheet block

Описание

Блок «Из электронной таблицы» считывает данные из электронных таблиц Microsoft ® Excel ® (все платформы) или CSV (только для платформы Microsoft Windows ® с установленной программой Microsoft Office) и выводит данные в виде сигнала. Блок «Из электронной таблицы» не поддерживает электронные таблицы Microsoft Excel.

Значок «Из электронной таблицы» отображает имя файла электронной таблицы и имя листа, указанные в параметрах «Имя файла блока» и «Имя листа».

Форматы хранения

Данные, считываемые блоком «Из электронной таблицы» из электронной таблицы, должны быть соответствующим образом отформатированы.

Для электронных таблиц Microsoft Excel:

  • Блок «Из электронной таблицы» интерпретирует первую строку как имя сигнала. Если имя сигнала не указано, блок «Из электронной таблицы» назначает значение по умолчанию в формате Signal #, где # увеличивается с каждым дополнительным неназванным сигналом.

  • Блок «Из электронной таблицы» интерпретирует первый столбец как время. В этом столбце значения времени должны монотонно увеличиваться.

  • Блок «Из электронной таблицы» интерпретирует оставшиеся столбцы как сигналы.

В этом примере показана приемлемая электронная таблица Microsoft Excel. Первый столбец - Time, а первая строка содержит имена сигналов. Каждый лист содержит группу сигналов.

Для текстовых файлов CSV (только для платформы Microsoft Office):

  • Блок «Из электронной таблицы» интерпретирует первый столбец как время. В этом столбце значения времени должны увеличиваться.

  • Блок «Из электронной таблицы» интерпретирует оставшиеся столбцы как сигналы.

  • Каждый столбец должен иметь одинаковое количество записей.

  • Блок «Из электронной таблицы» интерпретирует каждый файл как одну группу сигналов.

В этом примере показан приемлемый формат CSV-файла. Содержимое представляет одну группу сигналов.

0,0,0,5,0
1,0,1,5,0
2,0,1,5,0
3,0,1,5,0
4,5,1,5,0
5,5,1,5,0
6,5,1,5,0
7,0,1,5,0
8,0,1,5,1
9,0,1,5,1
10,0,1,5,0

Поведение блоков во время моделирования

Блок «Из электронной таблицы» постепенно считывает данные из электронной таблицы во время моделирования.

Параметр «Время выборки» определяет время выборки, используемое блоком «Из электронной таблицы» для считывания данных из электронной таблицы. Дополнительные сведения см. в разделе Параметры. Временные метки в файле должны быть монотонно неповторяющимися.

Для каждого совпадения времени моделирования, для которого электронная таблица не содержит соответствующей метки времени, программное обеспечение Simulink ® интерполирует или экстраполирует для получения необходимых данных с помощью выбранного метода. Дополнительные сведения см. в разделе Совпадения по времени моделирования без соответствующих меток времени электронной таблицы.

Совпадения времени моделирования без соответствующих меток времени электронной таблицы

Если совпадение во времени моделирования не имеет соответствующей метки времени электронной таблицы, вывод блока «Из электронной таблицы» зависит от:

  • Происходит ли попадание во время моделирования перед первой меткой времени, в пределах диапазона отметок времени или после последней метки времени

  • Выбранные методы интерполяции или экстраполяции

  • Тип данных электронной таблицы

Дополнительные сведения о параметрах интерполяции и экстраполяции см. в описании следующих параметров:

Иногда электронная таблица включает два или более значений данных, которые имеют одинаковую временную метку. В таких случаях действие блока «Из электронной таблицы» зависит от того, когда происходит совпадение времени моделирования относительно повторяющихся временных отметок в электронной таблице.

Например, предположим, что электронная таблица содержит эти данные. Три значения данных имеют значение метки времени 2.

time stamps:    0 1 2 2 2 3 4
data values:    2 3 6 4 9 1 5

Таблица описывает выходные данные блока «Из электронной таблицы».

Время моделирования, относительно повторяющихся значений отметок времени в электронной таблицеДействие «Из блока электронной таблицы»
Перед дублирующимися метками времени

Выполняет те же действия, что и при различии временных отметок, используя первое из повторяющихся значений временных отметок в качестве основы для интерполяции. (В этом примере значение метки времени равно 6.)

Во время или после повторяющихся отметок времени

Выполняет те же действия, что и при различии временных отметок, используя последнее из повторяющихся значений временных отметок в качестве основы для интерполяции. (В этом примере значение метки времени равно 9.)

Порты

Продукция

развернуть все

Инкрементные данные из указанной электронной таблицы.

Параметр «Время выборки» определяет время выборки, используемое блоком «Из электронной таблицы» для считывания данных из электронной таблицы. Дополнительные сведения см. в разделе Параметры. Временные метки в файле должны быть монотонно неповторяющимися.

Для каждого совпадения времени моделирования, для которого электронная таблица не содержит соответствующей метки времени, программное обеспечение Simulink интерполирует или экстраполирует для получения необходимых данных с использованием выбранного метода. Дополнительные сведения см. в разделе Совпадения по времени моделирования без соответствующих меток времени электронной таблицы.

Блок «Из электронной таблицы» принимает спецификации типа данных на уровне блока. Если необходимо указать различные типы данных для каждого сигнала, выберите «Тип выходных данных» > «Наследовать: Автоматически». Этот параметр позволяет разрешить типы данных обратного сигнала с помощью обратного распространения. Например, предположим, что в блоке From Spreadsheet есть два сигнала, In1 и In2, которые блок посылает портам, имеющим типы данных int8 и Boolean. При обратном распространении блок пересчитывает In1 как int8 и In2 как Boolean.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Параметры

развернуть все

Введите полный путь и имя файла электронной таблицы, включая расширение файла. Если расширение файла не включено, блок предполагает .xlsx в качестве внутреннего номера.

Этот блок поддерживает неанглийские полные пути и имена файлов только на платформах Microsoft.

Программное использование

Параметр блока: FileName
Текст: символьный вектор
Значение: полный путь и имя файла
По умолчанию: 'untitled.xlsx'

Введите имя листа в электронной таблице. Можно ввести имя листа в этом поле редактирования или выбрать имя листа после открытия листа.

Если электронная таблица имеет формат CSV, блок заполняет этот параметр именем файла CSV без расширения. Не изменяйте это значение.

Чтобы открыть лист, нажмите кнопку. На листе можно выбрать диапазон данных путем перетаскивания по требуемому диапазону значений.

Можно также выбрать диапазон данных, указав диапазон значений в параметре Диапазон (Range).

Программное использование

Параметр блока: SheetName
Текст: символьный вектор
Значение: Имя листа
По умолчанию: 'Sheet1'

Для задания диапазона используйте формат column:row, с несколькими спецификациями, разделенными запятыми. Например, A1:B3,D1:D3,A7:B9,D7:D9. Если он не указан или пуст, блок автоматически обнаруживает используемый диапазон, который представляет собой все данные на листе.

Если варианты выбора перекрываются, блок разрешает информацию выбора соответствующим образом. Например, если указать несколько перекрывающихся диапазонов, например A1:B4,B1:E7блок разрешает выбор для A1 в E7 включительно.

Альтернативой использованию параметра «Диапазон» является открытие листа щелчком мыши. На листе можно выбрать диапазон данных путем перетаскивания по требуемому диапазону значений.

Программное использование

Параметр блока: Range
Текст: символьный вектор
Значение: Диапазон ячеек
По умолчанию: ''

Тип данных для вывода блока «Из электронной таблицы». Блок «Из электронной таблицы» принимает электронные таблицы, содержащие множество типов данных. Однако блок считывает тип данных электронной таблицы в два раза. Затем он выводит тип данных в соответствии со значением типа выходных данных.

Если необходимо указать различные типы данных для каждого сигнала, рекомендуется выбрать «Тип выходных данных» > «Наследовать: авто». Эта опция позволяет разрешить типы данных обратного сигнала с помощью обратного распространения. Например, предположим, что в блоке From Spreadsheet есть два сигнала, In1 и In2, которые блок посылает портам, имеющим типы данных int8 и Boolean. При обратном распространении блок пересчитывает In1 как int8 и In2 как boolean.

Чтобы разрешить блоку приводить тип выходных данных в соответствие с типом принимающего блока, используйте Inherit: auto.

Дополнительные сведения см. в разделе Типы данных управляющих сигналов.

Программное использование

Параметр блока: OutDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | '<data type expression>'
По умолчанию: 'Inherit: auto'

Выберите способ обработки блоком первого столбца электронной таблицы:

  • Time - Рассматривать первый столбец как время.

  • Data - Рассматривать первый столбец как данные.

Зависимости

При выборе Data, блок отключает:

  • Экстраполяция данных перед первой точкой данных

  • Интерполяция данных в пределах временного диапазона

  • Экстраполяция данных после последней точки данных

И позволяет:

  • Вывод после последней точки данных

Программное использование

Параметр блока: TreatFirstColumnAs
Текст: символьный вектор
Значение: 'Time' | 'Data'
По умолчанию: 'Time'

Период выборки и смещение.

Блок «Из электронной таблицы» считывает данные из электронной таблицы, используя примерное время, которое:

  • Задается для блока «Из электронной таблицы»

  • Блок «Из электронной таблицы» наследует от блоков, в которые блок «Из электронной таблицы» подает данные

Значение по умолчанию: 0, которая задает непрерывное время выборки. Электронная таблица считывается с базовой (самой быстрой) скоростью модели. Дополнительные сведения см. в разделе Указание времени образца.

Программное использование

Параметр: SampleTime
Текст: символьный вектор
Значения: скаляр | вектор
По умолчанию: '0'

Метод экстраполяции, используемый Simulink для совпадения времени моделирования, которое предшествует первой отметке времени в электронной таблице. Выберите один из этих методов экстраполяции.

МетодОписание
Linear extrapolation

(По умолчанию)

Если электронная таблица содержит только один образец, блок «Из электронной таблицы» выводит соответствующее значение данных.

Если электронная таблица содержит более одного образца, блок «Из электронной таблицы» линейно экстраполируется с использованием первых двух образцов:

  • Для double данные, линейно экстраполирует значение с использованием первых двух выборок

  • Для Boolean данные, выводит первое значение данных

  • Для встроенного типа данных, отличного от double или Boolean:

    • Преобразование данных в double

    • Выполняет линейную экстраполяцию (как описано выше для double данные)

    • Понижение экстраполированного значения данных до исходного типа данных

Вы не можете использовать Linear extrapolation с перечисляемым (enum) данные.

Hold first value

Использует первое значение данных в файле

Ground value

Использует значение, зависящее от типа данных образца данных электронной таблицы:

  • Типы данных с фиксированной точкой - использует значение земли

  • Числовые типы, отличные от фиксированных - использует 0

  • Boolean - Использование false

  • Перечисляемые типы данных - использует значение по умолчанию

Зависимости

Чтобы включить этот параметр, установите для параметра Обработать первый столбец значение Time.

Программное использование

Параметр: ExtrapolationBeforeFirstDataPoint
Текст: символьный вектор
Значения: 'Linear extrapolation' | 'Hold first value' | 'Ground value'
По умолчанию: 'Linear extrapolation'

Метод интерполяции, используемый Simulink для моделирования времени между двумя метками времени в электронной таблице. Выберите один из следующих методов интерполяции.

МетодОписание
Linear interpolation

(По умолчанию)

Блок «Из электронной таблицы» интерполирует с использованием двух соответствующих выборок электронной таблицы:

  • Для double данные, линейно интерполирует значение с использованием двух соответствующих выборок

  • Для логических данных, если время моделирования находится между двумя точками данных электронной таблицы с различными значениями, блок «Из электронной таблицы» размещает переход значений на полпути между точками данных электронной таблицы. Например, если данные электронной таблицы переходят от true к false, данные Из электронной таблицы предоставляют выходное значение true для времени моделирования в первой половине интервала между точками данных электронной таблицы. Он предоставляет выходное значение false для времени моделирования во второй половине интервала.

  • Для встроенного типа данных, отличного от double или Boolean:

    • Преобразование данных в double

    • Выполняет линейную интерполяцию (как описано выше для double данные)

    • Понижение интерполированного значения до исходного типа данных

Вы не можете использовать Linear interpolation с перечисляемым (enum) данные.

Zero order hold

Использует данные из первой из двух проб.

Зависимости

Чтобы включить этот параметр, установите для параметра Обработать первый столбец значение Time.

Программное использование

Параметр: InterpolationWithinTimeRange
Текст: символьный вектор
Значения: 'Linear interpolation' | 'Zero order hold'
По умолчанию: 'Linear interpolation'

Метод экстраполяции, используемый Simulink для совпадения времени моделирования после последней метки времени в электронной таблице. Выберите один из следующих методов экстраполяции.

МетодОписание
Linear extrapolation

(По умолчанию)

Если электронная таблица содержит только один образец, блок «Из электронной таблицы» выводит соответствующее значение данных.

Если электронная таблица содержит более одной выборки, блок «Из электронной таблицы» линейно экстраполирует, используя значения данных двух последних выборок:

  • Для double данные, экстраполяция значения с использованием двух последних выборок

  • Для Boolean данные, вывод последнего значения данных

  • Для встроенного типа данных, отличного от double или Boolean:

    • Преобразование данных в double.

    • Выполняет линейную экстраполяцию (как описано выше для double данные).

    • Понижение экстраполированного значения до исходного типа данных.

Вы не можете использовать Linear extrapolation с перечисляемым (enum) данные.

Hold last value

Использует последнее значение данных в файле

Ground value

Использует значение, зависящее от типа данных образца данных электронной таблицы:

  • Типы данных с фиксированной точкой - использует значение земли

  • Числовые типы, отличные от фиксированных - использует 0

  • Boolean - Использование false

  • Перечисляемые типы данных - использует значение по умолчанию

Зависимости

Чтобы включить этот параметр, установите для параметра Обработать первый столбец значение Time.

Программное использование

Параметр: ExtrapolationAfterLastDataPoint
Текст: символьный вектор
Значения: 'Linear extrapolation' | 'Hold last value' | 'Ground value'
По умолчанию: 'Linear extrapolation'

Выберите действие после последней точки данных:

  • Repeating sequence - Повторите последовательность, считав данные из первой строки диапазона, указанного в Range.

  • Hold final value - вывод последнего определенного значения для оставшейся части моделирования.

  • Ground value - Вывод значения основания в зависимости от значения типа данных, указанного в поле Output data type.

Зависимости

Чтобы включить этот параметр, установите для параметра Обработать первый столбец значение Data.

Программное использование

Параметр: OutputAfterLastPoint
Текст: символьный вектор
Значения: 'Repeating sequence' | 'Hold final value' | 'Ground value'
По умолчанию: 'Repeating sequence'

Выберите этот параметр, чтобы включить обнаружение пересечения нулей.

Параметр Zero-Crossing Detection применяется только в том случае, если для параметра Sample time установлено значение 0 (непрерывный).

Simulink использует метод, известный как обнаружение пересечения нуля, для точного определения разрыва, не прибегая к чрезмерно малым временным шагам. В этом контексте пересечение нуля используется для представления разрывов.

Для блока «Из электронной таблицы» обнаружение пересечения нулей может происходить только в метках времени в файле. Simulink проверяет только временные метки, а не значения данных.

Если входной массив содержит повторяющиеся метки времени (более одной записи с одной меткой времени), Simulink обнаруживает пересечение нуля в этой метке времени. Например, предположим, что входной массив содержит эти данные.

time:     0 1 2 2 3
signal:   2 3 4 5 6

В момент времени 2 происходит пересечение нуля с разрывом входного сигнала.

Для данных с недублированными временными метками обнаружение пересечения нуля зависит от настроек следующих параметров:

  • Экстраполяция данных перед первой точкой данных

  • Интерполяция данных в пределах временного диапазона

  • Экстраполяция данных после последней точки данных

Блок применяет следующие правила при определении времени:

  • Пересечение нуля происходит для первой метки времени

  • Для отметок времени между первой и последней отметками времени

  • Для последней метки времени

Метка времениПри обнаружении пересечения нулей

Сначала

Экстраполяция данных перед первой точкой данных Ground value.

Между первым и последним

Интерполяция данных в пределах временного диапазона устанавливается в Zero-order hold.

В последний раз

Один или оба этих параметра:

  • Экстраполяция данных после последней точки данных установлена в Ground value.

  • Интерполяция данных в пределах временного диапазона устанавливается в Zero-order hold.

На следующем рисунке показано обнаружение пересечения нуля для данных, к которым обращается блок из электронной таблицы, имеющий следующие настройки:

  • Экстраполяция данных перед первой точкой данных - Linear extrapolation

  • Интерполяция данных в пределах временного диапазона (для внутренних точек) - Zero order hold

  • Экстраполяция данных после последней точки данных - Linear extrapolation

Следующий рисунок является еще одной иллюстрацией обнаружения пересечения нуля для данных, к которым обращается блок из электронной таблицы. Блок имеет следующие настройки для меток времени (точек):

  • Экстраполяция данных перед первой точкой данных - Hold first value

  • Интерполяция данных в пределах временного диапазона - Zero order hold

  • Экстраполяция данных после последней точки данных - Hold last value

Программное использование

Параметр блока: ZeroCross
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Характеристики блока

Типы данных

Boolean | double | enumerated | fixed point[a] | integer | single

Прямой проход

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулей

yes

[a] Поддерживает до 32-разрядных типов данных с фиксированной точкой.

Алгоритмы

развернуть все

Когда блок «Из электронной таблицы» считывает данные из электронной таблицы, он считывает все сигналы с двойной точностью и затем передает их типу данных, указанному в параметре «Тип выходных данных» для выходного сигнала. Во время литья блок использует режим округления и насыщение при целочисленном переполнении следующим образом.

Расширенные возможности

.
Представлен в R2015b