В этом примере показано, как произвести и исследовать пробел проекта с помощью 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, 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')