Как устроена шина l2C

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

Устройства, подключаемые к шине ГС, также подчиняются это­му принципу. Договорились, что одно из устройств будет ведущим (master), а остальные — ведомыми (slave). Такая организация шины называется master-организацией и является наиболее типичным слу­чаем (рис. 1.1).

Master-устройством обычно назначается микроконтроллер. Именно он задает основной поток данных на шине, формирует необ­ходимые временные интервалы и т. д.

Гораздо реже используется в аппаратуре режим multi-master (рис. 1.2), когда к одной шине подключено несколько master-уст­ройств.

clip_image002

clip_image004

Сложность такой организации шины состоит главным образом в том, что master-устройства должны решать, кто из них будет рабо­тать в данный момент со slave-устройствами. Одновременно на шине может совершать операции только одно master-устройство, осталь­ные обязаны отключаться. В противном случае возникает ситуация, называемая шинным конфликтом. Информация может попросту не дойти до адресата, нарушится работа устройства.

Для того чтобы исключить шинные конфликты, в режиме mul­ti-master должны содержаться процедуры арбитража и синхрониза­ции, устанавливающие порядок работы master-устройств. В книге мы не будем рассматривать этот режим подробно с точки зрения ап­паратной реализации, разберемся лишь, как осуществляется арбит­раж устройств и их синхронизация. Основное внимание сосредото­чим на классическом режиме с одним master-устройством.

История шины 12С в том виде, в котором она представлена сей­час, началась в 1992 году, когда фирмой Philips была выпущена ее первая спецификация версии 1.0. Эта спецификация исключала воз­можность задания адреса slave-устройства программным способом как наиболее сложную процедуру. Наряду со стандартным режимом скорости передачи данных 100 кбит/с (low-speed) был введен режим быстрой передачи (fast-speed) со скоростью до 400 кбит/с. Появился также режим 10-разрядной адресации.

Версия 2.0, выпущенная в 1998 году, ввела в спецификацию ши­ны быстродействующий режим (Hs-mode) со скоростью передачи до 3,4 Мбит/с. Причем требования предписали вводить обязательную возможность совместимости с режимами low-speed и fast-speed. К моменту появления версии 2.0 шина 12С распространилась по все­му миру, став международным стандартом. Было разработано более 1000 интегральных схем, лицензия на официальное использование спецификации приобретена более чем 50 фирмами.

Версия 2.1, датируемая 2000 годом, включает в себя незначитель­ные модификации, не нашедшие отражения в версии 2.0. На момент написания этой книги версия 2.1 является последней действующей версией, выпущенной Philips. Не исключено, что в процессе подго­товки книги в печать выйдет очередная модификация. Спешу успо­коить читателя — едва ли новая версия будет содержать кардиналь­ные отличия, да и в любом случае совместимость сохранится.

Мы не будем вдаваться во все тонкости и хитросплетения назван­ных версий, разберем лишь самые необходимые для практики поло­жения. Желающие подробнее ознакомиться с официальной докумен­тацией [4] без труда смогут получить ее с Интернет-сервера фирмы Philips (http://www.semiconductors.philips.com).

Интересно отметить, что фирма Philips особо выделяет в своей документации микросхемы, оснащенные интерфейсом 12С. Обложка или первый лист фирменных datasheet обязательно сопровождается значком, показанным на рис. 1.3.

clip_image006

Рис. 1.3. Фирменный знак интерфейса 12С

Полная гамма микросхем с интерфейсом 12С, выпускаемых фир­мой, насчитывает в настоящее время более 150 наименований, вы­полненных с применением как перспективной КМОП-технологии, так и с уже ставшей традиционной — биполярной. Номенклатура продолжает расти, так что следите за новинками!

 

clip_image008

 

Литература:

Б. Ю. Семенов,ШИНА 12С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ
Москва СОЛОН-Р 2002

Алгоритмы приближения функций

Если функция y = f (x) задана, то тем самым любому допустимому значению x сопоставляется некоторое значение y.

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

Различают два основных способа выбора приближения функций : интерполяцию и аппроксимацию.

Использование интерполяции для решения задачи приближения функции

Постановка задачи в этом случае может быть сформулирована следующим образом.

Пусть функция f(X) задана таблицей ее значений Y0,Y1,...,Yn в точках X0,X1,...,Xn, называемых узлами интерполяции.

Задача интерполяции состоит в выборе такой функции

j (X), которая в узлах Xi принимала бы те же значения, что и f (X), то есть j (Xi) = Yi (i = 0,1,2,…,n ).

Обычно в качестве интерполирующих функций выбирают многочлены.

Степень интерполяционного многочлена будет равна n (так как число узлов n + 1).

Если значения функции f (X) получены экспериментально и содержат погрешности, то нет необходимости точного совпадения значений j (X) и f (X) в узловых точках. Более того, для практики можно пользоваться многочленом меньшей степени аналитической зависимостью другого вида, но график, которой проходил бы достаточно близко от точек (Xi, Yi) на всем протяжении интервала изменений.

Интерполяционная формула Ньютона

Введем понятие разделенных разностей.

Отношения

A1i = A (Xi, Xi+1) = [f(Xi+1) – f(Xi)] / (Xi+1 - Xi), i = 0,1,2,…, n –1

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

Отношения

A2i = A (Xi, Xi+1, Xi+2) = [A (Xi+1, Xi+2) - A (Xi, Xi+1)] / (Xi+2 - Xi) =

= (A1, i+1 – A1i)/ (Xi+2 - Xi) называются разделенными разностями второго порядка.

Разделенными разностями m-го порядка имеют вид:

Ami = (Am-1, i+1 – Am-1, i)/ (Xi+m - Xi).

Рассмотрим многочлен второй степени:

P2(X) = f(X0) + A10 (X0,X1)(X – X0) + A20 (X0,X1,X2)(X – X0)(X – X1).

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

P2 (X0) = f(X0);

P2 (X1) = f(X0) + A10(X0,X1)(X1 – X0) = f(X0) +[(f(X0)-f(X1))/(X1-X0)]*(X1-X0)=f(X0);

P2(X2) = f(X0) + A10(X0,X1)(X2 – X0) + A20(X0,X1, X 2)(X2 – X0)(X2 -- X1) = f(X2).

Таким образом, многочлен, построенный с помощью первых разделенных разностей первого и второго порядка, в точках X0,X1,X2 принимает те же значения, что и функция f(X).

Имеет место следующее утверждение:

Многочлен степени n Pn (X) = f (X0) + A10 (X0, X1)(X – X0) + A20 (X0, X1, X 2)(X – X0)(X - X1) + An0 (X0, X1, Xn)(X – X0)(X - X1)...(X – Xn-1) в точках X0,X1,...,Xn принимает те же значения, что f(X) .

Это выражение называется интерполяционным многочленом Ньютона

Для равноотстоящих узлов разделенные разности вычисляются по формуле:

Ami = (Am-1,i+1 – Am-1,i) / )(m * h) , где m = 1,2,…, n-1.

