Реферат: Темы для ов Контрольное задание 1

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ПСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ

(ФИЛИАЛ)

__________________________________________________________________

А. И. Хитров

А. В. Ильин

ОСНОВЫ ЧИСЛОВОГО ПРОГРАММНОГО УПРАВЛЕНИЯ

Контрольные задания и методические указания

по выполнению

Для студентов специальности 180400

«Электропривод и автоматика промышленных

установок и технологических комплексов»

Псков

2003 г.

Рекомендовано к изданию Учебно-методическим советом

Псковского политехнического института (филиала) СПбГПУ

Рецензенты :

Кадочников Анатолий Александрович, доцент, к.т.н., начальник отдела энергоэффективного и рационального использования и учета топливно-энергетических ресурсов Псковского филиала ФГУ «УГЭН по Северо-западному региону»

Тимофеев Сергей Владимирович, начальник бюро электроники и промышленной автоматизации ОАО «Псковский кабельный завод»

Авторы:

Хитров Александр Иванович, доцент кафедры ЭСА ППИ СПбГПУ

Ильин Александр Викторович, ассистент кафедры ЭСА ППИ СПбГПУ

СОДЕРЖАНИЕ

ВВЕДЕНИЕ………………………………………………………… 4

Темы для рефератов………………………………………………6

Контрольное задание 1……………………………………………7

Контрольное задание 2…………………………………………..12

Контрольное задание 3…………………………………………..28

Контрольное задание 4…………………………………………..39

Литература………………………………………………………….49

Приложения ………..………………………………………………50

ВВЕДЕНИЕ

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

Вычислительная техника, являясь «мозгом» технических устройств, совместно с его «мускулами» – электроприводом, позволяет говорить о создании «интеллектуального» электропривода в сложных технологических установках, решающих задачи позиционного, контурного, адаптивного, нечетко-логического и других типов управлений, в которых требуется согласованная работа нескольких взаимосвязанных объектов, стоит вопрос обеспечения энергосберегающих технологий и т.д.

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

Вместе с тем на сегодняшний день не существует (и вряд ли будет существовать вообще) универсальных технологий обучения основам числового программного управления промышленными системами и процессами. Это связано с тем, что совершенствование аппаратного и программного обеспечения идет такими темпами, что универсального микроконтроллера с аппаратной точки зрения и универсального языка программирования с точки зрения программного обеспечения до сих пор нет. Задачи автоматизации достаточно разнообразны и требуют широкой номенклатуры аппаратно-программных средств.

Отсутствие учебников и учебных пособий по данной (или «родственным») дисциплине подтверждает данный факт.

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

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

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

Курс «Основы ЧПУ» для студентов специальности 180400 «Электропривод и автоматика промышленных установок и технологических комплексов» является завершающим в программно-информационной подготовке инженера и базируется на курсах:

«Микропроцессоры в электроприводах и технологических комплексах», «Информатика», «Элементы систем автоматики», «Системы управления электроприводов».

Курс изучается в 10-11 семестрах и предполагает следующее распределение учебных занятий для студентов очно-заочной и заочной формы обучения:

Виды

занятий

Семестры

10

11

в/о

з/о

в/о

з/о

Лекции, час.

32

15

34

20

Лаборатории,

час.

32

20

34

20

Зачет

1

1

1

1

Экзамен

1

1

1

1

Контрольные задания

1

2

1

2

В процессе изучения теоретических разделов курса, выполнения контрольных заданий и лабораторных работ, студент должен получить знания и навыки в:

— принципах построения систем ЧПУ технологическими объектами;

— применении цифровых и символьных кодов в системах ЧПУ;

— использовании современных средств промышленной автоматизации, в том числе промышленных сетей;

-алгоритмах логического управления с применением программируемых логических контроллеров;

— пользовании методами позиционного и контурного управлений при решении геометрической задачи управления;

— методах перевода аналоговых систем управления электроприводом в цифровые, особенностях построения и расчета регуляторов таких систем, базируясь на положениях теории дискретных САУ;

— программировании типовых задач автоматики с использованием микроконтроллеров.

Для изучения современных систем ЧПУ объектами, а также использовании знаний, полученных в процессе обучения при дипломном проектировании, в 11 семестре студентам предлагается представить реферат объемом 15-20 страниц.

Темы для рефератов

1. Применение и особенности построения цифровых электроприводов.

2. Современные микроконтроллеры и цифровые сигнальные процессоры для управления электроприводами.

3. Энергосберегающие технологии с применением интеллектуального электропривода.

4. Фаззи – логическое управление объектами.

5. Управление шаговым электроприводом от микроЭВМ.

6. Вентильно-индукторные двигатели (SRM – Switched Reluctance Motor) и их системы управления.

7. Векторное управление асинхронным двигателем с применением микроконтроллеров.

8. Управление бесконтактными двигателями постоянного тока (BLDC – Brushless direct current) с применением микроконтроллеров.

9. Особенности построения и применения энкодеров и кодеров в системах программного управления.

10. Организация локальных (промышленных) сетей на производстве.

11. Промышленная сеть CAN (Computer Area Network).

12. Промышленная сеть PROFIBUS фирмы SIEMENS.

13. Электроприводы промышленных роботов и станков с ЧПУ.

14. Адаптивные промышленные роботы и средства их очувствления.

15. Интеллектуальные роботы и системы распознавания образов.

16. Языки программирования промышленных роботов и современных средств промышленной автоматизации.

17. Программируемые логические контроллеры.

18. РС-архитектурные промышленные компьютеры и контроллеры.

19. SCADA системы в АСУТП.

20. Операционные системы реального времени.

21. Нейронные сети.

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

В процессе изучения курса «Основы ЧПУ» студентами заочной формы обучения выполняется по 2 контрольных задания соответственно в семестре 10 — контрольные задания № 1 – 2, в 11 семестре -контрольные задания № 3 – 4.

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


Контрольное задание №1

Задача 1. Представить число, заданное в таблице 1,

— во всех известных вам системах счисления как целое без знака;

— как положительное и отрицательное число с использованием биполярных кодов: прямой со знаком, обратный, дополнительный, смещенный.

Во всех представлениях числа ограничиться байтовым представлением его целой и дробной части.

Таблица 1

Номер последней цифры шифра

Число (целое)

Число (дробное / смешанное)

67

0,28 / 52,45

1

48

0,76 / 33,12

2

86

0,35 / 67,48

3

57

0,42 / 83,19

4

99

0,61 / 41,55

5

27

0,82 / 39,33

6

39

0,57 / 71,42

7

41

0,38 / 91,22

8

71

0,14 / 38,76

9

94

0,21 / 45,31

Методические указания к решению задачи 1

В данной задаче студентам необходимо показать умение представлять целые и смешанные числа в любой системе счисления: двоичной, восьмеричной, шестнадцатеричной (для целых чисел), в двоичной системе для смешанных чисел и с использованием биполярных кодов.

Особенности представления целых чисел без знака и со знаком изучались в курсах «Микропроцессоры» и «Элементы систем автоматики» и особых пояснений не требует. Вспомните, что Вы уже знаете, и представьте заданное число, сведя результаты в таблицу 2.

Таблица 2

Число

Кодовая комбинация

Десятичное

75D (decimal)

Двоичное

01001011B (binary)

Восьмеричное

113O (octal)

Шестнадцатеричное

4BH (hex)

Прямой со знаком

+75

-75

01001011

11001011

Обратный

01001011

10110100

Дополнительный

01001011

10110101

Смещенный

11001011

00110101

Для перевода отрицательного числа из дополнительного кода (на магистрали микроЭВМ) в его десятичный эквивалент и обратно следует вспомнить правило:

«инвертировать все разряды числа, исключая знаковый и прибавить единицу.»

В цифровой вычислительной технике при записи чисел целую часть от дробной отделяют точкой. Соответственно, двум алгебраическим формам записи вещественных чисел: обычной (5000; -3,77; 13,784)

