Проект исследования с использованием выборки параметров (GUI)

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

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

Бак с непрерывным перемешиванием (CSTR)

Баки с непрерывным перемешиванием (CSTR) распространены в технологической промышленности. Модель Simulink, sdoCSTR, моделирует сахарный диабат (то есть неадиабатический) бак реактор, описанный в [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}$ - Концентрации A в CSTR и в сырье [кгмоль/м ^ 3]

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

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

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

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

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

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

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

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

open_system('sdoCSTR');

Проблема проекта CSTR

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

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

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

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

Задайте конструктивные переменные

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

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

  • На вкладке Анализ чувствительности, в раскрывающемся меню Выбрать параметры, выберите Создать.

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

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

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

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

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

  • Выборка FeedConc0 от нормального распределения со средним 10 кгмоль/м ^ 3 и стандартным отклонением 0,5 кгмоль/м ^ 3.

  • Выборка FeedTemp0 от нормального распределения со средним 295 К и стандартным отклонением 3 К.

  • Задайте FeedCon0 и FeedTemp0 как отрицательно коррелирует с ковариацией 0,6.

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

rng('default')

В диалоговом окне «Генерация значений случайных параметров» задайте следующее:

  • Установите количество выборок равным 100

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

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

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

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

  • На вкладке Матрица установите FeedCon0, FeedTemp0 ковариация до -0,6.

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

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

Чтобы построить график набора параметров, нажмите ParamSet в области Наборы параметров браузера приложения. На вкладке Графики выберите График Поля Точек в галерее графиков. График показывает гистограмму сгенерированных параметров на диагональном и парном значениях параметров на off-диагонали.

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

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

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

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

В диалоговом окне «Создание требования» задайте следующие поля:

  • В раскрывающемся списке Свойства выберите Signal Отклонения.

  • В раскрывающемся списке type выберите Minimize.

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

  • Закройте диалоговое окно Signal Property, щелкнув значок x в правом верхнем углу диалогового окна.

Закройте диалоговое окно «Создание требования». Новое требование, SignalProperty перечислен в области Требования браузера приложения

  • Щелкните правой кнопкой мыши SignalProperty, выберите «Переименовать»; переименовать требование в ConcVar.

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

В диалоговом окне «Создание требования» задайте следующие поля:

  • В раскрывающемся списке Property выберите Signal Mean.

  • В раскрывающемся списке «Тип» выберите «Минимизировать».

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

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

Оценить

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

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

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

Результаты графика поля точек для 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 в области Результаты браузера приложения и на вкладке Графики в галерее графиков щелкните Контурный график. На контурном графике выберите h для параметра Y обратите внимание, что большие h средние значения A дать низкие значения для обоих ConcVar и CoolMean.

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

Отсортируйте таблицу результатов оценки путем уменьшения h, и выберите строку с низким ConcVar и CoolMean значения. Щелкните правой кнопкой мыши выбранную строку и выберите «Извлечь значения параметров». Извлеченные значения параметров сохраняются в ParamValues переменная в области Результаты браузера приложения. Эти значения параметров используются в качестве начального предположения для оптимизации.

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

Используйте данные в Sensitivity Analyzer, чтобы создать задачу оптимизации для оптимизации A и h. На вкладке Анализ чувствительности нажмите Оптимизировать и выберите Создать сеанс оптимизации отклика. Это открывает диалоговое окно для импорта данных из анализа чувствительности в Response Optimizer.

  • Выберите оба ConcVar и CoolMean требования к импорту.

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

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

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

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

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

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

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

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

  • Нажмите «Оптимизировать».

Оптимизация минимизирует CoolMean и ConcVar при наличии меняющихся FeedCon0 и FeedTemp0.

Похожие примеры

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

Ссылки

[1] Бекет, B.W. Динамика процесса: моделирование, анализ и симуляция. 1-я ред. Верхняя Седловая река, Нью-Джерси: Prentice Hall, 1998.

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

bdclose('sdoCSTR')

Похожие темы