Алгоритмы цифрового управления для управляющей вычислительной машины

Адаптивные цифровые алгоритмы. Многомерные цифровые алгоритмы и системы управления с управляющими компьютерами. Достоинства и недостатки модальных алгоритмов цифрового управления. Программная реализация алгоритмов управления и переменного запаздывания.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 22.07.2015
Размер файла 63,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

алгоритмы цифрового управления для увм

1. Адаптивные цифровые алгоритмы

Идея самонастройки состоит в том, что на вход объекта или регулятора подается чисто периодический пробный сигнал. Частоту этого сигнала определяют таким образом, чтобы она соответствовала резонансной частоте замкнутой системы.

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

Целью самонастройки является расчет таких параметров, при которых на частоте

wgh=whtp

в системе обеспечивается показатель колебательности М=1,6.

Рассмотрим принцип адаптивного регулятора с частотным разделением каналов управления и самонастройки. Идея частотного разделения каналов управления и самонастройки состоит в исключении из рабочего спектра частот основного контура регулирования (полосы пропускания системы) одной или нескольких частот и направления этих гармоник для идентификации динамических характеристик объекта или разомкнутой системы.

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

Для схемы представленной на рисунке 1.а при разомкнутом основном контуре можно определить одну точку АФХ объекта управления.

Для схемы представленной на рисунке 1.б при разомкнутом основном контуре можно определить одну точку АФХ разомкнутой системы.

Рис. 1.а.

Рис. 1.б

На схемах представленных на рисунке 1 введены следующие обозначения:

ГСК - генератор синусоидальных колебаний,

ЗФ - заграждающий фильтр,

ПИ - ПИ-регулятор,

ОУ - объект управления.

Для первой схемы расчет параметров ПИ-регулятора производится по формулам Зиглера Никольса:

Т =Т / 1.2

К =0.45К =0.45 А / А

Заграждающий фильтр второго порядка работает по следующему алгоритму:

У (К)=-c*У (К-2)+b*(У(К-1)-У (К-1))+a*(У(К-2)+У(К))

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

а=(1+W )/f,

W=ctg(p/N),

b=2*(1-W )/f,

с=(1-W/D +W )/f,

f=1+W/D +W,

где D -добротность фильтра.

Нормированный период связан с частотой пробных колебаний соотношением

w=2p/(N*T).

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

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

Р - настраиваемый ПИ-регулятор,

ЗФ - заграждающий фильтр,

ОУ - объект управления,

СД - синхронный детектор,

БФАЧ - блок фазовой автоподстройки частоты,

Г - генератор пробных колебаний,

ВБ - вычислительные блоки.

Рис. 2

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

В этом блоке осуществляется сравнение установившегося значения фазы колебаний для текущей частоты с фазовым сдвигом

v =-p.

Если текущий фазовый сдвиг меньше -p, то частота генератора должна увеличиваться. Оценку установившегося значения амплитуды и фазы колебаний осуществляет блок синхронного детектирования. По достижении заданной фазы колебаний, через ВБ осуществляется расчет параметров настройки ПИ-регулятора. В это же время перестроение заграждающего фильтра осуществляется при каждой смене w. В данном случае работает система слежения за фазовым сдвигом в ОУ и при изменениях параметров ОУ фаза колебаний будет удерживаться на уровне v. Это гарантирует непрерывную настройку параметров регулятора под изменяющиеся характеристики объекта управления.

1.1 Описание программы цифрового управления в реальном времени

Программа цифрового управления в реальном времени написана на языке высокого уровня С++. Ее листинг приведен в приложении. Для трансляции программы используется компилятор Borland C++ версии 2.0.

В начале программы определены стандартные библиотеки часть, функций из которых будет использоваться в программе. Далее определяется ряд переменных, необходимых для работы специального драйвера с именем INTERRUP.EXE, который обслуживает плату ЦАП-АЦП. Этот драйвер загружается лишь один раз в оперативную память ЭВМ до начала компиляции программы управления P-REG.cpp. Кроме этого для инициализации платы ЦАП-АЦП служит функция inicial, а для ввода и вывода информации - функции getADC, setDAC, update. Все эти функции написаны на языке Ассемблер.

