Страница 41 из 64
Бармалей_GMN
Turok писал(а):


Стоп ! Получается, что и файл OP_Z разный для версий 4 и 16 МГц Confused Если это так, то в этом то вся и проблемма моя не соответсвия заложенных графиков и получаемым углам в итоге ...


Нет. Не разная. Просто алгоритм пересчёта углов в задержки для 4 и 16 МГц разный - поправка на "сорость".
Turok писал(а):


А что если методом научного тыка, т.е. ставим в 16 графиках единый УОЗ, смотрим, потом меняем значение и снова смотрим ...


Научный тык, в данном случае вряд ли поможет т.к. его результаты очень неточны. А это не есть хорошо.
Давайте подключать коллективный разум, у кого есть, пусть поможет калькоулятором Smile. Где там алгоритм был, продублируйте шоб "на виду" был.
kips
Бармалей_GMN писал(а):

Сам себе думаю, что графики разные. Кроме того, у меня в настройках (ДАД, ХХ, НАклон) в прошивку забиты на старте.


Получается я всё делаю правильно, спасибо.
Turok
Бармалей_GMN писал(а):

Нет. Не разная. Просто алгоритм пересчёта углов в задержки для 4 и 16 МГц разный - поправка на "сорость".


Стоп ! Как я понимаю программа берёт уже готовые значения из выдранной прошивки ? А они там уже представленны в формате "время". Так что 4 и 5 версии это время ещё делят с поправкой на скорость ? Или мы на разных языках говорим :-D
jhm
Алгоритм op_z для 4 и 16МГц должен быть одинаковым. Разница только в рассчетах задержки для разной частоты. То есть формула для 4МГц будет работать и для 16. А поправка на разную частоту сидит в прошивке.
paratruper
Я похоже нашёл в прошивке куски отвечающие за преобразование данных из времени как они забиты в прошивка в градусы, но так как в асме пика я вообще нуль, то превевести их в формулу не могу Sad хотя если бы был отладчик и эмулятор под пики можно было реверсировать и поглядеть како оно работает, но я таких прог на знаю Sad
Turok
jhm писал(а):

Алгоритм op_z для 4 и 16МГц должен быть одинаковым. Разница только в рассчетах задержки для разной частоты. То есть формула для 4МГц будет работать и для 16. А поправка на разную частоту сидит в прошивке.


Я уже тоже так подумал ...
Формула для задержки следующая (если не прав поправьте)

Vz=(Umax-Uoz)*1/((Od/60)*360)
Где
Vz-время задержки
Umax-максимальный угол
Uoz-угол опережения
Od-обороты двигателя

т.е зависимость от оборотов линейная

Тепер же в что я сделал, посчитал с какой зависимостью уменьшать УОЗ чтобы при увеличение оборотов время задержки осталось примерно одинаковым, поставил в графики, выдрал OP_Z и в итоге как и предпологалось значения одинаковые примерно ... Но !
Если мы берём угол одинаковый скажем на 600 и 720 оборотах то изменения по времени задержки равны обратному отношению изменнения оборотов т.е 1 к 1,2 . А вот в выдранной при помощи OP_Z отношение значений ~ 2.45555 Значит в той формуле по которой считает OP_z есть ещё какие то константы ...
Вот если сейчас бы это PAUL прочитал, ржал бы Smile
Turok
paratruper писал(а):

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


Давай куски я тоже погляжу ....
Эмулятор Proteus возми ...
jhm
Есть отладчик от производителя - MPLAB, качается с microchip.com
Я немного копал прошивку, вот только забыл файлы на работе Sad С математикой рассчетов я не разбирался, но она мне не очень понравилась, там есть перевод времени в обороты, а потом с оборотов опять время рассчитывается. То есть двойное преобразование. Не проще ли было работать только с задержкой, причем с 16-битной точностью? Тогда бы не было ограничения оборотов до 5100, да и вариант для 2-6-8-цилиндровых двигателей решался бы переносом графиков на соответствующий диапазон задержек искрообразования.
И кажется мне, что Zhpaul так и сделал в новых версиях(там диапазон оборотов до 15000)

Последний раз редактировалось: jhm (21 Сентября 2007 16:41), всего редактировалось 1 раз
jhm
Turok писал(а):

