Алгоритмы РХХ и не только (Algorithms of idling regulators)

Обсуждение прошивок SECU-3. Discussion of SECU-3 firmware.

Moderator: STC

User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

как узнать чему равно это число на которое умножено d->sens.temperat ?
Открыть файл adc.h и увидеть строки:
#define MAP_PHYSICAL_MAGNITUDE_MULTIPLAYER 64
#define UBAT_PHYSICAL_MAGNITUDE_MULTIPLAYER (1.0/ADC_DISCRETE) //=400
#define TEMP_PHYSICAL_MAGNITUDE_MULTIPLAYER (TSENS_SLOPP / ADC_DISCRETE) //=4
у меня предположим , получилась формула , что мне нужно текущую Т умножить на 10 и получить переменную
//умножение текущей температуры на 10
int variable = d->sens.temperat * 10
переменнная должна подставится в следующее выражение математическое имено в виде числа , тоесть Т=70 , переменная равна 700 , не 7000 и не 70 а именно 700 . как быть тогда ?
Глупости. Чем тебя 7000 не устраивает?
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

ок , значит d->sens.temperat = реальная Т * 4 ?
ну все тогда вопросов более нет )

чем не устраивает , тем что , вот я хочу ,например, получить обороты для РХХ например теже 1400 , при 60 гр Т, путем прибавления к заданым пользователем (800) некой переменной , полученной из текущей температуры . значит я должен прибавить точно 600!!! не 6000 а именно 600 )))
поэтому --- обороты РХХ=обороты заданные пользователем + d->sens.temperat /4 *10 получим при Т=60 град 800+600 =1400 ))) решение найдено )
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

d->sens.temperat /4
Опять глупости. Работать будет, но точность будет не очень. С математикой и физикой видимо совсем туго...
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

Напиши формулу в чистом виде описывающую что ты хочешь посчитать, только пожалуйста не словами, а формулой.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Dmitrich2
LQFP112 - Up with the play
Posts: 248
Joined: Tue Dec 07, 2010 9:36 am

Re: Алгоритмы РХХ и не только

Post by Dmitrich2 »

На сколько я понял Stranger21 хочет получить прогревочные обороты, то есть держать 1400 до 70 градусов(используя моновприск). С математикой конечно туго.
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

выше описанный кусок кода РХХ проверил .. работает все вроде как ) теперь я таблицей УОЗ от Т задаю и прибавление УОЗ на прогреве и прибавление целевых оборотов на Т*50 оборотов
один раз прогрел , лучше вроде стало все это дело . ну какието проблемки все еже существуют

теперь про Си и формулы
допустим я хочу реализовать вот такую простейшую формулу

idl_rpm = idl_rpm_manual + (1/t)*6000
где idl_rpm - желаемые обороты ХХ
idl_rpm_manual - заданые пользователем обороты ХХ на прогретой машине
t - температура двигателя
не надо мне говорить сейчас про переход через 0 и так далее .. я понимаю это . разоговор только о физической сути величин
и так подставив в данную формулу заместо t переменную d->sens.temperat я получаю в результате расчета - не предсказуймый результат!!!! так как я не знаю какое именно число выдаст мне эта переменная , вместо ожидаемоно например 60 ... вот о чем я говорю . я не могу делать вычисление , не зная сколько реально показывает мне переменная!!!! если она подразумевая число 60 , на самом деле показывает например 100 , то все мои расчеты становятся без смысленными!
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

6000 это просто коэффициент?
Есть 2 варианта как можно реализовать эту формулу.
целочисленная переменная t хранит температуру в градусах Цельсия * 4

1. вариант
idl_rpm = idl_rpm_manual + (1/(t/4))*6000

2. вариант
Начнем с того, что выражение вида (1/t)*6000 глупое с точки зрения целочисленной арифметики. Его нужно переписать следующим образом:
idl_rpm = idl_rpm_manual + (6000/t); и соответственно:
idl_rpm = idl_rpm_manual + (6000/t) / 4;

3. вариант
idl_rpm = idl_rpm_manual + (1250/t)

Как ты думуешь какой вариант будет более точным? Более точным будет 2-й вариант. В первом варианте когда ты делишь t на 4 ты сводишь на нет точность представления температуры, которая была равна 0.25 град. Цельсия. Например переменная t представляет температуру = 50.5 град. Целься и равна 50.5 * 4 = 202. На каждый градус 4 дискреты. Сразу поделив 202 на 4 целочисленным делением ты получишь результат равный 50 град. Цельсия (остаток ведь отбрасывается).

2-й и 3-й варианты равнозначны.

Очень сложная математика на уровне 5-6 класса средней школы! :cry:
Есть уравнение:
y = 2x + 3z;
Ничего не поменяется если y, x и z умножить на 4.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

ну вот про эту 4!!!! я и спрашивал , естествнно понятно что при делении Т на 4 будет меньше точность ....

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

спасибо . теперь я знаю что переменная d->sens.temperat имеет число равное температуре умноженной на 4 . и учту это в формулах

сегодня вротой раз прогревал по моему алгоритму . да хорошо . но все равно чтото ее раскачивает ((( на чистом моновпрыске все ровно .... ((( прям беда какаято ( .... попробую поменять УОЗ хотя вроде точно определил что 9 град соответсвует 800 оборотам (((
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

Почитай разделы теории управления про ПИД-ы. Если я правильно понял, то ты пытаешься реализовать подобие П-регулятора. Такой тип регулятора в чистом виде подходит не для всех задач. Попробуй ввести так называемую интегральную составляющую, она должна добавить устойчивости. Я имею ввиду ПИ-регулятор. Формулы и принципы там простые, никакая высшая математика и комплексный анализ там не нужны (избавься от комплекса неполноценности перед математикой который тебе вдолбили еще в школе плохие учителя!).

Вот просто замечательная статья о ПИД http://roboforum.ru/wiki/%D0%9F%D0%B5%D ... 0%D1%85%22
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

Да , я уже реализовал П регулятор , убрав из твоего ПИ регулятора таймер , по кторому и была интегральная составляющая
убрал потому что ПИ медленный , и для моновпрыска мне не понравилось как он работает
П быстрее , но чтото все равно не идеал (

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

думаю нужно попробовать по подбирать УОЗ , так чтобы он точно совпал с тем уоз что хочет моновпрыск

ну зима наступает . будет простор для проверок ) всмысле режим прогрева )

думаю еслибы то что сделал я , добавить в менеджере все таки отдельным графиком зависимость оборотов от Температуры , было бы удобно . а так получаеться приходиться жестко связать график УОЗ от Т и обороты от Т
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Post Reply