В классе REG определены переменные xz - сигнал задания kp - коэффициент усиления регулятора v - выходной сигнал регулятора (переменные вещественного типа). Здесь же определен конструктор инициализации REG и функция Computer вычисления сигнала пропорционального регулятора. Конструктор и эта функция описаны ниже по ходу текста.

В основной части программы (после main) сначала происходит инициализация графического режима работы дисплея, что позволяет наблюдать графики изменения скорости вращения и напряжения управления во времени. Далее задается период ТК квантования (опроса) в тиках таймера BIOSа ЭВМ. Минимальное значение периода может быть установлено

ТК=1 тику =1/18,2 с=0,0549 с.

Столь малый период квантования и высокое быстродействие современных ЭВМ позволяет управлять малоинерционными объектами, которыми являются привода с электродвигателями постоянного тока.

При инициализации с помощью конструктора REG создается объект с именем pidp.

Элементом новизны в программе является такое использование функции biostime() возвращающей текущее время машины которое позволяет запускать регулятор и все дополнительные операторы строго через заданный период квантования ТК. Реализуется эта идея с помощью конструкции

bt=TK+biostime(0,0L);

if (bt-biostime(0,0L)==0L)

{

bt=TK+biostime(0,0L);

Операторы;

}

Где

bt=TK+biostime(0,0L)

- упрежденное на величину ТК текущее время машины. Как видно из программы операторы выполняются лишь в момент достижения текущим временем величины bt. Заметим, что при таком подходе сохраняется текущее время машины.

Программа разрешает также вводить с клавиатуры в любой момент времени новые значения величин xz и kp, что позволяет провести комплекс исследований динамики замкнутой системы управления. При этом, за счет переопределения величины bt не происходит срыва работы системы в реальном времени.

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

Рис. 3

2. Многомерные цифровые алгоритмы и системы управления с УВМ

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

Из десятков и сотен контуров регулирования обычно выделяется несколько контуров (или групп контуров) явно взаимодействующих друг с другом. Обычно, это контуры регулирования одного объекта (реактора), т. е. объект является многосвязанным. Многосвязанность резко затрудняет расчет настроек регуляторов для соответствующих контуров управления.

Не существует эффективных методов расчета настроек регуляторов (типовых) для многосвязанных ОУ. В связи с этим одним из подходов может являться подход, основанный на построении адаптивных самонастраивающихся систем управления с частотным распределением каналов управления и самонастройки. Центральной идеей здесь является определение таких параметров настройки регулятора, которые обеспечивали бы заданные запасы устойчивости каждом контуре регулирования с учетом их взаимосвязи (см. рис. ):

ЗФ - заграждающий фильтр;

Г - генератор;

Р - регулятор.

Предположим, что регуляторы Р1 и Р2 - типовые ПИ- регуляторы. Параметры настройки этих регуляторов с помощью соответствующих контуров самонастройки будут рассчитываться, исходя из следующих алгоритмов: коэффициенты усиления должны рассчитываться таким образом, чтобы обеспечить заданный запас А в каждом контуре регулирования, а постоянные интегрирования должны вычисляться через критическую частоту колебаний АФХ разомкнутой системы каждого контура. Отслеживание этой частоты осуществляется автоматически с помощью регулятора фазы, сигналом задания которого является величина =-, а выходом - частота колебаний генератора (ген).

2.1 Программа цифрового управления двумерным объектом с помощью типовых ПИ и ПИД алгоритмов

#include <math.h>

#include <bios.h>

#include <stdio.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#include <iostream.h>

#include <graphics.h>

#include "drv-pb.cpp"

#define ZERO_INIT (Object) memset ///

long TK=1;

int krat=4; //Следующий канал будет опрашиваться в 4 раза реже, чем

//предыдущий.

float tк=TK/18.2;

char ch2=0;

float y, x, xz=40, xz2=50, y2, v2;

int tвр=0, tвр1=0, tврz1=0, tвр2=0, tврz2=0;

int dt=1;

