В этом примере показано, как создать длинное расписание для сигнала в Инспекторе Данных моделирования репозиторий. Можно создать длинное расписание с помощью Simulink.sdi.Signal
возразите или первым созданием matlab.io.datastore.sdidatastore
для сигнала. Можно использовать matlab.io.datastore.sdidatastore
чтобы инкрементно читать и обработать данные сигнала для сигналов, которые не помещаются в память. Длинное расписание обрабатывает разделение на блоки данных и обработку в фоновом режиме. В общем случае можно работать с длинными расписаниями очень похоже к тому, как вы работаете с данными в оперативной памяти.
Создайте данные и доступ к ID сигнала
Создаете ли вы свое длинное расписание с помощью Simulink.sdi.Signal
возразите или matlab.io.datastore.sdidatastore
, запустите путем создания данных и доступа к ID сигнала для сигнала интереса. sldemo_fuelsys
модель сконфигурирована, чтобы регистрировать сигналы, какой поток Инспектору Данных моделирования репозиторий, когда вы симулируете модель.
Затем используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к ID сигнала для сигнала интереса. Например, получите доступ к ego
сигнал.
Создайте длинное расписание Используя matlab.io.datastore.sdidatastore
В общем случае длинные расписания поддерживаются хранилищами данных. Создайте matlab.io.datastore.sdidatastore
возразите, чтобы сослаться на данные сигнала в Инспекторе Данных моделирования репозиторий.
Проверяйте имя datastore, чтобы проверить, что у вас есть сигнал, который вы ожидаете.
Создайте длинное расписание из matlab.io.datastore.sdidatastore
использовать для обработки данных сигнала. Когда у вас есть лицензия Parallel Computing Toolbox™, необходимо явным образом установить среду выполнения на локальный сеанс MATLAB® с помощью mapreducer
прежде, чем создать длинное расписание. matlab.io.datastore.sdidatastore
объект не поддерживает параллельные расчеты.
egoTt =
Mx1 tall timetable
Time Data
______________ ______
0 sec 1.209
0.00056199 sec 1.209
0.0033719 sec 1.209
0.01 sec 1.1729
0.02 sec 1.1409
0.03 sec 1.1124
0.04 sec 1.0873
0.05 sec 1.0652
: :
: :
Создайте длинное расписание Используя Simulink.sdi.Signal
Объект
Simulink.sdi.Signal
класс имеет метод, чтобы создать длинное расписание непосредственно, позволяя вам пропустить шаг создания datastore путем создания его негласно. Используйте ID сигнала, чтобы получить доступ к Simulink.sdi.Signal
объект для ego
сигнал. Затем используйте getTable
метод, чтобы создать длинное расписание.
egoTt =
Mx1 tall timetable
Time Data
______________ ______
0 sec 1.209
0.00056199 sec 1.209
0.0033719 sec 1.209
0.01 sec 1.1729
0.02 sec 1.1409
0.03 sec 1.1124
0.04 sec 1.0873
0.05 sec 1.0652
: :
: :
Используйте длинное расписание, чтобы обработать ваши данные сигнала
Когда вы используете длинное расписание egoTt
, его базовый datastore читает фрагменты данных и передает их длинному расписанию к процессу. Ни datastore, ни длинное расписание не сохраняют ни одних из данных в памяти после обработки. Кроме того, длинное расписание задерживает обработку для многих операций. Например, вычислите среднее значение сигнала.
Можно использовать gather
функция, чтобы оценить переменную и записать ее значение в рабочую область, или можно использовать write
функционируйте, чтобы записать результаты в диск. Когда вы используете gather
, убедитесь, что результаты помещаются в память.
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 9.8 sec
Evaluation completed in 10 sec
Когда вы выполняете несколько операций на длинном расписании, оценка результатов для каждого шага задерживается, пока вы явным образом не запрашиваете результаты с write
или gather
. Во время оценки MATLAB оптимизирует количество передач, которые это делает через длинное расписание, которое может значительно ускорить время вычислений для анализа очень больших сигналов. Для получения дополнительной информации о работе с длинными массивами, смотрите Длинные массивы для Данных, которые не помещаются в память.