Тогда

Pn(X) = (...((An0(Z- Xn-1) + An-1,0) * (Z – Xn-2) + An-2,0)...)(X –X0) + A0,

где A0 = Y1.

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

X – начальный узел интерполяции;

h – шаг интерполяции;

n – число узлов;

Z - значение аргумента, для которого вычисляется значение многочлена;

k – вспомогательная переменная (k = 0 при вычислении первого значения интерполяционного многочлена, k = 0 при последующих вычислениях )

Y(n) – массив значений функции (при k = 0) или массив разделенных разностей (при k = 1);

P – значение интерполяционного многочлена.

Замечание:

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

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

Интерполяционный многочлен Лагранжа.

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

Коэффициентами Лагранжа называются функции:

(n)

Li(X) = ((X – X0) * (X – X1) * ...*(X – Xi-1) * (X - Xi+1) *...*(X–Xn)) / / ((X i – X0) * (Xi – X1) * ...*(Xi – Xi-1) * (Xi - Xi+1) *(Xi – Xn));

(n) (n)

Причем Li (Xi) = 1, Li (Xj) = 0 при i ¹ j.

Интерполяционным многочленом Лагранжа называется многочлен вида:

n (n)

Ln (X) = S Yi * Li (X).

i = 0

Недостатком интерполяции с использованием многочлена Лагранжа является тот факт, что при изменении числа узлов интерполяции n коэффициенты Лагранжа придётся вычислять заново.

Погрешность интерполяции

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

f (X) = Ln (X) + Rn (X), (1)

где Rn (X) – остаточный член, то есть погрешность интерполяции.

Получим некоторое выражение остаточного члена Rn (X) в предположении, что fÎ Cn+1[a,b] (принадлежит классу функций, определенных на [a,b] в (n + 1)-о й точке), где [a,b] - отрезок, содержащий узлы интерполяции Xi и точку X.

Будем искать остаточный член Rn (X) в следующем виде:

Rn (X) = Wn (X) * rn (X), (2)

где Wn (X) = (X – X0) * (X – X1) * ...*(X - Xn), (3)

rn (X) – некоторая функция, значения которой в узлах интерполяции Xi можно задавать какие угодно, так как

Rn (X) = 0 и Wn (Xi) = 0, i = 0,1,2,…, n.

Зафиксируем произвольное X Î [a,b] X ¹ Xi и рассмотрим следующую функцию от t:

j(t) = Ln (t) + Wn (t) * rn (X) – f(t). (4).

Эта функция на основании того, что Ln (Xi) = 1, обращается в ноль при t = Xi и t = X, то есть во всяком случае в (n + 2) –х точках отрезка [a,b] , на котором изменяется t.

По теореме Ролля, которая гласит:

если f (X) непрерывна на отрезке [a, b] и дифференцируема внутри этого интервала и f (a) = f(b), то найдется точка

c Î [a, b] такая, что f ’(c) = 0,

j’t обращается в ноль, по крайней мере, в (n+1) - Й точке интервала (a,b), j’’t равна нулю минимум в n точках этого интервала и так далее.

Таким образом, найдется хотя бы одна точка x Î (a,b), в которой

(n+1)

j t (x) = 0.

Отсюда и из (4), учитывая, что

(n+1) (n+1)

Ln (X) (x) = 0, Wn (x) = (n+1)!, получим

(n+1)

(n+1)! * rn (X) – f (x) =0.

Следовательно,

(n+1)

rn (X) = f (x) / (n +1)! и в соответствии с (1) и (2)

(n+1)

Rn (X) = Wn (X) * f (x) / (n + 1)!, (5)

(n+1)

f (X) = Ln(X) + (Wn (X) * f (x) / (n+1)!) ,где (6)

x = x(X) Î (a, b) – некоторая неизвестная точка.

Из равенства (6) вытекает оценка погрешности интерполяции в текущей точке XÎ [a, b]:

| f (X) – Ln (X)| £ ( Mn+1 / (n+1)! )* |Wn(X)| (7)

и оценка максимальной погрешности интерполяции на всем отрезке [a, b]:

max | f (X) – Ln (X)| £ ( Mn+1 / (n+1)! ) * max |Wn(X)|, где

[a, b] (n+1) [a, b]

Mn+1 = max f (X).

[a, b]

Рассмотрим пример.

Необходимо оценить погрешность приближения f(X) = ÖX в точке X =116 на отрезке [a, b], где a = 100, b = 144 с помощью интерполяционного многочлена Лагранжа L2(X) , построенного с узлами

X0 = 100, X1 = 121, X2 = 144.

Решение:

f ’(X) = ½ X^(- ½ ), f ’’(X) = - ¼ X^(-3/2), f ’’’ = 3/8 X^(-5/2).

M3 = max | f ’’’ (X)| = 3/8 * 100^(-5/2) = 3/8 * 10^(-5).

[a, b]

На основании (7):

|Ö116 - L2 (116)| £ (3/8) * 10^(-5)*(1/(3!)) * |(116 - 100) * (116 - 121) * *(116 - 144)| = 1/16 * 10^(-5) * 16 * 5 * 28 = 1.4 * 10^(-3).

В силу оценки (8):

Max |ÖX - L2 (X)| £ (10^(-5) / 16) * max |X -100| * |X -121| * |X -144| @

