Настройтесь и экспериментируйте со значениями параметров блоков

Когда вы создаете модель, можно экспериментировать с параметрами блоков, такими как коэффициенты блока Transfer Fcn, чтобы помочь вам решить который блоки использовать. Можно симулировать модель с различными значениями параметров, и получить и наблюдать симуляцию выход.

Можно изменить значения большинства числовых параметров блоков во время симуляции. Чтобы наблюдать эффекты, можно визуализировать симуляцию выход в режиме реального времени. Этот метод позволяет вам быстро тестировать значения параметров, в то время как вы разрабатываете алгоритм. Вы можете визуально:

  • Настройте и оптимизируйте параметры управления.

  • Калибруйте параметры модели.

  • Протестируйте робастность управления при различных условиях.

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

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

Если вы не можете визуально анализировать симуляцию выход в режиме реального времени, или если необходимо запустить много симуляций, рассмотреть использование программируемого подхода к развертке значений параметров. Можно получить выходные данные симуляции и выполнить анализ позже. Для получения дополнительной информации смотрите, Оптимизируют, Оценка и Значения Параметров блоков Развертки.

Для основной информации о доступе и устанавливании значений параметров блоков, смотрите Установленные Значения Параметров блоков.

Итеративно настройте значение параметров блоков между запусками симуляции

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

Модель sldemo_fuelsys в качестве примера представляет систему заправки бензинового двигателя. Подсистема в модели, feedforward_fuel_rate, вычисляет спрос на топливо механизма при помощи постоянного номера 14.6, который представляет идеальное (стехиометрическое) отношение воздуха, чтобы питать это, механизм использует. Два блока в подсистеме используют номер, чтобы установить значения параметров.

Предположим, что вы хотите изменить расчетное значение идеального отношения воздуха к топливу от 14.6 к 17.5 наблюдать эффект на спросе на топливо. Чтобы сохранить расчетное значение в модели, можно изменить значение в диалоговых окнах блока. В качестве альтернативы можно сохранить значение в переменной с понятным именем, которое позволяет вам снова использовать значение в двух блоках.

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

  1. Откройте модель в качестве примера.

    sldemo_fuelsys

  2. Установите время симуляции модели от 2000 к 50 для более быстрой симуляции.

  3. В модели откройте диалоговое окно блока Scope.

  4. Симулируйте модель. Измените размер окна в диалоговом окне Scope, чтобы видеть все результаты симуляции.

    Отображение осциллографа показывает это в течение симуляции, fuel сигнал колеблется приблизительно между 0.9 и 1.6. air_fuel_ratio предупредите быстро поднимается на 15 без перерегулирования.

  5. В модели откройте Model Data Editor. На вкладке Modeling нажмите Model Data Editor. В Model Data Editor смотрите вкладку Parameters.

  6. В модели или в командной строке, перейдите к целевой подсистеме.

    open_system(...
        'sldemo_fuelsys/fuel_rate_control/fuel_calc/feedforward_fuel_rate')

  7. В Model Data Editor используйте столбец Value, чтобы изменить Constant value (Value) параметр блока Constant пометил rich от 1/(14.6*0.8) к 1/(17.5*0.8).

  8. Точно так же изменитесь, параметр Constant value блока пометил normal от 1/14.6 к 1/17.5.

  9. Симулируйте модель.

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

Заменять литеральные значения в диалоговых окнах блока с числовой переменной:

  1. Используйте Model Data Editor, чтобы установить значение normal Блок Constant к 1/mixture.

  2. Установите значение rich блокируйтесь к 1/(mixture*0.8).

  3. При редактировании rich значение, рядом с 1/(mixture*0.8), кликните по кнопке действий и выберите Create.

  4. В диалоговом окне Create New Data, набор Value к 17.5 и нажмите Create.

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

Настройте значение параметров блоков в процессе моделирования

В этом примере показано, как наблюдать эффект изменения значения параметров блоков во время симуляции. Этот метод позволяет вам стараться не обновлять диаграмму модели между запусками симуляции и в интерактивном режиме тестировать и отлаживать вашу модель.

