Определение содержания лигнина в целлюлозе

Автор работы: Пользователь скрыл имя, 18 Марта 2014 в 16:48, курсовая работа

Описание работы

Темой данной курсовой работы является разработка программы для вычислений зависимости содержания лигнина в целлюлозе от длительности процесса делигнификации.
Лигнин (от лат. 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


 

  1. Таблица входных и выходных данных

 

В таблице 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. Схема алгоритма

 

На рисунке 1 представлена схема алгоритма программы по получению эмпирических зависимостей.

 


 

  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.

 

  1. Результаты вычислений

 

На рисунке 2 представлен общий вид программы перед началом работы. На рисунке 3 представлен вид программы после выполнения аппроксимации. Исходные данные на графике показаны в виде точек. Полученные эмпирические зависимости – в виде формул и графиков.

 
 
Заключение


 

Процессы делигнификации и отбелки целлюлозы представляют собой комплекс химических, физико-химических и физических реакций и процессов, имеющих нелинейный характер, протекающих как на границе раздела фаз в полимерной матрице, так и в гомогенно-гетерофазных условиях. Сложность объекта обуславливает актуальность статистического анализа массивов экспериментальных данных и получения эмпирических зависимостей для расчетов и анализа процессов.

Данная программа, используя экспериментальные данные, вычисляет эмпирические зависимости линейного и квадратичного вида. И рекомендует ту или иную формулу для последующих расчетов, в зависимости от результатов решения задачи аппроксимации по методу наименьших квадратов.

Результаты программы необходимы для упрощения и ускорения вычислений, связанных с процессами делигнификации и отбелки целлюлозы пероксидом водорода, а также с анализом этих процессов. Точные экспериментальные данные и увеличение их количества позволит получить более точные результаты вычислений.

 

Приложение А

(справочное)

Спецификация основных блоков

 

Таблица А.1 – Спецификация основных блоков

Название блока

Блок (обозначение)

Действие (пояснение)

1. Пуск – остановка

Начало, конец, остановка, начало и конец подпрограммы

2. Ввод – вывод

Обобщенный ввод или вывод данных. Преобразование данных в форму, пригодную для обработки (ввод), и отображение результатов обработки (вывод).

3. Процесс

Вычислительное действие или последовательность вычислительных действий. Действие по изменению значения, формы представления или расположения данных.

4. Решение

Проверка условия, выбор дальнейшего пути.

5. Модификация

Начало цикла, организация цикла.

6. Соединитель

Разрыв линии потока.

7. Линия потока

Указывает последовательность действий.


 

 

 

Приложение Б

(справочное)

Библиографический список

 

  1. Климова, Л. М. Delphi 7. Основы программирования. Решение типовых задач [Текст] : самоучитель / Л. М. Климова. - 2-е изд., доп. - Москва : Кудиц-Образ, 2005. - 480 с.

  1. Курсовые работы по информатике [Текст]: методические указания к выполнению курсовых работ по курсу «Информатика» для студентов всех специальностей и всех форм обучения / сост. Н. М. Третьякова, М. Л. Герасин. ; Сыкт. лесн. ин-т. – Сыктывкар: СЛИ, 1999. – 52 с.

  1. Карманов, А. П. Целлюлоза и лигнин - свойства и применение [Текст] : [монография] / А. П. Карманов, Л. С. Кочева ; отв. ред. К. Г. Боголицын ; Коми НЦ УрО РАН, Ин-т химии. - Сыктывкар : [б. и.], 2006. - 248 с

  1. Федорова, Э. И. Применение кислородсодержащих реагентов для отбелки целлюлозы [Текст] : [монография] / Э. И. Федорова ; Федеральное агентство по образованию, С.-Петерб. гос. лесотех. акад., Сыкт. лесн. ин-т (фил.). - Сыктывкар : СЛИ, 2006. - 128 с.

  1. Кауфман, В. Ш. Языки программирования. Концепции и принципы [Электронный ресурс] : [монография] / В. Ш. Кауфман ; Университетская библиотека онлайн (ЭБС). - Москва : ДМК Пресс, 2011. - 464 с.

 

 


Информация о работе Определение содержания лигнина в целлюлозе