Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Глава 3. Компьютерное Моделирование и Оптимизация хтпСодержание книги
Поиск на нашем сайте
Оптимальное время проведения химической реакции в аппарате идеального смешения Рассчитать оптимальное время проведения химической реакции в аппарате идеального смешения, приняв в качестве критерия оптимальности выход целевого продукта P. Схема реакции: . Порядок обеих стадий реакции – первый. Константы скоростей равны: Решение Материальный баланс по компонентам A и P: При делении уравнений на расход реагента v получаем: где - среднее время пребывания реагентов в реакторе Выход продукта P выражается: Необходимое условие существования экстремума: или Поскольку и Условие экстремума будет иметь вид: Откуда: или Программа: Model 1_ tau ( построение графиков xa от T и xp от T. Графическое решение задачи. Поиск экстремума. Программа расчета оптимального времени пребывания (tau - час) в изотермическом реакторе идеального смешения со стехиометрической схемой реакции A - P –S) Файл DATA. m Программный код файла DATA.m - задание исходной информации для расчетов function DATA global xa0 k1 k2 tau_a tau_b; Концентрация реагента А в долях в реакции A-P-S (мольные доли) xa0=1; Константы скоростей реакций (час^(-1)) k1=0.35; k2=0.13; Левая граница поиска оптимального времени пребывания в реакторе (час) tau_a=1; Правая граница поиска оптимального времени пребывания в реакторе (час) tau_b=10; end Файл model 1_ stat _ tau. m Программный код файла model1_stat_tau.m - расчет выходных концентраций продуктов из реактора Значения вектора х функции model 1_ stat _ tau зависят от параметра «tau» function x= model1_stat_tau(tau) globalxa0 k1 k2; Обнуляем матрицу a и вектор b a=zeros(2,2);b=zeros(2,1); Для решения системы уравнений используем метод обратной матрицы. Преобразуем систему уравнений:
чтобы получить коэффициенты матрицы:
Задание коэффициентов матрицы А (коэффициенты перед и ) и вектора В (коэффициенты правой части системы уравнений, после знака «равно»). a(1,1)=1+k1*tau;a(1,2)=0;b(1)=xa0; a(2,1)=tau*k1;a(2,2)=(-1-tau*k2); b(2)=0; Определение выходных параметров модели. А=х*В. х=А/В. х=А-1*В x=inv(a)*b; Оператор inv (а) - поиск обратной матрицы А end Файл GLAV _ maximum _ phi _ p. m Программный код файла GLAV_maximum_phi_p.m - главная управляющая программа clc; clear all; close all; global t xa xp tau_a tau_b; i=0; DATA; Задаем значение коэффициента tau (время пребывания в реакторе, мин) в интервале от tau_a до tau_b с шагом 0.1 for tau=tau_a:0.1:tau_b i=i+1; Вызываемфункцию x= model1_stat_tau(tau) x= model1_stat_tau(tau); Массив значений коэффициента tau (мин) в интервале от tau _ a до tau _ b с шагом 0.1 t(i)=tau; Массив значений коэффициента ха (мол.дол) - концентрации продукта А на выходе из реактора в заданном интервале температур от tau _ a до tau _ b xa(i)=x(1); Массив значений коэффициента ха (мол.дол) - концентрации продукта P на выходе из реактора в заданном интервале температур от tau _ a до tau _ b xp(i)=x(2); end REPORT; Файл REPORT. m Программный код файла REPORT.m - отчет о работе программы global xa0 k1 k2 t xa xp tau_a tau_b; Выводим на экран необходимый текст. disp('ПРОГРАММА МОДЕЛИРОВАНИЯ ИЗОТЕРМИЧЕСКОГО РЕАКТОРА ИДЕАЛЬНОГО ПЕРЕМЕШИВАНИЯ '); disp(' РЕАКЦИЯ: A - P - S'); disp('-------------------------------------------------'); disp('Программавключаетследующиефайлы: GLAV_model1_grafik.m+DATA.m+model1_stat_tau+REPORT.m'); disp('_________________________________________________ '); disp('ИСХОДНЫЕ ДАННЫЕ '); disp('-------------------------------------------------'); Оператор num2str(xa0,'%10.2f') переводит числовые значения в строковые. Для этого необходимо записать оператор num2str, далее в скобках указываем переменную, которую необходимо перевести в строковый формат «xa0», затем ставим запятую «,» либо пробел и в одинарных кавычках через точку указываем число символов (%10)в строковой переменной и количество знаков после запятой(2f). disp(['1.Концентрация реагента A на входе в реактор (xa0) = ' num2str(xa0,'%10.2f') ' мольные доли']); disp('--------------------------------------------------'); disp(['2.Константа скорости первой элементарной реакции (k1) = ' num2str(k1,'%10.2f') ' час^(-1)']); disp(['3.Константа скорости второй элементарной реакции (k2) = ' num2str(k2,'%10.2f') ' час^(-1)']); disp('---------------------------------------------------'); disp(['4.Левая граница интервала поиска оптимального времени пребывания в реакторе (tau_a) = ' num2str(tau_a,'%10.2f') ' час']); disp('--------------------------------------------------'); disp(['5. Правая граница интервала поиска оптимального времени пребывания в реакторе(tau_b) = ' num2str(tau_b,'%10.2f') ' час']); disp('___________________________________________________ '); disp('---------------------------------------------'); disp ('РЕЗУЛЬТАТЫ РАСЧЕТОВ'); disp('------------------------------------------------'); disp('--------------------------------------------'); disp ('1.Концентрации продуктов на выходе из реактора'); disp('--------------------------------------------------'); disp('_____________________________') disp(' tau(час) xa(мол.д.) xp(мол.д.) '); disp('_____________________________') i=0; Выводим таблицу данных. Переменные t, xa, xp; for i=1:length(t) tt=t(i);xaa=xa(i);xpp=xp(i); disp(sprintf('%10.3f\t %10.5f\t %10.5f',tt,xaa,xpp)); end Построение графиков hfig(1)=figure; hfig(2)=figure; Рисунок 1. График зависимости выхода продукта A от времени пребывания в реакторе. figure(hfig(1)); Построение графика plot(t,xa); Название графика title('График зависимости выхода продукта A от времени пребывания в реакторе'); Подписи осей графика. xlabel('tau - час');ylabel('Выходные концентрации: xa - мольные доли'); Наложение сетки на график gridon; Рисунок 2. График зависимости выхода продукта P от времени пребывания в реакторе figure(hfig(2)); Построение графика plot(t,xp); Название графика title('График зависимости выхода продукта P от времени пребывания в реакторе'); Подписи осей графика. xlabel('tau - час');ylabel('Выходные концентрации: xp - мольные доли'); Наложение сетки на график grid on; end Optim1_tau (Оптимальные значения режимных параметров реактора: времени пребывания, концентрации продукта А на выходе из реактора, концентрации продукта Р на выходе из реактора. Программа расчета оптимального времени пребывания (tau - час) в изотермическом реакторе идеального смешения со стехиометрической схемой реакции A - P –S) Файл DATA. m Программный код файла DATA.m - задание исходной информации для расчетов function DATA global xa0 k1 k2 tau_a tau_b; Концентрация реагента А в долях в реакции A-P-S (мольные доли) xa0=1; Константы скоростей реакций (час^(-1)) k1=0.35; k2=0.13; Левая граница поиска оптимального времени пребывания в реакторе (час) tau_a=1; Правая граница поиска оптимального времени пребывания в реакторе (час) tau_b=5; end Файл model 1_ stat _ tau. m Программный код файла model1_stat_tau.m - расчет выходных концентраций продуктов из реактора Значения параметра phi _ p функции model 1_ stat _ tau зависят от параметра «tau» function phi_p= model1_stat_tau(tau) global xa0 k1 k2 xa xp; Обнуляем матрицу a и вектор b a=zeros(2,2);b=zeros(2,1); Для решения системы уравнений используем метод обратной матрицы. Преобразуем систему уравнений: чтобы получить коэффициенты матрицы: Задание коэффициентов матрицы А (коэффициенты перед и ) и вектора В (коэффициенты правой части системы уравнений, после знака «равно»). a(1,1)=1+k1*tau;a(1,2)=0;b(1)=xa0; a(2,1)=tau*k1;a(2,2)=(-1-tau*k2); b(2)=0; Определение выходных параметров модели. А=х*В. х=А/В. х=А-1*В Оператор inv (а) - поиск обратной матрицы А x=inv(a)*b; xa=x(1);xp=x(2); Вычисление критерия оптимальности phi _ p (целевой функции); В дальнейшем будет использоваться оператор «fminbnd», который находит минимум функции. Для того чтобы найти максимум функции с помощью оператора «fminbnd», мы ставим знак «-» перед x (2)/ xa 0 phi_p=-x(2)/xa0; end Файл GLAV _ maximum _ phi _ p. m Программный код файла GLAV_maximum_phi_p.m - главная управляющая программа clc; clear all; close all; global tau_opt phi_p_max tau_a tau_b; DATA; disp('Информация об итерационном процессе расчета'); Информация об итерационном процессе расчета iteration=optimset('Display','iter'); Реализация алгоритма поиска максимума функции одной переменной [tau_opt,phi_p]=fminbnd('model1_stat_tau',tau_a,tau_b,iteration); Знак «-» перед phi _ p необходим для корректного вывода данных экстремума функции. Оператор «fminbnd» находит минимум функции со знаком «-». Нам нужен максимум функции со знаком «+». phi_p_max=-phi_p; REPORT; Файл REPORT Программный код файла REPORT.m - отчет о работе программы function REPORT global xa0 k1 k2 tau_opt phi_p_max xa xp tau_a tau_b; Выводим на экран необходимый текст. disp('ПРОГРАММА ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНОГО ВРЕМЕНИ ПРЕБЫВАНИЯ'); disp('В ИЗОТЕРМИЧЕСКОМ РЕАКТОРE ИДЕАЛЬНОГО ПЕРЕМЕШИВАНИЯ '); disp(' РЕАКЦИЯ: A - P - S'); disp('-------------------------------------------------'); disp('Программа: GLAV_maximum_phi_p.m+DATA.m+model1_stat_tau.m+REPORT.m'); disp('___________________________________________________ '); disp('ИСХОДНЫЕ ДАННЫЕ '); disp('-------------------------------------------------'); Оператор num2str(xa0,'%10.2f') переводит числовые значения в строковые. Для этого необходимо записать оператор num2str, далее в скобках указываем переменную, которую необходимо перевести в строковый формат «xa0», затем ставим запятую «,» либо пробел и в одинарных кавычках через точку указываем число символов (%10)в строковой переменной и количество знаков после запятой(2f). disp(['1.Концентрация реагента A на входе в реактор (xa0) = ' num2str(xa0,'%10.2f') ' мольные доли']); disp('-------------------------------------------'); disp(['2.Константа скорости первой элементарной реакции (k1) = ' num2str(k1,'%10.2f') ' час^(-1)']); disp('---------------------------------------------'); disp(['3.Константа скорости второй элементарной реакции (k2) = ' num2str(k2,'%10.2f') ' час^(-1)']); disp('-----------------------------------------------'); disp(['4.Левая граница интервала поиска оптимального времени пребывания в реакторе (tau_a) = ' num2str(tau_a,'%10.2f') ' час']); disp('-----------------------------------------------'); disp(['5. Правая граница интервала поиска оптимального времени пребывания в реакторе(tau_b) = ' num2str(tau_b,'%10.2f') ' час']); disp('____________________________________________________ '); disp('---------------------------------------------'); disp ('РЕЗУЛЬТАТЫ РАСЧЕТОВ'); disp('------------------------------------------------'); disp('-----------------------------------------------------'); disp ('1.Оптимальные значения режимных параметров реактора'); disp('-----------------------------------------------'); disp('____________________________________________________') disp(' tau_opt(час) phi_p_max xa(мол.д.) xp(мол.д.) '); disp('________________________________________________'); Выводим таблицу данных. Переменные tau _ opt, phi _ p _ max, xa, xp; disp(sprintf('%10.3f\t %10.5f\t %10.5f\t %10.5f',tau_opt,phi_p_max,xa,xp)); end
|
||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 121; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.186.132 (0.006 с.) |