Спроектируйте исследование Используя выборку параметра (графический интерфейс пользователя)

В этом примере показано, как произвести и исследовать пробел проекта с помощью Sensitivity Analyzer. Вы исследуете проект Постоянно реактора смесителя (CSTR), чтобы минимизировать изменение концентрации продукта и стоимость изготовления. Проект должен также составлять неопределенность в температуре, и концентрация входа питаются к реактору.

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

Модель Постоянно реактора смесителя (CSTR)

Постоянно Реакторы Смесителя (CSTRs) распространены в перерабатывающей промышленности. Модель Simulink, sdoCSTR, моделирует покрытое кожухом диабатическое (i.e., неадиабатическая), реактор бака описан в [1]. CSTR принят, чтобы быть отлично смешанным с одной экзотермической и необратимой реакцией первого порядка$A\rightarrow B$.$A$, реагент, преобразован в$B$, продукт.

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

$$\frac{d C_A}{dt} = \frac{F}{A * h}(C_{feed} - C_A)-r*C_A$$

$$\frac{d T}{dt} = \frac{F}{A * h}(T_{feed} - T) - \frac{H}{c_p \rho} r
-\frac{U}{c_p*\rho*h}(T - T_{cool})$$

$$r = k_0*e^{\frac{-E}{R*T}}$$

  • $C_A$, и$C_{feed}$ - Концентрации в CSTR и в канале [kgmol/m^3]

  • $T$$T_{feed}$, и$T_{cool}$ - CSTR, канал и температуры хладагента [K]

  • $F$ и$\rho$ - Объемный расход [м^3/ч] и плотность материала в CSTR [1/м^3]

  • $h$ и$A$ - Высота [m] и нагретая площадь поперечного сечения [м^2] CSTR.

  • $k_0$ - Предэкспоненциальный нетепловой фактор для$A\rightarrow B$ [1/h] реакции

  • $E$ и$H$ - Энергия активации и тепло реакции для$A\rightarrow B$ [kcal/kgmol]

  • $R$ - Газовая константа Больцманна [kcal / (kgmol * K)]

  • $c_p$ и$U$ - Теплоемкость [kcal/K] и коэффициенты теплопередачи [kcal / (м^2 * K * h)]

Откройте модель Simulink.

open_system('sdoCSTR');

Проблема проектирования CSTR

Примите, что CSTR является цилиндрическим с хладагентом, к которому применяются основа цилиндра. Настройте площадь поперечного сечения CSTR $A$и высоту CSTR$h$, чтобы удовлетворить следующим целям проекта:

  • Минимизируйте изменение остаточной концентрации$C_A$. Изменения остаточной концентрации негативно влияют на качество продукта CSTR. Минимизация изменений также улучшает прибыль CSTR.

  • Минимизируйте среднюю температуру хладагента$T_{cool}$. Нагревание или охлаждение хладагента конверта являются дорогими. Минимизация средней температуры хладагента улучшает прибыль CSTR.

Качество канала к реактору может отличаться среди поставщиков. Таким образом проект должен допускать изменения концентрации канала предоставления $C_{feed}$и питать температуру$T_{feed}$. Качество канала отличается от поставщика поставщику и также варьируется в каждом пакете предоставления.

Задайте переменные проекта

Откройте Sensitivity Analyzer. В модели Simulink от вкладки Apps нажмите Sensitivity Analyzer под Системами управления. Приложение открывается пустым сеансом Анализа чувствительности.

Создайте набор параметров, который включает переменные A проекта CSTR и h и параметры изменения канала FeedConc0 и FeedTemp0. Вы случайным образом генерируете несколько значений для этих параметров, чтобы оценить проект CSTR.

  • Во вкладке Sensitivity Analysis, в Выбрать Parameters выпадающее меню, выбирают New.

  • В диалоговом окне выберите A, FeedCon0, FeedTemp0, и h.

  • Нажать ОК. Пустой набор параметров, ParamSet создается в области Parameter Set браузера приложения.

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

  • Демонстрационный A от равномерного распределения с нижней границей 0,2 м^2 и верхней границей 2 м^2.

  • Демонстрационный h от равномерного распределения с нижней границей 0,5 м и верхней границей 3 м.

  • Демонстрационный FeedConc0 от нормального распределения со средним значением 10 килограмм-молей/м^3 и стандартным отклонением 0,5 килограмм-моля/м^3.

  • Демонстрационный FeedTemp0 от нормального распределения со средним значением 295 K и стандартное отклонение 3 K.

  • Задайте FeedCon0 и FeedTemp0 как негативно коррелируется с ковариацией 0.6.

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

