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

Способы ускорить оценку частотной характеристики

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

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

  • Установка режима Accelerator

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

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

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

Чтобы получить время остановки симуляции, в Model Linearizer, в Linear Analysis Workspace, выберите входной сигнал. Время симуляции будет отображено в Variable Preview.

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

tfinal = getSimulationTime(input) 

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

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

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

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

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

Щебет

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

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

Для получения информации об изменении входных сигналов смотрите Modify Estimation Input Signals.

Задание режима Accelerator

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

Для получения дополнительной информации смотрите Что такое ускорение?.

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

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

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

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

    Для получения информации об установке этой опции смотрите frest.Sinestream страница с описанием.

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

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

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

Конфигурирование MATLAB для параллельных вычислений

Можно использовать параллельные вычисления, чтобы ускорить оценку частотной характеристики, которая выполняет несколько симуляций. Можно использовать параллельные вычисления с Model Linearizer и frestimate. Когда вы выполняете оценку частотной характеристики с помощью параллельных вычислений, программное обеспечение использует доступный параллельный пул. Если параллельный пул не доступен и Automatically create a parallel pool выбран в настройках Parallel Computing Toolbox, то программа запускает параллельный пул с помощью настроек в этих настройках.

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

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

parpool(MyProfile)

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

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

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

  1. В Model Linearizer, на вкладке Estimation, нажмите More Options.

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

  2. На вкладке Parallel Options установите флажок Use the parallel pool during estimation.

  3. (Необязательно) Нажмите Add path dependency.

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

    Нажмите OK.

    Совет

    Кроме того, вручную задайте пути в списке Зависимости пути модели. Можно задать пути, разделенные новой линией.

  4. (Необязательно) Нажмите Sync path dependencies from model.

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

Оценка частотной характеристики с помощью параллельных вычислений (код 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)

    Совет

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

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

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

Для примера использования параллельных вычислений для ускорения оценки, смотрите Скорость Повышения Частотной Характеристики Оценка с Использованием Параллельных Вычислений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Используйте параллельные вычисления, чтобы выполнять независимые параллельные симуляции на разных компьютерах. См. «Ускорение оценки с использованием параллельных вычислений».

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

Щебет

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

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