[a, b]

@ 2.5 * 10^(-3).

Аппроксимация при решении задачи приближения функций

Задача интерполяции состояла в построении многочлена Pn (X) степени n, значения которого в (n+1) точках интерполяции соответствовали рассматриваемой функции f (X), то есть

Pn (Xi) = f (Xi) (8)

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

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

Отсюда следует задача об определении многочлена более низкой степени m (m << n)

m

Pm (X) = amX + ... + a1X + a0, «расстояние» между которым и функцией f (X) в некотором смысле минимально.

Такой многочлен называется аппроксимирующим. Он сглаживает локальные особенности экспериментальной таблицы и отражает общее поведение функции f (X).

Метод наименьших квадратов

Пусть задана таблица значений функции Y = f (X) в виде пар значений {Xi, yi}, i = 1,2,…, n.

Аппроксимирующуя функцию будем разыскивать в виде:

Y = j (X, a0, a1, a2,..., am), (1)

где a0, a1, a2,..., am – подлежащие определению параметры.

Вычислим значения функции (1) при X = Xi:

Yi = j (Xi, a0, a1, a2,..., am), i = 1,2,…, n.

Между исследуемой и аппроксимирующей функциями имеются различия, которые оценим с помощью суммы квадратов разности их значений:

n 2 n 2

S(a0,a1,a2,...,am)=S(Yi-yi)=S(j(Xi,a0,a1,a2,...,am)-yi). (2)

i=1 i=1

Параметры a0, a1, a2,..., am находятся из условия минимума ошибки аппроксимации (2):

n

¶S/¶ ak = 2 S [j ( Xi, a0, a1,..., am)– yi] (¶/¶ ak) j (Xi, a0, a1,...,am) = 0 (3).

i =1

В результате получаем систему из (m+1) уравнений для определения (m+1) неизвестных параметров.

R0a0 + R1a1 + ... +Rmam = B0

R1a0 + R2a1 + ... +Rm+1am = B1

....................................................

Rma0 + Rm+1a1 + ... +R2mam = Bm, где

n k n j

Rk = S Xi / n , k = 0,1,…, 2m, Bj = S yi Xi , j = 0,1,…, n

i=1 i=1

Алгоритм аппроксимации функции методом наименьших квадратов.

Исходные данные:

- n – количество точек, где известны значения функции;

- m – степень аппроксимирующего многочлена;

- X, Y- массивы табличных значений аргументов и функции;

- A – массив коэффициентов системы линейных уравнений;

- R, B – массивы коэффициентов и свободных членов.

Погрешность среднеквадратичной аппроксимации определяется следующим выражением:

clip_image002clip_image003clip_image004 n

clip_image005D = S (f (Xi) – Pn (Xi))^2 / (n + 1)

i=1

Сглаживание наблюдений

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

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

Некоторые формулы для сглаживания:

`fi = 1/21 (- 2fi-3 + 3fi-2 + 6fi-1 + 7fi + 6fi+1 + 3fi+2 –2fi+3) (1)

k

`fi = (1 /(n +1)) * (fi + S (f i-j + f i+j ), где n = 21 (2)

i=1

`fi=1/35(-3fi-2+12fi-1 + 17fi + 12fi+1 – 3fi+2) (3)

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

1) Если наблюдаемые значения содержат случайные ошибки со свойствами:

M [hi] = 0, i = 0,1,…,n, где M [hi] – математическое ожидание ошибки в i- ом наблюдении

0, i ¹ j

и дисперсия не зависит от I,то есть M [h, hj] =

s^2, i = j,

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

В частности, при использовании (1)

`s^2 = 1/3 s^2 (`s = (1 / 3) * s), где

`s - среднеквадратичные ошибки сглаженных значений,

s - среднеквадратичные ошибки наблюдений.

2) Ошибки в сглаженных значениях `fi становятся сильно коррелированными.

3) Если функция не является алгебраическим многочленом степени n , то происходит “размазывание” ее графика.

Повторное сглаживание делать не рекомендуется.

Сплайны

Основные понятия

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

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

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

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

clip_image001 Графически кусочно-полиномиальная интерполяция может быть проиллюстрирована на рисунке 6.1.

Естественная потребность в наличии аппроксимирующих функций, которые сочетали бы в себе локальную простоту многочлена невысокой степени и глобальную на всем отрезке [a, b] гладкость, привела к появлению в 1946 году так называемых сплайн-функций или сплайнов – специальным образом построенных гладких кусочно-многочленных функций.

Дадим строгое определение сплайна.

Пусть отрезок [a, b] разбит точками a = X0 < X1 <...< Xn = b на n частичных отрезков [Xi-1, Xi].

Сплайном степени m называется функция Sm(X), обладающая следующими свойствами:

1) Функция Sm(X) непрерывна на отрезке [a, b] вместе со

(1) (2) (p)

всеми своими производными Sm (X), Sm (X), ..., Sm (X) до некоторого порядка р;

2) На каждом частичном отрезке [Xi-1, Xi] функция Sm (X) совпадает с некоторым алгебраическим многочленом Рm, i(x) степени m;

Максимальная по всем частичным отрезкам степень многочленов называется степенью сплайна.

Разность (m-p) между степенью сплайна и наивысшим порядком непрерывной на отрезке [a, b] производной называется дефектом сплайна.

Простейший пример сплайна дает непрерывная кусочно-линейная функция, являющаяся сплайном первой степени (линейным сплайном) с дефектом, равным единице (рисунок 6.2).

clip_image007

Действительно на отрезке [a,b] сама функция S1(X) (нулевая производная) непрерывна. В то же время на каждом частичном отрезке S1(X) совпадает с некоторым многочленом первойй степени.

Наиболее широкое распространение на практике получили сплайны S3(X) третьей степени (кубические сплайны) с дефектом, равным 1 или 2.

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

S3 (X) = P3, i (X) = ai + bi(X – Xi-1) + ci(X – Xi-1)^2 + di(X – Xi-1)^3

и имеют на отрезке [a,b] по крайней мере, одну непрерывную производную S3’(X).

Интерполяционный сплайн

Пусть функция Y = f (X) задана таблицей своих значений

Yi = f (Xi), i = 0`, n.

Сплайн Sm (X) называется интерполяционным, если Sm (Xi) = Yi для всех i = 0`, n..

Значение Si = Sm’(Xi) называется наклоном сплайна в точке Xi.

Заметим, что на отрезке [Xi-1, Xi] интерполяционный кубический сплайн однозначно определяется заданием значений Yi-1, Yi, Si-1, Si и

S3 (X) = P3,i (X) = {[(X - Xi)^2 * (2 * (X – Xi-1) + hi)] / (hi^3)} * (Yi-1) +{[(X – Xi-1)^2 * (2 * (Xi – X) + hi)] / (hi^3)} * Yi + {[(X - Xi)^2 *(X –Xi-1)] / hi^2} * Si-1 + {[(X – Xi-1)^2 * (X - Xi)] / hi^2} * Si.

Здесь hi = Xi – Xi-1.

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

Дополнительная справочная литература по интерполяционным сплайнам:

1. Де Бор К. Практическое руководство по сплайнам.

- М.: Радио и связь, 1985.

2. Алберт Дж., Нил сон Э., Уолт Дж. Теория сплайнов и ее приложение, - М.: мир, 1972.

Интерполяционный многочлен с кратными узлами

Иногда в узлах Xi (i ¹ 0`, m)бывают заданы не только значения Yi = f (Xi) функции f, но и значения ее производных Yi’ = f ’(Xi),