и показательной (5·103; -377·10-2; 137,84·10-1 ) различают две формы представления данных: с ФТ (фиксированной точкой (запятой)), с ПТ (плавающей точкой (запятой)).

Представление целых двоичных чисел в формате с ФТ означает, что в рамках заданного формата точка фиксируется за правой границей формата (т. е. по существу отсутствует) [2].

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

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

Правила перевода в дополнительный код не зависят от типа чисел – целые или дробные.

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

1) 0,65 2) 0,3 3) 0,6 4) 0,2 5) 0,4

× 2 × 2 × 2 × 2 × 2

1 . 30 . 6 1 . 2 . 4 . 8

6) 0,8 7) 0,6 8) 0,2

× 2 × 2 × 2

1 . 6 1 . 2 . 4

0.10100110

Для смешанных чисел в двоичную форму переводится отдельно целая и дробная части числа, т. е. 75,65 = 01001011.10100110.

Задача 2. Представьте в дополнительном коде максимальные, минимальные положительные и отрицательные целые и дробные числа для 16-разрядных чисел, для которых в = 15.

Методические указания к решению задачи 2

Для восьмибитных чисел (байт) в дополнительном коде

— максимальное положительное число:

+127D → 7FH → 01111111B → 27 – 1 = 2в – 1;

— минимальное положительное число:

1D → 1H → 00000001B → 1;

— максимальное по модулю отрицательное число:

— 128D → 80H → 10000000B → — 27 ;

— минимальное по модулю отрицательное число:

— 1D → FFH → 11111111B → — 1.

Для восьмибитных дробных чисел соответственно:

— максимальное положительное число:

1 – 2-7 = 0.1111111 = 0,9921875;

— минимальное положительное число:

2-7 = 0.0000001 = 0,0078125;

— максимальное по модулю отрицательное число:

— 1 = 1.0000000 → -1D;

— минимальное по модулю отрицательное число:

— 2-7 = 1.1111111 = — 0,0078125.

Задача 3. Определить динамический диапазон данных D (в децибелах) цифровой системы регулирования с аналого-цифровым преобразователем (АЦП), имеющим n разрядов.

Построить зависимость D = f ( n ) ( nmax ограничить 32 разрядами с шагом расчета, равным 2).

Методические указания к решению задачи 3

Динамический диапазон данных представляет собой отношение максимального и минимального (не равного нулю) значений и определяется в первую очередь разрядностью АЦП. При этом следует иметь в виду, что один бит данных соответствует

20lg2 (децибел) ≈ 6,0205998,

а полный динамический диапазон определяется из соотношения:

D= n·20lg2.

Задача 4. Представить в виде алгоритма методику создания исполняемой программы на языке ассемблера любого микроконтроллера, известного Вам, если имя программы и используемых подпрограмм приведены в таблице 3.


Таблица 3

Номер последней цифры шифра

Имя

головной программы

Имена

подпрограмм

Main0

Sub1, time

1

Prog1

Sub2, cir

2

Test2

sub3,sub4

3

Program3

wind1, ADC

4

CAP

ADC, timer

5

CODER

un1, un2, un3

6

SHD

t1, t2

7

BLDC

win1, cool2

8

SRM

ADC, DAC

9

ACD

root, level

Методические указания к решению задачи 4

Для программирования современных микроконтроллеров и цифровых сигнальных процессоров (DSP – Digital Signal Processor) используются языки ассемблера и языки высокого уровня (CИ, Pascal и др.).

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

Все компиляторы CИ поддерживают включение в программу модулей на языке ассемблера.

Этапы разработки программы следующие:

· формулирование технического задания (постановка задачи);

· определение структур данных и памяти;

· разработка алгоритма и структуры программы с использованием принципов модульного программирования;

· выбор языка программирования;

· составление текста программы и подпрограмм;

· создание выполняемой программы.

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

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

объектный код – код, полученный в результате трансляции (с помощью программы транслятора) на машинный язык или близкий к нему язык программы, записанной на некотором исходном языке (например, языке ассемблера);

перемещаемый (относительный) программный модуль – представляет собой программу, которая может быть настроена на загрузку и выполнение в любой области памяти. В такой программе все требуемые адреса выражаются относительно общей точки отсчета – начала программы. Настройка перемещаемых модулей на абсолютные адреса производится компоновщиком (специальной программой);

абсолютный адрес – число, однозначно указывающее положение данных или кодов памяти;

абсолютный (неперемещаемый) программный модуль – программный модуль, использующий абсолютные (фактические) адреса;

выполняемый (загрузочный) модуль – программа, представленная в виде, пригодном для загрузки в память системы и её выполнения процессором.

Известно, что система программирования любого микроконтроллера должна включать в свой состав комплекс программ, обеспечивающих их создание и редактирование, трансляцию, компоновку и отладку. Методика создания загрузочного модуля для микроконтроллеров семейства MCS-196 [2] фирмы INTEL представлена ниже:

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

<имя редактора> <имя файла.а96>

me program.a96

ncedit subroutine.a96

2. Трансляция модулей программ с применением транслятора

asm96.ехе

<имя транслятора> <имя файла.а96>

asm96 program.a96

asm96 subroutine.a96

3. Компоновка программы и подпрограммы с использованием программы-компоновщика rl96.

<имя компоновщика> <имя головной программы>,

<имя подпрограммы 1>, <имя подпрограммы n>.

rl 96 program . obj , subroutine . obj

В результате компоновки получается файл абсолютного кода program и файл листинга компоновки program.m96, который можно просмотреть с помощью программы-редактора.

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

<имя программы-пребразователя> <имя файла>

oh program

Результатом преобразования является файл типа program.hex.


Контрольное задание №2

Задача 1. Составить фрагмент программы управления релейными элементами, связанными с выходным портом Y(Y0,Y1,Y2,…Y7),

если известно, что к микроконтроллеру подключены 8 ключей (Х0, Х1, Х2, …Х7) через входной порт Х. Структура управления показана на рисунке, варианты заданий сведены в таблицу 4.

Таблица 4

Номер последней цифры шифра

Логическая функция

__

Y0 = X3 + X1·X2·X6

1

__ __

Y1 = X0·X1 + X2·X3

2

__

Y2 = X3·X0 + X4

3

__

Y3 = X1·X2 + X3

4

__ __

Y4 = X6 + X1·X3

5

Y5 = X7·X1 + X2·X0

6

___

Y6 = (X4 + X5)·X6

7

Y7 = X7 + X2·X3

8

Y1 = X0·X1 + X4·X5

9

__ __

Y2 = X1·X3 + X5·X6

Методические указания к решению задачи 1

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

а) последовательность б) разветвление в) выбор


г) цикл «пока » д)цикл «до


Пусть необходимо реализовать логические функции:

__

Y0 = X1 + X2·X5; Y1 = X3·X7.

При этом в байтовом регистре Х внутреннего ОЗУ микроконтроллера находятся текущие значения 8 битовых входных переменных, считанные процессором из порта ввода Х.

Необходимо вычислить значения битовых управляющих воздействий Y1, Y0 и записать результаты в байтовый регистр Y.

Алгоритм реализации логического управления координатой Y0:

Будем считать, что модули вычисления Y0 и Y1 оформлены в виде подпрограмм, которые вызываются командами

CАLL CALC_Y0

CАLL CALC_Y1

Для реализации представленного алгоритма можно использовать работу битового процессора (если такой имеется) или специальные команды анализа битов.

Ниже приведена программа для микроконтроллера INTEL MCS – 196 [1,2].

В его составе команд имеются команды тестирования битовых переменных: BBC и BBS (branch bit clear- переход, если бит очищен и branch bit set-переход, если бит установлен), осуществляющие переход на заданную метку ( трехоперандная команда ) в зависимости от того установлен или сброшен анализируемый бит.

Формат команды:

BBC breg, bitno, cadd

где breg – анализируемый регистр;

bitno – номер анализируемого бита;

cadd – точка перехода по условию.

; подпрограмма вычисления Y0

CALC_Y0: BBS X, 1, SET_Y0; анализ младшего бита 1 регистра X