rng('default')

В диалоговом окне Generate Random Parameter Values задайте следующее:

  • Определите номер выборок к 100

  • Для параметра A выберите Равномерное распределение, установите нижнюю границу на 0,2 и верхнюю границу к 2.

  • Для параметра FeedCon0 выберите Нормальное распределение, установите mu к 10 и sigma к 0,5, и проверка cross-correlated.

  • Для параметра FeedTemp0 выберите Нормальное распределение, установите mu к 295 и sigma к 3, и проверка cross-correlated.

  • Для параметра h выберите Равномерное распределение, установите нижнюю границу на 0,5 и верхнюю границу к 3.

  • Во вкладке Correlation Matrix, набор FeedCon0, FeedTemp0 ковариация к-0.6.

  • Нажмите ОК, чтобы сгенерировать значения параметров.

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

Чтобы построить набор параметров нажимают ParamSet в области Parameter Sets браузера приложения. Во вкладке Plots выберите Scatter Plot в галерее графиков. График показывает гистограмму сгенерированных параметров на диагональных и попарных значениях параметров на недиагональном.

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

Каждый маркер на графике представляет одну строку ParamSet таблица, с каждой строкой, одновременно отображаемой на всех графиках. Корреляция между FeedCon0 и FeedTemp0 будьте видны на графике.

Задайте требования для оценки

Проект CSTR требуется, чтобы минимизировать изменение остаточной концентрации и минимизировать среднюю температуру хладагента. Выберите New Requirement и нажмите Signal Property, чтобы создать требование, чтобы минимизировать остаточное изменение концентрации.

В диалоговом окне Create Requirement задайте следующие поля:

  • В Свойстве выпадающий список выберите Signal Variance.

  • В типе выпадающий список выберите Minimize.

  • В области Select Signals выберите регистрируемый сигнал применить требование к. Сделать так нажатие кнопки +. Create Signal Set диалоговое окно открывается, где вы задаете регистрируемый сигнал. В модели Simulink кликните по сигналу в CA выход CSTR блок. Диалоговое окно теперь отображается этот сигнал. Добавьте сигнал в набор сигнала и нажмите ОК.

  • Закройте диалоговое окно требования Свойства Сигнала путем нажатия на x в верхнем правом диалоговом углу.

Закройте диалоговое окно Create Requirement. Новое требование, SignalProperty перечислен в области Requirements браузера приложения

  • Щелкните правой кнопкой по SignalProperty, выберите Rename; переименуйте требование в ConcVar.

Выберите New Requirement и нажмите Signal Property, чтобы создать требование, чтобы минимизировать среднее значение хладагента (выход блока sdoCSTR/Controller) температура.

В диалоговом окне Create Requirement задайте следующие поля:

  • В Свойстве выпадающий список выберите Signal Mean.

  • В Типе выпадающий список выберите Minimize.

  • В области Select Signals добавьте sdoCSTR/Controller предупредите к требованию.

Закройте диалоговое окно Create Requirement. Новое требование, SignalProperty создается в области Requirements браузера приложения. Переименуйте требование CoolMean.

Оценить

Во вкладке Sensitivity Analysis нажмите Select for Evaluation. По умолчанию все требования выбраны, чтобы быть оцененными. Нажмите Evaluate Model, чтобы оценить ConcVar и CoolMean требования для каждой строки значений параметров в ParamSet. Обратите внимание, что можно ускорить оценку при помощи параллельных вычислений, если у вас есть Parallel Computing Toolbox(TM), или при помощи быстрого перезапуска. Для получения дополнительной информации см., что "Параллельные вычисления использования для Анализа чувствительности" и "используют Быстрый Режим Перезапуска Во время Анализа чувствительности" в документации Simulink Design Optimization™.

График рассеивания результатов, показывающий каждый параметр по сравнению с каждым требованием, обновляется во время оценки модели. В конце оценки составлена таблица результатами оценки, каждая строка в таблице результата оценки содержит значения для A, FeedCon0, FeedTemp0H и получившиеся значения требования ConcVar и CoolMean. Результаты оценки хранятся в EvalResult переменная в области Results приложения.