(ki-1) (ki-1)

Yi’’ = f ’’(Xi),..., Yi = f (Xi) до некоторого порядка (ki-1).

В этом случае узел Xi называют кратным, а число ki– кратностью узла.

Пусть n = k0 + k1+...+km-1. Можно доказать, что существует единственный многочлен Pn (X) степени n, удовлетворяющий условиям:

Pn (Xi) = Yi, Pn’(Xi) = Yi’....

(ki-1) (ki-1)

Pn (Xi) = Yi для i = 0`, m

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

Пусть на концах [X0, X1] заданы значения Y0,Y1, Y0’,Y1’. Тогда m = 1, k0 = 2, k2 = 2, n = 3 и интерполяционный многочлен P3(X), удовлетворяющий условиям

P3(X0) = Y0, P3’(X0) = Y0’

P3(X1) = Y1, P3’(X1) = Y1’ ,

может быть представлен в следующем виде:

P3(X) = Y0 * [(X1 - X)^2 * (2 * (X – X0) + h)] / (h^3) +Y0’*[(X1 – X)^2 * (X – X0) ] / (h^2) + Y1* [(X – X0)^2 * 2(X1 –X)] / h^3 + Y1’* [(X – X0)^2 * (X – X1)] / h^2, h = X1 –X0

Этот многочлен принято называть кубическим интерполяционным многочленом Эрмита.

Технологические этапы создания и использования имитационных моделей

 

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

- определение объекта имитации, установление границ и ограничений моделирования, выбор показателей для сравнения эффективности вариантов системы (составление содержательного описания объекта моделирования);

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

-реализация объекта в терминах математических понятий и алгоритмизация функционирования ее компонент (составление формального описания объекта);

-преобразование формального описания объекта в описание имитационной модели (составление описания имитационной модели);

- программирование и отладка модели (программирование модели);

-проверка модели, ее свойств и затрат ресурсов на имитацию (испытание и исследование модели);

- организация модельного эксперимента на ЭВМ (эксплуатация модели);

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

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

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

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

Результатом работ на данном этапе является содержательное описание объекта моделирования с указанием целей имитации и аспектов функционирования объекта моделирования, которые изучить на ИМ. Обычно оно представляет собой техническое описание объекта моделирования, описание внешней среды, с которой он взаимодействует, и временную диаграмму этого взаимодействия.

Составление концептуальной модели производится в следующей последовательности.

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

Составление формального описания объекта моделирования представляет собой ответственный этап создания имитационной модели СС. Цель - исследование алгоритмов поведения компонент СС и отражение вопросов взаимодействия между собой этих компонент. При составлении формального описания модели исследователь использует тот или иной язык формализации. В зависимости от сложности объекта моделирования и внешней среды могут использоваться три вида формализации: аппроксимация явлений функциональными зависимостями, алгоритмическое описание объектов в системе, смешанное представление в виде последовательности формул и алгоритмических записей.

После составления формального описания объекта моделирования приступают к его проверке. Это первая главная проверка достоверности будущей модели СС в процессе проектирования. Для обеспечения контроля правильности функционирования модели вводят классические модели, достоверность которых доказана. Они фигурируют в модели в виде составных частей. На вход таких моделей поступают данные, вычисляемые в других частях модели, достоверность которых проверяется. Если результат работы классической модели окажется недостоверным, то считают, что предшествующая часть формального описания системы также недостоверна.

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

Результатом этапа является проверенное формальное описание исследуемой системы на выбранном языке формализации.

Составление имитационной модели. Cюда входят следующие вопросы реализации модели: декомпозиция объекта на составляющие и формирование элементов модели; отработка вопросов синхронизации частей компонент модели друг с другом в модельном времени; задание начальных условий моделирования; планирование процессов имитации отдельных вариантов системы; проверка окончания моделирования; обработка результатов имитации. Результатом этапа является описание модели сложной системы.

Программирование. На этом этапе выполняются следующие действия.

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

На этом же этапе проверяют достоверность программы модели системы. В процессе этой проверки устанавливается соответствие операций в программе и описании модели.

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

Исследование свойств имитационной модели. При этом оцениваются точность имитации явлений, устойчивость результатов моделирования, чувствительность критериев качества к изменению параметров модели.

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

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

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

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

Пример. Задания двух типов поступают на обработку в компьютерный центр (КЦ). Задания обрабатываются четырьмя процессорами. Задания 1-го типа обрабатываются строго последовательно процессорами ПР1, ПР2, ПР3. Выбор типа задания при его обработке на процессоре ПР1 случайный. Запрещена одновременная обработка заданий разных типов процессорами ПР1 и ПР2. Обработка заданий 1-го и 2-го типов соответственно процессорами ПР3 и ПР4 осуществляется только в том случае, когда эти процессоры свободны. На каждом из процессоров ПРj (clip_image002) обработка заданий производится по мере их поступления.

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

clip_image004

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

Детализация описания режимов функционирования сводится к следующим действиям. С помощью хронометража или на основании нормативных данных определяются выборки значений времен обработки заданий процессорами clip_image006. Здесь индексы i и j означают принадлежность выборки значений clip_image008 соответственно к i-тому типу заданий, обрабатываемых j-тым процессором. Затем известными статистическими методами по выборкам clip_image006[1] формируются соответствующие функции распределения времени обработки i-того задания j-тым процессором clip_image010.

Описание внешней среды сводится к указанию механизма выбора типа заданий i. Задания первого типа поступают на обработку с вероятностью p1, а задания второго типа - с вероятностью p2 = 1- p1 . Интенсивность поступления заданий извне является общей для заданий обоих типов.

Составление концептуальной модели сводится к следующему. Отдельными элементами данной системы (КЦ) будут процессоры (см. рисунок 1). В качестве входных переменных системы выступают интенсивности поступления заданий 1-го и 2-го типов (clip_image012). Для простоты допустим, что поступление заданий обоих типов подчиняется пуассоновскому закону. Переменными модели системы являются функции распределения длительностей обслуживания i-того задания j-тым процессором clip_image014.

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

- коэффициенты загрузки процессоров clip_image016;

- количество обрабатываемых j-тым процессором заданий clip_image018;

- размеры очередей к каждому из процессоров clip_image020;

- общее время обработки i-того задания в КЦ clip_image022.

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

В результате имитационного моделирования необходимо найти следующие функциональные зависимости: clip_image026; clip_image028. При задании функций распределенияclip_image030 длительностей обслуживания i-того задания j-тым процессором достаточна аппроксимация ступенчатыми функциями. Выдвигаем гипотезу, что clip_image032 и clip_image034 имеют вид полиномов, порядок и значения коэффициентов которых необходимо определить в ходе имитационных экспериментов. С помощью таких эмпирических зависимостей можно предсказывать характеристики загрузки процессоров (clip_image036) и времена обслуживания заданий в КЦ (clip_image038) в зависимости от изменяющихся характеристик входного потока заданий clip_image040 при заданных clip_image030[1].

Итак, документацией концептуальной модели являются:

- схема, приведенная на рисунке 1;

- текст содержательного описания;

- список параметров и переменных (clip_image040[1],clip_image030[2]);

- состав статистик моделирования (clip_image042 , clip_image044, clip_image046, clip_image038[1]).

При формализации объекта моделирования используется транзактный способ. При этом способе имитации используется 2 типа элементов, с помощью которых можно представить динамику обработки заданий процессорами: блоки и очереди. В блоках могут происходить следующие события: создание и уничтожение транзактов, задержка транзакта на некоторый интервал времени. Схема функционирования КЦ представлена на рисунке 2.

clip_image048

Сущность имитационного моделирования

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

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

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

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

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

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

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

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

Древние советы в помощь радиолюбителям

clip_image002

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

* * *

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

* * *

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

* * *

Устройство для очистки звукоснимающейся головки магнитофона не­трудно сделать из старой магнитофонной кассеты, вставив в нее вместо пленки узкую полоску мягкой ткани. Проработав 30-40 секунд в режиме "воспроизведение", такая кассета хорошо очистит головку.

* * *

Вырезав из куска фетра шайбы подкассетника, замените ими старые, отслужившие свой век. Новые шайбы положите на поверхность подкассет-ника, смазанную тонким слоем клея "88" или "БФ-2", и сверху всю пло­щадь шайбы равномерно прижмите небольшим грузом. Через 3-4 часа шайбы накрепко схватятся с подкассетником, и магнитофон можно будет запускать в работу.

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

* * *

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

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

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

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

* * *

Снять тушь с кальки можно тампоном, смоченным смесью клея БФ и уксусной кислоты в соотношении 1 : 5.

* * *

Макетную плату можно быстро изготовить из фольгированного стек­лотекстолита или гетинакса. Для этого фольгу очищают и переносят на нее компоновку деталей мягким карандашом. Изоляционные бороздки де­лают резаком или штихелем.

* * *

Для снятия оксидной пленки с фольги и для ее обезжиривания удобно

пользоваться ученической чернильной резинкой.

* * *

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

* * *

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

* * *

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

* * *

Когда нет возможности заменить ту или иную микросхему на иден­тичную, но есть подходящая по функциональному назначению и парамет­рам в другом корпусе, можно изготовить колодку-переходник из фольги-рованного стеклотекстолита или гетинакса. Микросхему монтируют на колодке-переходнике, которую соединяют контактными стойками с пе­чатной платой. Контактные стойки изготовляют из отрезков провода диа­метром 0,4—0,5 мм.

* * *

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

Снимать изоляцию с монтажных проводов удобно специальным но­жом, который можно изготовить из обломка ножовочного полотна. Полот­но нужно отпустить, просверлить в нем отверстие диаметром 2—4 мм. Отверстие соединить с краем полотна треугольным вырезом, кромки выреза заточить. Затем полотно закалить. Обмотать ручку изоляционной лентой — и нож готов к работе.

Чернила для надписей на полихлорвиниловых трубках можно приго­товить, растворив 6 г нигрозина в 50 мл этилового спирта и добавив 50 мл циклогексана.

* * *

Серебрянные выводы радиоэлементов, контактные пластины, площад­ки можно очистить от оксидной пленки, например, 2—5%-ным раствором соляной кислоты в течение минуты при 50—60°С, погружая в раствор или неоднократно протирая смачиваемым в теплом растворе тампоном. Затем необходимо тщательно промыть и высушить.

* * *

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

* * *

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

* * *

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

* * *

Приржавевшую гайку с резьбой М8 (и более) можно отвинтить, если на одной-трех гранях ее зубилом сделать насечки глубиной 1—2 мм и смо­чить резьбу керосином.

* * *

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

* * *

Вместо "паяльной кислоты" можно использовать флюс, приготовлен­ный из равных по массе частей хлористого аммония и глицерина. При этом место пайки не окисляется. Флюс пригоден и для пайки нержавеющей стали.

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

* * *

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

* * *

Тепловой режим маломощных транзисторов можно облегчить, надев на металлический корпус транзистора тор ("баранку") — спираль, свитую из медной, латунной или бронзовой проволоки диаметром 0,5— 1,0мм.

* * *

Хорошим радиатором может быть металлический корпус устройства или его внутренние перегородки. |

Ровность контактной площадки радиатора проверяют, смазав основа- * ние транзистора какой-либо краской и приложив его к поверхности кон- | тактной площадки. Выступающие участки контактной площадки радиато­ра окрасятся. I

* * *

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

* * *

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

* * *

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

* * *

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

* * *

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

* * *

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

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

* * *

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

* * *

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

* * *

Если нет под рукой полировочного круга, то полировать небольшой участок поверхности можно с помощью пробки (обычной) и микродрели. Для закрепления пробки в патроне подбирают шуруп примерно такой же длины, как высота пробки. Ввертывают шуруп в пробку на 3/4 длины. Головку отрезают. Пробку перед работой натирают полировочной пастой.

* * *

Потери в развязывающей РС-цепи существенно уменьшаются,если резистор заменить полупроводниковым диодом.

* * *

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

* * *

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

* * *

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

* * *

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

* * *

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

* * *

Не спешите выбрасывать "севшую" электрическую батарейку типа "Марс", "КБС" и др. Почти каждую из них можно заставить отслужить второй срок.

Перочинным ножом осторожно вскройте крышку, залитую гудроном или воском и, убедившись в том, что цинковый цилиндрик, угольный по­рошок и стержень батарейки целы, опустите батарейку в насыщенный раствор поваренной соли (две столовых ложки на 2-3 стакана воды), про­кипятите батарейку в этом растворе в течение 10-15 минут. Затем вновь установите на место герметизирующие прокладки и сверху замажьте пла­стилином, оконной замазкой или воском. Батарейка готова к новой жиз­ни. Вставляйте ее в электрический фонарик или транзисторный прием­ник, она превосходно будет работать.

Советы используем на свой страх и риск ;)

Биологический микропроцессор

clip_image001[4]

Мигуэль Николелис

 

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

Человеческий мозг и компьютер — наивысшие на сегодняшний день ступени развития живой и неживой природы. Уже много лет они существуют независимо друг от друга и большинство попыток установить между ними прямую связь были безуспешны. Большинство — но не все. Пионерами в области передачи сигнала из мозга в компьютер стали ученые из Института Дюка в Северной Каролине под руководством профессора Мигуэля Николелиса. Однако в настоящее время они не являются монополистами в этой области — многие научные институты мира, используя технологию Николелиса, также могут похвастаться сериями успешных опытов по проведению сигналов из мозга в компьютер. Рой Бэкэй и Филипп Кеннеди, например, сумели с помощью мысли управлять курсором на экране монитора (подробнее: см. врезку).

Николелис взялся за разработку новой технологии, когда писал свою научно-исследовательскую работу вместе с Джоном Шопеном. «Мы решили сделать то,— говорит Николелис,— что до нас еще никто не смог сделать — мы решили разработать технологию, которая позволит записывать активность большого числа нейронов одновременно». По сути, они попытались соединить мозг (именно мозг, а не единичный нейрон) с компьютером и считывать человеческую мысль из первоисточника. Этот метод лег в основу интерфейса между человеческим мозгом и компьютером. Смелая инициатива ученых была с восторгом принята в Национальном Институте Здоровья и Управлении Перспективных Исследовательских Программ, оказавших материальную помощь специалистам.

Однако не все было так удачно, как этого хотели ученые: их первые опыты оказались неудачными по причине гибкой природы нейрона. Его нельзя «спаять» с электродом или хотя бы «прицепить» к электроду. Можно только прикоснуться, но это исключается, поскольку нейрон постоянно меняет свое месторасположение, и электрод не только теряет с ним контакт, но и проваливается в глубь желеобразной массы головного мозга, нанося ему повреждения. Только энтузиазм Николелиса и его коллег помог найти выход из этой ситуации. Ученые заметили, что тефлон обладает свойством стимулировать рост нейронов в свою сторону. После того, как они покрыли тефлоном поверхность конусообразных электродов, нейроны начали сами перемещаться к ним. В таком случае контакт между электродом и нейроном оказывается не хуже, чем между самими нейронами. Это открытие завершило разработку технологии, которую Николелис назвал «мульти-нейронной записью».

Практика

Честь быть первым в истории биологическим существом, чей мозг соединен с компьютером, выпала простой лабораторной крысе. Источником мысли послужил двигательный центр ее мозга, который ученые соединили с компьютером при помощи 48 проводов. Испытывая острую жажду, она беспокойно передвигалась по испытательной комнате. Она нашла предусмотренную учеными кнопку, нажала ее лапой и получила небольшое количество воды. Так повторялось несколько раз — крыса нажимала на кнопку и получала воду, а компьютер записывал ее мозговую активность. Но вскоре кнопку дезактивировали, и наступила решающая фаза эксперимента. Ждать ученым пришлось недолго: крыса быстро раскусила этот трюк — она всего лишь подумала о нажатии кнопки — и снова насладилась прохладной водой. Ученые были поражены не столько удачей эксперимента, сколько проницательностью крысы. Тем не менее, все задачи, которые стояли перед этим экспериментом, были решены: ученые сделали первый шаг к тому, чтобы постичь природу человеческого мозга, принцип его работы, «кодировку» мысли, в перспективе изменить в корне жизнь всего человечества.

Во время самых первых своих опытов ученые совершили несколько научных открытий, притом революционных и опровергающих прежние теории. Например, раньше считалось, что мозг отчасти напоминает микропроцессор, и каждый нейрон представляет собой минимальную структурную единицу мозга, выполняет всегда одну и ту же функцию и жестко связан с другими нейронами. Также считалось, что мозг практически не меняется со временем. Однако простой анализ наблюдений ученых показал, что он является едва ли не противоположностью микропроцессору — один нейрон всегда выполняет разные действия, входит в разные цепи нейронов, постоянно меняет связи с остальными нейронами, может выполнять одно действие как самостоятельно, так и в совокупности с остальной популяцией мозга. Было доказано, что мозг меняется каждые доли секунды; каждые доли секунды он реагирует на внешнее воздействие, приспосабливается к новым условиям жизни, которые на самом деле для мозга меняются постоянно — их изменяет и малейшее воздействие на органы чувств и даже самый незначительный мыслительный процесс. Можно сказать, что все ранее утвержденные предположения о работе мозга были на корню неверными.

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

Обезьяны

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

Для большей убедительности сигнал от мозга к руке был передан на расстояние 600 миль (около 950 км) через интернет. Для этого была изготовлена еще одна искусственная рука, которая находилась в Массачусетском Институте Технологий, а обезьяна осталась в Институте Дюка, который, напомним, находится в Северной Каролине. Соавтор этого проекта Мандаям Сринивасан восторженно отозвался по этому поводу: «Когда мы решили передать сигнал через интернет, мы не знали, насколько существенна будет задержка. Даже через TCP/IP протокол все работало без нареканий. Было интересно смотреть, как в моем кабинете двигался робот, движимый мыслью обезьяны в Дюке. Будто она имела руку длиной в 600 миль».

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

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

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

Также была отмечена еще одна немаловажная деталь — мозг планирует все свои действия заранее, в случае с обезьяной можно было узнать о ее намерении совершить какое-либо конкретное действие за несколько десятых долей секунды до его выполнения.

Планы на будущее

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

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

Совершенствование механической части заключается в совершенствовании искусственных конечностей. Для разработки нового варианта руки Николелис уже связался с английским производителем протезов, который, в свою очередь, предлагает сразу после изобретения каждого прототипа протеза тестировать его на обезьянах, чтобы быть уверенным в пригодности его устройств для такого рода деятельности. Вероятно, в ближайшем будущем будет налажено серийное производство систем для обездвиженных людей, которые будут компактными, легкими, прочными, портативными, противоударными, водонепроницаемыми,— в целом, они будут доведены до потребителя не меньше, чем сотовые телефоны и цифровые фотоаппараты. «Это область повседневности, а не наука ни в одном из ее проявлений» — отзывается Мигуэль Николелис.

Но все эти задачи являются относительно простыми. Перед учеными стоит еще одна, действительно важная и сложная проблема. Она заключается в создании систем замкнутого цикла с полной обратной связью, то есть систем с принципами работы настоящей руки с нервной системой. Мозг не только отдает команды на выполнение какой-либо задачи. В таком случае он просто не знал бы, совершила ли рука какое-либо действие и совершила ли она его правильно. «Рука не только получает команды,— говорит Сандро Мусса-Ивалди из Института северно-западной медицинской школы,— но и отсылает информацию в мозг о том, что она выполнила нужное действие». В нашем организме контроль за выполнением (а, следовательно, и возможность корректировки) команд мозга выполняется двумя путями — визуальным (с помощью зрения человек видит движения своей руки) и осязательным. При нынешних искусственных системах мозг получает только зрительную информацию. Ученым необходимо восполнить этот пробел и воссоздать не только искусственную сеть нервных клеток на всей поверхности руки, но и соединить их с мозгом таким образом, чтобы они были понятны для мозга (впрочем, здесь можно положиться на способность мозга к изменению — с помощью зрения он будет корректировать нервную систему руки).

Изобретения Мигуэля Николелиса призваны не только кардинально изменить жизнь парализованных людей, но и жизнь человечества в целом. Он смог сделать реальным то, что всегда казалось фантастикой (и не перестает ей казаться даже в настоящее время) — управление предметами с помощью мысли. Спустя несколько десятилетий ряд таких научных открытий, как изобретение телефона, телевизора, транзистора и компьютера, несомненно, пополнится еще одним — объединением биологии и электроники.

Ссылка на оригинал статьи

Использование языка MC# для реализаций параллельного классификатора образов.*

1 Цели и проблемы

К задаче классификации можно свести много прикладных задач : от оптического распознавания текста до выявление фальшивых кредитных карт и медицинской диагностики. Существует несколько подходов к построению классификаторов. В данной статье рассмотрен классификатор на основе искусственной нейронной сети [1]. При большой размерности нейронной сети, возникает потребность в высокопроизводительных многопроцессорных вычислительных системах [2]. Это особенно важно для классификаторов реального времени, где необходимо получать результат сразу, без существенных задержек. Для многопроцессорных вычислительных систем необходимо создавать специальные программы. В тексте такой программы определяются части (ветки), которые могут выполнятся параллельно, а также алгоритм их взаимодействия. Целью данной работы является построение классификатора для эффективного использования на многопроцессорных вычислительных системах.

2 Постановка задачи

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

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

3 Решение

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

3.1 Искусственная нейронная сеть

Искусственная нейронная сеть это совокупность нейронных элементов (рис. 1) и связей между ними [3].

clip_image001

Рисунок: математическая модель нейрона

Нейронный элемент (нейрон) обладает группой однонаправленных входных связей clip_image002, соединенных с выходами других нейронов. Каждый вход clip_image003 характеризуется величиной синаптической связи или весом clip_image004.
Каждый нейрон имеет текущее состояние, определяемое, как взвешенная сумма его входов1 :

clip_image005

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

clip_image007

Функция clip_image008 называется активационной.

Множество всех нейронов нейронной сети можно разделить на подмножества - т.н. слои. Слой искусственной нейронной сети это множество нейронов на которые в каждый такт времени параллельно поступают сигналы от других нейронов данной сети [3]. Взаимодействие нейронов происходит послойно.

3.2 Классификатор

В данной работе для реализации классификатора используется однослойная нейронная сеть (персептрон) из 10 нейронов (рис. 2).

3.2.1 Параметры сети

clip_image009

Рисунок: Классификатор

однослойная нейронная сеть (рис. 2)
35 входов
10 выходов
состояние нейрона clip_image010 :

clip_image011

(1)

пороговая функция активации с порогом clip_image012

clip_image013

(2)

3.2.2 Алгоритм работы классификатора

На вход классификатора подаются бинарные картинки (рис. 3) размером clip_image014 точек с изображением цифр (clip_image015), т.е. всего clip_image016 входов. На выходе получаем слово clip_image017 , clip_image018, т.е. всего 10 выходов. Номер clip_image019, для которого выход clip_image020, соответствует номеру класса входного образца.

clip_image021

Рисунок: образы для классификации

Важной особенностью искусственной нейронной сети есть возможность её обучения. Процесс обучения сводится к процедуре корректировки весовых коэффициентов. В качестве метода обучения используется правило Видроу-Хоффа [4]:

clip_image022

(3)

где

clip_image023 - весовой коэффициент связи clip_image010-того нейрона с clip_image019-тым входом
clip_image024 - коэффициент скорости обучения
clip_image025 - clip_image019-тый вход сети
clip_image026 - ошибка нейрона clip_image010 на clip_image027-том образце

clip_image028

(4)

где

clip_image029 - состояние (1) нейрона clip_image010
clip_image030 - верный выход нейрона clip_image010 на clip_image027-том образце

Так же необходимо определить :

clip_image031 - ошибка сети на clip_image027-том образце

clip_image032

(5)

clip_image033 - максимальная ошибка сети

clip_image034

(6)

clip_image035clip_image036 - допустимая максимальная ошибка сети

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

Цикл обучения выглядит так :

1. прогнать через сеть все образцы из множества учебных примеров и рассчитать максимальную ошибку сети clip_image033 по (6)

2. если clip_image037 clip_image035 то конец

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

4. перейти на п.1

3.3 Реализация с распараллеливанием

Соответственно представленной выше модели, на языке MC# [5][6][7] написан параллельный классификатор бинарных образов.

''Память'' сети это матрица весовых коэффициентов clip_image038. На этапе инициализации программы порождается начальная сеть. Эта сеть обучается на множестве пар [образ,выход_сети], которые содержатся в двух текстовых файлах : patterns.dat - обучающая выборка, targets.dat - верные выходы для обучающей выборки. Создается рабочая матрица весов, соответствующая [patterns.dat, targets.dat], которая используется, динамически создаваемыми, классификаторами для одновременного распознавания образов из файла tests.dat Таким образом, полученная система может ''читать'' словами.

Классификатор реализуется тремя классами :

// однослойная сеть
class OneLayerNet { . . . }
// персептрон, пороговая функция активации
class Perceptron : OneLayerNet { . . . }
// классификатор, 35 входов, 10 выходов
// распознает бинарные картинки 5x7 точек
class Classificator : Perceptron { . . . }

ParClassificator - класс, реализующий параллельный классификатор. На этапе инициализации программы при помощи конструктора ParClassificator(), на основе содержимого patterns.dat и targets.dat, создается рабочая матрица весов m_weight. Собственно, механизм распараллеливания заключен в двух методах recognize и Get :

movable recognize(double[,] W, sbyte[] I, Channel(NeuralIO)c) это перемещаемый (т.е. выполняемый параллельно с остальной программой) метод, который распознает бинарный образ I, используя матрицу весов W. Результат помещается в т.н. канал c. Конструкция c(res) в некотором смысле аналог конструкции return(res) для обычных ( последовательных ) функций.
void Get() & Channel m_channel( NeuralIO n )
Стандартная конструкция языка MC#. Здесь объявляется канал m_channel типа NeuralIO и метод-обработчик канала Get, который забирает из канала данные, посланные туда, параллельно работающими методами recognize.

Параллельный классификатор ParClassificator осуществляет одновременное распознавание бинарных образов из tests.dat при помощи метода makeTestPar. Этот метод для каждого образа из tests.dat вызывает movable метод recognize и собирает результаты методом Get.

class ParClassificator {
. . .
protected double[,] m_weight;
public ParClassificator() {
Classificator nnet=new Classificator(N);
nnet.teach("patterns.dat","targets.dat");
m_weight=nnet.weight();
. . .
}
. . .
public void makeTestPar(string file) {
. . .
for(i=0;(loadPattern()==1);i++) {
recognize(m_weight,Copy(m_pattern), m_channel );
}
for(int j=0;j<i;j++) { Get(); }
. . .
}
public movable recognize(double [,] W, sbyte[] I, Channel( NeuralIO ) c ) {
Classificator nnet=new Classificator(N);
NeuralIO n=new NeuralIO(IN_SIZE,OUT_SIZE);
n.I(I);
nnet.I(I);
nnet.weight(W);
nnet.step();
n.O(nnet.O());
c(n);
}
public void Get() & Channel m_channel( NeuralIO n ) {
printIn(n.I());
printOut(n.O());
}
}

4 Результат

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

При увеличении количества процессоров, предполагается ускорение близкое к линейному. Ускорение[8] на clip_image039 процессорах это отношение

clip_image040

где clip_image041 и clip_image042- время выполнения программы на clip_image043 и clip_image039 процессорах соответственно.

clip_image044

Рисунок: результат работы классификатора

Текст программы на MC# [ здесь ]

Литература

1      Борисов Е.С. Искусственные нейронные сети - http://mechanoid.narod.ru/nns

2    Борисов Е.С. Вычислительные системы сверхвысокой производительности. - http://mechanoid.narod.ru/high_perf

3      Головко В.А., под ред. Галушкина А.И. Нейронные сети: обучение, организация и применение. - Москва : ИПРЖР, 2001. - 256 c.

4      Уоссермен Ф. Нейрокомпьютерная техника : Теория и практика. - Москва : Мир, 1992. - 200 c.

5       MC# - http://u.pereslavl.ru/~vadim/MCSharp

6       Адрес разработчиков языка MC# - yury@serdyuk.botik.ru

7       Борисов Е.С. Использование языка MC# для реализаций параллельных алгоритмов в 3D моделировании.

8  Дорошенко А.Е. Математические модели и методы организации высокопроизводительных параллельных вычислений. - Киев : Наукова думка, 2000. - 176 c.

Сноски

... образов*  эта статья опубликована в журнале "Кибернетика и Системный Анализ" Института Кибернетики АН Украины - [ http://www.icyb.kiev.ua ]

... входов1  возможны и другие определения

Автор: Е.С.Борисов оригинал статьи