Jump to content

    

Lost_Viking

Участник
  • Content Count

    165
  • Joined

  • Last visited

Everything posted by Lost_Viking


  1. А что значит "неправильно применены"? По каким параметрам?
  2. Да, в этом есть логика. Но все же.. Как можно получить стабильное постоянное напряжение без пульсаций, не применяя конденсаторы? Ставить как-то хитро дроссели? Нет. Вылетают всякие разные, даже не в блоках питания. Например, недавно в плазме менял на одной из плат, так называемой "адресной" плате, все электролиты. Туда приходит порядка 80 вольт с блока питания. И вот все электролиты умерли. Опять же, там повышенные температуры работы. А в [censored] источнике все электролиты живые.
  3. Трансформатор => выпрямитель => фильтр на электролитах. Все равно электролиты.
  4. Вообще-то с понижением температуры окружающей среды на 10 градусов срок службы электролитов увеличивается в 2 раза. Видео на ютубе по электролитам И у меня в ремонте огроменная часть именно по электролитам. Либо они вздутые, либо ESR в космос улетает. Керамика тоже бывает, но реже. Еще реже причиной выхода из строя устройств является пробой силовых элементов. Но очень часто пробой наступает из-за "поехавших" конденсаторов. А пример такого решения можно увидеть?
  5. В ремонте аппаратуры бОльшая часть неисправностей приходится на полярные конденсаторы. Существуют ли в нашей вселенной какие-либо варианты исполнения AC-DC источников, в которых нет электролитов/танталов/и прочих полярных вкусностей?
  6. у тебя, скорее всего, просто не успевали отправиться данные. ацп, наверняка, шпарил на всю катушку, быстрее, чем пересылка usart
  7. Записал видео с своей реализацией https://youtu.be/FhoelOKbjfk?t=964 . Сильно не пинайте за путаницу в терминологии, и за неуверенность в некоторой матчасти. Видео около часа длительностью. Примерно с 16 минуты запускаю алгоритм, и начинаю тестить и показывать что получается. В итоге прихожу в ступор. Буду думать дальше
  8. Чуть позже отпишусь, когда все отлажу. Ждите. все рассуждения на dsplib. Как что-то появится толковое, так сюда отпишусь
  9. Так, разобрался. Алгоритм полностью рабочий, несмотря на некоторые заявления тут. Просто я кое в чем запутался. В аргумент косинуса и синуса нужно было подставлять не частоту, а номер спектрального отсчета, соответствующий частоте. И, соответственно, в радианы переводить ничего не надо. Ну, и еще длину буфера сделать не 70, а 90. Тогда 9000гц (Fd)/90= 100. То есть шаг по частоте 100гц.
  10. Так, нашел один косяк. Аргумент косинуса и синуса в радианы забыл перевести. Но проблему не решило
  11. Все равно мне не ясно как может конечная разрядность так сильно влиять на алгоритм. Выполняю алгоритм на JavaScript, все вычисления примерно с такой точностью: 60.469052485485626 . Но модуль всегда плавает.
  12. А здесь как решена эта проблема? Здесь тоже комплексный множитель. Статья похожа на Лайонса, кстати =)
  13. Наверное тогда лучше так: Скользящее ДПФ
  14. То есть округление до целого даст нарастание ошибки? Хотите сказать, что модуль так скачет именно из-за этого?
  15. Да, он там описан. И тот алгоритм работает как надо. Но дело в том, что тот алгоритм работает после N семплов. То есть заполняем буфер, а потом обрабатываем его. А на dsplib предложен алгоритм, который позволяет на лету обрабатывать семплы. Так вот разобраться с ним не могу. Немножко напишу про свое понимание алгоритма, который на dsplib. Если перейти по ссылке сюда: dsplib, то можно увидеть вот что: формула 12: . О ней говорится, что это входной сигнал. На форуме dsplib мне ответили, что q(n) нужно принимать равными нулю. Вполне логично. Соответственно сама рекурсивная формула имеет вид: Из нее убираем все q. Но тогда какой смысл вываливать такую формулу, если ее можно сократить? Это смущает
  16. Взялся за реализацию. Прочитал про алгоритм тут: dsplib Написал такую реализацию: #define Fd 9000 //частота дискретизации #define f1 600 //частота тона #define f_search 600 //искомая алгоритмом частота #define N 70 //размер массива int main() { unsigned char ADC[350]; //Массив, эмулирующий поток из АЦП unsigned char buff[N]; //Буфер, в который пишутся данные из АЦП float I[2]; float Q[2]; float a; float b; float c = 2* M_PI *f1/Fd; //Заранее рассчитаем то, что не будет меняться float module; //здесь будет лежать модуль комплексного числа I[0]=0; I[1]=0; //инициализируем массивы Q[0]=0; Q[1]=0; for (int i =0; i<350; i++) { ADC[i] = (unsigned char) 100*sin(c*i)+100; //заполняем "поток" АЦП синусом с амплитудой от 0 до 100 } a=cos(2*M_PI*f_search/N); //рассчитываем к-ты b=sin(2*M_PI*f_search/N); for (int n=0; n<70; n++) //начальное заполнение буфера { I[0]=I[1]; //Готовим предыдущее I Q[0]=Q[1]; buff[n]=ADC[n]; // Просто заполняем буфер данными из АЦП I[1]=a*(I[0]+buff[n])-b*Q[0]; //Все по формуле 16 из статьи Q[1]=a*Q[0]+b*(I[0]+buff[n]); } for (int n=70; n<350; n++) //Когда буфер заполнился, то запускаем цикл с выталкиванием { I[0]=I[1]; Q[0]=Q[1]; I[1]=a*(I[0]+ADC[n]-buff[0])-b*Q[0]; //В качестве i(n) выступает ADC(n), где n=70. Следовательно buff(n-N)=buff(0) Q[1]=a*Q[0]+b*(I[0]+ADC[n]-buff[0]); for (int nn=0; nn<69; nn++) //перемещаем элементы массива на 1 влево { buff[nn]=buff[nn+1]; } buff[69]=ADC[n]; //Заносим полученное значение АЦП на данном цикле работы алгоритма в последний эллемент буфера module = sqrt(I[1]*I[1]+Q[1]*Q[1]); //вычисляем модуль комплексного числа } //конец работы алгоритма } Для удобства чтения скрин из саблайма: screenshot В итоге имею изменяющийся модуль, хотя, как я понимаю, его значение должно быть постоянным и максимальным про наличии искомой частоты: Скрин вывода программы переменной module:screenshot Что я делаю не так?
  17. А, кажется понял. При номинале сопротивления 10 МОм и емкости 3.3 нф, получаем нижнюю граничную частоту 7 Гц Конечно не выдает. Посмотрите на видео на этой странице http://dbkcues.ru/articles/research/ . пьезодатчики используются. И все работает.
  18. Попытался сделать усилитель заряда по схеме, предложенной здесь . . Собрал на TL072CN . Для начала неинвертирующий вход кинул просто на землю. Номинал Rf = 10МОм, Cf = 3.3 nF . На выходе нет никакого интеграла, а лишь повторение входного сигнала с некоторым Ку и с, как бы это правильно назвать, "слабым интегрированием". Вопрос: почему нет интегрирования? Когда на неинв. вход повесил R и C, суть особо не изменилась. Дело в ОУ ? В номиналах? Или в пьезике? Пьезик имеет емкость 60нФ примерно. Обычный пьезо-диск из пищалки. Здесь есть похожая схема. Но непонятно почему там нижняя граничная частота определяется . Почему там знак деления, а не умножения? Опечатка? И все же, я не понимаю почему на 1-2 гц у меня схема работает неправильно
  19. Я когда покупал свой Rigol DS1052E, перед покупкой сравнивал цены на Ebay и в магазинах Москвы. Конечно, в популярных магазах цены заоблачные, но немного погуглив, я нашел вполне приемлемую цену. Разница между Ebay и той ценой была 2 тысячи, или даже меньше. За эти деньги я получил гарантию, проверку прям на месте, и т.д. По этому задумайтесь , стоит ли вам так рисковать, покупая б/у технику у иностранных продавцов, которым вы потом даже при большом желании не сможете потом люлей вломить?
  20. Сорри, попутал немного. Рабочие обороты ДВС от 600 до ~8000 об/мин. то есть от 10 Гц до ~130 Гц В референс конструкции, как я понял, добились точного снятия скорости изменения давления (движения диффузора), а после еще раз продифференциировали, и получили ускорение. В суть процессов ЭМОС я не вникал. Интересно именно то, что от там отталкиваются от показаний датчика. Следовательно, показания соответствуют реальным физическим величинам. Думаете стоит попробовать другие пьезики?
  21. А от мышки датчик использовать? Может быть с бОльшим разрешением, с другой линзой... Мне кажется, что это самый оптимальный вариант, при котором не надо точить кольца, биться с вибрациями... Но взамен будут проблемы с грязью. Ну или повесить излучатель и приемник по обе стороны колеса, и считать спицы по импульсам. Если нет спиц, то беда =)