Модель sldemo_fuelsys в качестве примера содержит блок Constant, Throttle Command, это представляет команду дросселя. Наблюдать эффект увеличения величины команды в процессе моделирования:

  1. Откройте модель в качестве примера.

    sldemo_fuelsys

  2. В модели откройте диалоговое окно блока Scope.

  3. Начните симуляцию.

    Модель сконфигурирована, чтобы симулировать 2 000 секунд. Во время симуляции, значений fuel и air_fuel_ratio сигналы появляются на графике осциллографа в режиме реального времени.

  4. В модели, когда строка состояния указывает приблизительно на 1000 (1 000 секунд), нажмите кнопку Pause, чтобы приостановить симуляцию.

  5. В отображении осциллографа график fuel строит симуляцию выход до времени паузы.

  6. В модели, на вкладке Modeling, нажимают Model Data Editor.

  7. В Model Data Editor выберите вкладку Parameters.

  8. В модели выберите Throttle Command блок.

  9. В Model Data Editor выберите rep_seq_y строка. Убедитесь, что вы не выбираете rep_seq_t строка также.

  10. Для rep_seq_y строка, измените значение в столбце Value от [10 20 10] к [10 30 10].

  11. Нажмите кнопку Step Forward, чтобы усовершенствовать шаг симуляции шагом. Нажмите кнопку приблизительно 15 раз или пока вы не будете видеть изменения в графике fuel в отображении осциллографа.

    График fuel сигнала указывает на резкое увеличение в спросе на топливо, который соответствует увеличенной команде дросселя.

  12. В модели возобновите симуляцию путем нажатия кнопки Continue.

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

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

Подготовьтесь к настройке параметра и экспериментированию

  • Используйте переменные рабочей области, чтобы установить значения параметров блоков.

    Чтобы получить доступ к значению параметров блоков, таких как параметр Constant value блока Constant, необходимо перейти с блоком в модели и открыть диалоговое окно блока, искать блок при помощи Model Explorer или использовать функцию set_param в командной строке.

    В качестве альтернативы, если вы устанавливаете значение параметров блоков путем создания переменной рабочей области, можно изменить значение переменной при помощи командной строки, браузера MATLAB® Workspace или Model Explorer. Можно также создать переменную, чтобы установить то же значение для нескольких параметров блоков. Когда вы изменяете значение переменных, все целевые параметры блоков используют новое значение. Для получения дополнительной информации о доступе и устанавливании значений параметров блоков, смотрите Установленные Значения Параметров блоков.

  • Визуализируйте симуляцию выход.

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

  • Задайте диапазоны значений для параметров блоков, которые вы ожидаете настраивать в процессе моделирования.

    Если вы ожидаете, что другой человек будет использовать вашу модель и настраивать параметр, можно управлять позволенными настраивающими значениями путем указания диапазона. Кроме того, это - лучшая практика задать диапазоны значений для всех параметров блоков фиксированной точки, которые вы ожидаете настраивать. Чтобы задать диапазоны значений параметров блоков, смотрите, Задают Минимальные и Максимальные значения для Параметров блоков.

  • Управляйте длительностью симуляции и темпом.

    Запущенная симуляция может выполниться так быстро, что вы не можете настроить значения параметров блоков. Кроме того, если вы хотите изменить значение параметров в определенном времени симуляции, необходимо учиться управлять темпом симуляции. Можно конфигурировать моделирование, чтобы запуститься на определенное время или запуститься навсегда, и приостановить и усовершенствовать симуляцию, когда это необходимо, к. Для получения дополнительной информации смотрите, Симулируют Модель В интерактивном режиме и Симуляции Запуска Программно.

В интерактивном режиме настройтесь Используя блоки инструментальной панели

Можно настроить значения параметров блоков путем добавления блоков от библиотеки Dashboard до модели. Блоки инструментальной панели позволяют вам настраивать значения параметров других блоков и наблюдать симуляцию выход в режиме реального времени, путем взаимодействия с кнопками, переключателями и считываниями, которые подражают внешнему виду управлений производственным процессом. Можно взаимодействовать с блоками Инструментальной панели, не имея необходимость определять местоположение целевых параметров блоков в модели. Для получения дополнительной информации смотрите Мелодию и Визуализируйте Свою Модель с Блоками Инструментальной панели.

