Разработка цифрового датчика скорости
Реализация датчика угловой скорости вращения электродвигателя программным способом, анализируя количество опросов порта в течении периода импульсов, поступающих в заданный порт. оценка возможности уменьшения погрешности. Разработка и описание алгоритма.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 27.11.2012 |
Размер файла | 70,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
Введение
1.1 Задание
1.2 Анализ поставленной задачи
1.3 Программа
1.4 Разработка и описание алгоритмов
Заключение
датчик порт импульс погрешность
Введение
Поставленная задача звучит таким образом: Программным способом реализовать датчик угловой скорости вращения электродвигателя.
В современных системах управления электроприводами технологических объектов используются импульсные датчики скорости вращения исполнительного механизма или электродвигателя. Импульсный датчик механически, без люфтов, сочленяется с валом двигателя и вырабатывает на своем выходе при вращении последнего импульсы определенной скважности. При этом число импульсов на один оборот вала фиксировано и определяется конструкцией датчика.
На практике наиболее распространенной единицей измерения угловой скорости вращения вала двигателя ПДВ является внесистемная единица - число оборотов в минуту (об/мин). Поэтому на угловой скорости вращения двигателя где на выходе импульсного датчика будет генерировать последовательность импульсов с частотой f и периодом Т.
Расчет угловой скорости вращения двигателя ПДВ через частоту следования импульсов f сопряжен с расчетом числа импульсов за определенный интервал времени дельта t. Недостатком данного способа является то, что информация о скорости вращения двигателя выводится с задержкой на величину At. Кроме этого, изменение скорости вращения двигателя в течение времени счета дельта t приводит к снижению точности расчета скорости.
Аппаратное или программное измерение периода Следования импульсов выполняется по следующему алгоритму:
1) определяется момент времени начала импульса по фронту импульса;
2) с фиксированной дискретной выполняется опрос длительности периода Т до момента времени выполнения условия «окончание периода». При этом в счетчике фиксируется число опросов N за длительность Т;
3) по выражению осуществляется расчет угловой скорости вращения двигателя.
1.1. Задание
Задание 3: программным способом реализовать датчик угловой скорости вращения электродвигателя.
Данные варианта 3 приведены в таблице 1.
Таблица 1
, об/мин |
, об/мин |
, об/мин |
@1 |
@2 |
Ошибка, % |
|
1000 |
500 |
50 |
B5 |
B6 |
1 |
1.2. Анализ поставленной задачи
Необходимо разработать цифровой датчик скорости анализируя количество опросов порта в течении периода импульсов поступающих в порт В5. Так как длительность положительного импульса равна половине периода, то можно опрашивать порт в течении положительного импульса, а в течении второго полупериода анализировать считанные данные и выводить результат (скорость) в порт В6.
Важным аспектом выполнения задачи является уменьшение погрешности, возникающей из-за наличия интервала опроса порта ввода. Для этого интервал опроса нужно выбрать минимально возможным при данной частоте микропроцессора, а программу как можно проще (для уменьшения количества тактов). Также можно увеличить число исследуемых периодов, то есть считать скорость по данным за несколько периодов, тогда скорость будет более усредненной точной. Еще можно использовать более мощный процессор, с большей тактовой частотой. Но я в своей работе уменьшу погрешность посредством уменьшения количества шестерней на вале, именно уменьшения, потому что погрешность возникает в начале и в конце положительного полупериода, из-за того, что опрос порта ввода происходит через некоторый интервал, то есть он не всегда попадает точно на начало или на конец положительного полупериода - чем больше импульсов, тем больше погрешность, чем меньше шестерней, тем меньше импульсов. Я выбрал именно этот способ, так как он самый недорогой.
Импульсы в порт В5 будут поступать на младший разряд, а старшие разряды необходимо заземлить. В дальнейшем под словами данные порта ввода будет пониматься младший бит байта.
Рассчитаем период опроса порта для заданных параметров и погрешности.
Так как максимальная погрешность имеется при максимальной скорости (при максимальной скорости больше импульсов), то необходимо расчет вести для максимальной скорости.
Найдем частоту импульсов при максимальной скорости:
(1),
где
- максимальная скорость двигателя в об/сек,
- минимальная скорость двигателя в об/сек,
- максимальная скорость двигателя в об/мин,
- минимальная скорость двигателя в об/мин,
- число импульсов на оборот импульсного датчика.
Определим минимально возможный период импульса:
.(2)
Длины положительных импульсов при этом будут равны:
.(3)
Найдем необходимый период опроса порта для заданного уровня ошибки:
.(4)
Для разработки алгоритма и программы необходимо знать количество тактов, через которое опрашивается порт. При расчете количества тактов принималось следующее значение тактовой частоты МП КР580ВМ80А - 2 МГц. Определим период одного такта для данного микропроцессора:
(5).
Рассчитаем число тактов, через которое должен производиться опрос порта ввода при заданной погрешности:
(6).
Таким образом, опрос порта, анализ полученных данных и сохранение результатов анализа нужно организовать за полученное число тактов. Это недостижимо при данных условиях, поэтому, как сказано выше, я собираюсь увеличить количества шестерней в вале, за это отвечает параметр . Итак, нужно, чтобы число тактов, через которое должен производиться опрос порта ввода, , было равно 32 (смотреть пункт 1.2, программа).
(7), это составляет 16(мкс) или 0,000016(c)
Подставляем это число в фомулу (4):
(8), при этом (9), (10).
Частота для - (11).
Теперь нужно подставить значение в формулу (1):
,
при этом (12), округлим это значение до целого числа в меньшую сторону, (13).
Для вывода окончательного результата необходимо вывести зависимость скорости вращения от количества импульсов сосчитанных микропроцессором за положительный полупериод.
Пусть k - количество посчитанных импульсов за положительный полупериод, тогда
(14),
(15),
(16).
При расчетах скорости в оборотах в секунду необходимо работать с дробными числами, поэтому для большего удобства будем выводить скорость в оборотах в минуту.
(17).
Я считаю, что производить деление с помощью микропроцессора программным путем нецелесообразно, так как программа деления занимает большое адресное пространство и требует сравнительно большое время для выполнения. Поэтому вывод результата будет путем чтения ячеек памяти или в ПЗУ. Адрес читаемой ячейки будет определяться в зависимости от подсчитанных опросов порта ввода, и содержимое ячеек (скорость) будет посылаться в порт вывода. Скорость будет записана в десятичной форме, а так как максимальная скорость равна 1000 об/мин (4 разряда числа), то для отображения реальной скорости необходимо два порта вывода. Один из них будет хранить младшие два разряда, а другой - старшие два. Пусть дополнительным портом вывода будет порт B7.
Далее необходимо найти минимальное и максимальное число опросов порта ввода информации за положительный полупериод, чтобы исходя из этого записать определенное количество возможных значений скорости, как написано выше. Для этого нужно найти сначала частоту импульсов при минимальной скорости, затем максимально возможный полупериод (эти данные для максимальной скорости найдены, смотреть (9), (11)):
(18),
(19),
(20),
(21),
(22).
Округлим значения, полученные в выражениях (21), (22) до целых, так как может быть только целое число опросов. Итак:
(23),
(24), где
- максимально возможное количество подсчитанных импульсов;
- минимально возможное количество подсчитанных импульсов.
До составления алгоритма необходимо распределить адресное пространство:
В5h - порт считывания данных с датчика скорости;
В6h, B7h- порты вывода количества импульсов сосчитанных микропроцессором за положительный полупериод;
0800h - 08FFh - программа;
0900h - 0AFFh - ячейки памяти, в которых находятся значения скорости;
регистровая пара HL - счетчик количества импульсов;
регистровая пара BC содержит разницу между адресами ячеек, в которых хранятся старшие разряды значений скорости и в которых хранятся младшие разряды скорости.
1.3 Программа
Таблица 2
Адрес |
Метка |
Ассемблер |
Такты |
Примечания |
|
0800 |
MVI B,00 |
7 |
1 |
||
0802 |
MVI C,6E |
7 |
|||
0804 |
M3 |
MVI H,09 |
7 |
2 3 |
|
0806 |
MVI L,00 |
7 |
|||
0808 |
M1 |
IN port B5 |
10 |
3 |
|
080A |
CPI 00 |
7 |
4 |
||
080C |
JZ M1 |
10 |
5 |
||
080F |
M2 |
INX H |
5 |
6 |
|
0811 |
IN port B5 |
10 |
7 |
||
0813 |
CPI 00 |
7 |
8 |
||
0815 |
JNZ M2 |
10 |
9 |
||
0818 |
MOV A,M |
5 |
10 |
||
0819 |
OUT port B6 |
10 |
11 |
||
081B |
DAD B |
10 |
12 |
||
081C |
MOV A,M |
5 |
13 |
||
081D |
OUT port B7 |
10 |
14 |
||
081F |
JMP M3 |
10 |
15 |
Работа программы (таблица 2):
Задание значения регистровой пары BC для ее дальнейшего сложения с регистровой парой HL
задание начального значения счетчика импульсов (сосчитанных микропроцессором за положительный полупериод (регистровая пара HL).
Чтение порта В5. Данные с него поступают на аккумулятор.
Сравнение данных из порта с значением нулем. Если значение данных порта изменилось с 0 на 1, то признак Z принимает значение 0.
Проверка признака Z. Если признак Z равен 1, то порт B5 опрашивается заново. Если признак Z равен 0, то программа выходит из цикла и выполняется следующая команда.
Инкремент счетчика импульсов, сосчитанных микропроцессором за положительный полупериод.
Чтение порта В5.
Сравнение новых данных порта с 0. При равенстве данных из порта 1 устанавливается признак Z=0.
Проверка признака Z. Пока данные порта равны единице (Z=0), импульс еще не завершился и надо инкрементировать счетчик.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL для их дальнейшего вывода.
Вывод данных в порт В6, это и будут старшие разряды значения скорости.
Двойное сложение регистровых пар HL и BC , это действие совершается для выведения младших разрядов скорости.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL для их дальнейшего вывода.
Вывод данных в порт В7, это младшие разряды значения скорости.
Переход на начало программы.
Также нужно отметить, что дискрета в программе составила 10+7+10+5=32 такта.
Кроме того, ниже представлена таблица 3, в которой показано, какие данные в какие ячейки памяти нужно занести, чтобы выводились определенные значения скорости в десятичной форме, соответствующие определенному количеству импульсов.
Таблица 3
k, раз |
Значения скорости, об./мин. |
Для старших разрядов |
Для младших разрядов |
|||
Адрес |
Содержимое |
Адрес |
Содержимое |
|||
100 |
1041 |
0964 |
10 |
0A32 |
41 |
|
101 |
1031 |
0965 |
10 |
0A33 |
31 |
|
102 |
1021 |
0966 |
10 |
0A34 |
21 |
|
103 |
1011 |
0967 |
10 |
0A35 |
11 |
|
104 |
1001 |
0968 |
10 |
0A36 |
01 |
|
105 |
992 |
0969 |
09 |
0A37 |
92 |
|
106 |
982 |
096A |
09 |
0A38 |
82 |
|
107 |
973 |
096B |
09 |
0A39 |
73 |
|
108 |
964 |
096C |
09 |
0A3A |
64 |
|
109 |
955 |
096D |
09 |
0A3B |
55 |
|
110 |
946 |
096E |
09 |
0A3C |
46 |
|
111 |
938 |
096F |
09 |
0A3D |
38 |
|
112 |
930 |
0970 |
09 |
0A3E |
30 |
|
113 |
921 |
0971 |
09 |
0A3F |
21 |
|
114 |
913 |
0972 |
09 |
0A40 |
13 |
|
115 |
905 |
0973 |
09 |
0A41 |
05 |
|
116 |
897 |
0974 |
08 |
0A42 |
97 |
|
117 |
890 |
0975 |
08 |
0A43 |
90 |
|
118 |
882 |
0976 |
08 |
0A44 |
82 |
|
119 |
875 |
0977 |
08 |
0A45 |
75 |
|
120 |
868 |
0978 |
08 |
0A46 |
68 |
|
121 |
860 |
0979 |
08 |
0A47 |
60 |
|
122 |
853 |
097A |
08 |
0A48 |
53 |
|
123 |
846 |
097B |
08 |
0A49 |
46 |
|
124 |
840 |
097C |
08 |
0A4A |
40 |
|
125 |
833 |
097D |
08 |
0A4B |
33 |
|
126 |
826 |
097E |
08 |
0A4C |
26 |
|
127 |
820 |
097F |
08 |
0A4D |
20 |
|
128 |
813 |
0980 |
08 |
0A4E |
13 |
|
129 |
807 |
0981 |
08 |
0A4F |
07 |
|
130 |
801 |
0982 |
08 |
0A50 |
01 |
|
131 |
795 |
0983 |
07 |
0A51 |
95 |
|
132 |
789 |
0984 |
07 |
0A52 |
89 |
|
133 |
783 |
0985 |
07 |
0A53 |
83 |
|
134 |
777 |
0986 |
07 |
0A54 |
77 |
|
135 |
771 |
0987 |
07 |
0A55 |
71 |
|
136 |
765 |
0988 |
07 |
0A56 |
65 |
|
137 |
760 |
0989 |
07 |
0A57 |
60 |
|
138 |
754 |
098A |
07 |
0A58 |
54 |
|
139 |
749 |
098B |
07 |
0A59 |
49 |
|
140 |
744 |
098C |
07 |
0A5A |
44 |
|
141 |
738 |
098D |
07 |
0A5B |
38 |
|
142 |
733 |
098E |
07 |
0A5C |
33 |
|
143 |
728 |
098F |
07 |
0A5D |
28 |
|
144 |
723 |
0990 |
07 |
0A5E |
23 |
|
145 |
718 |
0991 |
07 |
0A5F |
18 |
|
146 |
713 |
0992 |
07 |
0A60 |
13 |
|
147 |
708 |
0993 |
07 |
0A61 |
08 |
|
148 |
703 |
0994 |
07 |
0A62 |
03 |
|
149 |
699 |
0995 |
06 |
0A63 |
99 |
|
150 |
694 |
0996 |
06 |
0A64 |
94 |
|
151 |
689 |
0997 |
06 |
0A65 |
89 |
|
152 |
685 |
0998 |
06 |
0A66 |
85 |
|
153 |
680 |
0999 |
06 |
0A67 |
80 |
|
154 |
676 |
099A |
06 |
0A68 |
76 |
|
155 |
672 |
099B |
06 |
0A69 |
72 |
|
156 |
667 |
099C |
06 |
0A6A |
67 |
|
157 |
663 |
099D |
06 |
0A6B |
63 |
|
158 |
659 |
099E |
06 |
0A6C |
59 |
|
159 |
655 |
099F |
06 |
0A6D |
55 |
|
160 |
651 |
0A00 |
06 |
0A6E |
51 |
|
161 |
646 |
0A01 |
06 |
0A6F |
46 |
|
162 |
643 |
0A02 |
06 |
0A60 |
43 |
|
163 |
639 |
0A03 |
06 |
0A61 |
39 |
|
164 |
635 |
0A04 |
06 |
0A62 |
35 |
|
165 |
631 |
0A05 |
06 |
0A63 |
31 |
|
166 |
627 |
0A06 |
06 |
0A64 |
27 |
|
167 |
623 |
0A07 |
06 |
0A65 |
23 |
|
168 |
620 |
0A08 |
06 |
0A66 |
20 |
|
169 |
616 |
0A09 |
06 |
0A67 |
16 |
|
170 |
612 |
0A0A |
06 |
0A68 |
12 |
|
171 |
609 |
0A0B |
06 |
0A69 |
09 |
|
172 |
605 |
0A0C |
06 |
0A6A |
05 |
|
173 |
602 |
0A0D |
06 |
0A6B |
02 |
|
174 |
598 |
0A0E |
05 |
0A6C |
98 |
|
175 |
595 |
0A0F |
05 |
0A6D |
95 |
|
176 |
591 |
0A10 |
05 |
0A6E |
91 |
|
177 |
588 |
0A11 |
05 |
0A6F |
88 |
|
178 |
585 |
0A12 |
05 |
0A70 |
85 |
|
179 |
581 |
0A13 |
05 |
0A71 |
81 |
|
180 |
578 |
0A14 |
05 |
0A72 |
78 |
|
181 |
575 |
0A15 |
05 |
0A73 |
75 |
|
182 |
572 |
0A16 |
05 |
0A74 |
72 |
|
183 |
569 |
0A17 |
05 |
0A75 |
69 |
|
184 |
566 |
0A18 |
05 |
0A76 |
66 |
|
185 |
563 |
0A19 |
05 |
0A77 |
63 |
|
186 |
560 |
0A1A |
05 |
0A78 |
60 |
|
187 |
557 |
0A1B |
05 |
0A79 |
57 |
|
188 |
554 |
0A1C |
05 |
0A7A |
54 |
|
189 |
551 |
0A1D |
05 |
0A7B |
51 |
|
190 |
548 |
0A1E |
05 |
0A7C |
48 |
|
191 |
545 |
0A1F |
05 |
0A7D |
45 |
|
192 |
542 |
0A20 |
05 |
0A7E |
42 |
|
193 |
539 |
0A21 |
05 |
0A7F |
39 |
|
194 |
536 |
0A22 |
05 |
0A80 |
36 |
|
195 |
534 |
0A23 |
05 |
0A81 |
34 |
|
196 |
531 |
0A24 |
05 |
0A82 |
31 |
|
197 |
528 |
0A25 |
05 |
0A83 |
28 |
|
198 |
526 |
0A26 |
05 |
0A84 |
26 |
|
199 |
523 |
0A27 |
05 |
0A85 |
23 |
|
200 |
520 |
0A28 |
05 |
0A86 |
20 |
|
201 |
518 |
0A29 |
05 |
0A87 |
18 |
|
202 |
515 |
0A2A |
05 |
0A88 |
15 |
|
203 |
513 |
0A2B |
05 |
0A89 |
13 |
|
204 |
510 |
0A2C |
05 |
0A8A |
10 |
|
205 |
508 |
0A2D |
05 |
0A8B |
08 |
|
206 |
505 |
0A2E |
05 |
0A8C |
05 |
|
207 |
503 |
0A2F |
05 |
0A8D |
03 |
|
208 |
500 |
0A30 |
05 |
0A8E |
00 |
|
209 |
498 |
0A31 |
04 |
0A8F |
98 |
1.4 Разработка и описание алгоритмов
Алгоритм, представленный на рисунке 1, составлен так, чтобы счет во время запуска программы начинался не с времени запуска, а с первого положительного импульса. Иначе, при счете с момента запуска программы, если он не совпадет с началом положительного импульса, микропроцессор сосчитает меньшее количество опросов порта и в следствии этого обратится не к той ячейке. Это приведет к выводу ложного результата.
Таким образом алгоритм состоит из четырех частей: установка начальных условий, определение начала положительного импульса, определение длины импульса, вывод полученной информации.
Описание алгоритма:
Задание значения регистровой пары BC.
Задание значения регистровой пары HL.
Чтение порта В5.
Сравнение содержимого аккумулятора с нулем. Если значения равны, то программа возвращается к блоку 3; если не равны, то выполняется следующая команда.
Инкремент счетчика.
Чтение порта В5.
Сравнение содержимого аккумулятора с нулем. Если значения не равны, то программа возвращается к блоку 5; если не равны, то выполняется следующая команда.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL и их вывод через порт B6.
Двойное сложение регистровых пар HL и BC.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL и их вывод через порт B7. Далее программа зацикливается для постоянного вывода актуального значения скорости.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Заключение
Реализовать поставленную задачу невозможно, если не модернизировать аппаратное обеспечение. Таким образом, я спроектировал работу измерителя скорости с условием, что будет установлен вал с меньшим числом шестерней, это уменьшит количество импульсов на входе, увеличив при этом их протяженность, значит уменьшится погрешность, которая возникает на начале и в конце импульса, просто потому, что уменьшится количество этих проблемных участков. При этом возникла проблема вывода информации, ведь подсчеты длин импульсов нельзя назвать значениями скорости. Для того, чтобы вывести значение скорости в об./мин., была составлена таблица, в которой указаны соответствия скоростей и ячеек памяти, то есть после того, как микропроцессор подсчитает количество опросов за положительный полупериод, он обратится к ячейке памяти, в которой указано значение скорости для данного количества опросов и выведет ее. Но тут возникает еще одна проблема, значения скорости по варианту колеблются от 500 до 1000, а вывести такое число один порт не может, поэтому я ввел дополнительный порт вывода B7, который будет выводить младшие разряды значений скорости.
Данный вариант решения поставленной задачи является самым недорогим и рациональным, поэтому с моей точки зрения поставленную задачу необходимо решать именно таким образом и никаким другим.
1. Размещено на www.allbest.ru
Подобные документы
Модернизация поплавкового датчика угловой скорости (ДУС) путем введения цифровой обратной связи, разработка его структурной схемы с процессором. Математическая модель ДУС с цифровым регулятором. Расчет основных параметров. Анализ погрешностей датчика.
дипломная работа [3,2 M], добавлен 30.01.2012Конструкция и принцип действия поплавкового датчика угловой скорости КХ79-060. Расчет потребляемой мощности, коэффициента демпфирования и момента инерции поплавкового гидроузла. Математическая модель ДУС с цифровой обратной связью. Анализ погрешностей.
дипломная работа [1,6 M], добавлен 23.01.2012Описание принципа действия аналогового датчика и выбор его модели. Выбор и расчет операционного усилителя. Принципа действия и выбор микросхемы аналого-цифрового преобразователя. Разработка алгоритма программы. Описание и реализация выходного интерфейса.
курсовая работа [947,1 K], добавлен 04.02.2014Разработка цифрового блока управления с датчиком формирователя импульсов, счетчиком импульсов с предустановкой, командным триггером и импульсным усилителем мощности. Формирование сигнала сброса, схема принципиальная фотоэлектрического импульсного датчика.
контрольная работа [103,2 K], добавлен 03.03.2011Патентно-аналитический обзор по датчикам измерения скорости, основания их классификации. Принцип действия и технические характеристики электромагнитных датчиков скорости. Использование эффекта Холла для конструирования датчика скорости автомобиля.
курсовая работа [607,5 K], добавлен 13.01.2015Основные понятия теории автоматического управления, его виды и законы регулирования. Описание датчика Холла, его основные погрешности и методы их компенсации. Разработка установки для калибровки цифрового магнитометра по магнитному полю и температуре.
дипломная работа [1,5 M], добавлен 02.06.2011Разработка линеаризатора сигнала первого датчика с гладкой и кусочно-линейной аппроксимацией. Определение величины устройства выделения постоянной составляющей из сигнала второго датчика. Разработка аналого-цифрового преобразователя; селекторы сигналов.
курсовая работа [1,7 M], добавлен 18.02.2011Выбор и обоснование принципа работы узла аналого-цифрового преобразования. Создание измерительного преобразователя для датчика термопары. Определение максимальной погрешности нелинейности характеристики в заданном диапазоне температуры; линеаризация.
курсовая работа [585,9 K], добавлен 05.11.2011Описание структурной схемы генератора. Описание работы схемы электрической принципиальной блока. Выбор и обоснование элементной базы. Разработка конструкции печатной платы. Разработка конструкции датчика сетки частот. Описание конструкции генератора.
дипломная работа [287,2 K], добавлен 31.01.2012Теоретический обзор существующих методов измерения влажности. Сравнительный обзор существующих подсистем контроля влажности, выбор датчика влажности. Описание датчика влажности QFM3160 и контроллера SYNCO 700. Разработка схемы и элементной базы датчика.
дипломная работа [2,2 M], добавлен 13.10.2017