Когда вы создаете модель, вы можете экспериментировать с параметрами блоков, такими как коэффициенты блока Transfer Fcn, чтобы помочь вам решить, какие блоки использовать. Можно симулировать модель с различными значениями параметров, а также захватить и наблюдать выход симуляции.
Вы можете изменить значения большинства параметров числовых блоков во время симуляции. Чтобы наблюдать эффекты, можно визуализировать выход симуляции в реальном времени. Этот метод позволяет вам быстро протестировать значения параметров во время разработки алгоритма. Вы можете визуально:
Настройка и оптимизация параметров управления.
Калибровка параметров модели.
Проверяйте робастность управления при различных условиях.
Когда вы начинаете симуляцию, Simulink® сначала обновляет диаграмму модели. Эта операция может занять время для больших моделей. Чтобы протестировать значения параметров без повторного обновления диаграммы модели, можно настроить значения параметров во время одного запуска симуляции.
Кроме того, чтобы избежать обновления диаграммы модели, используйте Fast Restart. Дополнительные сведения о быстром перезапуске см. в разделе Запуске с быстрым перезапуском.
Если вы не можете визуально проанализировать выход симуляции в реальном времени или если необходимо запустить много симуляций, рассмотрите использование программного подхода к протаскиванию значений параметров. Можно захватить симуляции выхода данные и выполнить анализ позже. Для получения дополнительной информации смотрите Оптимизировать, Оценить и Протянуть Значения Параметров блоков.
Для получения основных сведений о доступе и настройке значений параметров блоков смотрите Задать Параметры блоков значения.
В этом примере показано, как прототипировать модель путем изменения значений параметров блоков между запусками симуляции. Можно экспериментировать со значениями параметров и наблюдать результаты симуляции, чтобы помочь вам решить, какие блоки использовать и как создать модель.
Пример модели sldemo_fuelsys
представляет собой систему заправки бензинового двигателя. Подсистема в модели, feedforward_fuel_rate
, вычисляет потребность двигателя в топливе при помощи постоянного числа 14.6
, который представляет идеальное (стехиометрическое) отношение воздуха к топливу, которое потребляет двигатель. Два блока в подсистеме используют число, чтобы задать значения параметров.
Предположим, что вы хотите изменить расчетное значение идеального отношения воздуха к топливу с 14.6
на 17.5
наблюдать эффект на потребность в топливе. Чтобы хранить проект значение в модели, можно изменить значение в диалоговые окна блока. Также можно хранить значение в переменной со значимым именем, что позволяет повторно использовать значение в двух блоках.
Чтобы наблюдать изменение выходов симуляции путем изменения значения в диалоговых окнах блока:
Откройте пример модели.
sldemo_fuelsys
Установите время симуляции модели из 2000
на 50
для более быстрой симуляции.
В модели откройте диалоговое окно Scope блока.
Симулируйте модель. Измените размер окна в диалоговом окне Scope, чтобы увидеть все результаты симуляции.
Возможности отображения показывают, что на протяжении всей симуляции fuel
сигнал колеблется между приблизительно 0.9
и 1.6
. The air_fuel_ratio
сигнал быстро поднимается на 15
без перерегулирования.
В модели откройте Model Data Editor. На вкладке Modeling нажмите Model Data Editor. В Model Data Editor смотрите вкладку Parameters.
В модели или в командной строке перейдите к целевой подсистеме.
open_system(... 'sldemo_fuelsys/fuel_rate_control/fuel_calc/feedforward_fuel_rate')
В Model Data Editor используйте столбец Value, чтобы изменить Constant value (Value
) параметр маркированного Constant блока rich
от 1/(14.6*0.8)
на 1/(17.5*0.8)
.
Точно так же измените параметр Constant value маркированного блока normal
от 1/14.6
на 1/17.5
.
Симулируйте модель.
Возможности отображения показывают, что сигналы теперь отвечают по-разному.
Чтобы заменить буквальные значения в диалоговые окна блока на числовую переменную:
Используйте Model Data Editor, чтобы задать значение normal
Constant блок в 1/mixture
.
Установите значение rich
блокировать в 1/(mixture*0.8)
.
Во время редактирования rich
значение, рядом с 1/(mixture*0.8)
, нажмите кнопку действия и выберите Create.
В диалоговом окне Create New Data установите Value равным 17.5
и нажмите Create.
Числовая переменная mixture
появляется в базовом рабочем пространстве со значением 17.5
. Между запусками симуляции можно изменить значение mixture
в базовом рабочем пространстве вместо изменения значений параметров в диалоговых окнах блока.
Этот пример показов, как наблюдать эффект изменения значения параметров блоков во время симуляции. Этот метод позволяет вам избегать обновления диаграммы модели между запусками симуляции и интерактивно тестировать и отлаживать свою модель.
Пример модели sldemo_fuelsys
содержит блок Constant, Throttle Command
, который представляет команду дросселя. Чтобы наблюдать эффект увеличения величины команды во время симуляции:
Откройте пример модели.
sldemo_fuelsys
В модели откройте диалоговое окно Scope блока.
Начните симуляцию.
Модель сконфигурирована, чтобы симулировать 2000 секунд. Во время симуляции значения fuel
и air_fuel_ratio
сигналы появляются на графике возможностей в реальном времени.
В модели, когда строка состояния указывает приблизительно 1000
(1000 секунд), нажмите кнопку «Паузу», чтобы приостановить симуляцию.
На отображении возможностей fuel строит график вывода симуляции перед временем паузы.
В модели на вкладке Modeling нажмите Model Data Editor.
В Model Data Editor выберите вкладку Parameters.
В модели выберите Throttle Command
блок.
В Model Data Editor выберите rep_seq_y
строка. Убедитесь, что вы не выбираете rep_seq_t
также строка.
Для rep_seq_y
строка, измените значение в столбце Value на [10 20 10]
на [10 30 10]
.
Нажмите кнопку «Шаг вперед» для продвижения шага симуляции по шагам. Нажмите кнопку около 15 раз или пока вы не увидите изменения в графике fuel на отображении возможностей.
График сигнального fuel
указывает на резкое увеличение потребности в топливе, которое соответствует команде увеличенного дросселя.
В модели возобновите симуляцию, нажав кнопку Продолжить.
На возможности отображения показано значительное периодическое увеличение спроса на топливо и периодическое снижение отношения воздуха к топливу во время остальной части симуляции.
Во время симуляции необходимо обновить диаграмму модели после изменения значения переменной рабочей области. Для получения дополнительной информации об обновлении схемы диаграммы модели «Обновление схемы» и «Запуск симуляции».
Используйте переменные рабочей области, чтобы задать параметры блоков значения.
Чтобы получить доступ к значению блочного параметра, такому как параметр Constant value блока Constant, необходимо перейти к блоку в модели и открыть диалоговое окно блока, найти блок с помощью Model Explorer или использовать функцию set_param
в командной строке.
Кроме того, если вы задаете параметры блоков значение путем создания переменной рабочей области, можно изменить значение переменной с помощью командной строки MATLAB® Браузер Рабочей области или Model Explorer. Можно также создать переменную, чтобы задать одно и то же значение для нескольких параметров блоков. При изменении значения переменных все целевые параметры блоков используют новое значение. Для получения дополнительной информации о доступе и настройке значений параметров блоков смотрите Задать Параметры блоков значения.
Визуализируйте выходы симуляции.
Чтобы наблюдать выход симуляции в реальном времени во время настройки значений параметров блоков, можно использовать блоки в модели, такой как блок Scope. Можно также получить выходы симуляции в конце запуска симуляции и просмотреть данные в Simulation Data Inspector. Для получения дополнительной информации смотрите Решите, Как Визуализировать Данные Моделирования.
Задайте области значений значений для параметров блоков, которые вы ожидаете настроить во время симуляции.
Если вы ожидаете, что другой человек будет использовать вашу модель и настраивать параметр, можно управлять разрешенными значениями настройки, задавая область значений. Кроме того, лучшая практика задать области значений значения для всех параметров блока с фиксированной точкой, которые вы ожидаете настроить. Чтобы задать области значений значений параметров блоков, см. «Задайте минимальные и максимальные значения для параметров блоков».
Управляйте длительностью симуляции и темпом.
Запуск симуляции может выполняться так быстро, что вы не можете настроить значения параметров блоков. Кроме того, если вы хотите изменить значение параметров в определенное время симуляции, необходимо научиться управлять темпом симуляции. Можно сконфигурировать симуляцию, чтобы она выполнялась на определенную длительность или чтобы она выполнялась навсегда, и приостановить и продвинуть симуляцию, когда вы хотите. Для получения дополнительной информации смотрите Моделирование модели в интерактивном режиме и Программный запуск симуляций.
Можно настроить значения параметров блоков, добавив блоки из библиотеки Dashboard к модели. Блоки приборной панели позволяют вам регулировать значения параметров других блоков, и наблюдать выход симуляции в реальном времени, путем взаимодействия с ручками, переключателями и считывателями, которые имитируют внешний вид промышленных органов управления. Можно взаимодействовать с блоками панели мониторинга, не определяя местоположение целевых параметров блоков в модели. Для получения дополнительной информации см. «Настройка и визуализация модели с помощью блоков приборной панели».
Nontunable block parameters параметры, значения которых вы не можете изменить во время симуляции. Для примера вы не можете настроить Sample time параметров блоков. Если параметр нетронутый, вы не можете изменить его значение во время симуляции, изменив значение в диалоговом окне блока или изменив значение переменной рабочей области.
Нетронутые параметры блоков включают:
Шаги расчета.
Параметры, которые управляют внешним видом или структурой блока, такие как количество входов блока Sum.
Приоритет, который позволяет управлять порядком выполнения блока.
Параметры, которые управляют алгоритмом блока, такие как параметр Integrator method блока Discrete-Time Integrator.
Чтобы определить, являются ли параметры блоков настраиваемым во время симуляции, используйте один из следующих методов:
Начните симуляцию и откройте диалоговое окно блока. Если значение целевых параметров блоков является серым во время симуляции, вы не можете настроить параметр.
В командной строке определите, флаги read-write
и read-only-if-compiled
опишите параметр.
Выберите блок в модели.
В командной строке используйте функцию get_param
для возврата информации о параметрах диалогового окна блока. Функция возвращает структуру, которая имеет поле для каждого параметра в диалоговом окне блока.
paramInfo = get_param(gcb,'DialogParameters');
Кроме того, вместо определения местоположения и выбора блока в модели можно заменить gcb
с путем блока, таким как 'myModel/mySubsystem/myBlock'
.
Просмотрите информацию о целевых параметрах блоков. Например, чтобы просмотреть информацию о параметре Sample time блока, просмотрите значение поля SampleTime
, которая также является структурой.
paramInfo.SampleTime
ans = Prompt: 'Sample time:' Type: 'string' Enum: {} Attributes: {'read-write' 'read-only-if-compiled' 'dont-eval'}
Смотрите Attributes
конструкции поле, значение которого является массивом ячеек из векторов символов. Если флаг
read-write
появляется в массиве ячеек, можно изменить значение параметров. Однако, если флаг read-only-if-compiled
также появляется в массиве ячеек, вы не можете изменить значение параметров во время симуляции.
Если вы используете маски для создания пользовательских интерфейсов для блоков и подсистем, можно управлять настраиваемостью отдельных параметров маски. Если вы используете аргументы модели для параметризации ссылочных моделей, можно настроить значение каждого аргумента модели в каждом блоке Model.
Если выход вашей симуляции не меняется после изменения значения параметров, используйте следующие методы диагностики:
Найдите определение переменной рабочей области.
Если вы используете переменную рабочей области, чтобы задать значения параметров блоков, определите, где находится определение переменной. Для примера, если вы задаете переменную myVar
в рабочем пространстве модели и используя его, чтобы задать параметры блоков значение в модели, вы не можете изменить значения параметров, изменив значение переменной с именем myVar
в базовом рабочем пространстве. Вы должны получить доступ к определению переменной в рабочем пространстве модели.
Чтобы найти определение переменной, во время редактирования значения параметров блоков, которая использует переменную, нажмите кнопку действия поблизости и выберите Explore. Откроется диалоговое окно, например, Model Explorer, в котором отображается определение переменной в соответствующей рабочей области. Для получения дополнительной информации о том, как модели используют переменные, смотрите Разрешение символа.
Задайте области значений значений для параметров с фиксированной точкой, которые вы хотите настроить во время симуляции.
Если параметры блоков, который вы хотите настроить, используют тип данных с фиксированной точкой с наилучшей точностью масштабирования, задайте минимальное и максимальное значение для параметра, чтобы Simulink мог вычислить и применить соответствующее масштабирование. Если вы не задаете области значений значений, Simulink может применить масштабирование, исключающее значения настройки, которые вы хотите использовать. Для задания областей значений значений смотрите Задать минимальные и Максимальные значения для параметров блоков.
Обновляйте диаграмму модели во время запуска симуляции. Если вы используете переменную рабочей области, чтобы задать значение одного или нескольких параметров блоков, после изменения значения переменной во время симуляции, необходимо обновить диаграмму модели.
Чтобы узнать, как обновить диаграмму модели, см. «Обновление схемы» и «Запуск симуляции».
Когда вы используете Model блоки, применяются эти ограничения настраиваемых параметров:
Если вы устанавливаете режим симуляции блока Model в ускоренный режим или если вы симулируете родительскую модель в ускоренном режиме, вы не можете настроить параметры блоков в модели-ссылке во время симуляции. Однако, если ссылочная модель использует переменные в базовом рабочем пространстве или словаре данных для задания значений параметров, можно настроить значения переменных.
Предположим, что вы используете переменный MATLAB или Simulink.Parameter
объект в рабочем пространстве модели, чтобы задать значение параметров блоков в модели. Если вы используете блок Model для обращения к этой модели:
И вы устанавливаете режим симуляции блока Model в ускоренный режим или симулируете родительскую модель в ускоренном режиме, вы не можете изменить значение переменной или объекта во время симуляции.
Когда вы симулируете родительскую модель в ускоренном режиме, изменение значения переменной или объекта между запусками симуляции заставляет Simulink регенерировать код.
И вы используете дополнительные блоки Model, чтобы ссылаться на модель несколько раз в родительской модели, можно выбрать другой режим симуляции для каждого блока Model. Если хотя бы один блок использует режим нормальной симуляции, а любой другой блок использует другой режим симуляции, вы не можете изменить значение переменной или объекта во время симуляции. Кроме того, когда вы моделируете родительскую модель с быстрым перезапуском, вы не можете изменить значение переменной или объекта между запусками симуляции быстрого перезапуска.
В качестве обходного пути переместите переменную или объект в базовое рабочее пространство или словарь данных.
Эти ограничения настраиваемости применяются к акселератору, ускорителю, SIL и PIL симуляциям:
Предположим, что вы используете переменный MATLAB или Simulink.Parameter
объект в рабочем пространстве модели, чтобы задать значение параметров блоков в модели. Если вы используете sim
функция, чтобы симулировать модель в быстрых режимах Accelerator и задать RapidAcceleratorUpToDateCheck
аргумент в виде пары 'off'
, вы не можете использовать RapidAcceleratorParameterSets
пара аргумента для задания различных значений для переменной или объекта. Структура, возвращенная Simulink.BlockDiagram.buildRapidAcceleratorTarget
не содержит информацию о переменной или объекте.
Если значение параметров блоков ссылок переменных рабочей области, вы не можете изменить значение параметров блоков во время быстрой симуляции ускорителя, например, при помощи функции set_param
. Вместо этого можно настроить значения ссылочных переменных.
Кроме того, используйте наборы параметров, чтобы настроить параметры времени выполнения между симуляциями быстрого ускорителя. Для получения дополнительной информации см. Раздел «Настройка параметров во время выполнения».
Для получения дополнительной информации о настраиваемости параметров во время ускоренных симуляций, смотрите Настройка параметров выполнения и sim в parfor с Rapid Accelerator Mode. Для получения дополнительной информации о настраиваемости параметров во время SIL и PIL симуляций, смотрите Настраиваемые параметры и SIL/PIL (Embedded Coder).
Дополнительные сведения о настраиваемости параметров при использовании быстрого перезапуска см. в разделе Запуске с быстрым перезапуском.
Параметры, которые настраиваются во время симуляции, могут появиться как неотключаемые inlined параметры в сгенерированном коде. Если вы симулируете внешнюю программу с помощью симуляции SIL, PIL или Режима external mode, настраиваемость параметра во время симуляции и между запусками симуляции может зависеть от настроек генерации кода.
Чтобы управлять настраиваемостью параметров в сгенерированном коде, можно настроить настройки генерации кода для модели с помощью параметр конфигурации <reservedrangesplaceholder1>. Можно также настроить настройки для отдельных переменного MATLAB, Simulink.Parameter
объекты и другие объекты параметров. Для получения дополнительной информации смотрите Сохранить переменные в Сгенерированном Коде (Simulink Coder).
Чтобы отладить диаграмму Stateflow путем изменения данных во время симуляции, смотрите Отладку Диаграмм Stateflow (Stateflow).