Если мы берём угол одинаковый скажем на 600 и 720 оборотах то изменения по времени задержки равны обратному отношению изменнения оборотов т.е 1 к 1,2 . А вот в выдранной при помощи OP_Z отношение значений ~ 2.45555 Значит в той формуле по которой считает OP_z есть ещё какие то константы ...
Вот если сейчас бы это PAUL прочитал, ржал бы Smile



Константа видимо загоняет диапазон значений в 8 или 16 бит
jhm
Кстати... рабочий Proteus подкиньте Smile
Бармалей_GMN
jhm писал(а):

Есть отладчик от производителя - MPLAB, качается с microchip.com
Я немного копал прошивку, вот только забыл файлы на работе Sad С математикой рассчетов я не разбирался, но она мне не очень понравилась, там есть перевод времени в обороты, а потом с оборотов опять время рассчитывается. То есть двойное преобразование. Не проще ли было работать только с задержкой, причем с 16-битной точностью? Тогда бы не было ограничения оборотов до 5100, да и вариант для 2-6-8-цилиндровых двигателей решался бы переносом графиков на соответствующий диапазон задержек искрообразования.
И кажется мне, что Zhpaul так и сделал в новых версиях(там диапазон оборотов до 15000)


Дык если разбираешься, давай попробуем. Пиши, что и как видишь с примерами. На Турке "проэкспиремнтируем" Smile его не жалко Smile Может и получится что. "Дорогу осилит идущий" ? не помню кто и когда.
Turok
jhm писал(а):

Константа видимо загоняет диапазон значений в 8 или 16 бит


Помоги добить заразу ! :-D
jhm писал(а):

Кстати... рабочий Proteus подкиньте


Млин Нет тоска, а то бы скинул, погляжу может ссылка осталась ...
Turok
Народ может новую ветку создадим, а то чё то подглюкивает уже ...
Измышлизмы ... Может RUSO попросил PAUL остановится Smile
Не может же человек вот так взять и пропасть ? И что ни кто не знает его мыло ?
Turok
Бармалей_GMN писал(а):

На Турке "проэкспиремнтируем" его не жалко Может и получится что.


Спасибо и тебе на добром слове Smile
А так я всеми руками за !
AVK
jhm писал(а):

Кстати... рабочий Proteus подкиньте


kazus.ru однако
jhm
AVK писал(а):

jhm писал(а):

Кстати... рабочий Proteus подкиньте


kazus.ru однако


Да качал когда-то, в каждой версии свои глюки.. Sad потому и спрашиваю, уможет есть у кого рабочая?
paratruper
Turok писал(а):


Давай куски я тоже погляжу ....
Эмулятор Proteus возми ...


Вот куски из оригинальной прошивки от 4 версии, где как мне кажется идёт пересчёт (да там так и написано Smile) Собственно говоря главное сейчас найти "волшебную формулу персчёта градусов в задержку".

ob_min ;перевод tmr в обороты
;вход: ob1:tmr
;выход: W
movfw ob1
bank2
movwf EEADRH
movlw 6
addwf EEADRH,F
bank0
movfw tmr
bank2
movwf EEADR

bank3
bsf EECON1,EEPGD
bsf EECON1,RD
nop
nop
bank2
movfw EEDATA
bank0
return
;---------------------------------------------------------
op_z ;перевод оборотов в задержку зажигания (!!!!!Обратите внимание у Павла прямо так и написано!!!!)
;вход: vak:W
;выход: CCPR1H:CCPR1L
bank2
movwf EEADR
bank0
movfw vak
bank2
movwf EEADRH
op_z1 bank3
bsf EECON1,EEPGD
bsf EECON1,RD
nop
nop
bank2
movfw EEDATA
bank0
movwf CCPR1L
bank2
movfw EEDATH
bank0
movwf CCPR1H
return
Turok
paratruper писал(а):

Собственно говоря главное сейчас найти "волшебную формулу персчёта градусов в задержку".


Формула есть, а вот как соотвествуют этим значениям задержек, мистические значения после OP_Z тут загвоздка ...
paratruper
jhm писал(а):

Не проще ли было работать только с задержкой, причем с 16-битной точностью? Тогда бы не было ограничения оборотов до 5100, да и вариант для 2-6-8-цилиндровых двигателей решался бы переносом графиков на соответствующий диапазон задержек искрообразования.
И кажется мне, что Zhpaul так и сделал в новых версиях(там диапазон оборотов до 15000)