class REG1 {

public:

float vz1, yz1, x1, x2, x3, x4, l1, Kp, ti, td, l, vz;

void init (float, float, float, float, float, float);

float compute (float, float);

int AУ ( );

} ;

void REG1:: init (float_vz, float_x, float_Kp, float_ti, float_td, float_l)

{ZERO_INIT (REG1);

vz=_vz, Kp=_Kp, ti=_ti;

td=_td, l=_l;

x1=x2=x3=x3=x;

}

float REG1:: compute (float x, float xz)

{И + ПД - закон}

int REG1:: АУ1 ( ) {

update ( );

y=getADC (1);

v=compute (y, xz);

set DAC (v, 2)

tвр1= tвр1+kratdt;

setcolor (14);

line (tврz1, 470-vz14, tвр1, 470-v4);

line (tврz1, 470-v4, tвр1, 470-v4);

vz1=v;

setcolor (9);

line (tврz1, 400-yz14, tвр1, 400-y4);

yz1=y;

tврz1=tвр1;

if (tвр1== tвр2&& tвр1>=620-dt)

{ tвр2=0; tвр1=0;

tврz2=0; tврz1=0;

cleardevise ( ); }

gotoxy (50, 2);

printf (v1=%. 1f y1=%. 1f, v, y);

return 0;

}

class REG2 {

public:

float vz2, yz2, x1, x2, x3, x4, l1, Kp, ti, td, l, vz;

void init (float, float, float, float, float, float);

float compute (float, float);

int AУ2 ( );

}

void REG2:: init (float_vz, float_x, float_Kp, float_ti, float_td, float_l)

{ZERO_INIT (REG2);

vz=_vz, Kp=_Kp, ti=_ti;

td=_td, l=_l;

x1=x2=x3=x3=x;

}

float REG2:: compute (float x, float xz)

{И + ПД - закон}

int REG2:: АУ2 ( ) {

update ( );

tвр ++;

yz=getADC (0);

vz=compute (y2, xz2);

set DAC (v2, 3)

tвр2= tвр2+dt;

setcolor (15);

line (tврz2, 470-vz24, tвр2, 470-v24);

line (tврz2, 470-v24, tвр2, 470-v24);

vz2=vz;

setcolor (11);

line (tврz2, 400-yz24, tвр2, 400-y24);

yz2=yz;

tврz2=tвр2;

gotoxy (50, 3);

printf (v2=%. 1f y2=%. 1f, v2, y2);

if (kbhit ( ))

{ ch2=getch ( );

switch (ch2);

case x:

case x:

cout << \ h yz1= ;

cin >> xz;

cout << \ h yz2= ;

cin >> xz2;

bty=TK+biostime (0, OL);

break;

}}

return 0;

}