BBC X, 2, CLR_Y0; анализ бита 2

BBC X, 5, CLR_Y0; анализ бита 5

SET_Y0: ORB Y, #00000001B; установка в 1 бита Y0

RET

CLR_Y0: ANDB Y, #11111110B; очистка бита Y0

RET

; подпрограмма вычисления битовой переменной Y1

CALC_Y1: BBC X, 3, CLR_Y1

BBS X, 7, CLR_Y1

SET_Y1: ORB Y, #00000010B; установка в 1 бита Y1

RET

CLR_Y1: ANDB Y, #11111101B

RET

При решении задачи язык программирования может быть выбран любым.

Задача 2. Составить алгоритм и программу обслуживания аналого-цифрового преобразователя (АЦП), осуществляющего прием и обработку данных (М – число отсчетов) по N-каналу (данные сведены в таблицу 5), если АЦП имеет 16 входных каналов. Выбор конкретного канала осуществляется записью в разряды (от 0 до 3) регистра выбора канала DAR (Data Address Register) соответствующего двоичного кода. После выбора номера канала 7 разряд DAR устанавливается в “1».

Управление запуском АЦП и проверка готовности данных после преобразования осуществляется с использованием регистра управления и статуса CSR (Control and Status Register). При этом пуск АЦП осуществляется записью «1» в нулевой разряд, готовность проверяется по наличию «1» в 10 разряде CSR. Результат преобразования в виде выходного кода АЦП поступает в регистр данных АЦП DR (Data Register).


Таблица 5

Номер последней цифры шифра

Номер канала N

Число отсчетов М

Размещение в памяти с адреса – G.

12

120

10000

1

7

95

5000

2

9

48

6000

3

14

111

4000

4

6

39

3000

5

8

46

7000

6

11

51

3500

7

10

77

5500

8

5

84

6500

9

2

90

7500

Методические указания к решению задачи 2

Алгоритм решения задачи по обслуживанию АЦП может быть представлен в следующем виде:


Программа может быть составлена на любом языке программирования. Hиже в качестве примера приведен фрагмент программы для DEC – архитектурных машин («Электроника») с применением ассемблера.

.TITLE ADC

DAR = 160070; адреса регистров АЦП

DR = 160072

CSR = 160074

ADC: MOV #N, @#DAR; запись номера канала N

; число должно быть восьмеричным

; или десятичным из задания

MOV #G, R2

MOV @#DAR, R1

M1: TSTB R1; проверка выбора номера канала;

BPL M1

MOV #M, R3; счетчик циклов в R3 (число М)

M2: MOV #0, CSR; запуск АЦП

BIT #2000, CSR; проверка состояния 1 в 10 разряде CSR

BEQ M2

MOV @#DR, (R2)+

DEC R3

BNE M2

HALT

M: .BYTE

N: .BYTE

DAR: .WORD

CSR: .WORD

DR: .WORD

D: .BLKW G.; резервирование в памяти

; числа слов под массив данных

.END ADC

Задача 3. Определите требуемое число разрядов счетчика и число, которое должно быть записано в регистр счетчика (Кдел = двоичное), для получения периода квантования Тк, равного такому количеству минут, каковы две последние цифры вашей зачетной книжки. При этом входная эталонная частота таймера-счетчика равна fвх = fэт = 10МГц.

Методические указания к решению задачи 3

Соотношение между частотой входных импульсов fвх счетчика, частотой выходных импульсов таймера fвых (которые могут задавать период квантования Тк = 1/fвых ) и коэффициентом деления счетчика (Кдел ) равно:

,

где Кдел = 2n – 1,

n – число разрядов счетчика.

Чем больше число разрядов счетчика, тем реже появляются выходные импульсы таймера. Например, если счетные импульсы подаются с частотой 1,1925 МГц и три шестнадцатиразрядных счетчика будут включены каскадно, то будем иметь 48 разрядный счетчик и импульс на выходе таймера появится более чем через 7 лет.

Соответственно, для 32-разрядного счетчика можно получить период квантования, равный 1 час, для 16-разрядного счетчика выходная частота составит ≈ 18 имп/сек, а для 8-разрядного счетчика при заданной частоте fвх, выходная частота составит ≈ 4676 имп/сек. Таким образом, применение счетчиков от 8-разрядного до 48-разрядного позволяет настроить систему управления в достаточно широком диапазоне регулирования периода квантования цифровой системы регулирования.

Задача 4. Составить на языке лестничных диаграмм LD (Ladder Diagram) программу для управления транспортным и пешеходным светофором согласно техническому заданию. В качестве программируемого логического контроллера используется контроллер SIMATIC фирмы SIEMENS.

Техническое задание

1. Цель разработки программы: управление движением транспорта и пешеходов на пешеходном переходе.

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

3. Для исключения угрозы безопасности пешеходов и водителей должны быть выполнены условия:

3.1. Предварительная (начальная) установка светофоров: горит зеленый свет для транспортного светофора и красный свет для пешеходного.

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

4. Требования к таймерам по длительности «горения» соответствующих цветов светофора:

4.1. Желтая фаза после зеленой для автомобильного движения – 3 сек.

4.2. Красная фаза для автомобильного движения – 16 сек и начинается одновременно с зеленой фазой пешеходного движения.

4.3. Зеленая фаза для пешеходного движения – 10 сек.

4.4. Желтая фаза после красной для автомобильного движения – 3 сек

4.5. Задержка для следующего требования на зеленый свет (нажатие кнопок на разных концах улицы) – 1 сек.

Методические указания к решению задачи 4

PLC (Programmable Logical Controller) – программируемые логические контроллеры (ПЛК) представляют собой завершенную форму микропроцессорных средств, которые характеризуются оригинальной архитектурой и специальным программным обеспечением (ПО) [1,3]. Интерфейс между датчиками, исполнительными устройствами и центральным процессом PLC, обеспечивается специальными электронными модулями ввода/вывода (цифровых и аналоговых сигналов). Структура PLC показана на рисунке.

PLC отличается циклическим характером работы. Память программ PLC обычно состоит из 2 сегментов, в первом размещается неизменяемая часть – интерпретатор инструкций программы пользователя, которая размещается во втором сегменте (изменяемая часть).

При обработке конкретной программы на 1 этапе работы PLC производится тестирование аппаратуры CPU, и запускается цикл опроса всех входных переменных с запоминанием их состояния в специальной области памяти данных (ОЗУ), называемый «образ состояния входных переменных» PII (Process Input Image).

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

Результатом выполнения программы являются значения выходных переменных и новые значения внутренних переменных.

CPU записывает выходные переменные в другую область памяти данных, называемую «образ состояния выходных переменных» POI (Process Output Image). Одновременно CPU управляет счетчиками и таймерами. На последнем этапе цикла слово выходных воздействий выдается из POI в адаптеры выходных сигналов.

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

PLC являются проблемно-ориентированными машинами. Языки их программирования в основном ориентированы на специалистов по автоматизации, а не программистов. Накопленный опыт по языкам PLC был обобщен в виде стандарта Международной электротехнической комиссии: IEC1131–3, в котором выделено 5 языков программирования:

1. SFC (Sequential Function Chart) – последовательных функциональных схем;

2. LD (Ladder Diagram) – лестничных диаграмм (язык релейно-контакторных схем);

3. FBD (Function Block Diagram) – функциональных блоковых диаграмм;

4. ST (Structured Text) – структурированного текста;

5. IL (Instruction List) – список инструкций (команд).

Язык SFC описывает логику программы на уровне чередующихся функциональных блоков и условных переходов. Инструкции для функциональных блоков могут быть написаны на одном из 4 других языков. Например: для логической функции:

_

С = А·В

1) На языке LD имеется цепь

2) FBD имеется обозначение

3) ST имеется строка C = A AND NOT B

4) На языке IL имеется последовательность инструкций (типа языка ассемблера)

LD A

ANDN B

ST C

Наиболее понятным для инженеров-специалистов в области автоматизации является язык LD или РКС (релейно-контакторных схем).

