Программа реализована на языке программирования Python 3.2.
Программа позволяет находить производственный допуск выходного параметра при известных номинальных значениях первичных параметров и их допусков. Рассчитывает требуемое число реализаций.
Листинг текста программы приведен в Приложении Б.
Для определения требуемого числа реализаций можно воспользоваться
формулой (3.5)
где
-это коэффициент, зависящий от доверительной вероятности
.
В данном случае
=0.95 это значит что
При
определении значения N предполагается известным
. Если же
неизвестно, то поступают следующим образом. Задаются
определенным числом реализаций устройства или процесса N1(N1
500...1000).
Выполняют
N1 реализаций. Оценивают значение
и
проверяют условие (3.5). Если оно выполняется, то заданная точность в
определении М(у) уже достигнута. В противном случае увеличивают число
реализаций процесса или устройства, корректируют значение
и вновь по условию (3.5) проверяют, достигнута ли
заданная точность.
На
требуемое число реализаций N заметно влияет допустимая ошибка Δ, см. формулу (3.5). Значение Δ, как правило, заказчиком не указывается. Выбор этой
величины должен быть сделан разработчиком. Если интересующими показателями
являются математическое ожидание и среднеквадратическое отклонение выходного
параметра РЭУ или технологического процесса, то выбор Δ можно сделать следующим образом. Исходя из начальных
сведений или по результатам обработки
реализаций
определяют примерное значение M(y). Далее, принимая во внимание функциональное
назначение РЭУ или процесса и физический смысл выходного параметра y,
определяют, какое значение половины поля допуска
(y),
устанавливаемое на этот параметр, может быть приемлемым для практики. В
качестве Δ
следует брать такое значение, которое как
минимум в 20…100 раз меньше
(y):
Δ≤(0,01…0,05)
(y).
В
нашем случае примерное значение M(y), определенное по N1=1000 реализаций
составляет 1952,1972 мВ.
(y)=19,6355*0,02=0,3926
мВ,
Δ=0,02*0,3926=0,0078 мВ.
В
соответствии с формулой (3.5) рассчитаем необходимое число реализаций каскада:
Результаты моделирования на ЭВМ в виде 5 реализаций каскада с указанием
для элементов значений параметров, полученных при моделировании с учетом их
производственного разброса в той или иной реализации, а так же значение
выходного параметра, соответствующего каждой реализации каскада приведены в
таблице 3.7.
Таблица 3.7 - Результаты моделирования на ЭВМ
|
|
1 |
2 |
3 |
4 |
5 |
|
U1 |
50,2690 |
49,9765 |
50,1738 |
50,0780 |
50,4321 |
|
U2 |
49,8827 |
49,6863 |
50,1113 |
49,9996 |
50,4754 |
|
U3 |
49,9087 |
49,8765 |
50,7245 |
50,1882 |
50,0095 |
|
U4 |
49,9446 |
50,0028 |
50,5008 |
50,1346 |
49,6904 |
|
U5 |
50,1041 |
50,1830 |
49,5026 |
50,2172 |
|
|
U6 |
50,2526 |
49,7242 |
50,0121 |
49,9307 |
49,8176 |
|
U7 |
50,3878 |
50,1739 |
49,7713 |
49,8089 |
49,8652 |
|
U8 |
49,3642 |
49,5915 |
50,3499 |
49,8325 |
50,1403 |
|
U9 |
49,8911 |
49,5821 |
49,7993 |
50,0648 |
50,3766 |
|
U10 |
49,5438 |
50,0229 |
50,3057 |
49,7178 |
49,6447 |
|
R1 |
9,9451 |
9,9399 |
9,5459 |
9,5946 |
10,4414 |
|
R2 |
9,9997 |
9,7971 |
9,7017 |
9,7921 |
9,8569 |
|
R3 |
9,9274 |
10,4578 |
9,8980 |
9,8688 |
10,4578 |
|
R4 |
10,1077 |
10,2708 |
10,2936 |
10,1906 |
9,9503 |
|
R5 |
9,8590 |
9,7768 |
9,5691 |
9,8259 |
10,2532 |
|
R6 |
10,2640 |
9,4688 |
10,6235 |
9,6968 |
10,1546 |
|
R7 |
9,5169 |
9,8372 |
10,0718 |
9,5703 |
|
|
R8 |
10,0456 |
9,9531 |
9,6586 |
10,5323 |
9,8578 |
|
R9 |
10,3101 |
10,1601 |
10,4667 |
10,1572 |
9,7699 |
|
R10 |
10,2020 |
10,3960 |
10,4935 |
9,6766 |
10,2063 |
|
Uвых |
1946 |
1938 |
1958 |
1953 |
1944 |
4.
Сравнение точности выходного параметра
Результирующие характеристики точности выходного параметра, полученные
вероятностным расчетно-аналитическим методом и моделированием поведения
устройства на ЭВМ, приведены в таблице 4.1.
Таблица 4.1 - Характеристики точности выходного параметра, расчетно-аналитическим методом и методом Монте-Карло
|
Характеристика точности выходного параметра |
Вероятностный Метод |
Метод Монте-Карло |
|
Производственный допуск Δпр, % |
|
3,0196 |
По результатам, приведенным для вероятностного метода и для метода Монте-Карло, можно говорить об равнозначности этих методов. Величины производственных допусков различны лишь на десятые доли процента. Однако не следует забывать, что метод Монте-Карло является методом статистических испытаний, а вероятностный - расчетно-аналитическим методом. Метод Монте - Карло позволяет варьировать законами распределения входных (первичных) и выходных параметров, что придает этому методу универсальность. Данный метод более точный по сравнению с любым другим методом, так как в реализации данного метода можно численно задавать ошибку в определении математического ожидания выходного параметра, что требует только машинных затрат.
Однако не следует отбрасывать вероятностный метод расчета допусков. Он
является наиболее совершенным из расчетно-аналитических методов и позволяет
наиболее правильно учитывать случайный характер как входных, так и выходных параметров.
Заключение
В результате работы, двумя различными способами была получена характеристика точности выходного параметра напряжение, устройства «суммирующий усилитель». Поскольку результаты, полученные обоими методами, имеют небольшое расхождение, т.е. методы подтверждают правильность друг друга, можно сделать вывод, что оба метода дают приемлемые результаты, и могут быть использованы на практике.
Математическая модель выходного параметра устройства «суммирующий усилитель» содержит достаточно много входных параметров, поэтому в рассматриваемом случае не целесообразно пользоваться расчетно-аналитическим методом, поскольку теоретический расчет потребует больших временных затрат, в то время как написание и отладка программы, реализующей метод Монте-Карло, потребует меньшее количество времени.
В случае когда математическая модель выходного параметра имеет мало параметров или имеет достаточно простой вид, целесообразно использовать расчетно-аналитический метод. Дифференцирование сложной математической модели является достаточно сложной, требующей значительных временных затрат задачей, вероятность совершение ошибки при которой достаточно высока, именно поэтому при нахождении точности выходного параметра сложных устройств расчетно-аналитический метод стараются не применять.
Список использованных источников
1. Боровиков С.М. Теоретические основы конструирования, технологии надежности: Учебник для студентов инженерно-технических специальностей ВУЗов. - Мн.: Дизайн ПРО, 1998. - 336 с.
. Единая система программной документации. Схемы алгоритмов, программы данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90. Введ. с 01.01.92. Взамен ГОСТ 19.002-80, ГОСТ 19.003-80. - Мн.: Изд-во стандартов, 1991. - 26с.
3. С.М. Боровиков, Е.Н. Шнейдеров, Т.В. Малышева, Р.П. Гришель Применение математических методов в проектировании электронных устройств - Минск, БГУИР 2011. - 47с.
. Корис Р., Шмидт-Вальтер X. Справочник
инженера-схемотехника 2008, 604с
Приложение А
Структурная схема моделирования на ЭВМ
Рисунок А.1 - Структурная схема
Приложение Б
Листинг программы для ЭВМ
#!/usr/bin/python
import sysrandcalcpr(p):= 5= 0= range(20)i < n0:j in x:[i][j] = round(p[i][j], 4)[i][-1] = round(p[i][-1])p[i]+= 1p= int(sys.argv[1])= rand.gen_r(rand.gen_u(n0))= rand.u_vih(p)= calc.mat_o(mv)= calc.sko(mv, mo)= calc.dop(sko, mo)_eksp = calc.n_eksp(sko, mo)(p)'mat. oszidanie = ',mo'sko = ',sko'dopusk = +/-',dop,'%''chislo realizaciy = ',n_eksp
Модуль calcmathmat_o(mv):= len(mv), s = 0, 0i < n0:+= mv[i]+= 1= round(s/n0, 4)mosko(mv, mo):= len(mv), s = 0, 0i <n0:+= math.pow(mv[i]-mo, 2)+= 1= math.sqrt(s/(n0-1))= round(s, 4)sdop(sko, mo):= round(sko*3/mo*100, 4)dpn_eksp(sko, mo):= 0.02*0.02*mo= round(4*math.pow(sko, 2)/math.pow(delt, 2))n
Модуль randrandomgen_u(n0):, q = [], []= 0= range(10)_min, u_max = 50-50*0.02, 50+50*0.02, s = 50, 50*0.02/3i < n0:j in x:= 0= 0ys != 1:= random.normalvariate(m, s)u_min <= ra <= u_max:= 1.append(ra).append(q)= []+= 1pgen_r(p):= [], r, ys = 0, 0, 0= len(p)= range(5)_min, r_max = 10-10*0.1, 10+10*0.1_n_min, r_n_max = 10-10*0.05, 10+10*0.05= 10_n, s = 10*0.05/3, 10*0.1/3i < n0:j in x:= random.uniform(r_n_min, r_n_max).append(r), r = 0, 0ys != 1:= random.normalvariate(m, s)r_min <= r <= r_max:= 1.append(r), r = 0, 0[i].append(q[0])[i].append(q[1])= []+= 1pu_vih(p):= []= len(p), u = 0, 0= range(10)i < n0:j in x:+= p[i][j]*39/p[i][j+10][i].append(u).append(u)= 0+= 1
return uv
Приложение В
Рисунок В.1- Графическая реализация программы