Моделирование системы регулирования концентрации в процессе мерсеризации, страница 5

и приведем их к виду, непосредственно реализуемому на ЭВМ:

   (5.3)

   (5.4)

6. Текст программы моделирования.

/*Курсовой проект по дисциплине "Моделирование систем"

студента 541 группы Крупенькин Е. В. на тему:

"Моделирование системы регулирования концентрации целлюлозы в процессе мерсеризации"

Вариант */

Zhenya*/

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include <graphics.h>

#include <conio.h>

#include<math.h>

/*Объявление переменных*/

int i,j;

int xx;

int yy;

float ksi,A,B, sigx=0.8e-4, alf=0.022, dt=0.5,mx=12.0e-4,z;

float ro=500,w0=100,w1,y0=100,V=1,a=2.0e-6,Ku=1,Kd=0.01,Tu=5,Kp=900;

float x[5001],y[5001];

float sum, my, sigy;

char ch [80];

/******************************/

main ()

{

/*Инициализация графического режима*/

int gdr = DETECT, gmod;

initgraph (&gdr,&gmod," ");

/*Конец инициализации*/

/*Получение массива значений возмущающего воздействия x(t) */

randomize();

A=exp(-alf*dt);

B=sigx*sqrt(1-A*A);

x[0]=0;

for (i=1;i<5000;i++)

{

z=0;

for (j=1;j<13;j++)

{ ksi=rand()/32767.0;

z=z+ksi;

}

z=z-6.0;

x[i]=A*x[i-1]+B*z;

}

for (i=0;i<5001;i++)

x[i]=x[i]+mx;

/*Конец формирования массива*/

/*Графилизации возмущающего воздйествия x(t)*/

/*Создания фона*/

setfillstyle (1,3);

bar (0,0,640,480);

/*Нанесение сетки и надписей*/

setcolor (0);

setlinestyle (0,0,1);

for (i=0;i<7;i++)

line (70,20+i*20,570,20+i*20);

for(i=0;i<6;i++)

line (70+i*100,20,70+i*100,140);

settextjustify(2,1);

for (i=0;i<7;i++)

{sprintf (ch,"%.3f",1.5-0.1*i);

outtextxy (65,20+20*i,ch);

}

settextjustify (1,2);

for (i=0;i<7;i++)

{sprintf (ch,"%d",500*i);

outtextxy(70+100*i,145,ch);

}

settextjustify (1,1);

outtextxy(320,10,"График возмущающнго воздействия x(t),л/с");

outtextxy (600,140,"t,c");

/*Построрение графика*/

setcolor (12);

setlinestyle (0,0,1);

moveto (70,80);

for (i=1;i<501;i++)

{xx=80-(x[i*10]-mx)*2.0e5+0.5;

lineto (70+i,xx);

}

/*Решение уравнений системы*/

y[0]=y0;

w1=0;

for(i=0;i<5001;i++)

{

y[i+1]=y[i]-x[i]*y[i]*dt/V+ro*a*w0*dt/V+ro*a*w1*dt/V;

w1=w1-dt*w1/Tu-Ku*Kp*Kd*dt/Tu*(y[i]-y0);

}

/*Вычисление математического ожидания my*/

sum=0;

for (i=0;i<5001;i++)

sum=sum+y[i];

my=sum/5001;

/*                   */

sum=0;

for (i=0;i<5001;i++)

sum=sum+(y[i]-my)*(y[i]-my);

sigy=sum/5001;

/* setka   */

setcolor(0);

setlinestyle(0,0,1);

for(i=0;i<7;i++)

line(70,180+20*i,570,180+20*i);

for(i=0;i<6;i++)

line(70+100*i,180,70+100*i,300);

settextjustify (2,1);

for(i=0;i<7;i++)

{sprintf(ch,"%d",106-2*i);

outtextxy (65,180+20*i,ch);

}

settextjustify (1,2);

for (i=0;i<7;i++)

{sprintf (ch,"%d",500*i);

outtextxy (70+100*i,305,ch);

}

settextjustify (1,1);

outtextxy (320,170,"График y");

outtextxy (600,300,"t,c");

/*Построение графика*/

setcolor (6);

setlinestyle (0,0,1);

moveto (70,240);

for (i=0;i<501;i++)

{yy=240-(y[i*10]-y0)*10;

lineto(70+i,yy);

}

getch();

closegraph();

}

/*end*/

7. Результат моделирования.

Рис.4. Вид пользовательского экрана.

Данный экран показывает результат моделирования системы регулирования концентрации в процессе мерсеризации при заданных индивидуальных параметрах (см. табл.2).

Рис.5. Вид пользовательского экрана.

Данный экран показывает результат моделирования системы регулирования концентрации в процессе мерсеризации при измененных параметрах, в данном случае изменен коэффициент регулятора KР (увеличен в 10 раз: c 900 до 9000). При этом заметно изменяется поведение кривой концентрации – уменьшается амплитуда колебаний графика и снижается количество шумов, т.е. система стабилизируется, что приводит к повышению точности регулирования.

Литература

Конспект лекций по дисциплине «Моделирование систем», профессор Смирнов И.Н.