Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
287
Добавлен:
19.03.2015
Размер:
175.1 Кб
Скачать

19.5. Описание программ регулятора

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

Uрег(iT)={bnE(iT)+bn-1E[(i-1)T]+…+b0E[(i-n)T]-amUрег[(i-1)T]-

-am-1Uрег[(i-2)T]-…-a0Uрег[(i-m)T]}, (19.1)

где: b0,b1,…,bn – коэффициенты числителя ДПФ регулятора;

a0,a1,…,am - коэффициенты знаменателя ДПФ регулятора, полученные в главе 17.

Uрег(iТ), Uрег [(i-1)T], Uрег[(i-2)T,],…, Uрег[(i-m)T] – дискретные значения регулируемой (выходной) величины регулятора;

E(iT), E[(i-1)T], E[(i-2)T], …, E[(i-n)T] – дискретные значения входной величины регулятора.

Константам am, am-1,…,a0; bn, bn-1,…,b0 соответствуют идентификаторы AconM, AconM-1,…, Acon0; BconN, BconN-1,…, Bcon0 соответственно.

На каждом такте программа считывает дискретное значение ошибки управления Еvar0 и вычисляет выходное значение Uvar0.

Для вычисления результата кромеEvar0 используются предыдущие входные Еvar1, Evar2,… и предыдущие выходные величины Uvar1, Uvar2,…. Для каждого метода численного интегрирования количество значений из предыдущих так-тов различно, но ал-горитм сходен. На рис.19.4 показана схема алгоритма ПИД–регулятора.

Тексты программ для различных мето-дов численного ин-тегрирования (метод трапеций, метод Си-мпсона, метод Уэд-ля) приведена на дискете. Там же при-ведены и макроопре-деления для каждой программы.

Д

Рис.19.4. Схема алгоритма работы программы ПИД - регулятора

Рис.19.4. Схема алгоритма работы программы ПИД-регялтора

ля упрощения программы и для уменьшения времени вычислений разност-ного уравнения про-изведения сомножи-телей (коэффициен-товbi и аi и переменных Е и U) и поочередное их суммирование со знаком выполняется в одной операции – умножения с суммированием (вычитанием) к общей переменной результата, обозначаемой как Uvar0. В начале каждого такта вычислений переменная Uvar0 обнуляется макрокомандой Clear - Uvar1, затем в зависимости от знака, произведение либо складывается с Uvar0 макрокомандой Ml-Plus, либо вычитается из Uvar0 макрокомандой Mul-minus. Использование общей переменной Uvar0 даёт возможность обойтись без промежуточных результатов.

Алгоритм программ произведения чисел со знаком, представленных в дополнительном коде, громоздкий и требует больших затрат времени, а использование прямого кода (старший бит – знаковый) требует анализа знаков и временного их маскирования перед каждым произведением чисел. Поэтому во всех программах ПИД–регуляторов, знаки всех переменных и константы хранятся в компактном виде (Sgn-var). Перед каждым циклом работы, знаки всех будущих произведений вычисляются одной операцией – логической функцией исключающего «ИЛИ». Результат запоминается в переменной Sgn-bt, содержимое которой побитно анализируется перед исполнением Mul-Plus, либо Mul-Minus. Для ускорения операции сдвига переменных, вместо команд пересылки данных типа “mov” в программах применены более эффективные цепочечные операции “movs”, осуществляющие перемещение заданного массива 16 – разрядных слов в определённом участке памяти. Перемещение можно выполнить за один приём: рассчитанный результат Uvar0 помещается не в Uvar1, а в последнюю из переменных Еvar . Так как Еvar и Uvar размещаются в оперативной памяти последовательно друг за другом, в результате выполнения всех операций “movs” содержимое последней Еvar перепишется в Uvar1.

Соседние файлы в папке Учебник тау