Вычислительная стоимость является мерой количества и сложности задач, которые процессор выполняет за временной шаг во время симуляции. Снижение вычислительной стоимости вашей модели увеличивает скорость выполнения симуляции и помогает вам избежать переполнения, когда вы моделируете в реальном времени на целевом компьютере.
Логгирование и мониторинг данных являются интерактивными процедурами, которые потребляют память и степень. Один из способов уменьшить вычислительные затраты - уменьшить объем интерактивной обработки, которая происходит во время симуляции. Лучшие практики ограничения вычислительных затрат при ведении журнала и мониторинге данных:
Используйте блок outport только, если вам нужно записать данные для анализа через Simulink® модель на вашем компьютере разработчика.
Используйте блок scope только, если вам нужно контролировать данные во время симуляции в реальном времени через модель Simulink на вашем компьютере разработчика.
Если вам нужно записать данные или контролировать переменную, ограничьте количество или десятикратное уменьшение точек данных, которые вы собираете, когда ваши требования анализа позволяют вам сделать это.
Логируйте данные только один раз.
Если вы используете Simscape™ логгирование данных, используйте локальные настройки для регистрации только блоков, которые содержат переменные, необходимые для анализа.
Примечание
Simscape данных моделирования логгирования не поддерживается для сгенерированного кода.
Исследуйте строение модели и результаты симуляции, чтобы определить, эффективно ли модель регистрирует и контролирует данные.
Чтобы открыть модель, в MATLAB® в командной строке введите:
model = 'ssc_pneumatic_rts_zc_redux';
open_system(model)
Модель содержит три блока scope и один блок outport. Блок Степени (кВт) возможностей, RPM возможностей и outport получают данные от подсистемы Measurements.
Симулируйте модель:
sim(model)
Модель регистрирует пять переменных в рабочей области, включая узел логгирования данных моделирования Simscape.
Чтобы определить источник для Pneu_rts_RPM_DATA
, в рабочем пространстве MATLAB, откройте структуру. В качестве альтернативы в командной строке введите:
Pneu_rts_RPM_DATA.blockName
ans = 'ssc_pneumatic_rts_zc_redux/RPM'
The blockName
переменная показывает, что возможности RPM регистрируют данные. В модели выходной порт, который регистрирует данные в yout
соединяется с сигналом между подсистемой Измерений и блоком RPM возможностей.
Сравнение данных, которые Pneu_rts_RPM_DATA
и yout
журнал, постройте график обоих наборов данных на одну фигуру.
h1 = figure; plot(tout,yout) h1; hold on plot(Pneu_rts_RPM_DATA.time,Pneu_rts_RPM_DATA.signals.values,'r--') title('Speed') xlabel('Time (s)') ylabel('Speed (rpm)') h1Leg = legend({'yout','Pneu-rts-RPM-DATA'});
Данные те же самые, что означает, что вы регистрируете одни и те же данные дважды.
Чтобы уменьшить вычислительные затраты на логгирование или мониторинг данных о скорости через модель Simulink на вашем компьютере разработчика во время симуляции в реальном времени:
Если вам нужно только записать данные о скорости, удалите блок возможностей RPM.
Если вам нужно логгировать и контролировать данные о скорости, удалите блок outport.
Если вам нужно только контролировать данные о скорости, удалите блок outport и отключите ведение журнала данных для возможностей RPM.
Если вам не нужно регистрировать или контролировать данные о скорости через модель Simulink на вашем компьютере разработчика во время симуляции в реальном времени с целевым компьютером, удалите и блок возможностей RPM, и блок вывода.
Если вы хотите уменьшить затраты путем удаления блоков scope и outport, но хотите записывать данные во время подготовки модели к симуляции в реальном времени, сконфигурируйте модель, чтобы записывать только те данные, которые вам нужны. Для этого используйте simlog
узел в рабочем пространстве MATLAB. Для получения дополнительной информации смотрите Журнал данных только для выбранных блоков.
В сложение к сокращению количества регистрируемых и контролируемых сигналов можно использовать эти методы для уменьшения количества и сложности задач, которые процессор выполняет за временной шаг во время симуляции:
Избегайте использования больших изображений и сложной графики.
Отключите ненужную ошибку и предупреждение диагностики.
Перенастройте допуски.
Упростите сложные подсистемы или замените их интерполяционными таблицами.
Линеаризация нелинейных эффектов.
Исключить избыточные вычисления, например, умножение на единицу.
Уменьшите количество дифференциальных алгебраических уравнений (ДАУ).