RusEfi

RS-TUNING

Абориген
Регистрация
09.12.2007
Сообщения
2,879
Лайки
6
Адрес
177RUS
#61
Ты меня опередил, ***** вот, что значит pc-дроччеры взялись за создание мега крутого мозха.
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#63
(у меня сломалось цитирование)

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

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

Maxi

Старожил
Регистрация
07.01.2008
Сообщения
15,833
Лайки
3,125
Адрес
Москва
#64
Ерунду ты пишешь - опиратся только на 1 фронт можно. У Холла точно так же - перекрытие магнитного потока и восстановление его не равнозначны.
 

RS-TUNING

Абориген
Регистрация
09.12.2007
Сообщения
2,879
Лайки
6
Адрес
177RUS
#65
Алле, модераторы, форум чинить будем???


Вопрос к Андрею, что будет в алгоритме если по каким либо причинам пропустится несколько зубов или появятся лишние???
 

Gremlin

Пользователь
Регистрация
08.12.2008
Сообщения
85
Лайки
0
#66
andrey2, у меня вопрос

Как ты компенсируешь ошибку в УОЗ и во времени накопления при резком увеличении/уменьшении частоты вращения?

Ну и попутно расскажи как работает компенсация топливоподачи при увеличении/уменьшении воздушного потока в ДВС?

Хоть ты и выбрал тупиковый путь развития девайса, но для общего развития в итоге будет полезно :-D
 

induke

Модератор
Команда форума
Регистрация
13.12.2009
Сообщения
29,308
Лайки
3,330
#67
Ерунду ты пишешь - опиратся только на 1 фронт можно. У Холла точно так же - перекрытие магнитного потока и восстановление его не равнозначны.
если бы он еще спустился с кодерских небес на землю и сподобился бы писать не в ртосе с распухающим кодом))))))...... а хотя бы на си с вставками из асма тогда б.......
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#68
Ерунду ты пишешь - опиратся только на 1 фронт можно.
я ни в коем случае не спорю, что можно опираться только на один фронт - вопрос в том, будет ли лучше в каких-то случаях опираться на оба фронта? разве нам повредят дополнительные точные отметки?
 

Maxi

Старожил
Регистрация
07.01.2008
Сообщения
15,833
Лайки
3,125
Адрес
Москва
#69
если бы он еще спустился с кодерских небес на землю и сподобился бы писать не в ртосе с распухающим кодом))))))...... а хотя бы на си с вставками из асма тогда б.......
Индюк - нет проблем в МЕТОДИКЕ! есть проблема в архитектуре!

если есть продуманная архитектура - можно на интерпретаторе бейсика написать и все успеет. А если у тебя каждое второе прерывание АППАРАТНО ЛИШНЕЕ - то с этим надо что то делать да..

А косяки архитектуры растут из одного - из незнания.
 

induke

Модератор
Команда форума
Регистрация
13.12.2009
Сообщения
29,308
Лайки
3,330
#70
я ни в коем случае не спорю, что можно опираться только на один фронт - вопрос в том, будет ли лучше в каких-то случаях опираться на оба фронта? разве нам повредят дополнительные точные отметки?
если вспомнить высшую математику то там есть такие два совместные понятия - условие необходимое и условие достаточное для (например) свершения какогото события.
избыточность только рождает лишние трудозатраты а порой и путаницу.
многим системам сам знаешь хватает и 6 зубов для точного поределения уоз( в частности) - а твоя работа классически укладывается в мартышкин труд - вместо того шоп дотачивать реально нужные функции устройства ты начинаешь его украшать бантиками - работа по твоему идет а по факту стоит на месте
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#71
что будет в алгоритме если по каким либо причинам пропустится несколько зубов или появятся лишние???
в рамках оборота, внутри которого будет шум, активной реакции на шум сейчас нет, будет промахиваться. сейчас есть подсчёт скважности сигнала триггера, который идёт в лог (лампочка по промаху мимо ожидаемой скважности не зажигается сейчас). Кроме этого, если у нас за 10 оборотов 5 раз случается несовпадение количества событий с ожидаемым, то загорается код ошибки. Короче, будет проблема в этом месте - понятно как можно улучшить обработку и детекцию ошибок. Первоначальная детекция ошибки триггера уже есть.

при появлении главной щели триггер постоянно пере-синхронизируется - т.е. каждый оборот это пере-синхронизация.
 

Maxi

Старожил
Регистрация
07.01.2008
Сообщения
15,833
Лайки
3,125
Адрес
Москва
#72
я ни в коем случае не спорю, что можно опираться только на один фронт - вопрос в том, будет ли лучше в каких-то случаях опираться на оба фронта? разве нам повредят дополнительные точные отметки?
Да не точные это отметки, вот в чем проблема - у них природа разная!
Если у тебя есть отметки с единой природой обраования (например разрыв магнитного потока) - то можно говорить о единой природе их погрешностей (т.е. точность становится лишь функцией знаний о природе погрешностей - и все их можно скомпенсировать).

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

