exponenta event banner

Управление скоростью оценки и памятью

Способы ускорения оценки частотного отклика

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

  • Сокращение времени остановки моделирования

  • Задание режима ускорителя

  • Использование параллельных вычислений

Сокращение времени остановки моделирования

Время, необходимое для выполнения оценки частотного отклика, зависит от времени остановки моделирования.

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

Для получения времени остановки моделирования из входного сигнала с помощью кода MATLAB ®:

tfinal = getSimulationTime(input) 

где input - входной сигнал. Время остановки моделирования, tfinal, служит индикатором длительности оценки частотной характеристики.

Можно сократить время моделирования, изменив свойства сигнала.

Входной сигналДействиеВнимание
Sinestream

Уменьшение количества периодов на частоту, NumPeriods, особенно на более низких частотах.

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

Щебет

Уменьшите время выборки сигнала, Tsили количество образцов, NumSamples.

Частотное разрешение расчетной характеристики зависит от количества выборок NumSamples. Уменьшение числа выборок уменьшает частотное разрешение оцененной частотной характеристики.

Сведения об изменении входных сигналов см. в разделе Изменение входных сигналов оценки.

Задание режима ускорителя

Можно попытаться ускорить оценку частотной характеристики, указав режим ускорителя или ускорителя в Simulink.

Дополнительные сведения см. в разделе Что такое ускорение?.

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

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

  • Модель имеет несколько входных данных.

  • Модель с одним входом использует синестрименный входной сигнал, где синестрим SimulationOrder свойство имеет значение 'OneAtATime'.

    Сведения о настройке этого параметра см. в разделе frest.Sinestream справочная страница.

В этих ситуациях оценка частотной характеристики выполняет многократное моделирование. Если установлено программное обеспечение Parallel Computing Toolbox™, можно выполнять эти несколько имитаций параллельно на нескольких сессиях MATLAB (пул работников MATLAB).

Дополнительные сведения об использовании параллельных вычислений см. в разделе Ускорение оценки с помощью параллельных вычислений.

Ускорение оценки с помощью параллельных вычислений

Настройка MATLAB для параллельных вычислений

Можно использовать параллельные вычисления для ускорения оценки частотного отклика, которая выполняет несколько моделирований. Можно использовать параллельные вычисления с линеаризатором модели и frestimate. При выполнении оценки частотного отклика с использованием параллельных вычислений программное обеспечение использует доступный параллельный пул. Если параллельный пул недоступен и в настройках панели инструментов Parallel Computing Toolbox выбран параметр Автоматически создавать параллельный пул, программа запускает параллельный пул, используя настройки этих настроек.

Можно настроить программное обеспечение для автоматического обнаружения зависимостей модели и временного добавления их в параллельный пул работников. Однако для обеспечения доступа работников к неопознанным зависимостям файлов и путей создайте профиль кластера, который определит его. С этим профилем кластера должен быть связан параллельный пул, используемый для оптимизации модели. Сведения о создании профиля кластера см. в разделе Добавление и изменение профилей кластера (панель инструментов параллельных вычислений).

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

parpool(MyProfile)

MyProfile - имя профиля кластера.

Оценка частотной характеристики с помощью параллельных вычислений с использованием линеаризатора модели

После настройки параметров параллельных вычислений, как описано в разделе Настройка MATLAB для параллельных вычислений, можно оценить частотную характеристику модели Simulink с помощью линеаризатора модели.

  1. На вкладке Оценка (Estimation) Линеаризатора модели (Model Linearizer) щелкните Дополнительные опции (More Options).

    Это действие открывает диалоговое окно Опции оценки частотного отклика.

  2. На вкладке Параллельные опции установите флажок Использовать параллельный пул во время оценки.

  3. (Необязательно) Щелкните Добавить зависимость пути.

    Откроется диалоговое окно Обзор папки (Browse For Folder). Выполните навигацию и выберите папку для добавления зависимостей пути модели.

    Нажмите кнопку ОК.

    Совет

    Либо вручную укажите пути в списке Зависимости пути модели (Model path dependencies). Можно задать пути, разделенные новой линией.

  4. (Необязательно) Щелкните Синхронизировать зависимости путей от модели.

    Это действие находит зависимости пути модели в модели Simulink и добавляет их в список Зависимости пути модели.

Оценка частотного отклика с использованием параллельных вычислений (код MATLAB)

