- •«Национальный минерально-сырьевой университет «горный»
- •1 Контрольная работа №1
- •1.1 Задание на контрольную работу №1
- •1.2 Решение контрольной работы №1
- •2 Контрольная работа №2
- •2.1 Задание на контрольную работу №2
- •2.2 Решение контрольной работы №2
- •3.1.1 Составление программы сложения
- •3 Работа с микропроцессором кр580
- •3.1 Составление программ
- •3.1.2 Составление программы умножения
- •Приложение а (справочное) − Алфавитный перечень мнемокодов мп к580
- •Приложение б (справочное) − Символы и обозначения, используемые в командах мп
- •Литература
1.2 Решение контрольной работы №1
Определим разрядную сетку. Расчет числа разрядов представления входных данных, операндов и выходных данных специализированной МПС выполняется из условия обеспечения заданной допустимой среднеквадратической погрешности σi.доп решения задач каждого i-го типа.
Максимальные значения функций f1 и f2 (b1 = 30, b2 = 10, b3 = 20):
f1max: (x2(x12+x3)) = 10 · (302 + 20) = 9200;
f2max: (x1x2x3) = 30 · 10 · 20 =6000.
Абсолютные значения погрешностей:
σдоп1 = |y1|maxδдоп1/100 = f1(30,10,20) · 0,45/100 = 41,4;
σдоп2 = |y2|maxδдоп2/100 = f2(30,10,20) · 0,3/100 = 18.
Методическая погрешность, обусловленная приближенным характером алгоритма и численного метода, реализующего алгоритм вычисления fi:
σм1 = |y1|maxδм/100 = f1(30,10,20) · 0,09/100 = 8,28;
σм2 = |y2|maxδм/100 = f2(30,10,20) · 0,09/100 = 5,4.
Абсолютная погрешность датчиков:
σдат1 = |x1|maxδдат/100 = b1·0,25/100 = 30 · 0,25/100 = 0,075;
σдат2 = |x2|maxδдат/100 = b2 · 0,25/100 = 10 · 0,25/100 = 0,025;
σдат3 = |x3|maxδдат/100 = b3 · 0,25/100 = 20 · 0,25/100 = 0,05.
Для оценки трансформированной погрешности найдем частные производные. Для функции трех переменных f1 = x2(x12+x3) = x12x2 + x2x3 производные:
df1/dx1 = (x12x2 + x2x3)′x1 = 2x12-1x2 + 0 = 2x1x2;
df1/dx2 = (x12x2 + x2x3)′x2 = x12·1 + 1·x3= x12 + x3;
df1/dx3 = (x12x2 + x2x3)′x3 = 0 + 1·x3 = x3.
Для функции трех переменных f2 = x1x2x3 частные производные:
df2/dx1 = (x1x2x3)′x1 = 1· x2x3 = x2x3;
df2/dx2 = (x1x2x3)′x2 = x1· 1· x3 = x1x3;
df2/dx3 = (x1x2x3)′x3 = x1x2 · 1 = x1x2.
Обозначим d11 = df1/dx1, d12 = df1/dx2, d13 = df1/dx3, d21 = df2/dx1, d22 = df2/dx2, d23 = df2/dx3.
Для получения математических ожиданий d11, d12, d13, d21, d22 и d23 предположим, что входные аргументы x1,…,x3 распределены независимо и равномерно в интервалах 0 x1 b1, 0 x2 b2 и 0 x3 b3. С помощью программы, использующей генератор случайных чисел с равномерным распределением, или непосредственным вычислением находим значение интегралов вида:
Математическое ожидание d11:
Математическое ожидание d12:
Математическое ожидание d13:
Математическое ожидание d21:
Математическое ожидание d22:
Математическое ожидание d23:
Уменьшить погрешность датчиков дат.j обычно труднее, чем погрешность АЦП АЦП.j. Для ослабления ее влияния на общую погрешность j задания аргументов выберем погрешность АЦП по формуле
АЦП.j = j дат.j,
где 0 < j 0,5.
Тогда: j2 = дат.j 2 + АЦП.j2 = дат.j 2(1+ j2) и, если принять 1=2=3= , получим соотношение:
Т.i2= (1+ 2) j дат.j 2 М 2[dij].
С учетом требования Т.i2 + м.i2 доп.i2, можно получить условие для выбора 2:
2 < (доп.i2 - м.i2)/ j дат.j 2 М 2[dij] − 1.
Для функции f1:
1 1-3 дат.1-3 2 М 2[d1 1-3 ] = 0,0752 · 1002 + 0,0252 · 1502 + 0,052 · 152 = 70,9.
12 < (доп.12 − м.12)/ 1 1-3 дат.1-3 2 М 2[d1 1-3 ] − 1,
12 < (41,42 – 8,282)/70,9 − 1,
12 < 22.
Примем 1 = 2 = 3 = 0,5. Тогда:
АЦП.1= 1 дат.1 = 0,5 · 0,075 = 0,0375,
АЦП.2 = 2 дат.2 = 0,5 · 0,025 = 0,0125,
АЦП.3 = 3 дат.3 = 0,5 · 0,05 = 0,025,
Т.12 (1+ 12) j дат.j 2 М 2[d1j] (1 + 11)·70,9 851.
Для функции f2:
2 1-3 дат.1-3 2 М 2[d2 1-3 ] = 0,0752 · 752 + 0,0252 · 1502 + 0,052 · 502 = 52.
22 < (доп.22 − м.22)/ 2 1-3 дат.1-3 2 М 2[d2 1-3 ] − 1,
22 < (182 – 5,42)/ 52 − 1,
22 < 5.
Примем 1 = 2 = 3 = 0,5. Тогда:
АЦП.1= 1 дат.1 = 0,5 · 0,075 = 0,0375,
АЦП.2 = 2 дат.2 = 0,5 · 0,025 = 0,0125,
АЦП.3 = 3 дат.3 = 0,5 · 0,05 = 0,025,
Т.22 (1+ 22) j дат.j 2 М 2[d2j] (1 + 4)·52 260.
Предполагая, что
А.j
вх.j
и, следовательно,
,
находим:
0,0265,
По формуле nвх.j
=N(bj,
вх.j
)
определяем разрядность всех АЦП
(функция N(x,w), выражает число
разрядов двоичного числа для представления
непрерывной величины x с размером
кванта w:
N(x,w)=]log2(x/w +1)[,
где ][ – округление до ближайшего большего целого).
nвх.1= N(30; 0,0265 ) =]log2(30/(0,0265 · ) +1)[ = 9,
nвх.2= N(10; 0,0088 ) =]log2(10/(0,0088 · ) +1)[ = 9,
nвх.3 = N(20; 0,0177 ) =]log2(20/(0,0177 · ) +1)[ = 9.
По справочнику выбираем конкретный тип АЦП и, следовательно, уточняем значения nвх.j и АЦП.j. В [5, стр. 18, табл. 7] приведено несколько вариантов АЦП. Выберем АЦП КР572ПАI с числом разрядов nвх = 10.
Введем функцию W(x,n), выражающую размер кванта при замене непрерывной величины x n-разрядным двоичным числом: W(x,n) = x / (2n – 1).
Для оценки погрешности округлений и расчета разрядности операционного устройства примем lокр.1 = 1, lокр.2 = 2 (число умножений при вычислении f1(x1, x2, x3) = x2(x12+x3), f2(x1, x2, x3) = x1x2x3).
Инструментальная погрешность:
и.i2 = окр.i2 + вых.i2,
где окр.i – погрешность округления;
вых.i – погрешность представления данных на выходе цифровой части ЭВМ.
Погрешность симметричного округления оценивается по формуле
окр.i2= wоп.i2 (lокр.i /12),
где lокр.i – число округлений;
wоп.i – вес младшего разряда операндов в единицах выходной величины yi. Вес младшего разряда операндов:
wоп.i = W(yimax, nоп.i).
Разрядность nоп.i операндов определяется разрядностью АЛУ микроЭВМ и выбранным вариантом программной реализации арифметических операций. Конкретные значения nоп.i могут выбираться, например, из условия их кратности 8. Положим, что nоп.1 = nоп.2 = 8:
wоп.1 = W(f1(x1, x2, x3), nоп.1) = W(f1(30, 10, 20), 8) = 9200 / (28 – 1) = 36,1.
wоп.2 = W(f2(x1, x2, x3), nоп.2) = W(f2(30, 10, 20), 8) = 6000 / (28 – 1) = 23,5.
окр.12 = wоп.12 (lокр.1 /12) = 36,12 · (2 /12) = 217,2.
окр.22 = wоп.212 (lокр.2 /12) = 23,52 · (1 /12) = 46,21.
Условие:
2окр.1 < 2доп.1 − 2м.1 − 2т.1,
2окр.1 < 41,42 – 8,282 – 851,
217 < 794,4 − выполняется,
2окр.2 < 2доп.2 − 2м.2 − 2т.2,
2окр.2 < 182 – 5,4 2 – 260,
46,21 < 34,8 − не выполняется.
Положим, что nоп.2 = 10:
wоп.2 = W(f2(x1, x2, x3), nоп.2) = W(f2(30, 10, 20), 10) = 6000 / (210 – 1) = 5,9.
окр.22= wоп.212 (lокр.2 /12) = 5,92 · (1 /12) = 2,9.
Условие 2,9 < 34,8 выполняется. Следовательно, можно принять nоп.1 = 8, nоп.2 = 10.
Принимая σвых1 ≈ σдоп1 = 41,4 и σвых2 ≈ σдоп2 = 18, определим ориентировочное значение разрядности ЦАП для симметричного округления результатов расчета (учитываем, что 26 = 64, 27 = 128, 28 = 256):
nвых.i =N(f i (30, 10, 20), 41 ),
nвых.1 =N(f 1 (30, 10, 20), 41 ) = ]log2(9200/(41 ) +1)[ = ]log2(65,8)[ = 7,
nвых.2 =N(f 2 (30, 10, 20), 41 ) = ]log2(6000/(41 ) +1)[ = ]log2(43,2)[ = 6.
В [5, стр. 18, табл. 8] приведено несколько вариантов ЦАП. Выберем ЦАП К1107ПВ2 с числом разрядов nвых = 8 (n вых1 = n вых2 = 8). Так как n вых1 = nоп.1, σ2и.1 = окр.12 = 217. С учетом того, что n вых2 ≠ nоп.2:
и.22 = окр.22 + вых.22 = 2,9 + 182 = 326,9.
Величину погрешности ЦАП можно принять:
σцап.1 ≈ W(y1max, nвых.1)/ = W( f1 (30, 10, 20), 8)/ =
= (9200/(28 – 1))/ = 10,4;
σцап.2 ≈ W(y2max, nвых.2)/ = W( f2 (30, 10, 20), 8)/ =
= (6000/(28 – 1))/ = 6,7.
Таким образом получаем:
2т.1 + 2и.1 + σ2 цап.1 = 851 + 217 + 10,42 = 1176 < (σ2доп.1=1714);
2т.2 + 2и.2 + σ2 цап.2 = 260 + 326,9+ 6,72 = 631,7 < (σ2доп.2=324).
Результаты выбора неудовлетворительны. Выберем по [5, стр. 18, табл. 8] микросхему КIIII3ПВI с n вых2 = 10 (n вых2 = nоп.2), вых.2 = 0, и.22 = окр.22 = 2,9:
2т.2 + 2и.2 + σ2 цап.2 = 260 + 2,9+ 6,72 = 307,8 < (σ2доп.2=324).
С новым значением n вых2 = 10 результаты выбора удовлетворительны.
