Jump to content

    

iiv

Свой
  • Content Count

    2227
  • Joined

  • Last visited

Everything posted by iiv


  1. я не их, ни их размер пока не увидел так рядовому, или талантливому?
  2. А я вот соглашусь с a123-flex, ибо про инвесторов и воплотителей всегда хочется знать "кто есть who". Вы же не альтруист, не так ли, и просто так денег "на талант" давать не будет, а свои условия здесь пока ни разу не озвучили.
  3. ну не в РФ же все, вон в Кайзерслаутерне (это Германия) как-то Фраунгофер логотип за 20 лимонов евро заказал, а потом кто-то из родителей в нашей школе виллу в Монако отстраивал. В общем ничем не отличается :)
  4. а вы на мир за последние 20 лет посмотрите - вспомните, как 20 лет назад был пейджер и далеко не у каждого свой телефон, и интернет был обычно только на работе, если работал в IT или универе, да и много чего было совсем не так, как оно сейчас есть. Хотя конечно если смотреть по 168 атмеге - да, у нее ни памяти ни скорости за 20 лет не прибавилось, и, может даже создаться иллюзия, что мир на месте стоит :)
  5. так я же специально такой пример привел, чтобы показать, что другая фирма нашла что-то такое, что позволит иметь хорошую маржу, но продавать в 3 раза дешевле. Понятно, что в ноутбуках - это на данный момент маловероятно, но есть куча других устройств, которые продаются массово. Еще раз, я апеллировал только к Вашему утверждению, что если кто-то придумает производство чего-то известного, но так, что отпускная цена упадет в 2-3 раза и маржа будет разумной (скажем еще в два раза можно цену уронить, если приспичит), то в этом случае, даже известные агрегаты можно очень удачно продавать и на этом хорошо зарабатывать.
  6. в корне не верное утверждение. Вот представьте, сейчас разумный "условный" ноутбук продается за 500 бакс, хоть от Ацера, хоть от Асуса, хоть от ХП. Представьте на минутку, что появится фирма, которая будет продавать такие же по характеристикам и удобству пользования и не глючные ноутбуки за, скажем, 150 бакс, и будет способна продать их столько угодно до насыщения рынка. Реально купят даже те, кому это особо и не надо, в смысле у них был тот, что за 500 и их устраивал. А что будет с ХП, Асером и остальными производителями? Причем заметим, тут разница в цене - только 3 раза.
  7. а может все-таки УЗ-ванной? У меня было дело, был заказ на 40кв м плат и там в том числе были штыковые компоненты. Я пользовал УЗ ванну с метоксипропанолом. Знаю знакомую фирму, где вместо метоксипропанола пользуют изопропанол, утверждается, что все тоже нормально. Вся работа по промывке - загрузил в первую ванну, отмыл, выгрузил, обдул сжатым воздухом, перегрузил во вторую ванну, отмыл, выгрузил, обдул сжатым воздухом, залакировал (у меня были ВВ платы). Расхода растворителя очень мало, ибо постепенно переливаешь из второй ванны в первую, и добавляешь свежего во вторую. Если много грязи идет, можно растворитель из первой ванны охладить до -18С, и осадок отфильтровать, и снова пользовать. Всреднем на 5кв м плат у меня примерно литр растворителя уходит.
  8. не, тут все просто. Если вам заранее известно, что исходные данные имеют погрешность epsilon, то в большинстве случаев достаточно трансформировать b = inv(X' * X) * X' * Z в b = inv(X' * X + epsilon^2 * max_L * I) * X' * Z, где max_L - максимальное собственное значение X' * X. а вот это - зря. Во-первых, надо сравнивать обусловленность X матрицы с некоторой абстрактной обусловленностью [X Z] без самого маленького сингулярного числа. По хорошему [X Z] - должна быть вырожденной, с единственным нулевым сингулярным числом. Вот есть его выбросить, и выбросить все сингулярные числа меньше погрешностей во входных значениях, у вас получится очень интересная матрица, она вроде и вырожденная, но у нее есть решение с минимальной нормой. Чтобы не мудрствовать и не считать SVD (его всегда неудобно считать) как раз и играются со сдвигом inv(X' * X + epsilon^2 * max_L * I) * X' * Z - и, в большинстве случаев, имея даже половинную точность (как в алгоритмах распознавания и искусственного интеллекта) имеют приемлемое решение.
  9. Вы когда умножаете, не держите двойную точность, а используйте ее только при сложении. У умножения ошибка - последний бит, а при сложении всяко может быть. for(i=0; i<N; i++) { T = x x^T; // x и T - в одинарной точности A +=T; // A - в двойной точности } Если двойной точности нет, то пользуйте сумму двух float, сдвинутых друг от друга на машинную точность. float s1, s2, a; // s1 больше s2 на обратную величину мантиссы. К этой паре (s1,s2) мы хотим добавить "a", для этого выполнив: float t1=a1+a; // здесь t1,t2,t3 - промежуточные временные переменные float t2=a-(t1-a); t2+=s2; s1=t1+t2; float t3=s1-t1; s2=(t1-(s1-t3))+(t2-t3); // по окончании s1,s2 содержит сумму a и того, что было до этого в s1,s2 А лучше просто выбрасывать у X' X младшие собственные числа и не мудрствовать лукаво - я вам это много раз советовал, но вы, как я понимаю, так и не попробовали, а зря.
  10. ну я могу предложить, патент США на MRI имеется ( https://patents.google.com/patent/US10773093B2/ ) Патент в РФ наверное до июля 2021 можно еще переполучить (нам его давали, но мы его дропнули, так как из-за карантинов везти хозяйственную деятельность и в РФ нам было бы затруднительно). А какие будут ваши предложения по финансированию?
  11. там маленькие матрицы обычно, и Штрассен не успеет разогнаться, чтобы стать быстрее классического умножения. Я когда-то лет 25 назад, когда скорость памяти еще только в десятки раз была меньше скорости процессора, интересовался тем же вопросом и у меня тогда получалось, что Штрассен начинал выигрывать у хорошо оптимизированного обычного умножения от матриц около 500х500.
  12. Ага, верно. Вроде о том же. Я про сингулярные числа говорю только из-за того, чтобы понять какие они у вас. Я не советовал их вычислять. Тут конкретика двояка (даже трояка), но, для начала условимся: sum_i || x(i) * b - z(i) ||^2 -> min и рассмотрим A = [X Z] Если у этой матрицы разброс сингулярных значений меньше обратного из корня из машинной точности, то надо решать b = inv(X' * X) * X' * Z и не морочить себе голову. Если у этой матрицы разброс сингулярных значений больше обратного из машинной точности, то надо выбрасывать часть сингулярных чисел, иначе вы хоть даже в точной арифметике будете получать погоду на марсе вместо решения. Для этого - применимы методы регуляризации по Тихонову, и классикой является, например, такое решение b = inv(X' * X + a I) * X' * Z, где I - единичная диагональная, а скаляр a - величина близкая к отбрасываемым сингулярным значениям. Я не призываю сингулярные числа искать, надо иметь их оценку, чтобы регуляризовать. Если же есть желание решать в промежуточном диапазоне, то тут только метод построения X' * X в удвоенной точности, и потом обращение с учетом того, что числа даны в удвоенной точности. Идеальным вариантом тут подходит 1. вначале построение в удвоенной точности A = X' * X, и B = X' * Z, 2. вычисление Холецкого с выбором диагонального элемента или блока A = L L' (тоже в удвоенной точности), 3. вычисление сингулярного разложения L = UDV' уже в обычной точности, 4. перезапись A = U D^2 U' и использование его далее, то есть умножение в удвоенной точности C = U' B, вычисление F = inv(D^2) C, и окончательное умножение в обычной точности b = U F. Все остальное может быть применимо только если вы можете к самой матрице X хотя бы несколько раз обращаться, а не получать ее по строкам.
  13. я конечно, бывает, тоже падежи не согласовываю, когда пишу, но тут, похоже, ТС к экстрасенсам взывает. Если вопрос формулировать абстрактно, то пишите модуль dgemm/zgemm (это функции умножения матриц) для blas (очень изместная библиотека Basic Linear Algebra Subroutines) и уговаривайте Интел встроить это в MKL (Math Kernel Library). Если вы не это имели ввиду, то тогда нужна конкретика, и экстрасенсы все на карантине.
  14. Спасибо! Да, Вы правы, вначале так и хотел, но побоялся сделать, так как перед первой сборкой не было понимания какой шаг будет, да и три пина идут полностью впараллель, а еще один - с каждых нескольких отдельно, и размеры этих блоков и сейчас меняются от эксперимента к эксперименту. Возможно сделаю эту кроссплату на три одинаковых пина, а остальные протащу как получается. Перемерил еще раз... Я, кажется, всех ввел в заблуждение... Действительно на 1МГц у меня чехорда ВЕЗДЕ и на ноге МК, и на ноге оптопары, хотя питание вроде стабильно стоит. На 10КГц все стабильно. Пошел делать шины и переразводить управляющую плату с linear buffers Спасибо большое всем за советы!!!
  15. Спасибо большое, _pv, за ответ! Да, в настоящее время, то, что я смог потестировать было вначале по отдельности проверенно, потом собрано и залито. Подлезть я смог только на самую дальнюю оптопару и на ноги МК. Провода, которыми я соединял - это были провода со шлейфа, я шлейф расптаскивал на жилы с одной стороны, а с другой - соединял стандартную IDC колодку. То есть чехорда была на самом дальнем, на средних померить не могу, так как там у меня стенка и подлезть сквозь стенку не реально. На 10КГц работает совершенно стабильно и все каналы отзываются и функционируют. На 100КГц уже есть редко пропуски, на 1МГц перестает работать. Раньше предыдущая версия с меньшим числом блоков на тех же платах уверенно работала на 500КГц несколько месяцев по 40 часов в неделю, а также я ее тестировал до 2МГц - тоже все было нормально. Один из каналов с fanout x20 тоже проверил, завалы тоже на 1МГц есть. Конечно сама конструкция может давать хорошие помехи, там каждый канал имеет после оптопары свое напряжение ни как не зависящее от основного и может уползать вверх-вниз в некоторых случаях до 5КВ. По земле на последнем канале тоже помехи есть, хотя на управляющей плате помех не видно. Но как-то не понятно, у провода на 30см сопротивление меньше 0.1Ом, на входе керамика стоит, питалово на оптопары и этот контроллер 3А. Интересно, что при 10КГц все работает... То есть я конечно софтверно могу вытянуть этот блок, посылая данные на маленькой скорости (всяко у меня там по МК стоит), но конечно же передавать на большей скорости было бы реально лучше.
  16. не, 160 всего плат, просто если на них внимательно посмотреть, то видно, что их можно в шахматном порядке ставить, и выходы (4 пина) не только с краю, но и по центру сделать (эти платы у меня уже кончились, я показать не могу). То есть 40 по 4 пина, но 4 раза, всего 160 оптопар. Как я говорил, 2 пина - питание, 1 пин fanout x160 и еще один пин с fanout x20 - то есть на МК приходит 1 пин с fanout x160, и 8 пинов с fanout x20. К моменту написания моего первого поста в этой теме 8 пинов с fanout x20 микроконтроллер тянул, а вот 1 пин fanout x160 нет. Я объединял несколько друг за другом расположенных плат в параллель, и тянул оттуда проводок. Сейчас возникла идея объединить все одной шиной (шин суммарно будет 4 комплекта, на каждой по 40 оптопар), протянув провода насквозь этих плат и пропаяв (всяко это не разборная конструкция). Будет ли лучше такая шина, или правильнее к каждой группе тянуть свой провод и соединять звездой? На выходе от МК я понятно по несколько linear buffers ставить планировал.
  17. Спасибо большое, за советы!!! Позвольте, пожалуйста, задать еще один вопрос вдогонку на эту же тему. У меня контакты для входа на каждый комплект из оптопар выведены на краю платы в виде отверстий. Эти платы стоят рядом друг с другом на расстоянии примерно по 7 мм друг от друга и образуют примерно 30 см блок, в котором параллельно стоят 40 таких плат. Управляющая плата стоит с торца (то есть до первой платы там всего 7мм, а до последней где-то 30см). Собранный кубик сфотографировать не могу, ибо он уже залит маслом и уже ничего не видно, а вот несколько плат из него прилагаю, они сфотографированы примерно также, как и они стоят в аппаратуре и контакты видны на торце. Слева на право там GND, 3.3V, fanout x160, fanout x20. Сейчас я проводками от каждой платы тянул до управляющей, и там все соединял. Так как управляющую все равно буду переразводить, я могу вместо 40 таких проводков сделать шину. То есть шина будет насквозь все эти платы пронизывать и у нее будет только два контакта питания, .этот пин на fanout x160 и несколько пинов для fanout x20. Как я понимаю, шина должна иметь меньше паразитной емкости. В то же время, если первые оптопары будут сильно линию просаживать, то до последних будет доходить много шума. Посоветуйте, пожалуйста, как правильнее - одна шина с общей длинной 30см, или 40 проводков с различной длиной 7-300мм? Спасибо!
  18. Огромное спасибо всем за очень важное для меня обсуждение! Поставлю два восьмибитных logic buffer на этот fanout, а также еще по такому буферу на каждый канал с fanout x20, и тогда все мои 160 оптопары должны будут успешно работать.
  19. ой, да, точно, спасибо, что заметили! тут у меня оптимизма совсем нет, так как еще 8 выходов того же контроллера попадают на ту же оптопару, но каждый пин с fanout x20, а еще другие 8 пинов тоже что-то по 2-3мА управляют. Суммарно МК может и захлебывается из-за этого. Похоже, что мосфет-драйверов на 3.3В нет, только логика. Скажите, пожалуйста, правильно ли я понимаю, что, в моем случае, было бы правильнее перейти на 5В питание МК, и тогда можно было бы использовать большой набор мосфет драйверов?
  20. Спасибо большое, MegaVolt и Herz советы!! Я пролистывал в мойсере buffer/line driver, но, повидимому на них не остановился из-за того, что у них выходной ток обычно 20-30мА, то есть даже меньше чем у моего МК. Скажите, пожалуйста, правильно ли я понимаю, что buffer/line driver от 5МГц и выше с током больше 30мА не бывает, и всяко я должен топологию звезда делать: то есть МК раздает на 10, а те, в свою очередь, каждый по 16. PS: потыкался еще осциллографом, получается, что если прижаться к ноге оптопары, то часто там какая-то чехорда идет, вместо сигнала, а вот с ноги МК - сигнал более менее похож на истину.
  21. Спасибо большое, за советы! вот я сам тоже об этом думаю, у меня получается, что все эти 160 пинов вначале объединяются примерно по 10 (от 6 до 14), и далее от каждой такой группы идут в виде 20 проводков почти в параллель. Далее по 10 они попадают на 2.54 колодку, в которой все пины на одном полигоне и уже эта пара идет на ногу МК. У МК рядом 3А DC-DC (TPS82130), который питает и МК, и питание оптопар, они при 1МГц когда их было 40, потребляли 400мА, а сейчас должны 1.6А потреблять, то есть на МК оставшиеся полтора ампера должны хватить. Осциллограф на питание МК ставил, визуально скачков не наблюдал. скажите, пожалуйста, а как такое правильно по-английски называется, а то вроде описание в гугле есть, что конкретно искать в farnell, mouser или digi-key - так и не смог понять. Спасибо!
  22. Добрый день, есть МК, к одной выходной ноге которого подключено N цифровых оптокоплеров (Si8620BD-B-IS). По даташитам с МК нога может до 40мА давать. Напряжение на МК и ноге 3.3В Раньше у меня было N=40 оптокоплеров, все работало классно и надежно. Недавно поменял и нарастил конструкцию, теперь стало N=160. Заметил, что про 10кГц все тоже надежно работает, а при 1МГц почти всегда есть пропуски. Если считать, что 1МГц и 40мА, при 160 оптокоплеров в параллель, то на каждый мне надо 250мкА или около 70пФ паразитной емкости. В даташите входной ток не нашел, паразитная емкость ноги на землю 3пФ. Гипотез две 1. у меня в проводах 70пФ набегает (там от МК до оптокоплеров примерно 30см), 2. либо таки сами оптокоплеры потребляют с пина около 250мкА. Скажите, пожалуйста, правильно ли я понимаю, что мне надо поставить какой-то повторитель, и, если да, то что? Мосфет драйвер на 3.3В вроде не бывает, а что еще может существенно больше 100мА дать на частоте где-то до 5МГц? Спасибо!
  23. Позвольте вдогонку задать ламерский вопрос в тему. А если в линуксе открыть браузер и рисовать все на javascript, прокинув коммуникацию на местный процесс (даже сервер стартовать локально не надо, только сокет зацепить). Как я понимаю, средства современного JS довольно хороши, если нужна быстрая графика то WebGL в помощь. Наружу сорсы не видны, внутри можно по крайней мере обфурсить. Все остальное - в выполнялке, и как я понимаю, все бесплатно. Понятно, что на очень слабом линуксе Qt наверное будет быстрее ездить, но если линукс не совсем тормознутый и 1ГБ оперативки есть, чем такой вариант будет существенно хуже Qt, и почему таких вариантов почти нет в готовых устройствах?