Синтаксис языка РКС основывается на следующих предпосылках:

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

Y1 = f(Xi, Yj, Zk )

………

Ym = f(Xi, Yj, Zk )

Z1 = f(Xi, Yj, Zk )

………

Zq = f(Xi, Yj, Zk )

где Xi – входные переменные (i = 1, … n),

Yj – выходные переменные (j = 1, … m),

Zk – внутренние переменные (k = 1, … l);

-логические функции в правых частях уравнений представляют собой ДНФ или КНФ с применением операций И, ИЛИ, НЕ;

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

Запись операции на языке РКС содержит логическое выражение с инструкцией присвоения:

— логическое выражение — инструкция присвоения

f(xi, yj, zk ) = Y, = Z

Символика РКС

Булева функция

Содержание операции

Логические компоненты

·

Опрос входа, выхода внутренней переменной

·/

Опрос с инверсией

(

Начало ветвления параллельной цепи

)

Конец ветвления параллельной цепи

+

Перенос маркера в начало ветвления

Символы присвоения

=

Присвоение результата вычислений внутренней переменной или выходу

= S

Включение выхода или внутренней переменной с фиксацией

= R

Аналогично выключение с фиксацией

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

Вернемся к решению поставленной задачи управления светофорами.

Определим число требуемых входных / выходных переменных:

1. 2 входа (Е1, Е2) – кнопки требования зеленого света от пешеходов на обеих сторонах улицы;

2. 5 выходов – для управления индикацией обоих светофоров;

3. 5 таймеров (Т) – для определения длительности соответствующих фаз светофоров;

4. 1 маркер (М) – для включения светофора по требованию зеленого сигнала пешеходом.


Присвоим входным и выходным переменным символические обозначения:

Адрес

Описание

Символическое имя

А 0.0

Красный цвет для пешехода

People_Red

А 0.1

Зеленый цвет для пешехода

People_Green

А 0.5

Красный цвет для автомобиля

Auto_Red

А 0.6

Желтый цвет для автомобиля

Auto_Yellow

А 0.7

Зеленый цвет для автомобиля

Auto_Green

Е 0.0

Кнопка на правой стороне

P_Right

Е 0.1

Кнопка на левой стороне

P_Left

М 0.0

Маркер для включения светофора по требованию зеленого цвета пешехода

Marker

Т 2

Длительность желтой фазы для автомобилей (3 с.)

Auto_Yellow

Т 3

Длительность зеленой фазы для пешехода (10 с.)

People_Green

Т 4

Задержка красной фазы для автомобилей (6 с.)

Auto_Green

Т 5

Длительность красно-желтой фазы для автомобилей (3 с)

Auto_R – Y

Т 6

Задержка следующего требования на зеленый свет для пешеходов(1 с)

Pause_People

Алгоритм функционирования конечного автомата можно представить в виде последовательной функциональной диаграммы или циклограммы.

Циклограмма


Для PLC SIMATIC программирование осуществляется с использованием языка STEP 7, используя либо графический язык РКС (КОР – контактный план) или список команд AWL.

Алгоритм действий при программировании:

1. Создать необходимые блоки: организационный блок (ОВ1) для циклической обработки программы и функцию (FC1), в которую собственно и вводится программа.

2. Назначить редактор языка (КОР или AWL).

3. Запрограммировать блоки, запустить редактор языка, объявить переменные и ввести программу, разделенную на сети.

4. Сохранить и загрузить блоки на выполнение.

Для рассматриваемой задачи в символах РКС организационный блок имеет вид:

Netzwerk 1: Вызов функции FC1 для управления светофором

Элементы КОР для FC1 имеют вид:

Netzwerk 1: Есть ли запрос на зеленый свет для пешеходов

Netzwerk 2: Зеленая фаза для автомобилей

Netzwerk 3: Пуск таймера желтой фазы для автомобилей

Netzwerk 4: Желтая фаза для автомобилей

Netzwerk 5: Красная фаза для автомобилей

Netzwerk 6: Пуск таймера зеленой фазы для пешеходов

Далее допишите оставшиеся сети для реализации алгоритма или циклограммы.

Контрольное задание №3

Задача 1. Шаговый электропривод, управляемый целыми шагами α°[град] и имеющий частоту приемистости fпр [кГц], должен отработать требуемое перемещение ∆φ [рад] за время кадра tк с предельным быстродействием.

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

Данные для расчетов сведены в таблицу 6.

Таблица 6

Номер последней цифры шифра

α°[град]

fпр [кГц]

∆φ [рад]

tк [c]

1

1,0

1000

15

1

2

1,5

1500

10

2

1,8

0,5

500

15

3

1,5

2,0

700

20

4

0,5

0,7

1200

14

5

0,8

1,2

2000

11

6

1,6

1,8

1600

16

7

1,2

0,9

1900

18

8

0,9

1,0

800

10

9

3

2,0

600

13

Методические указания к решению задачи 1

Для позиционного электропривода траектория рабочего органа может быть произвольной, а задается начальное и конечное положение и точность позиционирования. Тип траектории выбирается обычно из минимума времени отработки заданного перемещения и ограничения на максимальное значение скорости wmax и ускорения εmax. Оптимальная по быстродействию тахограмма для позиционного электропривода имеет трапецеидальный вид [1]:

1 – имеет зону движения с постоянной скоростью ω* = const.

2 – треугольная тахограмма без зоны движения с постоянной скоростью.

Для кривой 1 выполняется соотношение:

,

где Qзм – заданное угловое перемещение.

В условиях задачи задана трапецеидальная тахограмма движения, тогда

Предельную скорость шагового электропривода ωзmax = ω* можно рассчитать, используя соотношение:

ω* = α [рад]* fпр [Гц],

т.е. для α° = 1°; fпр = 1кГц

при заданном угловом перемещении ∆φ = 1000 рад.

Из тахограммы движения с постоянной скоростью можно получить:

,

откуда – время движения с постоянной скоростью;

tк = t1 + (t2 – t1 ) + (tк – t2 ) – полное время кадра.

Время разгона t1 = (tк – t2 ) = ω* / εmax.

При решении задачи выберите необходимое εmax для обеспечения

t2 – t1 > 0, так, чтобы суммарное время не превосходило время отработки кадра tк .

Путь, пройденный на участке пуска и торможения, можно определить из соотношения: ,

а на участке движения с постоянной скоростью:

.

При этом

Количество импульсов управления, необходимое для выдачи на каждом из участков, равно:

,

где α – шаг двигателя.

Частота выдачи импульсов определяется так:

Для работоспособности привода частота выдачи импульсов на всех участках пуска, движения с постоянной скоростью и торможения не должна превышать частоты приемистости шагового электропривода. В случае невозможности отработки заданной траектории в соответствии с параметрами вашего задания, предложить вариант его изменения для обеспечения отработки заданного перемещения ∆φ в установленное время.

Задача 2. Составить алгоритм метода оценочной функции при осуществлении линейной интерполяции по координатам α,β для выхода в точку А с координатами (αк ,βк ). Построить фактическую траекторию отработки перемещения и нарисовать тактовую диаграмму подачи импульсов на соответствующие координаты. Расчетные данные свести в таблицу 7.

Таблица 7

Номер шага

I

Шаг по осям

Текущие значения

Значение оценочной функции Fi

α

β

αi

βi

Данные для расчетов представлены в таблице 8.

Таблица 8

Номер последней цифры шифра

αк

βк

10

6

1

8

4

2

12

8

3

10

8

4

12

6

5

14

8

6

10

4

7

10

5

8

8

6

9

12

10

Расчеты произвести для обычного и усовершенствованного алгоритма оценочной функции. Дискретность по координатам α и β одинакова и составляет hα = hβ = 1мм/имп.

Методические указания к решению задачи 2

В большинстве систем ЧПУ одной из основных задач является обеспечение движения инструмента относительно детали по заданной траектории. Траектория движения аппроксимируется набором отрезков прямых и окружностей. Расчёт текущих значений координат при решении геометрической задачи управления называется интерполяцией.