int main ( ) {

int S=0;

int gdriver=DETECT, gmode;

init graph (& gdriver, & gmode, c:\BC31\BGI);

clrset ( );

inicial ( );

class REG1 pidp1;

REG2 pidp 2;

update ( );

pidp 1_init (40, getADC (1), 2/tк, 0, 0);

pidp 2_init (40, getADC (0), 14, 9, 3, 68/tк, 0, 0);

bty=TK+biostime (0, 0L);

mm:

if (bty-biostime (0,0L) {

bty=TK+biostime (0, 0L);

S++;

if (S<=krat) pidp2. АУ2( )

if (S==krat) {pidp1. АУ1( ). S=0; }

}

if (ch2=27 return 0;

goto mm;

return 0;

}

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

В программе имеются два канала управления:

1) медленный - работает с периодом ТКkrat, т. е.

14=4 тика

(в нашем случае;

2) быстродействующий - работает с периодом ТК, т. е. 1 тик.

В обоих случаях реализованы типовые ПИД-регуляторы, работающие по схеме И+ПД: И-составляющая - идет по ошибке, а П- и Д-состаляющие - по выходному сигналу, что исключает броски выходного сигнала пр смене задания (плавные переходные процессы).

Алгоритм позволяет изменять задания по обоим каналам, причем реализация этого осуществляется в блоке АУ2, работающем с периодом ТК.

Выход из режима непосредственного цифрового управления осуществляется по клавише ESC.

3. Модальные алгоритмы цифрового управления, их достоинства и недостатки

3.1 Модальный цифровой регулятор состояния

Наиболее совершенной структурой является так называемый регулятор состояния. Расчет его параметров возможен тремя методами:

1. Параметрическая оптимизация коэффициентов регулятора состояния по какому-либо критерию. Например, по критерию вида

.

Критерий носит не аналитический вид, что заставляет использовать численные методы для его оптимизации. При большой размерности вектора (вектор коэффициентов усиления регулятора состояния) длительность расчетов резко возрастает.

2. Расчет путем оптимизации интегрального квадратичного (суммарного) критерия качества

.

Коэффициенты вычисляется через решение дискретного уравнения типа Рикатти. Однако решение самого уравнения типа Рикатти возможно лишь в численном виде итеративными процедурами, что резко затрудняет практическое применение метода.

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

Установлено, что в отличие от предыдущих случаев для нахождения модального регулятора состояния необходимо решать систему линейных алгебраических уравнений, что чрезвычайно упрощает процедуру расчетов. Однако встает проблема установления взаимосвязи между динамикой замкнутой системой и расположением корней ее характеристического уравнения. Особенно задача усложняется для многомерных СУ.

3.2 Модальный цифровой регулятор для объекта первого порядка с запаздыванием

Потребуем, чтобы модальный регулятор был астатическим. Для этого в структуру объекта введем модуль дискретного оператора. Процедура синтеза распадается на две части:

1) вычисление вектора модального регулятора для объекта с запаздыванием М=0;

2) формирование упрежденного вектора состояния

алгоритм управление компьютер

Определим методом теории модального управления. Запишем дискретную модель объекта 1-го порядка.

Для получения характеристического уравнения замкнутой системы подставим управление u(k) в уравнение объекта.

- характеристическое уравнение замкнутого цифрового ОУ.

Потребуем чтобы система имела заданное расположение корней (z1, z2, z3).

Для упрощения расчетов и облегчения выбора нужного расположения корней предлагается поместить все корни в одну точку:

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

Два полинома равны, если равны коэффициенты при соответствующих степенях Z.

Произведем некоторые преобразования.

Далее

Найдем k1 и kp

Получим выражения для нахождения коэффициентов:

Величина bp - корень характеристического уравнения замкнутой цифровой системы управления. Рекомендуется выбирать в диапазоне от 0 до 1, причем с уменьшением значения bp коэффициенты регулятора возрастают, что приводит к повышению быстродействия в системе, в частности при bp =0 процессы в такой системе заканчиваются за три такта (так называемый апериодический регулятор). Однако в реальных условиях модель объекта приближенно описывает динамику истинного управления, поэтому величину bp рекомендуется выбирать >0; а конкретное значение определить путем моделирования, либо на реальном процессе цифрового управления.

3.3 Описание программы модального управления в реальном времени

Программа модального цифрового управления написана на языке высокого уровня С++. Ее листинг приведен в приложении. Для трансляции программы используется компилятор Borland C++ версии 2.0.

В начале программы определены стандартные библиотеки, часть функций из которых будет использоваться в программе. Далее определяется ряд переменных, необходимых для работы специального драйвера с именем INTERRUP.EXE, который обслуживает плату ЦАП-АЦП. Этот драйвер загружается лишь один раз в оперативную память ЭВМ до начала компиляции программы управления MP1Y-PB.cpp. Кроме этого, для инициализации платы ЦАП-АЦП служит функция inicial( ), а для ввода и вывода информации - функции getADC( ), setDAC( ), update( ).

В классе МОУ1 определена функция koefmo1() вычисления коэффициентов модели объекта А1,В1,В2. В классе МРУ1 определены переменные KP, K1, KI - коэффициенты модального регулятора. Здесь же определен конструктор инициализации МРУ1() и функции koefmp() вычисления коэффициентов модального регулятора и mreg() вычисления управления.

