From Spreadsheet

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

  • Библиотека:
  • Simulink/Источники

  • From Spreadsheet block

Описание

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

Значок From Spreadsheet отображает имя файла электронной таблицы и имя листа, указанные в File name блоков и параметрах Sheet name.

Форматы хранилища

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

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

  • Блок From Spreadsheet интерпретирует первую строку как имя сигнала. Если вы не задаете имя сигнала, блок From Spreadsheet присваивает имя по умолчанию с форматом Signal #, где # Шаги с каждым дополнительным неназванным сигналом.

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

  • Блок From Spreadsheet интерпретирует оставшиеся столбцы как сигналы.

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

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

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

  • Блок From Spreadsheet интерпретирует оставшиеся столбцы как сигналы.

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

  • Блок From Spreadsheet интерпретирует каждый файл как одну группу сигналов.

Этот пример показывает приемлемо форматированный файл 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

Поведение блоков во время симуляции

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

Параметр Sample time задает шаг расчета, которое блок From Spreadsheet использует для чтения данных из электронной таблицы. Для получения дополнительной информации смотрите Параметры. Значение меток времени в файле должно быть монотонно неразрешенным.

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

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

Если время симуляции hit не имеет соответствующей метки времени электронной таблицы, выход From Spreadsheet блока зависит от:

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

  • Методы интерполяции или экстраполяции, которые вы выбираете

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

Для получения дополнительной информации об опциях интерполяции и экстраполяции, смотрите описания этих параметров:

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

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

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

Таблица описывает выходы блока From Spreadsheet.

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

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

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

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

Порты

Выход

расширить все

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

Параметр Sample time задает шаг расчета, которое блок From Spreadsheet использует для чтения данных из электронной таблицы. Для получения дополнительной информации смотрите Параметры. Значение меток времени в файле должно быть монотонно неразрешенным.

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

Блок From Spreadsheet принимает спецификации типов данных на уровне блоков. Если вы хотите задать различные типы данных для каждого сигнала, рассмотрите выбор Output Data Type > Inherit: Auto. Эта опция разрешает типы данных обратного сигнала, используя обратное распространение. Например, предположим, что в блоке From Spreadsheet есть два сигнала, In1 и In2, которые блок отправляет в порты, которые имеют инт8 и логические типы данных. С обратным распространением, блок повторяет 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 является открытие листа нажатием кнопки мыши. На листе можно выбрать область значений данных, перетащив нужную область значений значений.

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

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

Тип данных для вывода From Spreadsheet блока. Блок From Spreadsheet принимает электронные таблицы, которые содержат много типов данных. Однако блок считывает тип данных электронной таблицы как удвоение. Затем он выводит тип данных в соответствии со значением Output data type.

Если вы хотите задать различные типы данных для каждого сигнала, рассмотрите выбор Output Data Type > Inherit: auto. Эта опция разрешает типы данных обратного сигнала, используя обратное распространение. Например, предположим, что в блоке From Spreadsheet есть два сигнала, In1 и In2, которые блок отправляет в порты, которые имеют инт8 и логические типы данных. При обратном распространении блок преобразует In1 в int8 и In2 как логический.

Чтобы позволить блоку привести тип выходных данных, соответствующий типу принимающего блока, используйте 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блок отключен:

  • Data extrapolation before first data point

  • Data interpolation within time range

  • Data extrapolation after last data point

И включает:

  • Output after last data point

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

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

Период дискретизации и смещение.

Блок Из электронной таблицы считывает данные из электронной таблицы с помощью шага расчета, который либо:

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Повышает качество данных, чтобы double

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

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

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

Hold first value

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

Ground value

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

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

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

  • Boolean - Использует false

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

Зависимости

Чтобы включить этот параметр, установите Treat first column as равным Time.

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

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

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

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

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

Блок From Spreadsheet интерполируется с использованием двух соответствующих выборок электронных таблиц:

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

  • Для логических данных, если время симуляции находится между двумя точками данных электронных таблиц с различными значениями, From Spreadsheet блок позиционирует переход значения на полпути между точками данных электронных таблиц. Для примера, если данные электронной таблицы переходят от true к false, From Spreadsheet данные обеспечивают выходу значение true для времен симуляции в первой половине интервала между точками данных электронной таблицы. Это обеспечивает выходу значение false для времен симуляции во второй половине интервала.

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

    • Повышает качество данных, чтобы double

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

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

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

Zero order hold

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

Зависимости

Чтобы включить этот параметр, установите Treat first column as равным Time.

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

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

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

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

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

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

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

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

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

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

    • Повышает качество данных, чтобы double.

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

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

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

Hold last value

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

Ground value

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

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

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

  • Boolean - Использует false

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

Зависимости

Чтобы включить этот параметр, установите Treat first column as равным Time.

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

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите Treat first column as равным Data.

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

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

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

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

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

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

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

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

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

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

  • Data extrapolation before first data point

  • Data interpolation within time range

  • Data extrapolation after last data point

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

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

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

  • В последний метка времени

Метка времениКогда происходит обнаружение пересечения нулем

Сначала

Data extrapolation before first data point установлено на Ground value.

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

Data interpolation within time range установлено на Zero-order hold.

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

Одна или обе из этих настроек происходят:

  • Data extrapolation after last data point установлено на Ground value.

  • Data interpolation within time range установлено на Zero-order hold.

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

  • Data extrapolation before first data pointLinear extrapolation

  • Data interpolation within time range (для внутренних точек) - Zero order hold

  • Data extrapolation after last data pointLinear extrapolation

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

  • Data extrapolation before first data pointHold first value

  • Data interpolation within time rangeZero order hold

  • Data extrapolation after last data pointHold last value

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

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

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

Типы данных

Boolean | double | enumerated | фиксированную точку[a] | integer | single

Прямое сквозное соединение

no

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

no

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

no

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

yes

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

Алгоритмы

расширить все

Когда блок From Spreadsheet считывает данные из электронной таблицы, он считывает все сигналы с двойной точностью, а затем переводит их в тип данных, заданный в параметре Output data type для сигнала выхода. Во время литья блок использует режим округления и насыщения при целочисленном переполнении следующим образом.

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

.
Введенный в R2015b