Какие параметры блоков являются настраиваемыми в процессе моделирования?

Nontunable block parameters является параметрами, значения которых вы не можете изменить в процессе моделирования. Например, вы не можете настроить параметры блоков Sample time. Если параметр является ненастраиваемым, вы не можете изменить его значение в процессе моделирования путем изменения значения в диалоговом окне блока или путем изменения значения переменной рабочей области.

Ненастраиваемые параметры блоков включают:

  • Шаги расчета.

  • Параметры, которые управляют внешним видом или структурой блока, такого как количество входных параметров блока Sum.

  • Приоритет, который позволяет вам порядку выполнения блока управления.

  • Параметры, которые управляют алгоритмом блока, таким как параметр Integrator method блока Discrete-Time Integrator.

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

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

  • В командной строке определите ли флаги read-write и read-only-if-compiled опишите параметр.

    1. Выберите блок в модели.

    2. В командной строке используйте функцию get_param возвратить информацию о параметрах диалогового окна блока. Функция возвращает структуру, которая имеет поле для каждого параметра в диалоговом окне блока.

      paramInfo = get_param(gcb,'DialogParameters');

      В качестве альтернативы вместо того, чтобы расположиться и выбрать блок в модели, можно заменить gcb с блоком path, таким как 'myModel/mySubsystem/myBlock'.

    3. Просмотрите информацию о целевых параметрах блоков. Например, чтобы просмотреть информацию о параметре Sample time блока, просмотрите значение поля SampleTime, который является также структурой.

      paramInfo.SampleTime
      ans = 
      
              Prompt: 'Sample time:'
                Type: 'string'
                Enum: {}
          Attributes: {'read-write'  'read-only-if-compiled'  'dont-eval'}

    4. Смотрите 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

Эти ограничения приспособляемости применяются к акселератору, быстрому акселератору, SIL и PIL симуляциям:

  • Предположим, что вы используете переменную MATLAB или Simulink.Parameter объект в рабочем пространстве модели, чтобы установить значение параметров блоков в модели. Если вы используете sim функция, чтобы симулировать модель в быстром режиме Accelerator и установить RapidAcceleratorUpToDateCheck парный аргумент к 'off', вы не можете использовать RapidAcceleratorParameterSets парный аргумент, чтобы задать различные значения для переменной или объекта. Структура, возвращенная Simulink.BlockDiagram.buildRapidAcceleratorTarget не содержит информацию о переменной или объекте.

  • Если рабочая область ссылок значения параметров блоков переменные, вы не можете изменить значение параметров блоков во время быстрой симуляции акселератора, такой как при помощи функции set_param. Вместо этого можно настроить значения переменных, на которые ссылаются.

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

Для получения дополнительной информации о приспособляемости параметра во время ускоренных симуляций, смотрите Настраивающиеся Параметры периода выполнения и sim в parfor с Быстрым Режимом Accelerator. Для получения дополнительной информации о приспособляемости параметра во время SIL и PIL симуляций, смотрите Настраиваемые параметры и SIL/PIL (Embedded Coder).

Быстрый перезапуск

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

Генерация кода и симуляция внешних программ

Параметры, которые являются настраиваемыми в процессе моделирования, могут появиться как ненастраиваемые встроенные параметры в сгенерированном коде. Если вы симулируете внешнюю программу при помощи СИЛА, PIL или симуляции Режима external mode, приспособляемость параметра во время симуляции и между запусками симуляции может зависеть от ваших настроек генерации кода.

Чтобы управлять приспособляемостью параметра в сгенерированном коде, можно настроить настройки генерации кода для модели при помощи параметра конфигурации Default parameter behavior. Можно также настроить настройки для отдельных переменных MATLAB, Simulink.Parameter объекты и другие объекты параметра. Для получения дополнительной информации смотрите Переменные Заповедника в Сгенерированном коде (Simulink Coder).

Диаграммы Stateflow

Чтобы отладить диаграмму Stateflow путем изменения данных в процессе моделирования, смотрите Отладку диаграмм Stateflow (Stateflow).

Смотрите также

Похожие темы