В основной части программы (после main( )) сначала происходит инициализация графического режима работы дисплея, что позволяет наблюдать графики изменения во времени. Далее задается период ТК квантования (опроса) в тиках таймера BIOSа ЭВМ. Минимальное значение периода может быть установлено

ТК=1тику =1/18.2 с = 0.0549 с.

Столь малый период квантования и высокое быстродействие современных ЭВМ позволяет управлять малоинерционными объектами, которыми являются тепловые объекты.

При инициализации с помощью конструктора МРУ1() создается объект с именем mp.

Программа разрешает также вводить с клавиатуры в любой момент времени новые значения величин XZ - сигнал задания, КР - коэффициент регулятора, bp - корень характеристического уравнения, u - сигнал задания, что позволяет провести комплекс исследований динамики замкнутой системы управления. При этом за счет переопределения величины bt не происходит срыва работы системы в реальном времени.

Программа позволяет перейти в режим ручного управления. Для этого необходимо путем нажатия клавиши «u» ввести сигнал задания. Для перехода в автоматический режим путем нажатия клавиши «k» ввести значение коэффициента регулятора КР.

Элементом новизны в программе является такое использование функции biostime( ) возвращающей текущее время машины, которое позволяет запускать регулятор и все дополнительные операторы строго через заданный период квантования ТК. Реализуется эта идея с помощью конструкции

bt = TK+biostime(0,0L);

if (bt - biostime(0,0L) = = 0L)

{

bt = TK + biostime(0,0L);

операторы;

}

Где

bt = TK+ biostime(0,0L)

- упрежденное на величину ТК текущее время машины. Как видно из программы, операторы выполняются лишь в момент достижения текущим временем величины bt. Заметим, что при таком подходе сохраняется текущее время машины.

Для облегчения понимания работы программы в ее листинге имеются комментарии, поясняющие назначение отдельных операторов.

//MP1Y-PB.cpp Мод. регулятор с наблюдателем и упредителем

//Необходимо упреждать на М+1 такт

#include <math.h>

#include <bios.h>

#include <stdio.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#include <iostream.h>

#include <graphics.h>

#include "drv-pb.cpp"

#include "class-GR.cpp"

#define ZERO_INIT(Object) \

memset(((Object*)this), 0, sizeof(*this));

float A,B1,B2;

int M;

class MOY1

{

public:

void koefmo1(float,float,float,float);

};

void MOY1::koefmo1(float K,float T,float H,float TK)

{

float G=H/TK; M=H/TK;

float C=G-M; A=exp(-TK/T);

B1=K*(1-pow(A,(1-C)));

B2=-K*(A-pow(A,(1-C)));

}

class MPY1

{

float MI,W[100];

public:

float KP,KI,K1;//Для вывода в main

MPY1();

void koefmp(float);

float mreg(float,float);

};

MPY1::MPY1()//Применять обязательно

{ ZERO_INIT(MPY1);}

void MPY1::koefmp(float BR)

{

KI=pow((1-BR),3)/(B1+B2);

KP=(A+A*A-3*A*BR+BR*BR*BR+B2*KI)/(A*B1+B2);

K1=1+A-B1*KP-3*BR;

}

float MPY1::mreg(float X,float X3)

{

float E,EL,E1,EY,MIY,U;//Переменные разового действия

E=X-X3;EL=E;

MIY=MI;E1=E;

if(M>0)

{

for (int J=0;J<=M-1;J++)

{

EY=A*E1+B1*W[1+J]+B2*W[J];

MIY=MIY+E1;E1=EY;

}

}

if(M==0) EY=E;

U=-KP*EY-KI*MIY-K1*W[M];

if(U>100){U=100;EL=0;}

if(U<0){U=0;EL=0;}

MI=MI+EL;

for (int t=0;t<=M+1;t++)

W[t]=W[1+t];

W[M]=U;

return U;

}

void main()

