Определение содержания лигнина в целлюлозе
Курсовая работа, 18 Марта 2014, автор: пользователь скрыл имя
Описание работы
Темой данной курсовой работы является разработка программы для вычислений зависимости содержания лигнина в целлюлозе от длительности процесса делигнификации.
Лигнин (от лат. lignum – дерево) - сложный (сетчатый) ароматический природный полимер входящий в состав наземных растений, продукт биосинтеза. После целлюлозы, лигнин самый распространенный полимер на земле, играющий важную роль в природном круговороте углерода.
Содержание работы
Введение 3
1 Теоретические сведения 4
1.1 Классификация языков программирования 4
1.2 Декларативное программирование 6
2 Постановка задачи 9
3 Таблица входных и выходных данных 13
4 Схема алгоритма 15
5 Листинг программы 17
6 Результаты вычислений 21
Заключение 23
Приложение А (справочное). Спецификация основных блоков 24
Приложение Б (справочное). Библиографический список 26
Файлы: 1 файл
Курсовая работа. Пояснительная записка.docx
— 345.52 Кб (Скачать файл)
60 |
65 |
70 |
75 |
80 |
85 |
90 |
95 |
100 |
105 |
120 |
130 |
140 |
47,8 |
46,9 |
46 |
45,8 |
45,2 |
44,9 |
44,6 |
43,2 |
42,7 |
42,2 |
41,5 |
41,4 |
41,2 |
150 |
160 |
170 |
180 |
190 |
200 |
210 |
110 |
115 |
220 |
230 |
240 |
41,1 |
40,9 |
40,6 |
40,4 |
40,1 |
39,9 |
39,7 |
42 |
41,7 |
39,6 |
39,4 |
39,3 |
- Таблица входных и выходных данных
В таблице 2 приводится описание входных, выходных и промежуточных данных, используемых при разработке алгоритма и составлении программы.
Таблица 2 – Таблица входных и выходных данных
Параметр (данное) |
Обозначение |
Размерность |
Тип переменной |
Имя в программе |
Входные данные | ||||
Содержание лигнина в целлюлозе |
L |
% |
массив вещ. чисел |
y[i] |
Время делигнификации |
t |
c |
массив вещ. чисел |
x[i] |
Промежуточные данные | ||||
Сумма экспериментальных данных (t) |
числ. вещ |
sx | ||
Сумма экспериментальных данных (L) |
числ. вещ |
sy | ||
Сумма данных (t) возведенных во вторую степень |
числ. вещ. |
kx | ||
Сумма данных (t) возведенных в третью степень |
числ. вещ |
stx | ||
Сумма данных (t) возведенных в четвертую степень |
числ. вещ |
shx | ||
Сумма данных (t) возведенных во вторую степень сложенных с данными (L) |
числ. вещ |
skxy | ||
Сумма данных (t) сложенных с данными (L) |
числ. вещ |
sxy | ||
Определитель системы |
|
числ. вещ |
d | |
Определитель а |
a |
числ. вещ |
da | |
Определитель в |
b |
числ. вещ |
db | |
Определитель с |
c |
числ. вещ |
dc | |
Результат полученной линейной зависимости в точках x[i] |
массив вещ. чисел |
ygi | ||
Результат полученной квадратичной зависимости в точках x[i] |
массив вещ. чисел |
ykgi | ||
Сумма квадратов уклонений от линейной зависимости |
числ. вещ |
u | ||
Сумма квадратов уклонений от квадратной зависимости |
числ. вещ |
v | ||
Выходные данные | ||||
Коэффициент эмперической зависимости |
a |
числ. вещ. |
a1, a2 | |
Коэффициент эмперической зависимости |
b |
числ. вещ. |
b1, b2 | |
Коэффициент эмперической зависимости |
c |
числ. вещ. |
c | |
- Схема алгоритма
На рисунке 1 представлена схема алгоритма программы по получению эмпирических зависимостей.
- Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, TeEngine, TeeFunci, Series, ExtCtrls, TeeProcs,
Chart;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button3: TButton;
Button4: TButton;
Chart1: TChart;
Series1: TLineSeries;
TeeFunction1: TAddTeeFunction;
Series2: TLineSeries;
TeeFunction2: TAddTeeFunction;
Series3: TLineSeries;
TeeFunction3: TAddTeeFunction;
Series4: TLineSeries;
TeeFunction4: TAddTeeFunction;
Button5: TButton;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
OpenDialog1: TOpenDialog;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,n:integer;
x,y: array [1..100] of real;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='t,c';
StringGrid1.Cells[0,1]:='L,%';
end;
var fd:Text;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
AssignFile(fd, OpenDialog1.FileName);
reset(fd);
n:=StringGrid1.ColCount;
for i:=1 to n do
begin
read(fd,x[i],y[i]);
StringGrid1.Cells[i,0]:=FloatToStr(x[i]);
StringGrid1.Cells[i,1]:=FloatToStr(y[i]);
end;
CloseFile(fd);
Button3.Enabled:=True;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var yg,ykg: array [1..100] of real;
sx,sy,kx,shx,stx,skxy,sxy,u,v,d,da,db,dc,c,a1,b1,a2,b2:real;
begin sx:=0;sy:=0;kx:=0;sxy:=0;shx:=0;stx:=0;skxy:=0;
u:=0;v:=0;
n:=StringGrid1.ColCount;
for i:=1 to n do
begin
sx:=sx+x[i];
sy:=sy+y[i];
kx:=kx+x[i]*x[i];
stx:=stx+x[i]*x[i]*x[i];
shx:=shx+x[i]*x[i]*x[i]*x[i];
skxy:=skxy+x[i]*x[i]*y[i];
sxy:=sxy+x[i]*y[i];
Series1.Active:=True;
Series1.AddXY(x[i],y[i]);
end;
d:=n*kx-sx*sx;
da:=sy*kx-sx*sxy;
db:=n*sxy-sx*sy;
a1:=da/d;
b1:=db/d;
Series2.Active:=True;
for i:=1 to n do
begin
yg[i]:=a1+b1*x[i];
u:=u+sqr(yg[i]-y[i]);
Series2.AddXY(x[i],yg[i]);
end;
Label1.Caption:='y='+FloatToStrF(a1,
ffFixed,6,2)+'+'+FloatToStrF(b1, ffFixed,6,2)+'x';
d:=(n*shx+2*sx*stx-kx*kx)*kx-sx*sx*shx-n*stx*stx;
da:=(shx*sy+stx*sxy-kx*skxy)*kx+(sx*skxy-stx*sy)*stx-sx*shx*sxy;
db:=(stx*sy+sx*skxy-kx*sxy)*kx+(n*sxy-sx*sy)*shx-n*stx*skxy;
dc:=(n*skxy+sx*sxy-kx*sy)*kx+(stx*sy-sx*skxy)*sx-n*stx*sxy;
a2:=da/d;
b2:=db/d;
c:=dc/d;
Series4.Active:=True;
for i:=1 to n do
begin
ykg[i]:=a2+b2*x[i]+c*x[i]*x[i];
v:=v+sqr(ykg[i]-y[i]);
Series4.AddXY(x[i],ykg[i]);
end;
Label2.Caption:='y='+FloatToStrF(a2,
ffFixed,6,2)
+'+'+FloatToStrF(b2, ffFixed,6,2)+'x+'+FloatToStrF(c,
ffFixed,6,4)+'x^2';
if u<v then
Label4.Caption:='Рекомендованная
эмпирическая зависимость для
расчетов:'
+' y='+FloatToStrF(a1, ffFixed,6,2)+'+'+FloatToStrF(b1,
ffFixed,6,2)+'x'
else
Label4.Caption:='Рекомендованная
эмпирическая зависимость для
расчетов:'+
' y='+FloatToStrF(a2, ffFixed,6,2)+'+'+FloatToStrF(b2,
ffFixed,6,2)+
'x+'+FloatToStrF(c, ffFixed,6,4)+'x^2';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
for i:=1 to n do
begin
StringGrid1.Cells[i,0]:='';
StringGrid1.Cells[i,1]:='';
end;
Series1.Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series1.Active:=False;
Series2.Active:=False;
Series3.Active:=False;
Series4.Active:=False;
Label1.Caption:='';
Label2.Caption:='';
Label4.Caption:='';
Button3.Enabled:=False;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Close;
end;
end.
- Результаты вычислений
На рисунке 2 представлен общий вид программы перед началом работы. На рисунке 3 представлен вид программы после выполнения аппроксимации. Исходные данные на графике показаны в виде точек. Полученные эмпирические зависимости – в виде формул и графиков.
Заключение
Процессы делигнификации и отбелки целлюлозы представляют собой комплекс химических, физико-химических и физических реакций и процессов, имеющих нелинейный характер, протекающих как на границе раздела фаз в полимерной матрице, так и в гомогенно-гетерофазных условиях. Сложность объекта обуславливает актуальность статистического анализа массивов экспериментальных данных и получения эмпирических зависимостей для расчетов и анализа процессов.
Данная программа, используя экспериментальные данные, вычисляет эмпирические зависимости линейного и квадратичного вида. И рекомендует ту или иную формулу для последующих расчетов, в зависимости от результатов решения задачи аппроксимации по методу наименьших квадратов.
Результаты программы необходимы для упрощения и ускорения вычислений, связанных с процессами делигнификации и отбелки целлюлозы пероксидом водорода, а также с анализом этих процессов. Точные экспериментальные данные и увеличение их количества позволит получить более точные результаты вычислений.
Приложение А
(справочное)
Спецификация основных блоков
Таблица А.1 – Спецификация основных блоков
Название блока |
Блок (обозначение) |
Действие (пояснение) |
1. Пуск – остановка |
|
Начало, конец, остановка, начало и конец подпрограммы |
2. Ввод – вывод |
|
Обобщенный ввод или вывод данных. Преобразование данных в форму, пригодную для обработки (ввод), и отображение результатов обработки (вывод). |
3. Процесс |
|
Вычислительное действие или последовательность вычислительных действий. Действие по изменению значения, формы представления или расположения данных. |
4. Решение |
|
Проверка условия, выбор дальнейшего пути. |
5. Модификация |
|
Начало цикла, организация цикла. |
6. Соединитель |
|
Разрыв линии потока. |
7. Линия потока |
|
Указывает последовательность действий. |
Приложение Б
(справочное)
Библиографический список
Климова, Л. М. Delphi 7. Основы программирования. Решение типовых задач [Текст] : самоучитель / Л. М. Климова. - 2-е изд., доп. - Москва : Кудиц-Образ, 2005. - 480 с.
Курсовые работы по информатике [Текст]: методические указания к выполнению курсовых работ по курсу «Информатика» для студентов всех специальностей и всех форм обучения / сост. Н. М. Третьякова, М. Л. Герасин. ; Сыкт. лесн. ин-т. – Сыктывкар: СЛИ, 1999. – 52 с.
Карманов, А. П. Целлюлоза и лигнин - свойства и применение [Текст] : [монография] / А. П. Карманов, Л. С. Кочева ; отв. ред. К. Г. Боголицын ; Коми НЦ УрО РАН, Ин-т химии. - Сыктывкар : [б. и.], 2006. - 248 с
Федорова, Э. И. Применение кислородсодержащих реагентов для отбелки целлюлозы [Текст] : [монография] / Э. И. Федорова ; Федеральное агентство по образованию, С.-Петерб. гос. лесотех. акад., Сыкт. лесн. ин-т (фил.). - Сыктывкар : СЛИ, 2006. - 128 с.
Кауфман, В. Ш. Языки программирования. Концепции и принципы [Электронный ресурс] : [монография] / В. Ш. Кауфман ; Университетская библиотека онлайн (ЭБС). - Москва : ДМК Пресс, 2011. - 464 с.