Дискретность перемещения по координатам hx, hy, hz определяется конструкцией станка и составляет единицы или десятки мкм.

Задание приращений по двум осям координат при hx = hy еще не определит заданного прямолинейного движения инструмента между точками.

Если координаты существенно неравны (например, х = 13мм, y = 5мм при hx = hy = 0,01 мм), то по одной координате в кадре необходимо выдать 1300 импульсов, а по другой — 500. При этом время движения по оси Х не будет равно времени движения поY и заданная траектория будет искажена (как показано на рисунке).

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

Алгоритмы интерполяции можно разделить на алгоритмы единичных приращений: метод цифро-дифференциальных анализаторов, оценочной функции и алгоритмы равных времен: методы цифрового интегрирования, итерационно-табличные методы, прогноза и коррекции [4;6].

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

Fi = yi ·X — xi ·Y,

где , – требуемые перемещения в кадре.

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

— если сделан шаг по оси Х, то

Fi+1 = yi ·X – (xi + 1)·Y = yi ·X – xi ·Y – Y = Fi – Y,

— если сделан шаг по оси Y

Fi+1 = (yi + 1)·X – xi ·Y = yi ·X + X – xi ·Y = Fi + X.

При усовершенствованном алгоритме:

— если сделан шаг одновременно вдоль оси Х и Y

Fi+1 = (yi + 1)·X – (xi + 1)·Y = yi ·X + X – xi ·Y – Y = Fi + X – Y.

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

Пример.

Пусть необходимо осуществить приращение в кадре в абстрактных машинных единицах ∆α = 6; ∆β = 4. Расчетные значения сведены в таблицу 9.


Таблица 9

Такт i

Шаг по осям

Текущее значение

Оценочная функция

α

β

αi

βi

Fi = Fi – Δβ ≥ 0 (α)

Fi = Fi + ∆α – Δβ < 0 (α и β)

-

-

F0= 0

1

1

-

1

F1 = 0 – 4 = — 4

2

1

1

2

1

F2 = — 4 + 6 – 4 = — 2

3

1

1

3

2

F3 = — 2 + 6 – 4 = 0

4

1

4

2

F4 = 0 – 4 = — 4

5

1

1

5

3

F5 = — 4 + 6 – 4 = — 2

6

1

1

6

4

F6 = — 2 + 6 – 4 = 0

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

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

,

где h – дискретность перемещения по координате;

Тк – время реализации алгоритма (период квантования);

к – число одновременно работающих координат.

Задача 3. Используя метод оценочной функции при круговой интерполяции, построить интерполяционную траекторию при движении из точки с координатами А0(10, 0) в точку Ак (0, 10).

Методические указания к решению задачи 3

При круговой интерполяции следует использовать оценочную функцию вида:

Fi = xi2 + yi2 – R2 .

При отработке траектории в 1 квадранте против часовой стрелки, если применяется обычный алгоритм интерполяции, то расчетные соотношения примут вид:

· если Fi ≥ 0 (нахождение за пределом радиуса окружности), то шаг делается вдоль отрицательного направления оси х, т. е. хi+1 = xi – 1

Fi+1 =(xi – 1)2 +yi2 – R2 = Fi – 2xi + 1,

· если Fi < 0, то шаг делается в положительном направлении оси у, т. е. yi+1 = yi + 1

Fi+1 =xi2 + (yi +1)2 – R2 = Fi + 2yi + 1.

При применении усовершенствованного алгоритма рекомендуется разбить квадрант пополам (π/4). При изменении угла от φ = 0, до φ =π/4 и при Fi ≥ 0 выдача шагов осуществляется по обеим координатам:

Fi+1 =(xi – 1)2 +(yi +1)2 – R2 = Fi – 2(xi – yi ) + 2,

а при Fi < 0 только по ведущей координате (уi )

Fi+1 = Fi + 2yi + 1.

При изменении угла от π/4 до π/2 и Fi < 0 выдача шагов производится по обеим координатам, а при Fi ≥ 0 только по ведущей координате (хi )

Fi+1 = Fi – 2xi + 1.

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

Если перемещение должно осуществляться в других квадрантах в выбранном направлении (по часовой стрелке или против часовой стрелки), то аналогично рассмотренному выше можно получить необходимые расчетные соотношения для Fi+1 .

Приведенный ниже алгоритм предназначен для реализации метода оценочной функции во всех 4 квадрантах при движении в любом направлении [5]:

Принятые обозначения: I, J – координаты центра дуги;

r – радиус дуги;

τ – такт;

F – скорость подачи, мм/ мин;

d = h – дискретность системы ЧПУ, мм;

ун, хн – начальная точка;

ук, хк – конечная точка.

CIR: if TAKT > 1 then go to CYCLE

read xн, ун, хк, ук, I, J, ±F

r = sqr((xн – I)2 + (ун — J)2 )

x = xн; y = ун; codx = x; cody = y; f = 0

U= int(F*τ/(60*d));

if xн = I and ун > J then αн = π/2

if xн = I and ун < J then αн = 3*π/2

if xн > I then αн = atn((ун – J)/( xн – I))

if xн < I then αн = π + atn((ун – J)/( xн – I))

if xк = I and ук > J then αк = π/2

if xк = I and ук < J then αк = 3*π/2

if xк > I then αк = atn((ук – J)/( xк – I))

if xк < I then αк = π + atn((ук – J)/( xк – I))

if sgn(αн — αк ) = sgn(U) then ∆α = abs(αн — αк )

else ∆α = 2π — abs(αн — αк )

L = 4 * r * ∆α/π; l = 0

CYCLE: X = x – I; Y = y – J;

if abs(X) >= abs(Y) and sgn(f*sgn(X)*sgn(Y)) = sgn(U)

then(y = y – U*sgn(X); f = f – 2*Y*sgn(X) + U; go to END);

