В этом примере показано, как произвести и исследовать пробел проекта с помощью Sensitivity Analyzer. Вы исследуете проект Постоянно реактора смесителя (CSTR), чтобы минимизировать изменение концентрации продукта и стоимость изготовления. Проект должен также составлять неопределенность в температуре, и концентрация входа питаются к реактору.
Вы исследуете проект CSTR путем охарактеризования параметров модели с помощью вероятностных распределений. Вы используете распределения, чтобы сгенерировать случайные выборки и выполнить оценку Монте-Карло проекта в этих точках выборки. Вы затем создаете графики визуализировать пробел проекта и выбрать лучший проект. Вы затем используете лучший проект в качестве исходного предположения для оптимизации проекта.
Постоянно Реакторы Смесителя (CSTRs) распространены в перерабатывающей промышленности. Модель Simulink®, sdoCSTR
, моделирует покрытое кожухом диабатическое (i.e., неадиабатическая), реактор бака описан в [1]. CSTR принят, чтобы быть отлично смешанным с одной экзотермической и необратимой реакцией первого порядка., реагент, преобразован в, продукт.
В этом примере вы используете следующую модель CSTR с двумя состояниями, которая использует основные принципы учета и энергосбережения:
, и - Концентрации в CSTR и в канале [kgmol/m^3]
, и - CSTR, канал и температуры хладагента [K]
и - Объемный расход [м^3/ч] и плотность материала в CSTR [1/м^3]
и - Высота [m] и нагретая площадь поперечного сечения [м^2] CSTR.
- Предэкспоненциальный нетепловой фактор для [1/h] реакции
и - Энергия активации и тепло реакции для [kcal/kgmol]
- Газовая константа Больцманна [kcal / (kgmol * K)]
и - Теплоемкость [kcal/K] и коэффициенты теплопередачи [kcal / (м^2 * K * h)]
Откройте модель Simulink.
open_system('sdoCSTR');
Примите, что CSTR является цилиндрическим с хладагентом, к которому применяются основа цилиндра. Настройте площадь поперечного сечения CSTR и высоту CSTR, чтобы удовлетворить следующим целям проекта:
Минимизируйте изменение остаточной концентрации. Изменения остаточной концентрации негативно влияют на качество продукта CSTR. Минимизация изменений также улучшает прибыль CSTR.
Минимизируйте среднюю температуру хладагента. Нагревание или охлаждение хладагента конверта являются дорогими. Минимизация средней температуры хладагента улучшает прибыль CSTR.
Качество канала к реактору может отличаться среди поставщиков. Таким образом проект должен допускать изменения концентрации канала предоставления и питать температуру. Качество канала отличается от поставщика поставщику и также варьируется в каждом пакете предоставления.
Откройте 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
, FeedTemp0
H
и получившиеся значения требования 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')