exponenta event banner

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

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

Можно сдвинуть значения параметров блока или переменных рабочей области, которые используются для задания значений параметров. Используйте вкладку «Параметры» в Редакторе данных модели (на вкладке «Моделирование» выберите «Редактор данных модели»), Инспектор свойств (на вкладке «Моделирование» в разделе «Проект» выберите «Инспектор свойств»), командную строку или сценарии для изменения значений параметров между запусками моделирования.

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

Сведения о том, как управлять значениями параметров во время итерационного процесса создания модели, см. в разделе Настройка и эксперимент со значениями параметров блока.

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

Значение параметра сдвига и проверка результатов моделирования

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

Пример модели ex_sldemo_absbrake использует блок «Константа» для задания уставки проскальзывания антиблокировочной тормозной системы. Моделирование модели с двумя различными значениями уставки проскальзывания, 0,24 и 0,25, и сравнение скорости выходного колеса каждого прогона моделирования.

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

Откройте пример модели.

open_system('ex_sldemo_absbrake');

На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor).

В Редакторе данных модели (Model Data Editor) выберите вкладку Сигналы (Signals).

Установите в раскрывающемся списке Изменить представление значение Instrumentation. Столбец Log Data показывает, что сигналы yout (которая является виртуальной шиной) и slp настроены для ведения журнала. При моделировании модели можно собрать и позже проверить значения этих сигналов с помощью инспектора данных моделирования.

В Редакторе данных модели (Model Data Editor) выберите вкладку Параметры (Parameters). Задать для параметра «Изменить представление» значение Design.

В модели выберите блок «Константа» с меткой Desired relative slip. Редактор данных модели выделяет строку, соответствующую параметру «Постоянное значение» блока.

Используйте столбец Значение (Value), чтобы задать значение параметра как relSlip.

При редактировании значения рядом с relSlipнажмите кнопку действия (с тремя вертикальными точками) и выберите «Создать».

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

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

relSlip = 0.2;
set_param('ex_sldemo_absbrake/Desired relative slip','Value','relSlip')

В командной строке создайте массив для хранения двух значений эксперимента для относительной уставки проскальзывания. 0.24 и 0.25.

relSlip_vals = [0.24 0.25];

Создать Simulink.SimulationInput для каждого выполняемого моделирования (в данном случае два). Храните объекты в одной переменной массива, simIn. Используйте setVariable способ каждого объекта для идентификации каждого из двух экспериментальных значений.

for i = 1:length(relSlip_vals)
    simIn(i) = Simulink.SimulationInput('ex_sldemo_absbrake');
    simIn(i) = setVariable(simIn(i),'relSlip',relSlip_vals(i));
end

Используйте sim для моделирования модели. При необходимости сохраните выходные данные в переменной с именем simOutputs.

simOutputs = sim(simIn);
[27-Jan-2021 13:04:15] Running simulations...
[27-Jan-2021 13:04:17] Completed 1 of 2 simulation runs
[27-Jan-2021 13:04:17] Completed 2 of 2 simulation runs

Модель передает записанные сигналы, yout и slp, в Инспектор данных моделирования. Данные сигнала можно просмотреть в инспекторе данных моделирования.

Сравните выходные данные двух последних прогонов моделирования.

runIDs = Simulink.sdi.getAllRunIDs();
runResult = Simulink.sdi.compareRuns(runIDs(end-1), runIDs(end));

Постройте график разницы между значениями Ww сигнал (который является элементом сигнала виртуальной шины yout) путем указания индекса результата 1.

signalResult = getResultByIndex(runResult,1);
plot(signalResult.Diff);

Сохранить значения сдвига в Simulink.SimulationInput Объекты