Не факт. Обороты формируются исходя из формулы Об=Знач*20
Где Знач- это значение хранящееся в Пике таким образом можно просто увеличить множитель к примеру до 40 тогда у нас МахОб=10200, другое дело что дискретность возрастёт в 2 раза, то есть шаг будет не 20 об/мин а 40 об/мин. Но прошивка правится практически мгновенно Smile Кстати двойной перевод идёт ещё с родительской прошивки Павла, и Русо по моему его не трогал, он подправлял только подпрограммы деления,умножения, и т.д.
jhm
Собсно и первая и вторая подпрограмма читает данные с таблицы.
Первая возвращает значение оборотов/20. Почему именно так? Потому что значение 8-битное. Итого максимум 255*20=5100 об.мин.
А вторая берет это значение оборотов и переменную vak - по видимому разрежение, и из таблицы читает значение задержки.
jhm
paratruper писал(а):


Не факт. Обороты формируются исходя из формулы Об=Знач*20
Где Знач- это значение хранящееся в Пике таким образом можно просто увеличить множитель к примеру до 40 тогда у нас МахОб=10200, другое дело что дискретность возрастёт в 2 раза, то есть шаг будет не 20 об/мин а 40 об/мин. Но прошивка правится практически мгновенно Smile Кстати двойной перевод идёт ещё с родительской прошивки Павла, и Русо по моему его не трогал, он подправлял только подпрограммы деления,умножения, и т.д.


Вот мои размышления:
1. Сначала мы измеряем задержку между импульсами. Tвх
2. Задержка импульса зажигания Твых равна Твх-Задержка опережения.
3. Все. Больше математики нет.

Я конечно сильно упростил, но идея такова. Привязку до оборотов нужно делать только в программе редактирования графиков УОЗ
paratruper
Turok писал(а):


Формула есть, а вот как соотвествуют этим значениям задержек, мистические значения после OP_Z тут загвоздка ...



Давайте думать вместе Smile
OPZ выдирает графики из прошивки от ВАЗа, у ВАЗа в характристике "экономичный режим без ДК" (откуда ОПЗ выдирает прошивки) 16 "расходов" по 16 отсчётов, плюс есть Уоз при пуске, правда там 40 отсчётов, а у нас 19. Возможно если взять отсчёты из ВАЗ прошивки и совместить их с нашими, то мы получим искомые графики УОЗ. Правда у нас в прошивке таких графиков не 16, а 16 по 16 тоесть 256 не считая пускового Wink так вот что делают остальные 15 надо смотреть прошивку.
paratruper
jhm писал(а):


Вот мои размышления:
1. Сначала мы измеряем задержку между импульсами. Tвх
2. Задержка импульса зажигания Твых равна Твх-Задержка опережения.
3. Все. Больше математики нет.
Я конечно сильно упростил, но идея такова. Привязку до оборотов нужно делать только в программе редактирования графиков УОЗ



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

В общем на данный момент имеем: Формулу Турка, и некоторые измышления по поводу правильности расшифровки формата файла создаваемого ОПЗ. Но нет четкой уверенности что всё это коррретно Smile
jhm
paratruper писал(а):

Правда у нас в прошивке таких графиков не 16, а 16 по 16 тоесть 256 не считая пускового Wink так вот что делают остальные 15 надо смотреть прошивку.



Это все промежуточные рассчеты. Павел только в новых версиях ввел интерполяцию. Потому у него и умещается 16 характеристик УОЗ. А у нас - только одна, без интерполяции.
Значит op_z рассчитывает промежуточные значения.

Значение оборотов/20 - это младший байт адреса в таблице задержек.
Вакуум - старший байт адреса.
paratruper
jhm писал(а):


Это все промежуточные рассчеты. Павел только в новых версиях ввел интерполяцию. Потому у него и умещается 16 характеристик УОЗ. А у нас - только одна, без интерполяции.
Значит op_z рассчитывает промежуточные значения.

Значение оборотов/20 - это младший байт адреса в таблице задержек.
Вакуум - старший байт адреса.



А поподробнее можно? Меня интересует каким образом из тех цифр которые есть в файле ОПЗ получить углы, желательно с привязкой к оборотам. Smile
Новая тема Ответить на тему
Показать сообщения:
Страница 41 из 64
Перейти:
ИНФОРМАЦИЯ ПО ИКОНКАМ И ВОЗМОЖНОСТЯМ

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