Jump to content

    

evil_laugh

Участник
  • Content Count

    32
  • Joined

  • Last visited

Community Reputation

0 Обычный

About evil_laugh

  • Rank
    Участник
  1. Если б умел в кикад - подсобил бы однозначно. Но я в Mentor Graphics работаю. Ну, и в DipTrace иногда... А вообще "последить" - это я имел в виду, что поизучаю и поднаберусь опыта. :) Вообще у меня проблема ещё и в том, что из "подопытных кроликов" у меня только два УАЗа карбовых и Daewoo Nexia поджопная, т.е. ковырять особо нечего. Идея изобрести велик родилась, когда я хотел ГБО на уаза ставить - в то время ещё толком не было ни ГИГ, ни GSP3U, вот и захотелось свой газовый инжектор сделать :) Но сейчас уже как-то отошёл от всей этой "механики" - для инжектирования карбового УАЗа (даже простейший моновпрыск газа) треба дофига механического геморроя. Форсунки врежь, датчики расставь... Раньше бы взялся (тогда перебрать двигло за выхи было чем-то плёвым). Сейчас - лень :) А нексию ковырять как-то... кхм, не комильфо. Вообще была идея прикупить убитый инжекторный жыгуль типа 08-09, но выкидывать на это дело $3-4к (дешевле оно на рынке просто не стоит) тоже не комильфо как-то :) Кстати, по поводу GSP3U - в прошлом году, в сентябре, связывался с его разработчиком на предмет того, чтобы получить/купить у него исходники и схему в целях обучения (там всё вообще на PIC18 и на ассемблере сделано). Добыть исходники не удалось, но кучу информации в процессе приятной беседы я таки получил. Тогда проект был заморожен, а сейчас - вон, на одном из форумов инфа, что там уже распределённый газовпрыск рисуют вовсю :D Жаль, что не open source.
  2. Андрей239, классная задумка. Почитал Grassroot Motorsports, почитал твой форум - грамотно! :) Жаль, не могу поучаствовать - слишком незначительны пока что навыки в высокоуровневом программировании и тем более в теории управления ДВС. Идею изобрести велосипед вынашиваю давно, даже есть кое-какие схемотехнические наработки (разведённые "мозги" уже года полтора как ждут воплощения в железе), но времени нет катастрофически. :( Послежу за проектом. Авось и что-нибудь своё сляпаю, воодушевившись, так сказать :) У меня к тебе вопрос - ты, как software developer - где брал информацию по теории управления ДВС? Я, если честно, всегда полагал, что для того, чтобы успешно завести двигло, надо как минимум в/о по ДВС иметь. :) зы: Гирявеца читал :D
  3. Так навскидку и не скажешь... Нужно, я бы сказал. Можно.
  4. Я знал! Я знал, что всё просто Требований по скорострельности нет, потребителю всё равно, через сколько на него напряжение прокинется :) Если я правильно понимаю, ни одного. :) Уже бегу рисовать схему :) Нарисую - выложу на критику. есть немного. "Заработался" это называется :laughing:
  5. Доброго всем дня. Стоит, казалось бы, простая задача: ключевать питание нагрузки. Напряжение питания плавающее: от 3.5 В до 60 В (оно же питание всей ключующей схемы). Ток потребления нагрузки до 4 А. Режим - длительный. Просмотрев кучу даташитов на Load Switch-и, понял, что настолько простого решения тут не существует. Решил использовать обычный MOSFET. P-канальный, естественно. Подобрал образец, макс. напряжение с-и -75 В, ток протягивает до 5 А, полностью открывается -3 вольтами, всё отлично. Но вот беда: напряжение з-и у него не более -20 В. Простое решение: надо ставить делитель, чтобы при 60 В на истоке (макс. входное напр-е) и открытом транзисторе напряжение на затворе было не больше 40 В, и тогда Uзи будет -20 В. Делитель должен быть 4/6. Но возникает другая проблема: при таком делителе и минимальном напряжении питания (3,5 В) на затворе будет 3,5*4/6=2,3 В, то есть Uзи будет -1,2 В. Транзистор просто не откроется. Решение не годится. Как реализовать подобное "адаптивное" управление p-мосфетом? Управление осуществляется с микроконтроллера, у него есть возможность мерить напряжение питания, так что считаем его известным. Условия получается следующими: если ключуемое напряжение меньше, скажем, 15 В (с запасом, чтобы не сгорел) - можно "напрямую" тянуть затвор P-мосфета к земле, тогда Uзи будет больше или равно -15 В. Если напряжение больше 15 В - нужно ограничить напряжение затвора p-мосфета таким образом, чтобы Uзи не превышало -15 В. Вопрос: как это сделать? Как вообще делаются такие вещи? Читал интернет, гуглил информацию, нашёл в основном идеи про использование драйверов, преимущественно верхнего плеча. Но там основная беда - бутстрепная техника управления затвором N-канальника не даст возможности долго держать транзюк открытым. Ну и свои заморочки типа узкого диапазона напряжений питания и управления, ну это ладно, вопрос решаемый... Видел технику постоянной подкачки бутстрепной ёмкости зарядовым насосом на базе NE555, но это решение, на мой взгляд, слишком громоздкое и ненадёжное, тем более о нём встречены отрицательные отзывы. Голову сломал, не могу выдумать ничего красивого и надёжного, чтобы раз - и заработало. Прошу помощи. Спасибо.
  6. Я бы предложил алгоритм Герцеля, но он не будет эффективнее БПФ при таком количестве выходных отсчётов...
  7. Если два последних прилепленных изображения - это спектр на входе и выходе, то что-то Ваш ФНЧ не очень "фнчит".
  8. Вот в пункте 4 стартового поста я делал почти так же, только использовал 30 фаз по 60 коэффициентов. Тут столкнулся с рядом проблем, которые тоже увеличивают время выполнения и требуемую память. Нужно точно знать, какую фазу (точнее, две фазы, или больше, если использовать Лагранжа порядком выше) использовать при вычислении каждого из 128 выходных отсчётов. Либо вычислять это на месте (занимает время), либо заранее рассчитыватт и загонять в lookup table (минимум +256 байт, максимум - зависит от лагранжа). Нужно точно знать, в каком месте между двумя вычисляемыми фазными отсчётами находится интерполируемый, для каждого из 128 интерполируемых. Минимум +256 байт, ну или опять же довольно сложная арифметика на месте. Нужно точно знать, сколько новых отсчётов нужно вдвинуть в буфер при вычислении каждого из 128 отсчётов. Опять либо время, либо +128 байт. Ещё нужно учитывать момент, когда интерполируемый отсчёт находится между последним фазовым и следующим за ним (как бы "нулевым"). Для вычисления "нулевого" фазового нужно временно вдвинуть в буфер ещё один входной отсчёт, профильтровать и снова вернуть буфер на место. (Блин, коряво объяснил, но опытные товарищи, надеюсь, поймут). А это проверка условия на каждом выходном отсчёте. Опять же, время. Вот так как-то... Всё это работает, но не так эффективно, как хотелось бы :) К тому же при таком количестве фаз и коэффициентов я не укладывался в требования по подавлению. "По-правильному" фаз должно быть 128, как же оно с восемью так хорошо работает? :)
  9. Для непрерывной обработки данных потребуется циклический буфер длиной N, где N - кол-во коэфф-тов импульсной хар-ки фильтра. Вдвигаете в буфер отсчёт вх. сигнала, перемножаете буфер с ИХ фильтра, произведения суммируете. Краевой эффект будет заметен при недостаточной длине фильтра. Получите ужосчто. Циклическая свёртка вместо линейной. Сигнал фильтровать нужно непрерывно, а не блоками. Для этого и нужен сдвиговый буфер. Если хотите делать фильтрацию в частотной области, то гугль по ключ. слову overlap-save Вам в помощь.
  10. Вот теперь мозаика сошлась в единое целое. :) Спасибо. Я пробовал делать подобное (пункт 4 первого сообщения темы), правда, с другой стороны подошёл немного. Попробую сделать и так, как Вы сказали. Заодно время выполнения алгоритма и общую требуемую память подсчитаю.
  11. Это мне понятно. Но фильтр же рассчитывается на промежуточную частоту дискретизации? Полифазная фильтрация - это метод разбиения одного большого фильтра на несколько маленьких с низкой частотой дискретизации. Но исходный-то фильтр (который разбиваем) работает на большой частоте?
  12. То есть Вы делаете простую однокаскадную передискретизацию, но с таким вот хитрым фильтром? А на какую частоту дискретизации фильтр считался? Я так понимаю, Вы не делали "честное" повышение частоты дискретизации до 44100*128, а сделали как-то по-другому? А как?
  13. Serg76, похоже, Вы познали Дао. У меня только один вопрос: КАК? :) Можно, пожалуйста, подробнее про алгоритм? :)
  14. Большое всем спасибо за грамотные и содержательные ответы. Картина значительно прояснилась. Попробую повысить частоту дискретизации и потом использовать Лагранжа. Надо учиться пользоваться Матлабом, а то симуляция различных вариантов много времени занимает :)
  15. Вот тут не совсем понял... Вы предлагаете сперва ограничить по частоте исходный сигнал, а потом куда-то его интерполировать?.. Тем временем я спешу доложить о результатах моих сегодняшних изысканий. Сделал я Фарроу. Кубический. Симметричный. Децимирует с 44100 до 38400. Тестировал так: генерировал испытательный синус 0 dBFS с ЛЧМ модуляцией (от 0 до 20 кГц в течение 100 секунд) и прогонял через наскоро набросанную на Си программку. Результат печален. На частотах до 2-3 кГц всё неплохо, гармоники в сигнал не лезут. С повышением частоты начинаются весёлости. Какие - красочно иллюстрирует рисунок ниже. На входе синус 6 кГц, Fд = 44100. На выходе - вот что. Хорошо видно, что из-за полиномиальной интерполяции в сигнал лезут ложные гармоники просто из-за ошибки интерполяции. Сгенерировал в маткаде идеальный дискретный синус и нашёл разность полученного мной сигнала и идеального. Полная шкала от -32768 до +32767. Сдаётся мне, что либо этот метод не слишком хорошо применим, либо я что-то делаю не так... Программу проверял, кажется, Фарроу пашет правильно.