Анализируйте результаты оценки

График рассеивания результатов для EvalResult показывает тот CoolMean обратно пропорционально коррелируется с h (увеличивающийся h уменьшения CoolMean) и тот низкие значения h может привести к высоким значениям для ConcVar. График показывает что низкие значения A может привести к высоким значениям для ConcVar, но это не ясно из графика как A коррелируется с ConcVar или CoolMean или какой параметр влияет на ConcVar большинство. Чтобы заняться расследованиями далее, во вкладке Statistics, выбирают все методы анализа и типы и нажимают Compute Statistics. Это выполняет анализ результатов оценки и создает график торнадо. График торнадо показывает влияние каждого параметра на каждом требовании:

  • h обратно пропорционально коррелируется с CoolMean, и параметр, который влияет на CoolMean большинство.

  • A обратно пропорционально коррелируется с CoolMean.

  • FeedCon0 и FeedTemp0 обратно пропорционально коррелируются с CoolMean.

  • A обратно пропорционально коррелируется с ConcVar, и параметр, который влияет на ConcVar большинство.

  • h обратно пропорционально коррелируется с ConcVar.

  • FeedCon0 и FeedTemp0 смешали корреляцию с ConVar, но имейте минимальную корреляцию с ConcVar.

Анализ показывает что, выбирая большой h, уменьшать CoolMean и выбор большого A уменьшать CoolVar казалось бы, был бы хорошим проектным решением. Можно подтвердить это путем создания контурного графика CoolMean и CoolVar по сравнению с h и A. Выберите EvalResult от области Results браузера приложения, и во вкладке Plots, в галерее графиков кликают по Контурному графику. На контурном графике выбирают h для параметра Y обратите внимание что большой h средние значения A дайте низкие значения для обоих ConcVar и CoolMean.

Выберите исходное предположение для оптимизации

Сортировка таблицы Evaluation Result путем уменьшения h, и выберите строку, которая имеет низкий ConcVar и CoolMean значения. Щелкните правой кнопкой по выбранной строке и нажмите Extract Parameter Values. Извлеченные значения параметров сохранены в ParamValues переменная в области Results браузера приложения. Эти значения параметров используются в качестве исходного предположения для оптимизации.

Оптимизировать

Используйте данные в Sensitivity Analyzer, чтобы создать задачу оптимизации, чтобы оптимизировать A и h. В Sensitivity Analysis вкладка нажимает Optimize и выбирает Create Response Optimization Session. Это открывает диалоговое окно, чтобы импортировать данные от Анализа чувствительности до Response Optimizer.

  • Выберите ConcVar и CoolMean требования, чтобы импортировать.

  • Выберите ParamValues импортировать как переменные проекта для оптимизации.

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

  • Нажмите ОК, чтобы импортировать данные к Response Optimizer

Сконфигурируйте Response Optimizer, чтобы оптимизировать проект CSTR:

  • Кликните по значку карандаша, чтобы отредактировать ParamValues спроектируйте переменный набор и удалите FeedCon0 и FeedTemp0 переменные из набора переменной проекта.

  • Выберите EvalResult как неопределенный переменный набор, кликните по значку карандаша, чтобы отредактировать EvalResult, и удалите A и h от неопределенного переменного набора.

Добавьте графики итерации, чтобы видеть, как переменные ParamValues A и h), и требования оптимизации ConcVar и CoolMean изменитесь во время оптимизации.

  • Выберите переменные в Data to Plot выпадающий список, и выбирает Iteration Plot в Add Plot выпадающий список.

  • Нажмите Optimize.

Оптимизация минимизирует CoolMean и ConcVar в присутствии различного FeedCon0 и FeedTemp0.

Связанные примеры

Чтобы изучить, как исследовать CSTR, проектируют пробел с помощью sdo.evaluate команда, смотрите, что Исследование Проекта Использует Выборку Параметра (Код).

Ссылки

[1] Bequette, Б.В. Просесс Динэмикс: Моделирование, Анализ и Симуляция. 1-й редактор Верхний Сэддл-Ривер, NJ: Prentice Hall, 1998.

Закройте модель

bdclose('sdoCSTR')

Похожие темы