Если же у тебя 2 импульса разной природы - возникает куча вопросов. Какой из них точный и почему именно этот а не другой... По каким законам меняются погрешности - как они связаны с оборотами температурами? опять же для шкива 60-2 ширина зуба не стандартна и уж точно не 1/2 дыры никогда - т.е. тупо 2 мотора будут иметь хз какую разницу между импульсами.
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#73
Как ты компенсируешь ошибку в УОЗ и во времени накопления при резком увеличении/уменьшении частоты вращения? Ну и попутно расскажи как работает компенсация топливоподачи при увеличении/уменьшении воздушного потока в ДВС?
Прямо сейчас я никак не компенсирую резкое изменение оборотов - в рамках одного оборота скорость считается постоянной для целей рассчёта, но планирование УОЗ при этом опирается на прерывание ближайшего зуба. Т.е. если в начале запланировали отступить 1 градус от 15ого зуба, то после 15ого заба и отступим на 1 градус на основании скорости прошлого оборота двигателя. Я пока не вижу проблемы здесь, но вероятно скоро увижу - как только увижу вживую, сразу же займусь. Возможно, проблема проявляется менее серьёзно, чем в системах, которые не пере-рассчитывают цифры топливоподачи или УОЗ для каждого оборота? не знаю.

Ну или кто-то адекватный мне покажет конкретное место в моих или своих логах :) Логи того динамо дня кстати лежат в https://svn.code.sf.net/p/rusefi/code/trunk/misc/logs/2003_dodge_neon/2014_dec_20_dyno/
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#74
Да не точные это отметки, вот в чем проблема - у них природа разная! опять же для шкива 60-2 ширина зуба не стандартна и уж точно не 1/2 дыры никогда - т.е. тупо 2 мотора будут иметь хз какую разницу между импульсами.
итого есть пять причин, почему нужно уметь обрабатывать только один тип фронта - значит на этой неделе постараюсь сделать :) https://sourceforge.net/p/rusefi/tickets/99/
 

Gremlin

Пользователь
Регистрация
08.12.2008
Сообщения
85
Лайки
0
#75
Прямо сейчас я никак не компенсирую резкое изменение оборотов - в рамках одного оборота скорость считается постоянной для целей рассчёта, но планирование УОЗ при этом опирается на прерывание ближайшего зуба. Т.е. если в начале запланировали отступить 1 градус от 15ого зуба, то после 15ого заба и отступим на 1 градус на основании скорости прошлого оборота двигателя. Я пока не вижу проблемы здесь, но вероятно скоро увижу - как только увижу вживую, сразу же займусь. Возможно, проблема проявляется менее серьёзно, чем в системах, которые не пере-рассчитывают цифры топливоподачи или УОЗ для каждого оборота? не знаю.

Ну или кто-то адекватный мне покажет конкретное место в моих или своих логах :) Логи того динамо дня кстати лежат в https://svn.code.sf.net/p/rusefi/code/trunk/misc/logs/2003_dodge_neon/2014_dec_20_dyno/
У тебя планировщик планирует начало накопления на какой-то зуб и потом ждет до его наступления? А если за это время частота вращения кв увеличилась, то твой ранее назначенный зуб уже оказывается ошибочным. Ты это как-то обыгрываешь?
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#76
У тебя планировщик планирует начало накопления на какой-то зуб и потом ждет до его наступления? А если за это время частота вращения кв увеличилась, то твой ранее назначенный зуб уже оказывается ошибочным. Ты это как-то обыгрываешь?
Gremlin, твой вопрос за счёт его лаконичности сложнее точно понять. Вероятно тебя интересует момент искры больше чем момент начала накопления энергии в катушке?

В начале оборота я
1) рассчитываю скорость вращение на основании всего прошлого оборота
2) нахожу, между какими двумя зубьями у меня будет начало накопления энергии в катушке
3) нахожу, между какими двумя зубьями у меня будет искра

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

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

mivaol

Абориген
Регистрация
04.11.2013
Сообщения
2,353
Лайки
9
#77
Так в начале оборота? Или каждые 180 градусов (для 4х цилиндров конечно) в рамках одного полу оборота ничего экстренного не произойдет а если бы происходило то не работало на январе
 

andrey2

Местный
Регистрация
11.01.2015
Сообщения
116
Лайки
1
#78
Я тебя не понимаю. Ты поторопился ответить лаконично - я не знаю, что ты спросил. Попробуй пожалуйста прочиать еще раз мой ответ - я старался расписать подробно.
 

mivaol

Абориген
Регистрация
04.11.2013
Сообщения
2,353
Лайки
9
#79
Оборот это два полуоборота январь расчитывает топливо и углы каждый полуоборот
 

Gremlin

Пользователь
Регистрация
08.12.2008
Сообщения
85
Лайки
0
#80
Gremlin, твой вопрос за счёт его лаконичности сложнее точно понять. Вероятно тебя интересует момент искры больше чем момент начала накопления энергии в катушке?

В начале оборота я
1) рассчитываю скорость вращение на основании всего прошлого оборота
2) нахожу, между какими двумя зубьями у меня будет начало накопления энергии в катушке
3) нахожу, между какими двумя зубьями у меня будет искра

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

Мгновенная скорость кв на основании последних двух зубов не считается. С каким ускорением у нас кв может разкрутиться или замедлиться? У меня руки пока не дошли это посчитать - я сейчас исхожу из допущения, что скорость кв между двумя оборотами меняется не фатально. Значительная часть ошибки рассчётов с такими допущением компенсируется тем, что я привязываюсь к зубу - так что ошибка будет только в том, сколько именно ждать до вызова события после зуба. В таком маштабе я сомневаюсь, что ошибка получается значимой.
С УОЗ как раз не является проблемой, так как это угловой параметр в пределах одного зуба. Даже если допустим, что текущая частота вращения КВ = частоте за предыдущий оборот погрешность будет в разумных пределах. Но с временем накопления пренебрежение изменением скорости вращения в текущем цикле вычислений может привести к уменьшению/увеличению времени накопления, что в итоге скажется на отклике в переходном режиме. Если планируешь блок применять на мотиках то предлагаю задуматься над этим вопросом ;)