{

int gdriver = DETECT, gmode;

initgraph(&gdriver, &gmode, "C:\\BC31\\BGI");

inicial(); //Инициализация платы

long TK=10;

float tk=TK/18.2; // Tk в с!

char ch=0;

float BR=.7,mt=2.5,Ko=1.1206,To=35.8,Ho=1.331;

// ИНИЦИАЛИЗАЦИЯ ОБЪЕКТОВ

GR graph=GR(mt);//Масштаб по t

MOY1 moy;

MPY1 mp=MPY1();

moy.koefmo1(Ko,To,Ho,tk);M=M+1;//Упр. на М+1

mp.koefmp(BR);

cout.precision(3);

float U,y,xz=40,WF=0;

graph.osi(tk);

long bty;

bty=TK+biostime(0,0L);

while(ch!=27)

{

if (bty-biostime(0, 0L)==0)

{

bty=TK+biostime(0, 0L);

gotoxy(48,2);

printf("Y=%.1f U=%.1f ",y,U);

gotoxy(46,3);

printf("Ko=%.3f To=%.1f Ho=%.2f",Ko,To,Ho);

gotoxy(52,1);

printf(" tk=%.4f ",tk);

update();

y=getADC(1);

U=mp.mreg(y,xz);

setDAC(U+WF, 2);

update();

gotoxy(13,1);

cout <<"M"<<"\t"<<"A"<<"\t"<<"B1"<<"\t"<<"B2 ";

cout.precision(4);

gotoxy(13,2);

cout <<M<<"\t"<<A<<"\t"<<B1<<"\t"<<B2;

gotoxy(15,3);

cout <<"Ki"<<"\t"<<"Kp"<<"\t"<<"K1"<<"\t"<<"Bp";

gotoxy(15,4);

cout <<mp.KI<<"\t"<<mp.KP<<"\t"<<mp.K1<<"\t "<<BR;

graph.Grafic(y,U,0,0,0,0,0,tk);

if(kbhit())

{

ch=getch();

switch(ch)

{

case 'x':

case 'X':

gotoxy(8,5);

cout << "XZ=" <<xz << endl;

gotoxy(8,6);

cout << "XZ= " <<endl;

gotoxy(8,6);

cout << "XZ=";

cin >> xz;

bty=TK+biostime(0, 0L);

break;

case 'f':

case 'F':

gotoxy(24,5);

cout << "WF=" <<WF << endl;

gotoxy(24,6);

cout << "WF= " <<endl;

gotoxy(24,6);

cout << "WF=";

cin >> WF;

bty=TK+biostime(0, 0L);

break;

}

}

}

}

setDAC(40, 2);

update();

}

4. Учет особенностей программной реализации алгоритмов управления и переменного запаздывания при разработке САУ на базе ЭВМ

4.1 Сложности при математическом описании систем с запаздыванием

В настоящее время для управления САУ широко применяют ЭВМ. Это обеспечивает: легкость реализации сложных алгоритмов управления и возможность управлять объектами с очень высокой точностью. Часто одна ЭВМ способна обслуживать несколько объектов управления. Благодаря сетям ЭВМ достигается еще большая эффективность применения из-за распределения задач между ЭВМ, обеспечивается высокая отказоустойчивость без резервирования ЭВМ на каждом объекте управления. Но при синтезе и анализе САУ с применением ЭВМ возникает ряд проблем, которых чаще всего не было в классических САУ:

приходится рассматривать САУ как системы с запаздыванием;

появились сложности, связанные с анализом и разработкой не только устройств, но и программ.

Математическое описание систем с запаздыванием значительно сложнее, чем систем без него: в случае применения преобразования Лапласа к системе с запаздыванием вместо полиномов получаются выражения, содержащие е-рТ, где р - оператор Лапласа, изменяются критерии управляемости и наблюдаемости и т.д. В результате простые инженерные методы, используемые при анализе и синтезе объектов без запаздывания, перестают работать. Приближенная замена е-рТ ее разложением в ряд Тейлора (замена элемента запаздывания апериодическими звеньями) не всегда решает проблему и не всегда возможна:

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

если задержка не является постоянной величиной, заменить элемент запаздывания апериодическим звеном нельзя.