if abs(X) < abs(Y) and sgn(f*sgn(X)*sgn(Y) < > sgn(U)

then (X = X + U*sgn(Y); f = f + 2*X*sgn(Y) + U; go to END);

x = x + U*sgn(Y); y = y – U*sgn(X);

f = + 2*(abs(X) – abs(Y))*sgn(Y) + 2*U;

END: l = l + abs(X – codx) + abs(y – cody);

codx = x; cody = y;

if l < L then TAKT = TAKT + 1

else TAKT = 1

RETURN

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

# include < stdio . h > /* Подключение библиотеки стандартных функций ввода-вывода */

# include < math . h > /* Подключение библиотеки математических функций */

#define PI 3.1415 /* Определение числа p */

#define SGN(a) (((a) >= 0)? 1: -1) /* Определение макроса для вычисления знака переменной; макрос возвращает 1, если значение переменной ≥0 и возвращает -1, если значение переменной <0 */

int x _ n , y _ n , x _ k , y _ k , I , J ; /* Объявление целочисленных входных переменных для алгоритма: x _ n – начальная точка по оси X , y _ n – начальная точка по оси Y , x _ k – конечная точка по оси X , y _ k – конечная точка по оси Y , I – координата центра по оси X , J – координата центра по оси Y */

int x , y , r , codx , cody , f , L , l , X , Y ; /* Объявление целочисленных внутренних переменных алгоритма: x , y – текущие координаты, r – радиус дуги, codx , cody – переменные для передачи координат исполнительному устройству, f – значение оценочной функции, L – полная длина пути по дуге, l – текущая пройденная длина, X , Y – разница между текущими координатами и центром окружности */

float a _ n , a _ k , da ; /* Объявление вещественных внутренних переменных алгоритма: a _ n – начальный угол в радианах, a _ k – конечный угол в радианах, da – отрабатываемый по дуге угол ( a _ k a _ n ) */

/* Определение функции инициализации алгоритма */

void init() {

printf («Введите x _ n , y _ n , x _ k , y _ k , I , J : „); /* Вывод сообщения с просьбой ввести значения входных переменных */

scanf (“% d % d % d % d % d % d », & x _ n , & y _ n , & x _ k , & y _ k , & I , & J ); /* Ввод входных переменных пользователем */

r = sqrt((x_n — I)*(x_n — I) + (y_n — J) * ( y_n — J)); /* Вычисление радиуса дуги */

x = x_n;

y = y_n;

codx = x;

cody = y;

f = 0; /* Установка начальных значений внутренних переменных */

/* Вычисление начального угла по значениям x _ n , y _ n , I , J */

if(x_n == I && y_n > J)

a_n = PI / 2;

if(x_n == I && y_n < J)

a_n = 3 * PI / 2;

if(x_n > I)

a_n = atan((y_n — J) / (x_n — I));

if(x_n < I)

a_n = PI + atan((y_n — J) / (x_n — I));

/* Вычисление конечного угла по значениям x _ k , y _ k , I , J */

if(x_k == I && y_k > J)

a_k = PI / 2;

if(x_k == I && y_k < J)

a_k = 3 * PI / 2;

if(x_k > I)

a_k = atan((y_k — J) / (x_k — I));

if(x_k < I)

a_k = PI + atan((y_k — J) / (x_k — I));

da = a _ n a _ k ; /* Вычисление угла поворота */

L = floor (4 * r * fabs ( da ) / PI + 0.5); /* Вычисление длины пути по дуге */

l = 0; /* Установка текущей длины пути в 0 */

printf(«init: r=%d, a_n=%f, a_k=%f, da=%f, L=%d\n», r, a_n, a_k, da, L); /* Вывод на экран результатов инициализации */

}

/* Функция расчета очередного шага алгоритма оценочной функции */

void circle() {

/* Вычисление разницы между текущими координатами и центром окружности */

X = x I ;

Y = y — J;

/* Вычисление нового значения оценочной функции и перемещение по соответствующим осям в зависимости от текущих координат и текущего значения оценочной функции */

if(abs(X) >= abs(Y) && SGN(f) * SGN(X) * SGN(Y) == SGN(da)) {

y = y SGN ( X ) * SGN ( da ); /* Изменение координаты y */

f = f — 2 * Y * SGN ( X ) * SGN ( da ) + 1; /* Изменение значения оценочной функции */

}

else

if(abs(X) < abs(Y) && SGN(f) * SGN(X) * SGN(Y) != SGN(da)) {

x = x + SGN ( Y ) * SGN ( da ); /* Изменение координаты x */

f = f + 2 * X * SGN ( Y ) * SGN ( da ) + 1; /* Изменение значения оценочной функции */

}

else {

x = x + SGN ( Y ) * SGN ( da ); /* Изменение координаты x */

y = y SGN ( X ) * SGN ( da ); /* Изменение координаты y */

/* Изменение значения оценочной функции */

f = f +2 * ( abs ( X ) — abs ( Y )) * SGN ( Y ) * SGN ( X ) * SGN ( da )+ 2 * 1;

}

l = l + abs ( x codx ) + abs ( y cody ); /* Изменение пройденного пути */

codx = x ; cody = y ; /* Установка переменных для передачи исполнительному устройству */

printf (" f =% d \ tcodx =% d \ tcody =% d \ tl =% d \ n ", f , codx , cody , l ); /* Вывод результатов очередного шага алгоритма на экран */

}

/* Главная функция программы, с нее начинается выполнение */

int main () {

/* Вызов функции инициализации алгоритма оценочной функции */

init();

/* В этом месте можно передать начальные координаты cod _ x и cod _ y (равные x _ n и y _ n ) на исполнительное устройство */

/* Организация циклического вызова функции расчета очередного шага оценочной функции до тех пор пока текущий пройденный путь меньше полной длины пути по дуге */

while(l < L) {

circle();

/* В этом месте можно передать рассчитанные координаты cod _ x и cod _ y на исполнительное устройство */

}

return 0; /* Завершение главной функции программы */

}

Контрольное задание № 4

Задача 1. Найти Z-преобразование, если передаточная функция непрерывной части имеет вид, представленный в таблице 10.

Таблица 10

Номер последней цифры шифра

Передаточная функция непрерывной части F(S)

F(S) = 5/S(S+0,1)

1

F(S) = 45/(T1 S+1)(T2 S+1)

2

F(S) = 20/S(S+1)(S+3)

3

F(S) = 10(S+3)/(S2 +4S+3)

4

F(S) = S/(S-1)(S+2)

5

F(S) = 4/(0,1S+1)(0,2S+1)

6

F(S) =10/S(S2 +8S+7)

7

F(S) = 4/(25S2 +10S+1)

8

F(S) =10/(4+S2 ) + K/(1+0,1S)

9

F(S) = 10/(S+0,5)2

Методические указания к решению задачи 1

Задачи контрольного задания 4 основываются на знании теории дискретных систем управления и достаточно полно отражены в литературе [1,2,7]. Z-преобразование является одним из математических методов, разработанных для анализа и проектирования дискретных систем. Аппарат Z-преобразования играет для цифровых систем ту же роль, что и преобразование Лапласа для непрерывных систем.

Поскольку Z-преобразование непрерывной функции f(t) получается из преобразования Лапласа для функции

где δт (t) – единичная импульсная функция,

путем замены Z= eTS (Т – период квантования импульсной системы регулирования), то в общем случае для любой функции f(t), имеющей преобразование Лапласа, существует так же Z-преобразование.

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

А. Если передаточная функция непрерывной части имеет К простых полюсов: S1, S2, …, Sк и передаточная функция непрерывной части имеет вид:

то

где

Б. Если F(S) имеет кратные полюсы S1, S2, …, Sк с кратностью m1 … mn, то

где

Рассмотрим ряд примеров нахождения Z-преобразования.

1. Найдем Z-преобразование ступенчатого воздействия, имеющего F(S) = 1/S; S1 = 0; D(S) = S; D΄(S) = 1.

2. Найдем Z-преобразование линейной функции, имеющей

F(S) = 1/S2; S1 = S2 = 0; m =2; n = k = 1; i = 1,2.

а)

б)

Найдем производную выражения, стоящего в квадратных скобках.

Тогда

3. Найдем Z-преобразование функции, имеющую следующую передаточную функцию:

Применим метод разложения функции на простые дроби:

т.е.

и используя свойства линейности Z-преобразования

F(Z) = F1 (Z) – F2 (Z), находим F2 (Z) и окончательный результат

где D(S) = S2 + Sα; D΄(S) = 2S + α; S1 = 0; S2 = -α

Задача 2.

Для заданной передаточной функции цифрового регулятора

Wp (z) = y(z)/x(z)

составить разностное уравнение.

Данные приведены в таблице 11.

Таблица 11

Номер последней цифры шифра

Wp (z)

1- 0,5 z-1.

0,5z-3 + 0,4z-2 + 4

1

Z+0,5 .

0,3z2 + 1

2

0,7z2 + 1 .

0,1z-3 + 0,5z-2 + z-1 +1

3

1 — z-2 + 0,4z-1

0,5z2 + 1

4

z + 1.

z4 – 0,5z3 + 0,2z2 + 0,4z + 1

5

0,5 + z-1 .

z-2 + 0,4z-1 + 0,6

6

0,5z-1 .

0,4z-2 + 0,7z-1 + 1

7

z .

0,5z3 – 0,4z2 + 0,3z – 0,6

8

1 + 0,5z-1 .

z-3 + 0,4z-2 + z-1 +0,4

9

1 – z-1.

1 – 0,5z-2 + 0,2z-1

Методические указания к решению задачи 2

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

Если передаточная функция регулятора найдена с использованием методов синтеза цифровых регуляторов[1,2], то перейти к разностному уравнению можно используя теорему сдвига.


Например :

где y[nTk ] – расчетное значение, выдаваемое на выход регулятора в данном такте,

x[nTk ] — значение ошибки в данном такте,

y[(n-i)Tk ] – соответствующее значение i – тактов назад.

х[(n-i)Tk ] –

В случае задания Wp (z) с положительным значением степени z необходимо домножить числитель и знаменатель дроби на Z-k, где k – максимальная степень числителя или знаменателя в заданной передаточной функции.

