и приведем их к виду, непосредственно реализуемому на ЭВМ:
(5.3)
(5.4)
/*Курсовой проект по дисциплине "Моделирование систем"
студента 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*/
Рис.4. Вид пользовательского экрана.
Данный экран показывает результат моделирования системы регулирования концентрации в процессе мерсеризации при заданных индивидуальных параметрах (см. табл.2).
Рис.5. Вид пользовательского экрана.
Данный экран показывает результат моделирования системы регулирования концентрации в процессе мерсеризации при измененных параметрах, в данном случае изменен коэффициент регулятора KР (увеличен в 10 раз: c 900 до 9000). При этом заметно изменяется поведение кривой концентрации – уменьшается амплитуда колебаний графика и снижается количество шумов, т.е. система стабилизируется, что приводит к повышению точности регулирования.
Конспект лекций по дисциплине «Моделирование систем», профессор Смирнов И.Н.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.