НАЗАД

3.4. ЗАМКНУТЫЕ ЭЛЕКТРОННО-ОПТИЧЕСКИЕ САУ

В разделе 1.3 мы уже рассмотрели простейшее фотореле, управляющее мощной нагрузкой (лампой). Если фотодатчик установить напротив лампы, то получится замкнутая система управления. При определенных условиях в ней могут возникать низкочастотные автоколебания: лампа будет переодически загораться, освещать фотодиод и гаснуть. Можно подобрать такие условия (напряжение питания, сопротивление переменного резистора R2, емкость конденсатора C1, расстояние от лампы до фотодатчика, освещенность помещения), при которых система будет вести себя как гомеостат. При увеличении расстояния от лампы до фотодатчика лампа будет гореть все ярче и ярче так, чтобы освещенность фотодатчика оставалась неизменной. Ниже рассмотрены электронно-оптические системы управления, основанные на использовании персональной ЭВМ.

1. Замкнутая система автоматического управления. Установка состоит из фотодатчика, который через аналого-цифровой преобразователь подключен к LPT-порту персонального компьютера (рис. 1.2). Фотодатчик расположен напротив экрана монитора; посылаемый с него сигнал оцифровывается с помощью АЦП и поступает в ПЭВМ. Специальная программа сравнивает уровень освещенности фотодатчика с заданным пороговым уровнем и регулирует яркость экрана.

Рис. 1. Замкнутая система автоматического управления.

Рис. 1. Замкнутая система автоматического управления.

В качестве фотодатчика рекомендуется использовать фоторезистор ФСК-1, для аналого-цифрового преобразования снимаемого с него напряжения --- преобразователь напряжения в частоту (ПНЧ), рассмотренный выше. Схема включения -- на рис. 1.1. В принципе подойдет и любой другой АЦП, однако придется изменить программу, обрабатывающую сигнал, заводимый в ПЭВМ.

uses crt, dos, graph;               {Borland Pascal 7.0}
var Gd,Gm,i,k,n,kx,ky,r,r1,s,porog: integer;
    t: longint; osv,osv1,osv2: real;
BEGIN Randomize; porog:=200;
Gd:=Detect; InitGraph(Gd,Gm,'c:/bp/bgi');
Repeat
  Repeat t:=t+1; r1:=r; r:=port[889];
    If (r=127)and(r1<>127) then k:=k+1;
  until (t>100000)and(r=127)and(r1<>127);
  osv2:=osv1; osv1:=osv; osv:=t/k; t:=0; k:=1;
  {writeln(osv,' ',t,' ',k);}
  If n>640 then begin n:=0; cleardevice; end;
  If n>200 then porog:=500; setcolor(white);
  line(n,480-round(osv/2),n-1,480-round(osv1/2));
  circle(n,480-round(osv/2),2);
  If osv<porog then setcolor(white) else setcolor(black);
  s:=abs(round((osv2-porog)/10)); n:=n+2;
  For i:=1 to s do circle(random(100),random(100),5);
until KeyPressed;
END.

В опытах с ПНЧ нами использовалась программа, представленная ниже. В ней подсчитывается число импульсов k, поступивших от ПНЧ, за время, пока переменная t не увеличится от 0 до 100000. Величина osv=t/k пропорциональна освещенности фоторезистора. Увеличение или уменьшение яркости свечения небольшого прямоугольника в левой верхней части экрана осуществлялось путем рисования s белых или черных окружностей. Величина s определялась как округленное абсолютное отклонение освещенности osv от заданного уровня (то есть порогового значения) porog: s=|osv-porog|/10. Чтобы искусственно увеличить задержку использовались переменные osv1 и osv2. В нижней части экрана строится график зависимости освещенности фоторезистора от времени. Программа через некоторое время после запуска увеличивает пороговое значение porog от 200 до 500.

Если после запуска рассматриваемой замкнутой системы управления изменить освещенность в комнате или частично перекрыть фотодатчик, то произойдет автоматическое увеличение яркости экрана (ПЭВМ нарисует дополнительные окружности). Если наоборот подсветить фотодатчик внешним источником света, то ПЭВМ нарисует черные окружности тем самым уменьшив яркость экрана. В наших опытах использовалась IBM PC 486D2X.

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

Рис. 2. Моделирование замкнутой САУ.

Рис. 2. Моделирование замкнутой САУ.

В какой-то момент времени в промежуток между экраном и фоторезистором вводится 4 слоя полиэтилена, что резко уменьшает освещенность. Система реагирует так: добавляются новые белые окружности, напротив фоторезистора, его освещенность плавно увеличивается (это видно из графика). Если убрать слои полиэтилена, освещенность фоторезистора резко возрастет. Система опять прореагирует: в левом верхнем углу появятся черные окружности, освещенность фоторезистора будет плавно уменьшаться.

2. Модель управления технологическим процессом. Рассмотренная выше установка позволяет промоделировать работу САУ при управлении технологическим процессом. В нашем случае этим процессом будет рисование белой прямоугольной полосы в верхней части экрана справа на лево. Когда белая полоса дойдет до места экрана, напротив которого расположен фоторезистор, в ПЭВМ поступит сигнал, и рисование полосы прекратится. Она начнет быстро стираться слева направо, исчезнет полностью, а затем снова будет рисоваться справа на лево. Если фотодатчик сместить вправо, то белая полоса (моделирующая технологический процесс) закончится раньше. То есть длительность процесса и длина получающейся белой полосы определяется положением фотодатчика относительно экрана.

Рис. 3. Моделирование САУ, управляющей технологическим процессом.

Рис. 3. Моделирование САУ, управляющей технологическим процессом.

Используемая программа представлена ниже. Она также строит график зависимости длины рисуемой полосы от времени и освещенности фотодатчика от времени (рис. 3).

uses crt, dos,graph;
var Gd,Gm,i,k,n,kx,ky,r,r1,s,porog: integer;
    t: longint;  osv,osv1,osv2: real;
BEGIN kx:=640; porog:=300;
Gd:=Detect; InitGraph(Gd,Gm,'c:/bp/bgi');
Repeat 
  t:=0; k:=1; inc(n);
  Repeat 
     inc(t); r1:=r; r:=port[889];
     If (r=127)and(r1<>127) then k:=k+1;
  until (t>2000)and((r=127)and(r1<>127)); 
  osv1:=osv; osv:=t/k;
  If osv<porog then begin dec(kx);
  delay(1); line(kx,0,kx,100); end;
  If osv>porog then 
    begin setcolor(black);
    repeat 
      line(kx,0,kx,100); inc(kx); delay(1); 
    until kx>640;
    setcolor(white);
    end;
  circle(round(n/10),250-round((640-kx)/5),1);
  line(round(n/10),470-round(osv/2),
       round((n-1)/10),470-round(osv1/2));
until KeyPressed;
END.


ВВЕРХ