Задача 3. Представить разностное уравнение следующих цифровых регуляторов:

1) ПИ – пропорционально-интегрального;

2) ПД – пропорционально-дифференциального;

3) ПИД – пропорционально-интегродифференциального;

4) ПИ2 – пропорционально-двухкратноинтегрального;

5) ПД2 — пропорционально-двухкратнодифференциального;

6) ИА – инерционного.

Студенты, последняя цифра зачетной книжки у которых четная, решают задания – 2, 4, 6, а нечетная – 1, 3, 5. Для одного из регуляторов представить алгоритм и программу.

Методические указания к решению задачи 3

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

Интегральная составляющая позволяет устранять установившуюся ошибку, но увеличивает перерегулирование.

Пропорциональная составляющая определяет время нарастания выходной переменной.

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

Написание программы типового регулятора можно разделить на следующие этапы:

1. Выбор требуемого регулятора в соответствии с алгоритмом функционирования цифрового электропривода.

2. Представление модели цифрового корректирующего устройства (регулятора) в виде разностного уравнения.

3. Составление алгоритма и программы с использованием аппаратно-программных средств используемой микропроцессорной системы управления.

Пример. Непрерывный И-регулятор описывается уравнением

,

где Т и – постоянная интегрирования.

Продифференцируем исходное уравнение

и учитывая, что

dt = Tk – период квантования, получим

и разностное уравнение цифрового И-регулятора имеет вид:

Аналогичный результат можно получить, используя метод нахождения Z-преобразования.

т. к. Z-преобразованието

получим передаточную функцию цифрового регулятора в виде:

Перейдем к разностному уравнению:

При решении задачи нахождение разностных уравнений регуляторов осуществить различными методами.


Уравнения непрерывных регуляторов и их передаточные функции:

1. ПИ-регулятор.

2. ПД-регулятор.

3. ПИД-регулятор.

4. ПИ2 -регулятор.

5. ПД2 -регулятор.

6. ИА-регулятор.

При получении разностного уравнения следует учитывать соотношения для первой и второй разности (обратной).

Пример программы реализации И-регулятора представлен в [1].

Задача 4. Характеристический полином замкнутой цифровой системы регулирования скорости имеет вид:

1)

Используя W-преобразование, проверить устойчива или нет данная система. Коэффициенты характеристического полинома заданы в таблице12.

Таблица 12

Номер последней цифры шифра

d1

d2

d3

-2,5

2,12

-0,606

1

-1,51

1,4

0,6

2

+1,2

-2,3

-0,4

3

+3,5

+1,6

+2,2

4

1,7

-2,3

+0,8

5

-3,2

+1,1

-0,5

6

-2,2

1,7

-1,5

7

+2,4

-2,1

+0,7

8

-2,1

+1,5

-1,0

9

+1,8

+1,6

-1,3

Методические указания к решению задачи 4

Устойчивость замкнутой цифровой системы определяется видом корней характеристического полинома. Для непрерывных систем корни устойчивой системы лежат в левой половине р-плоскости. Переход к комплексной переменной Z = epT отображает левую полуплоскость во внутреннюю часть круга единичного радиуса с центром в начале координат Z-плоскости. Поэтому в устойчивой системе корни характеристического полинома должны лежать внутри круга единичного радиуса

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

Пример. Характеристическое уравнение имеет вид:

Определить при каких А система устойчива?

Воспользуемся подстановкой

Домножим уравнение на (1-W)3, тогда получим:

Необходимое условие устойчивости (положительность коэффициентов) выполняется при

0<A<14.

Достаточным условием устойчивости для полинома 3 степени является выполнение условия:

(14-A)(16-A)>A(10+A)

Решение данного неравенства дает результат:

A<5,6

Таким образом, импульсная система автоматического управления будет устойчива при значениях параметра А в интервале (0;5,6).

Литература

1. А. И. Хитров. Числовое программное управление промышленными установками и РТК. Учебное пособие. Псков. 1998 г. 155 с.

2. В. Ф. Козаченко. Микроконтроллеры: руководство по применению 16-разрядных микроконтроллеров INTEL MCS – 196/296 во встроенных системах управления. М.: Издательство ЭКОМ, 1997 г. 688 с.

3. М. Г. Бычков. Промышленные компьютеры и программируемые логические контролеры. М.: Издательство МЭИ, 2002 г. 92 с.

4. О. П. Ильин и др. Системы программного управления производственными установками и робототехническими комплексами. – Мн.: Высшая школа, 1988 г. 285 с.

5. В. М. Водовозов и др. Микропроцессорные системы программного управления.- СПб.: Энергоатомиздат, 1994 г. 256 с.

6. Многоцелевые системы ЧПУ гибкой механообработки. / под редакцией В. Г. Колосова. Л.: Энергоатомиздат, 1984г. 224 с.

7. Я. З. Цыпкин Теория линейных импульсных систем. М.: Физматиздат, 1963 г. 525 с.

Приложение 1

Базовые команды MCS – 196

Мнемоника

Краткое описание операции

1. Команды пересылки данных.

LD(B)

Загрузка слова (байта).

LD AX, #25H; AX←25H

LDB A_L, #Ø; AL ←Ø

ST(B)

Запоминание слова (байта).

STB A_L, B_L; A_L→B_L

XCH(B)

Обмен содержимого двух операндов-слов (байт).

XCH AX, BX; AX↔BX

CLR(B)

Очистка значения операнда-слова (байта).

CLR AX; AX← 0

CLRC

Очистка флага переноса C в PSW.

CLRC; C← Ø

SETC

Установка флага переноса С.

SETC; C← 1

CLRVT

Очистка флага-ловушки переполнения VT.

CLRVT; VT← 0

BMOV

Непрерывная пересылка блока слов из одной области памяти в другую.

BMOV A, B

2. Арифметические команды.

ADD(B)

Сложение слов (байт) с записью суммы в один из операндов (или третий операнд).

ADDB A_L, B_L;

A_L = A_L + B_L

ADD AX, BX, CX;

AX = BX + CX

ADDC(B)

Сложение слов (байт) с учетом переноса с записью суммы в один из операндов.

SUB(B)

