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

Когда вы создаете модель, можно экспериментировать с параметрами блоков, такими как коэффициенты блока 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 путем выбора View> 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 from 1/(14.6*0.8) to 1/(17.5*0.8).

  8. Точно так же изменитесь, параметр Constant value блока маркировал normal from 1/14.6 to 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. В модели выберите View> 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).

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

Похожие темы