Переменное запаздывание может возникать в том случае, если в САУ некоторые элементы реализованы в виде алгоритмов на ЭВМ, так как время выполнения алгоритма в общем случае - непостоянная величина. Переменное запаздывание способно появляться и в распределенных САУ, в которых передача сигналов между элементами реализуется не по прямым каналам, а по сети, обслуживающей сразу несколько элементов. Оно может возникать и при использовании различных устройств, например некоторых видов АЦП, а также быть обусловлено самой структурой САУ, в частности особенностями технологического процесса, который обслуживается данной САУ.

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

Особенности систем с переменным запаздыванием в классической теории автоматического управления (ТАУ) исследованы очень мало. Вообще системы с переменным запаздыванием приобретают новые малоизученные свойства. Например, если частота изменения времени запаздывания совпадает с частотой системы, то наблюдается явление, похожее на резонанс, и качество системы резко ухудшается или она (при определенных условиях) может стать неустойчивой несмотря на то, что ее коэффициент усиления <1. Возможны и другие аналогичные явления.

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

Кроме того, если сигнал передается по сети со сложной структурой, то в результате изменения времени запаздывания сигнал, относящийся к моменту времени Тi , может прийти позднее сигнала, относящегося к моменту времени Тi+1 . В этом случае на подобное устройство ложится задача по сортировке управляющих сигналов по времени. Однако, если время максимального запаздывания существенно больше, чем время запаздывания, подобное устройство может значительно ухудшить качество системы. Тогда можно рассмотреть возможность применения еще одного устройства - предсказателя.

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

Основную сложность при управлении объектами с помощью ЭВМ представляет обеспечение управления в жестком реальном времени. Прежде всего сложности возникают из-за того, что в общем случае время выполнения алгоритма - случайная величина. Хорошо, если удастся определить максимальное время выполнения данного алгоритма на данной ЭВМ ( сети ЭВМ ), но чаще всего это довольно сложно. Для оценивания этого времени алгоритма обычно используют математический аппарат теории систем ( сетей ) массового обслуживания, но он дает лишь ответ, с какой вероятностью данный алгоритм на данной ЭВМ ( сети ЭВМ ) будет реализован за заданное время, а обычно требуется узнать за какое время алгоритм будет выполнен на данной ЭВМ с гарантией.

Для оптимизации времени решения задач на многопроцессорной ЭВМ или сети ЭВМ используется теория расписаний.

Применение сетей ЭВМ позволяет не только сократить общее число задействованных ЭВМ путем оптимальной загрузки каждой из них, но и обеспечить бесперебойное функционирование системы при использовании резервирования ЭВМ и каналов при меньшем числе ЭВМ по сравнению с тем, когда каждым объектом управляла бы своя группа ЭВМ. При этом при кратности резервирования 3 и активном резервировании можно частично отказаться от установки дорогостоящей диагностической аппаратуры на ЭВМ. Полученный многомашинный вычислительный комплекс сможет сам выявлять сбои и отказы в своих ЭВМ, а при кратности резервирования 4 - устранять последствия сбоев. Особенно эффективно подобные комплексы можно реализовывать при помощи транспьютеров. Но для эффективного использования сетей и многопроцессорных комплексов надо распараллеливать программы, что зачастую довольно сложно, а программное обеспечение подобных систем очень дорого.

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

Итак, несмотря на широкое применение ЭВМ в САУ, при разработке подобных систем появляются проблемы, которые до сих пор решены не полностью.

Размещено на Allbest.ru

...