Вычитание слов (байт) с записью разности по месту операнда-уменьшаемого (или третий операнд-источник.

SUBB A_L, B_L;

A_L = A_L – B_L

SUB AX, BX, CX;

AX = BX – CX

SUBC(B)

Вычитание слов (байт) с учетом заёма с записью разности по месту операнда-уменьшамого.

INC(B)

Увеличение значения слова (байта) на 1.

INCB A_L;

A_L=A_L +1

DEC(B)

Уменьшение операнда-слова (байта) на 1.

DEC AX; AX = AX – 1

NEG(B)

Изменение на противоположный знака числа.

NEGB A_L

MUL(B)

Знаковое умножение двух целых чисел с записью произведения на место одного из множителей (или в третий операнд).

MULB A_L, B_L;

A_L = A_L ∙ B_L

MUL AX, BX, CX;

AX = BX ∙ CX

MULU(B)

Беззнаковое умножение двух слов (байт) с записью произведения на место одного из множителей (или в третий операнд).

DIV(B)

Знаковое деление с записью частного в младшее слово (байт) операнда-делимого и остатка – в старшее слово (байт) операнда-делимого.

CMP(B)

Сравнение двух операндов-слов (байт).

CMP AX, BX; AX-BX

CMPB A_L, #25;

A_L-25.

3. Логические команды.

NOT(B)

Логическое НЕ – побитовая инверсия операнда-слова (байта)

AND(B)

Логическое И – побитовое умножение двух операндов-слов (байт) с записью результата в один из операндов (или в третий операнд).

ANDB REG, #1111111Ø;

REG.Ø← 0

ANDB REG, #00001111;

REG 7.4 ← 0

(сброс битов)

OR(B)

Логическое ИЛИ – логическая побитовая операция ИЛИ двух операндов-слов (байт) с записью результата в один из операндов.

ORB REG, #11110000;

; REG. 7.4 ← 1

(установка битов)

XOR(B)

Логическое «Исключающее ИЛИ» — побитовая операция неэквивалентности с записью результата в один из операндов.

XORB REG, #00000001;

_____

REG.Ø = REG.Ø

(побитовая инверсия разрядов)

4. Команды сдвига и нормализации.

SHL(B)

Логический сдвиг слова (байта) влево на заданное число разрядов с заполнением битов справа нулями.

SHR(B)

Логический сдвиг слова (байта) вправо на заданное число разрядов с заполнением битов слева нулями.

SHR REG, # 7

SHRA(B)

Арифметический сдвиг слова (байта) вправо на заданное число разрядов с заполнением битов слева знаком исходного операнда.

SHRA AX, B_L

NORMAL

Нормализация длинного целого (32 бит) – сдвиг влево до тех пор, пока старший значащий бит не станет равным 1. Запоминание числа сдвигов в операнде-приемнике.

5. Команды передачи управления.

SJMP

Короткий безусловный переход.

LJMP

Длинный безусловный переход.

BR

Косвенный переход по содержимому операнда-слова.

BR M7; (PC) ← M7

JC

Переход, если установлен С.

JC M7; C = 1 (PC) ← M7

JNC

Переход, если С очищен.

JE

Переход, если флаг Z установлен.

JNE

Переход, если флаг Z очищен.

JV

Переход, если флаг переполнения V установлен.

JNV

Переход, если флаг переполнения V очищен.

JVT

Переход, если флаг ловушки переполнения VT установлен с одновременной очисткой VT.

JNVT

Переход, если флаг ловушки переполнения VT очищен.

JGE

Переход, если число со знаком больше или равно (флаг N очищен).

JLT

Переход, если число со знаком строго меньше (N установлен).

JGT

Переход, если число со знаком строго больше (Z = 0, N = 0).

JLE

Переход, если число со знаком меньше или равно (Z = 1 или N = 1).

JH

Переход, если число без знака выше (С = 1 и Z = 0).

JNH

Переход, если число без знака не выше (С = 0 или Z = 1).

JBC

Переход по указанному адресу, если заданный бит байтового операнда очищен.

JBS

Переход по указанному адресу, если заданный бит установлен.

DJNZ

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

DJNZW

Уменьшение на 1 значения слова и переход по указанному адресу, если результат не равен нулю (команды организации циклов).

6. Команды работы со стеком и подпрограммами.

PUSH

Запись в стек слова из операнда-источника.

POP

Извлечение слова из стека в операнд-приемник.

PUSHA

Запись в стек двух слов с текущим содержимым регистров специального назначения процессора (PSW, INT, MASK, и INT_MASK1, WSR).

POPA

Аналогичное восстановление их из стека.

PUSHF

Запись в стек слова с текущим содержимым регистров специального назначения процессора (PSW, INT_MASK) – сохранение флагов.

POPF

Извлечение слова из стека с записью в регистры (PSW, INT_MASK) восстановление флагов.

CALL

SCALL

— короткий вызов подпрограммы

— длинный вызов подпрограммы

LCALL

RET

Возврат из подпрограммы.

7. Команды специального назначения.

NOP

Пустая операция.

SKIP

Двухбайтовая пустая операция.

EI

Разрешение прерываний.

DI

Запрещение прерываний.

DPTS

Запрещение работы PTS.

EPTS

Разрешение работы PTS.

RST

Программный сброс процессора.

IDLPD

Установка режима ожидания или пониженного энергопотребления.

БАЗОВЫЕ КОМАНДЫ «ЭЛЕКТРОНИКА – 60»

(DEC – архитектурные модели)

1. Команды пересылки данных.

Мнемоника

Краткое описание операции

MOV(B)

Пересылка операнда-слова (байта) источника по адресу операнда приемника.

MOV A, B; A → B

CLR(B)

Очистка операнда.

SWAB

Перестановка байтов.

2. Арифметические команды.

ADD

Операнд источника складывается с операндом приемника и результат заносится по адресу приемника.

ADD #1ØØ., CSR;

100+CSR → CSR

ADC(B)

Операнд складывается с содержимым

флага C PSW.

SBC(B)

Из операнда вычитается содержимое

флага C PSW.

SUB

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

SUB A, B

B ← A — B

INC(B)

Инкрементирование операнда.

DEC(B)

Декрементирование операнда.

NEG(B)

Преобразование операнда в двоичное дополнение (изменение знака числа).

CMP(B)

Сравнивает операнды источника с операндом приемника (вычитается приемник из источника).

CMP A, B

B ← A — B

MUL

Операция умножения.

DIV

Операция деления.

3. Логические команды.

COM(B)

Инвертирование всех разрядов операнда(логическое НЕ)

BIT(B)

Логическое И над источником(SS) и приемником(DD).Изменяются флаги PSW, оба операнда не изменяются.

BIT #10, CSR

; проверка 3 разряда в регистре CSR.

BIC(B)

Очищает каждый разряд операнда (DD), соответствующий установленному разряду операнда SS.

BIC # 1, CSR

; очистка Ø разряда.

BIS(B)

Выполняет логическую операцию ИЛИ, а результат заносится по адресу операнда-приемника (DD).

BIS # 2, CSR

; установка в 1

1 разряда CSR.

XOR

Операция «неэквивалентность» над содержимым регистра общего назначения(РОН) и содержимым приемника ( DD).

TST(B)

Тестирует операнд и меняет флаги Z и N в PSW.

M: TSTB CSR

BPL M

; проверка установки 7 бита в CSR в 1.

4. Команды сдвига.

ROL(B)

Циклически сдвигает все разряды влево на одну позицию.

ROR(B)

Аналогично вправо на одну позицию.

ASL(B)

Сдвигает все разряды влево на одну позицию (умножение на два).

ASR(B)

Сдвигает все разряды вправо на одну позицию (деление на два).

5. Команды передачи управления.

BR

Безусловный переход с использованием смещения.

BNE

Ветвление, если не равно нулю

(переход, если Z = 0).

BEQ

Ветвление, если равно нулю

(переход, если Z = 1).

BPL

Ветвление, если плюс

(переход, если N = 0).

BMI

Ветвление, если минус

(переход, если N = 1).

BVC

Ветвление, если не равно нулю

(проверяет состояние V = 0).

BVS

Ветвление, если равно нулю

(переход, если V = 1).

BCC

Ветвление, если не равно (нулю)

(переход, если С = 0).

BCS

Ветвление, если равно (нулю)

(переход, если С = 1).

BGE

Ветвление, если больше или равно (нулю)

(вызывает ветвление, если N и С установлены или очищены).

BLT

Ветвление, если меньше (нуля)

(ветвление, если установлен только один из флагов N или С).

BGT

Ветвление, если больше (нуля)

(ветвление, если установлен один из флагов N или С, а Z = 1).

BLE

Ветвление, если больше или равно (нулю)

(подобна BLT, но вызывает ветвление если результат предыдущей операции был

равен Ø).

BHI

Ветвление, если больше

(после операции сравнения если С = 0,

Z = 0).

BLOS

Ветвление, если меньше или равно

(вызывает ветвление, если предыдущая операция вызывает перенос или Z = 1).

JMP

Безусловный переход. Команда обеспечивает возможность перехода программы на любую ячейку памяти с использованием всех методов адресации (за исключением регистрового).

6. Команды специального назначения.

SOB

Счет циклов в регистре общего назначения.

SOB R2, метка

JSR

Переход к подпрограмме.

RTS

Возврат из подпрограммы.

MFPS

Чтение слова состояния программы (PSW).

MTPS

Запись слова состояния (PSW).

MTPS # 0 (разрешение прерываний)

MTPS # 2ØØ; (запрещение прерываний)

NOP

Нет операции.

HALT

Останов.

WAIT

Ожидание.

RTI

Возврат из прерывания

TRAP

Командное прерывание

RESET

Сброс BУ.

еще рефераты
Еще работы по остальным рефератам