как насчет такого : если тормоз нажат или открыта дверь , не давать подниматься оборотам больше определенных ?
допустим у нас автомат , зачем мотор на старте крутить больше чем обороты максимального крутящего момента?
после езды на мотоциклах ездильщики постоянно поджимают тормоз и жмут газ , так мало того что стираются тормоза , так еще и обгонная муфта (центробежное сцепление) стирается .
ограничение стартовых оборотов
- AndreyB
- Site Admin
- Posts: 14381
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: ограничение стартовых оборотов
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: ограничение стартовых оборотов
ну можно еще и стабилизировать стартовые обороты на уровне максимального крутящего момента
Re: ограничение стартовых оборотов
У БМВ начала 2000-х если натянут ручник, то мотор не развивает обороты, вот защита, причем иногда нужная всем ))
Я на Drive2 Alfa Romeo 156 SW
Re: ограничение стартовых оборотов
вот набросал патчик
замечания?
Code: Select all
Index: controllers/math/engine_math.cpp
===================================================================
--- controllers/math/engine_math.cpp (revision 2629)
+++ controllers/math/engine_math.cpp (working copy)
@@ -27,6 +27,7 @@
#include "io_pins.h"
#include "OutputSignalList.h"
#include "trigger_decoder.h"
+#include "rpm_calculator.h"
/*
* default Volumetric Efficiency
@@ -241,7 +242,7 @@
return getOneDegreeTimeMs(rpm) * angle;
}
- if (rpm > engineConfiguration->rpmHardLimit) {
+ if (engineNeedSkipStoke()) {
// technically this could be implemented via interpolate2d by setting everything above rpmHardLimit to zero
warning(OBD_PCM_Processor_Fault, "skipping spark due to rpm=%d", rpm);
return 0;
@@ -347,3 +348,14 @@
void setTimingLoadBin(engine_configuration_s *engineConfiguration, float l, float r) {
setTableBin(engineConfiguration->ignitionLoadBins, IGN_LOAD_COUNT, l, r);
}
+
+
+int engineNeedSkipStokeT(engine_configuration_s *engineConfiguration) {
+ if (getRpm() > engineConfiguration->rpmHardLimit) {
+ return 1;
+ }
+ // todo: add damageVoltage
+ // todo: probably add brakeRpmLimit
+ // todo: add sportMode to turn off this function (or part of function)
+ return 0;
+}
Index: controllers/math/engine_math.h
===================================================================
--- controllers/math/engine_math.h (revision 2629)
+++ controllers/math/engine_math.h (working copy)
@@ -56,6 +56,9 @@
void setSingleCoilDwell(engine_configuration_s *engineConfiguration);
+int engineNeedSkipStokeT(engine_configuration_s *engineConfiguration);
+#define engineNeedSkipStoke() engineNeedSkipStokeT(engineConfiguration)
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Index: controllers/trigger/main_trigger_callback.cpp
===================================================================
--- controllers/trigger/main_trigger_callback.cpp (revision 2629)
+++ controllers/trigger/main_trigger_callback.cpp (working copy)
@@ -43,6 +43,7 @@
#include "histogram.h"
#include "rfiutil.h"
#include "LocalVersionHolder.h"
+#include "engine_math.h"
static LocalVersionHolder localVersion;
@@ -87,6 +88,10 @@
if (isCranking())
scheduleMsg(&logger, "crankingFuel=%f for CLT=%fC", fuelMs, getCoolantTemperature());
+ if (engineNeedSkipStoke()) {
+ fuelMs = 0;
+ }
+
scheduleOutput(event->actuator, delay * TICKS_IN_MS, fuelMs * TICKS_IN_MS, chTimeNow());
}
- AndreyB
- Site Admin
- Posts: 14381
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: ограничение стартовых оборотов
Ну для начала не
а
Code: Select all
return 1;
Code: Select all
return TRUE;
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: ограничение стартовых оборотов
Это мелочь , ведь true=1?
а функция очень полезна будет , еще в Todo забыл добавить damageCLT - у вас чтобы при отказе термостата или вентилятора не закипело .
а функция очень полезна будет , еще в Todo забыл добавить damageCLT - у вас чтобы при отказе термостата или вентилятора не закипело .
- AndreyB
- Site Admin
- Posts: 14381
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: ограничение стартовых оборотов
нет, это не мелочь - код должен быть хорошим. ты же не считаешь, что ты можешь писать халтурно, а другие за тобой улучшат?
кстати
это просто неверно - потому что если пропускать, то нужно делать return - а не планироать сигнал нулевой длинны.
если посмотреть на то, какие методы откуда вызываются - то кажется должно хватать проверки один в правильном месте, тогда ни зажигания не топлива не будет просто потому что метод не будет вызван
кстати
Code: Select all
if (engineNeedSkipStoke()) {
fuelMs = 0;
}
если посмотреть на то, какие методы откуда вызываются - то кажется должно хватать проверки один в правильном месте, тогда ни зажигания не топлива не будет просто потому что метод не будет вызван
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: ограничение стартовых оборотов
Переписать под класс с++ ?
Или в отдельном файле это разместить?
Или в отдельном файле это разместить?
- AndreyB
- Site Admin
- Posts: 14381
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: ограничение стартовых оборотов
Ээээ, неожиданный поворот.
Давай попробуем завтра голосом по скайпу разобраться?
Давай попробуем завтра голосом по скайпу разобраться?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute