Моделирование автоволновых процессов — КиберПедия 

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Моделирование автоволновых процессов

2017-11-28 272
Моделирование автоволновых процессов 0.00 из 5.00 0 оценок
Заказать работу

1. Задача: Имеется двумерная активная среда, состоящая из элементов, каждый из которых может находиться в трех различных состояниях: покое, возбуждении и рефрактерности. При отсутствии внешнего воздействия, элемент находится в состоянии покоя. В результате воздействия элемент переходит в возбужденное состояние, приобретая способность возбуждать соседние элементы. Через некоторое время после возбуждения элемент переключается в состояние рефрактерности, находясь в котором он не может быть возбужден. Затем элемент сам возвращается в исходное состояние покоя, то есть снова приобретает способность переходить в возбужденное состояние. Необходимо промоделировать процессы, происходящие в двумерной активной среде при различных параметрах среды и начальном распределении возбужденных элементов.

2. Теория. Рассмотрим обобщенную модель Винера - Розенблюта. Мысленно разобъем экран компьютера на элементы, определяемые индексами i, j и образующими двумерную сеть. Пусть состояние каждого элемента описывается фазой yi,j (t), и концентрацией активатора uij (t), где t -- дискретный момент времени.

Если элемент находится в покое, то будем считать, что yi,j (t) = 0. Если вследствие близости возбужденных элементов концентрация активатора uij (t) достигает порогового значения h, то элемент возбуждается и переходит в состояние 1. Затем на следующем шаге он переключается в состояние 2, затем -- в состояние 3 и т.д., оставаясь при этом возбужденным. Достигнув состояния r элемент переходит в состояние рефрактерности. Через (s - r) шагов после возбуждения элемент возвращается в состояние покоя.

Будем считать, что при переходе из состояния s в состояние покоя 0 концентрация активатора становится равной 0. При наличии соседнего элемента, находящегося в возбужденном состоянии, она увеличивается на 1. Если p ближайших соседей возбуждены, то на соответствующем шаге к предыдущему значению концентрации активатора прибавляется число возбужденных соседей: uij (t + Δt) = uij (t) + p.

Можно ограничиться учетом ближайших восьми соседних элементов.

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

1. Задают число элементов активной среды, ее параметры s, r, h, начальное распределение возбужденных элементов.

2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t + Δt.

3. Перебирают все элементы активной среды, определяя их фазы yi,j (t + Δt) и концентрацию активатора ui,j (t + Δt) в момент t + Δt.

4. Очищают экран и строят возбужденные элементы активной среды.

7. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла.

4. Компьютерная реализация. Ниже представлена программа, моделирующая активную среду и происходяшие в ней процессы. В программе заданы начальные значения фазы yi,j (t + Δt) всех элементов активной среды, а также имеется цикл по времени, в котором расчитываются значения yi,j (t + Δt) в следующий момент t + Δt и осуществляется графический вывод результатов на экран. Параметры среды r = 6, s = 13, h = 5, то есть каждый элемент кроме состояния покоя может находиться в 6 возбужденных состояниях и 7 состояниях рефрактерности. Пороговое значение концентрации активатора равно 5. Программа строит однорукавную волну, осциллятор и препятствие.

Program PROGRAMMA6;uses dos, crt, graph; Const N=110; M=90; s=13; r=6; h=5; Var y, yy, u: array [1..N,1..M] of integer; ii, jj, j, k, Gd, Gm: integer; i: Longint;Label met; BEGIN Gd:= Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); If GraphResult <> grOk then Halt(1); setcolor(8); setbkcolor(15);(* y[50,50]:=1; { Одиночная волна } *) For j:=1 to 45 do { Однорукавная волна } For i:=1 to 13 do y[40+i,j]:=i;(* For j:=1 to M do { Двурукавная волна } For i:=1 to 13 do begin y[40+i,j]:=i; If j>40 then y[40+i,j]:=14-i; end; *)Repeat If k=round(k/20)*20 then y[30,30]:=1; {Осциллятор 1}(* If k=round(k/30)*30 then y[20,50]:=1; {Осциллятор 2} *) For i:=2 to N-1 do For j:=2 to M-1 do begin If (y[i,j]>0) and (y[i,j]<s) then yy[i,j]:=y[i,j]+1; If y[i,j]=s then begin yy[i,j]:=0; u[i,j]:=0; end; If y[i,j] <> 0 then goto met; For ii:=i-1 to i+1 do For jj:=j-1 to j+1 do begin If (y[ii,jj]>0) and (y[ii,jj]<=r) then u[i,j]:=u[i,j]+1; If u[i,j]>=h then yy[i,j]:=1; end;met: end; Delay(2000); {Задержка} cleardevice; For i:=21 to 70 do begin yy[i,60]:=0; yy[i,61]:=0; {Препятствие} circle(6*i-10,500-6*60,3); circle(6*i-10,500-6*61,3); end; For i:=1 to N do For j:=1 to M do begin y[i,j]:=yy[i,j]; setcolor(12); If (y[i,j]>=1) and (y[i,j]<=r) then circle(6*i-10,500-6*j,3); setcolor(8); If (y[i,j]>6) and (y[i,j]<=s) then circle(6*i-10,500-6*j,2); end;until KeyPressed; CloseGraph;END.

Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.