При написании сценария для выполнения нескольких симуляций создайте массив Simulink.SimulationInput (один объект для каждого моделирования, которое требуется выполнить). Используйте setVariable и setBlockParameter методы каждого объекта для идентификации значений параметров, используемых для соответствующего прогона моделирования. С помощью этой техники, вы избегаете использования set_param изменение значений параметров блока и команд назначения для изменения значений переменных рабочего пространства между прогонами моделирования.

Дополнительные сведения об использовании Simulink.SimulationInput объекты для выполнения нескольких моделирований, см. sim.

Протягивание нескалярных объектов, структур и параметров

Если используются нескалярные переменные, структурные переменные или Simulink.Parameter для установки значений параметров блока используйте setVariable метод каждого Simulink.SimulationInput объект. См. примеры в таблице.

СценарийПример
переменная MATLAB ® ,myArray, значение которого является массивом. Необходимо задать третий элемент в массиве (предполагая индексирование на основе одного элемента).
setVariable(simIn,'myArray(3)',15.23)
переменная MATLAB, myStruct, у которого есть поле с именем field1.
setVariable(simIn,'myStruct.field1',15.23)
Объект параметра, myParam, чей Value свойство является скаляром.
setVariable(simIn,'myParam.Value',15.23)
Объект параметра, myArrayParam, чей Value свойство является массивом. Необходимо задать третий элемент в массиве.
setVariable(simIn,'myArrayParam.Value(3)',15.23)
Объект параметра, myStructParam, чей Value свойство является структурой. Структура имеет поле с именем field1.
setVariable(simIn,'myStructParam.Value.field1',15.23)

Значение сдвига переменной в рабочей области модели

При использовании рабочего пространства модели для хранения переменных setVariable способ Simulink.SimulationInput для изменения значения переменной используйте Workspace парный аргумент для идентификации содержащей модели:

setVariable(simIn,'myVar',15.23,'Workspace','myModel')

Захват и визуализация результатов моделирования

Каждый прогон моделирования во время сдвига параметров выдает выходные данные, такие как значения сигналов из блоков Outport и из зарегистрированных сигналов.

Эти выходные данные можно записать в переменные и объекты для последующего анализа. Дополнительные сведения см. в разделе Экспорт данных моделирования.

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

Повышение скорости моделирования

Для выполнения многих моделирований с использованием различных значений параметров можно использовать ускоренные режимы моделирования. Для более крупных моделей ускоренное моделирование занимает меньше времени, чем обычное моделирование. При наличии Toolbox™ Parallel Computing можно использовать несколько ядер процессора для одновременного выполнения моделирования. Использовать аргументы sim и parsim функции.

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

Значения параметров сдвига для тестирования и проверки системы

При использовании Simulink ® Test™ можно подтвердить, что модель по-прежнему соответствует требованиям при использовании различных значений параметров. Переопределения параметров и итерации тестов позволяют задавать различные значения параметров для каждого тестового случая. Дополнительные сведения см. в разделах Переопределения параметров (Simulink Test) и Итерации испытаний (Simulink Test).

Оценка и калибровка параметров модели

При наличии Optimization™ Simulink Design можно оценить значения параметров модели таким образом, чтобы результаты моделирования точно соответствовали данным, измеряемым в реальном мире. Этот метод используется для оценки реальных значений параметров в модели завода, которая представляет динамику реальной системы, когда непосредственно измерить значения невозможно. Эта оценка повышает точность модели установки. Дополнительные сведения см. в разделе Оценка параметров по измеренным данным (Simulink Design Optimization).

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

При наличии Design™ управления Simulink можно использовать PID-тюнер для настройки параметров блока PID-контроллера. Дополнительные сведения см. в разделе Настройка контроллера PID в Simulink (Simulink Control Design).

При использовании Simulink Design Optimization можно оптимизировать значения управляющих параметров таким образом, чтобы выходные данные моделирования соответствовали заданным требованиям к ответам. Дополнительные сведения см. в разделе Оптимизация конструкции для удовлетворения требований к ответу на шаг (GUI) (Simulink Design Optimization).

Связанные темы