Подобные документы

  • Обзор алгоритмов решения задачи: точные методы, генетический и жадный алгоритмы. Характеристика жадного алгоритма: его описание, анализ точности приближения, вычислительной сложности. Программная реализация и проверка корректности и быстродействия.

    курсовая работа [228,7 K], добавлен 14.10.2017

  • История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

    лабораторная работа [335,9 K], добавлен 18.03.2013

  • Критерии и основные стратегии планирования процессора. Разработка моделей алгоритмов SPT (Shortest-processing-task-first) и RR (Round-Robin). Сравнительный анализ выбранных алгоритмов при различных условиях и различном количестве обрабатываемых данных.

    курсовая работа [179,3 K], добавлен 21.06.2013

  • Разработка программной реализации решения задачи о минимальном покрывающем дереве графа (построение минимального остова), используя алгоритмы Прима и Крускала. Подсчет времени работы алгоритмов. Их программная реализация на практике с помощью Delphi 7.

    курсовая работа [538,1 K], добавлен 29.08.2010

  • Трудности использования эволюционных алгоритмов. Построение вычислительных систем, основанных на принципах естественного отбора. Недостатки генетических алгоритмов. Примеры эволюционных алгоритмов. Направления и разделы эволюционного моделирования.

    реферат [187,4 K], добавлен 21.01.2014

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

    дипломная работа [2,1 M], добавлен 21.12.2012

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

    курсовая работа [37,7 K], добавлен 22.06.2011

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

    курсовая работа [141,7 K], добавлен 21.06.2013

  • Последовательность действий, понятных для исполнителя и ведущая к решению поставленной задачи. Форма представления алгоритма для исполнения его машиной. Основные свойства алгоритмов и способы их записи. Линейный, разветвляющийся и циклический алгоритмы.

    презентация [128,2 K], добавлен 22.10.2012

  • Контроль и управление технологическим процессом очистки диффузионного сока. Разработка функциональной схемы автоматизации. Выбор средств управления и разработка структурной схемы. Расчет системы управления. Формализованные задачи и алгоритмы управления.

    курсовая работа [206,8 K], добавлен 21.04.2012

  • Подсистема управления процессами как часть операционной системы, непосредственно влияющая на функционирование вычислительной машины. Алгоритмы планирования процессов. Общие сведения о матричных принтерах, проектирование для них символов с помощью матриц.

    курсовая работа [117,1 K], добавлен 22.06.2011

  • Создание информационной системы управления базой данных "Кадровое агентство". Характеристика используемой ЭВМ, ОС, языка программирования. Требования предъявляемые к ПО. Алгоритмы и тексты форм ввода. Описание, алгоритмы формирования выходных документов.

    курсовая работа [1,1 M], добавлен 07.01.2013

  • Основные генетические операторы. Схема функционирования генетического алгоритма. Задачи, решаемые с помощью генетических алгоритмов. Математическая постановка задачи оптимизации. Решение Диофантова уравнения. Программная реализация. Создание пособия.

    курсовая работа [391,4 K], добавлен 20.02.2008

  • Реализация алгоритмов Краскала и Прима для построения минимального остовного дерева взвешенного связного неориентированного графа. Анализ трудоемкости алгоритмов, их псевдокоды и тестирование. Применение алгоритма Краскала на практике в работе авиалиний.

    курсовая работа [142,0 K], добавлен 25.12.2012

  • Целые числа в позиционных системах счисления. Недостатки двоичной системы. Разработка алгоритмов, структур данных. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С. Тестирование программного обеспечения.

    курсовая работа [593,3 K], добавлен 03.01.2015

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

    дипломная работа [7,6 M], добавлен 28.08.2014

  • Вычислительные алгоритмы управления скоростью двигателей переменного тока. Схема устройства радиотелескопа. Динамические характеристики системы приводов после модернизации. Требования, предъявляемые к скоростной подсистеме. Контур позиционного управления.

    дипломная работа [2,3 M], добавлен 17.09.2013

  • Микропроцессорные системы обработки данных. Специальные алгоритмы-планировщики для распределения операторов параллельных алгоритмов по процессорам вычислительной сети. Алгоритм построения и уплотнения нитей. Интерфейс программы, результаты работы.

    курсовая работа [1,8 M], добавлен 22.02.2011

  • Сущность языка программирования, идентификатора, структуры данных. Хранение информации, алгоритмы их обработки и особенности запоминающих устройств. Классификация структур данных и алгоритмов. Операции над структурами данных и технология программирования.

    контрольная работа [19,6 K], добавлен 11.12.2011

  • Основные определения поиска подстроки в строке. Простейшие алгоритмы поиска подстроки в строке. Алгоритмы последовательного поиска и Рабина-Карпа, создание и описание программы, реализующей их. Порядок работы с приложением. Тестирование алгоритмов.

    курсовая работа [2,7 M], добавлен 24.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.