После настройки параметров параллельных вычислений, как описано в разделе Настройка MATLAB для параллельных вычислений, можно оценить частотную характеристику модели Simulink.

  1. Найдите пути к файлам, которые требуется запустить модели Simulink, называемые зависимостями путей.

    dirs = frest.findDepend(model)

    dirs представляет собой массив ячеек символьных векторов, содержащих зависимости пути, такие как ссылочные модели, файлы данных и S-функции.

    Дополнительные сведения об этой команде см. в разделе frest.findDepend.

    Дополнительные сведения о зависимостях модели см. в разделе Анализ зависимостей модели и области и ограничений анализатора зависимостей.

  2. (Необязательно) Проверьте, что dirs включает все зависимости путей. Добавить все отсутствующие пути к dirs:

    dirs = vertcat(dirs,'\\hostname\C$\matlab\work')
  3. (Необязательно) Убедитесь, что все работники имеют доступ к путям в dirs.

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

    dirs = regexprep(dirs,'C:/','\\\\hostname\\C$\\')

  4. Включение параллельных вычислений и определение зависимостей пути модели путем создания options с использованием frestimateOptions команда:

    options = frestimateOptions('UseParallel','on','ParallelPathDependencies',dirs)

    Совет

    Чтобы включить параллельные вычисления для всех оценок, выберите глобальную настройку Использовать параллельный пул при использовании флажка «frestimate» в настройках MATLAB. Если модель имеет зависимости путей, необходимо создать собственный объект опций частотного отклика, который задает зависимости путей перед началом оценки.

  5. Оцените частотную характеристику:

    [sysest,simout] = frestimate('model',io,input,options)

Пример использования параллельных вычислений для ускорения оценки см. в разделе Ускорение оценки частотного отклика с помощью параллельных вычислений.

Управление памятью во время оценки частотного отклика

Оценка частотного отклика завершается, когда данные моделирования превышают доступную память. Недостаточная память возникает в следующих ситуациях:

  • Модель выполняет ведение журнала данных во время длительного моделирования. Входной сигнал синестрима с четырьмя периодами на частоте 1e-3 рад/с запускает симуляцию Simulink для 25000. Если вы регистрируете сигналы с помощью блоков To Workspace, этот промежуток времени симуляции может вызвать проблемы с памятью.

  • Модель с дискретным временем выборки выходной точки 1e-8 с, которая моделируется на 5-Hz частоте (0,2 s моделирования за период), приводит к 0 .21e 8 = 2 млн выборок данных за период. Обычно этот объем данных требует более 300 МБ памяти.

Чтобы избежать проблем с памятью при оценке частотной характеристики:

  1. Отключите регистрацию любого сигнала в модели Simulink.

    Сведения о том, как определить, какие компоненты модели регистрируют сигналы, и отключить регистрацию сигналов, см. в разделе Регистрация сигналов.

  2. Попробуйте выполнить одно или несколько действий, перечисленных в следующих разделах:

  3. Повторите оценку.

Специфические для модели способы избежать проблем с памятью

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

Тип моделиДействие
Модели с быстрым временем дискретной выборки, заданным в точке вывода

Вставьте блок Rate Transition в выходной точке, чтобы снизить частоту дискретизации, что уменьшает количество записанных данных. Переместите точку вывода линеаризации на выход блока Rate Transition перед оценкой. Убедитесь, что расположение исходной выходной точки не имеет псевдонима в результате преобразования скорости.

Сведения об определении частоты выборки см. в разделе Просмотр информации о времени выборки. Если оценка выполняется медленно, см. раздел Способы ускорения оценки частотного отклика.

Модели с несколькими точками ввода и вывода (модели MIMO)

Специфичные для ввода-сигнала способы избежать проблем с памятью

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

Тип входного сигналаДействие
Sinestream
  • Удалите низкие частоты из входного сигнала, для которого не требуется частотный отклик.

  • Измените сигнал синестрима, чтобы оценить каждую частоту отдельно, установив SimulationOrder опция для OneAtATime. Затем оцените с помощью frestimate синтаксис, который не запрашивает моделируемые выходные данные времени-ответа, например, sysest = frestimate(model,io,input).

  • Параллельные вычисления используются для параллельного выполнения независимых симуляций на разных компьютерах. См. раздел Ускорение оценки с помощью параллельных вычислений.

  • Разделите входной сигнал на несколько сигналов с помощью fselect. Оцените частотную характеристику для каждого сигнала отдельно, используя frestimate. Затем объедините результаты с помощью fcat.

Щебет

Создание отдельных входных сигналов, разделяющих диапазон частот развертки исходного сигнала на меньшие секции с помощью frest.Chirp. Оцените частотную характеристику для каждого сигнала отдельно, используя frestimate. Затем объедините результаты с помощью fcat.

СлучайныйУменьшение количества выборок в случайном входном сигнале путем изменения NumSamples перед оценкой. Смотрите раздел Реакция на время шумит.