Goblin 700 RAW Nitro (Benzin)
Как общие впечатления от владения Гассером ? Я вижу тебя затянуло ! 😉
Громче разговаривать не стал ? 😃
Да что тут написать. Да, затянуло. Скорее не гассер как таковой, а масса связанных с ним проблем, которые надо было решить. Боюсь, что как только все проблемы будут решены, а к этому все идет, то интерес к нему постепенно будет угасать.
Вот например сегодня с установленными #А ограничителями межлопастного верт полетел именно так как мне нравится. Очень мягкий отклик по циклику, а внезапно возникающие вибрации как рукой сняло. И гаин циклика получилось поднять выше 100%.
А еще я написал LUA скрипт - регулятор холостого хода. И теперь передатчик сам, учитывая показания сенсоров температуры и оборотов, подстраивает холостой ход. Я лишь перед запуском настраиваю начальное открытие дросселя, а как только мотор заведется холостой ход регулируется автоматически. Очень удобно, учитывая сколько раз я режимы переключаю, когда тренирую авторотации.
local input = { { "Idle", SOURCE } }
local output = { "idlv", "rpmt" }
local id_temp = getFieldInfo( "engT" ).id
local id_rpm = getFieldInfo( "RPM" ).id
local id_gvar1 = getFieldInfo( "gvar1" ).id
local id_gvar2 = getFieldInfo( "gvar2" ).id
local id_gvar3 = getFieldInfo( "gvar3" ).id
local id_ls1 = getFieldInfo( "ls1" ).id
local idle_v = 0
local eng_T = 0
local rpm = 0
local rpm_t = 0
local ls1 = 0
local function init_func()
end
local function run_func( idle_s )
eng_T = getValue( id_temp )
rpm = getValue( id_rpm )
rpm_t = getValue( id_gvar1 ) * 10
ls1 = getValue( id_ls1 )
if eng_T < 10 then
rpm_t = rpm_t + 1750
elseif eng_T < 55 then
rpm_t = rpm_t + ( 1750 / ( 55 - 10 ) * ( 55 - eng_T ) )
end
if rpm < 3000 or rpm > 8000 or ls1 < 0 then
idle_v = idle_s * .2 - ( 1024 * .8 )
else
if rpm < rpm_t then
idle_v = idle_v + getValue( id_gvar2 ) / 10
elseif rpm > rpm_t then
idle_v = idle_v - getValue( id_gvar3 ) / 10
end
end
if idle_v > ( -1024 * .6 ) then
idle_v = ( -1024 * .6 )
elseif idle_v < -1024 then
idle_v = -1024
end
return idle_v, rpm_t / 10 * 1024 * .01
end
return { input=input, output=output, run=run_func, init=init_func }
Последнюю неделю время затрачиваемое на обслуживание гассера стало меньше чем на электрику. Основная проблема с электрикой это зарядка силовых батарей на месте. Если я прихожу на аэродром с 5ю паками, то могу сделать 7 вылетов по 10 мин без перерыва на ожидание зарядки, но если больше, то надо ждать. 2x 12S 5000mAh пака от авто заряжаются до 40 минут. А в гассер бензин залил и летаешь 30 минут без перерыва.
Громче разговаривать не стал ?
Не понял, о чем ты?
Я о звуках издаваемых бензомотором …
Лично мне давит на уши конкретно!
Мне нужен пример, чтобы сравнить. Я как бы понимаю о чем говоришь, но не знаю какие моторы и на каких настройках ты слушал. Если я на своем откручу Н иглу на 20 градусов, то рев карбюратора будет заглушать выхлоп. Это очень противный звук. А настроенный мотор как по мне по звуку от нитро не отличается.
Дай какой нибудь пример где этот противный звук можно услышать и я скажу так это или нет.
На до бы мне видео сделать, но меня затянул регулятор холостого хода и я еще пару дней буду заниматься им. Сегодня на аэродроме дописал полноценный PID и настраивал его. Работает классно. Ощущения как будто стартую инжекторный автомобиль 😃 Я лишь задаю начально положение заслонки, а потом вообще не вмешиваюсь.
local input = { { "Idle", SOURCE } }
local output = { "idlv", "rpmt", "rpm", "errp", "erri", "errd" }
local id_temp = getFieldInfo( "engT" ).id
local id_rpm = getFieldInfo( "RPM" ).id
local id_gvar1 = getFieldInfo( "gvar1" ).id
local id_gvar2 = getFieldInfo( "gvar2" ).id
local id_gvar3 = getFieldInfo( "gvar3" ).id
local id_gvar4 = getFieldInfo( "gvar4" ).id
local id_ls1 = getFieldInfo( "ls1" ).id
--local id_s2 = getFieldInfo( "s2" ).id
local idle_v = 0
local err_p = 0
local err_p_last = 0
local err_i = 0
local err_d = 0
local rpm_ctrl_min = 3000
local rpm_ctrl_max = 8000
local rpm_ctrl_range = ( rpm_ctrl_max - rpm_ctrl_min )
local rpm_ctrl_I_range = 250
local temp_min = 10
local temp_max = 75
local temp_range = ( temp_max - temp_min )
local temp_rpm_offset = 1750
local idle_source_weight = .2
local time_ctrl_next = 0
local rpm = 0
local rpm_target = 0
--local rpm_adjust = 0
local function init_func()
time_ctrl_next = getTime()
end
local function run_func( idle_s )
if getTime() > time_ctrl_next then
time_ctrl_next = time_ctrl_next + 20
rpm = getValue( id_rpm )
--rpm = math.random( 200 ) + ( 2000 + 6000 / 2048 * ( getValue( id_s2 ) + 1024 ) ) + rpm_adjust
rpm_target = getValue( id_gvar1 ) * 10
local eng_T = getValue( id_temp )
local ls1 = getValue( id_ls1 )
if eng_T < rpm_ctrl_min then
rpm_target = rpm_target + temp_rpm_offset
elseif eng_T < rpm_ctrl_max then
rpm_target = rpm_target + ( temp_rpm_offset / ( rpm_ctrl_range ) * ( rpm_ctrl_max - eng_T ) )
end
if rpm < rpm_ctrl_min or rpm > rpm_ctrl_max or ls1 < 0 then
idle_v = idle_s * idle_source_weight - ( 1024 * ( 1. - idle_source_weight ) )
err_i = 0
else
err_p = ( rpm_target - rpm ) / ( rpm_ctrl_range / 10 )
err_i = err_i + err_p / 10
err_d = err_p - err_p_last
err_p_last = err_p
if err_i > rpm_ctrl_I_range / rpm_ctrl_range then
err_i = rpm_ctrl_I_range / rpm_ctrl_range
elseif err_i < -rpm_ctrl_I_range / rpm_ctrl_range then
err_i = -rpm_ctrl_I_range / rpm_ctrl_range
end
--rpm_adjust = ( rpm_adjust + ( err_p * ( getValue( id_gvar2 ) / 100 ) + err_i * ( getValue( id_gvar3 ) / 100 ) +
-- err_d * ( getValue( id_gvar4 ) / 100 ) ) * 50 )
idle_v = idle_v + err_p * ( getValue( id_gvar2 ) / 100 ) + err_i * ( getValue( id_gvar3 ) / 100 ) + err_d * ( getValue( id_gvar4 ) / 100 )
if idle_v > ( -1024 * ( 1. - idle_source_weight ) ) then
idle_v = ( -1024 * ( 1. - idle_source_weight ) )
elseif idle_v < -1024 then
idle_v = -1024
end
end
end
return idle_v, rpm_target / 10 * 1024 * .01, rpm / 10 * 1024 * .01, err_p * 1024 * .1, err_i * 1024 * .1, err_d * 1024 * .1
end
return { input=input, output=output, run=run_func, init=init_func }
Да, ± так же звучит, имеется ввиду спектр издаваемых звуков. Громкость по видео оценить сложно. Возможно 15 кубиков будут потише чем 20-30 кубовый Хансон.
Авторотирует RAW Nitro просто замечательно. Низкий вес и большАя площадь ротора позволяют ротировать на более низких оборотах в сравнении с Thunder плюс меньшие потери в трансмиссии позволяют это делать дольше 😃
Сегодня время в авторотации приближалось к минуте. Конечно же это субъективно.
Мне больше нравится эффект производимый на публику, а именно, когда я летал электро так никто и не замечал когда я мотор выключал в 100 метрах над землей, а сейчас “заглохший” бензиныч замечают все.
Авторотации на RAW Nitro.
Холостой ход в режиме холд установлен на 4000 оборотов. Его удержанием занимается PID регулятор, a скрипт испоняется самим передатчиком. Частота опроса сенсора оборотов 5Hz, частота коррекции 2.5Hz. Скорость реакции регулятора не большая, но я это учел при наладке и сейчас система работает без овершотов и автоколебаний. При холодном старте, когда правильная позиция дросселя неизвестна система стабилизируется за 5-7 секунд, а уже при переключении между полетным режимом и холд за 4 секунды.
Код отлаженого регулятора.
local input = { { "Idle", SOURCE } }
local output = { "idlv", "rpmt", "rpm", "errp", "erri", "errd" }
local id_temp = getFieldInfo( "engT" ).id
local id_rpm = getFieldInfo( "RPM" ).id
local id_gvar1 = getFieldInfo( "gvar1" ).id
local id_gvar2 = getFieldInfo( "gvar2" ).id
local id_gvar3 = getFieldInfo( "gvar3" ).id
local id_gvar4 = getFieldInfo( "gvar4" ).id
local id_ls1 = getFieldInfo( "ls1" ).id
local idle_v = 0
local err_p = 0
local err_p_last = 0
local err_i = 0
local err_d = 0
local rpm_ctrl_min = 3000
local rpm_ctrl_range = 4000
local temp_min = 10
local temp_max = 75
local temp_range = ( temp_max - temp_min )
local temp_rpm_offset = 1750
local idle_source_weight = .2
local idle_source_setpoint = 0
local time_ctrl_next = 0
local time_ctrl_ramp_down = 0
local rpm = 0
local rpm_target = 0
local rpm_deadband = 2.
local mode_Off = 0
local mode_Idle = 1
local mode_Run = 2
local mode_RampDown = 3
local mode_ctrl = mode_Off
local function init_func()
time_ctrl_next = getTime()
end
local function run_func( idle_source )
if getTime() > time_ctrl_next then
time_ctrl_next = time_ctrl_next + 40
rpm = getValue( id_rpm )
rpm_target = getValue( id_gvar1 ) * 10
local eng_T = getValue( id_temp )
local ls1 = getValue( id_ls1 )
if eng_T < temp_min then
rpm_target = rpm_target + temp_rpm_offset
elseif eng_T < temp_max then
rpm_target = rpm_target + ( temp_rpm_offset / ( temp_range ) * ( temp_max - eng_T ) )
end
if rpm < rpm_ctrl_min then
mode_ctrl = mode_Off
end
if mode_ctrl == mode_Off then
idle_source_setpoint = idle_source * idle_source_weight - ( 1024 * ( 1. - idle_source_weight ) )
idle_v = idle_source_setpoint
if rpm > rpm_ctrl_min and ls1 > 0 then
err_i = 0
mode_ctrl = mode_Idle
end
elseif mode_ctrl == mode_Idle then
err_p = ( rpm_target - rpm ) / ( rpm_ctrl_range / idle_source_weight ) * 1024
err_i = err_i + err_p
if err_p < 10.24 * rpm_deadband and err_p > -10.24 * rpm_deadband then
err_p = 0
elseif err_p > 10.24 * rpm_deadband then
err_p = err_p - 10.24 * rpm_deadband
elseif err_p < -10.24 * rpm_deadband then
err_p = err_p + 10.24 * rpm_deadband
end
err_d = err_p - err_p_last
err_p_last = err_p
if err_d < 10.24 * rpm_deadband and err_d > -10.24 * rpm_deadband then
--err_d = 0
end
idle_v = idle_source_setpoint + err_p * ( getValue( id_gvar2 ) / 100 ) +
err_i * ( getValue( id_gvar3 ) / 100 ) +
err_d * ( getValue( id_gvar4 ) / 100 )
if ls1 < 0 then
idle_v = idle_v + 10.24
idle_source_setpoint = idle_v
err_i = 0 ---err_i
err_p_last = 0
mode_ctrl = mode_Run
end
if idle_v > ( -1024 * ( 1. - idle_source_weight ) ) then
idle_v = ( -1024 * ( 1. - idle_source_weight ) )
elseif idle_v < -1024 then
idle_v = -1024
end
elseif mode_ctrl == mode_Run then
if ls1 > 0 then
time_ctrl_ramp_down = getTime() + 400
mode_ctrl = mode_RampDown
end
elseif mode_ctrl == mode_RampDown then
if ls1 > 0 then
if time_ctrl_ramp_down < getTime() then
mode_ctrl = mode_Idle
end
else
mode_ctrl = mode_Run
end
end
end
return idle_v, rpm_target / 10 * 1024 * .01, rpm / 10 * 1024 * .01, err_p, err_i, err_d
end
return { input=input, output=output, run=run_func, init=init_func }
На Raw Nitro готовят ретрофит хвостового ремня.
Unfortunately, we are experiencing some “TAIL BELT” breaks on the RAW 700 NITRO model. [SG746]
The problem is not related to the project but is due to a defect in the belt.
We immediately contacted the supplier to have a new batch for these belts as soon as possible. The times are about 2 weeks
At the end of the month we will ship a retrofit KIT for the necessary replacement
Not all belts presents the problem but as we do not know which ones are right and which are not, for safety reasons it is recommended to wait for the new belt;
More details on how to get the replacement next week.
We apologize for this inconvenience.
Достойное поведение от САБ … правда немного запоздалое …
Но как говорится “лучше поздно чем никогда” 😉
В догонку. Отправлять будет сам САБ всем, кто напишет в поддержку. Требуется серийный номер и доказательство заказа.
RAW NITRO SG746 update
The new belts were shipped from the supplier to our factory in Vietnam.
As soon as they are delivered; we will pack the retrofit kits including the new belt and the M3 bolt for the tail bell crank.
To all customers who have already emailed support@goblin-helicoper we will ship with priority.
For those who have not done so, please send an email with your kit’s serial number and proof of purchase.Thank you
Не понимаю зачем SAB просит регистрировать купленные модели у них на сайте, если он владельцам конкретной зарегистрированной модели не сообщает о признанном ими дефекте ремня и что его будет менять, а я узнаю об этом на русском форуме.
На новом моторе стремительно приближаюсь к отметке 15 литров. Уже нетерпится разобрать мотор и проинспектировать стопоры. Оригинальные запчасти от RCJapan на днях приехали и на данный момент у меня 6 пар запасных стопоров 😃
Еще два поршня с кольцами и новый лейнер лежат про запас, а старый мотор все еще в гарантийном ремонте.
Посмотрим. Если на стопорах будет виден износ, то буду их менять заблаговременно. Ну а если нет, тогда надо будет искать причину их вылета в другом месте.
P.S. С RCJapan мне сейчас получается дешевле покупать чем в местных магазинах даже с учетом доставки. Не знаю как они это делают, но таможня не задержала ни одну из двух посылок.
Есть новости по мотору, но не совсем приятные. Моя теория, что стопор стачивается о палец, теряет прочность и выпрыгивает не подтвердилась. Сегодня я разобрал мотор и ни на пальце ни на стопорах следов контакта как таковых нет, а обнаружилось следующее.
Если снизу мотора через окно я палец достал с умеренным усилием, то когда поршень был на столе и я достал второй стопор я увидел небольшую развальцовку канавки стопора с внешней стороны. Соответственно палец через поршень на вылет не проходит, а упирается в ту ступеньку, что свидетельствует о повреждении самого посадочного места стопора. 6мм разверткой я геометрию отверстия подправил, палец стал проходить, но как понимаете это не решение основной проблемы.
Развальцовка наблюдается в обоих посадочных местах стопора, но в этот раз сильнее в верхнем.
Заметная глазом разница в размерах стопоров. Верхний это тот, который я достал из развальцованного посадочного, а снизу из более менее нормального.
А вот то что у стопора в нижнем посадочном приподнято правое ухо я заметил уже когда просматривал фото. Такое впечатление будто под ним какой то мусор или наплыв материала самого поршня.
Не знаю пока что с этим делать и почему так происходит. Менять каждые 16 литров поршень - это так себе вариант. Завтра подправлю посадочные и поставлю новые стопоры ушами к днищу поршня где посадочные еще не разбитые, а после 10 литров снова проконтролирую состояние посадочных мест.
Ниже фото разобранной поршневой после спаленых 16+ литров бензина. Перед тем как делать фото ничего не мыл. Если вкратце, то состояние очень хорошее. Износ минимален.
Лейнер. По всей поверхности присутствует следы хонинговки, но и встречаются незначительные потертости в основном вблизи камеры сгорания.
состояние очень хорошее
ничего хорошего не увидел )
Мне то же все не сильно нравитЦо … 😦
Ты считаешь что такой нагар на поршне приемлемый?
Кольцо не должно притереться до зеркала?
Палец стремно выглядит … почему такой темный в местах контакта с поршнем? Смазки не хватает?
Когда делал фото, то акцент делал именно на износе трущихся поверхностей, а не на том чтоб фото получились красивые и всем нравились. Детали маленькие с большой кривизной потому у меня не получилось сделать фото так, чтоб например поршень по всей поверхности не имел отражений окружающих предметов, а это действительно воспринимается как потертости. Потому пробовал фокусиротся в центр и делать фото с нескольких сторон.
Ну а нагар это такое, он ведь постоянно и бесконечно не накапливается там, а вырастает до определенной толщины слоя и постоянно обновляется. Мне главное, что бы этот нагар не присутствовал на юбке. Примерно такое же количество нагара присутствовало на всех 4х тактниках которые я разбирал, будь то инжектор или карбюратор, а там масло в бензин не добавляется.
Вот фото отмытого поршня при дневном освещении.
Чтобы понять насколько изношена юбка нужно присмотреться к следу от резца который присутствовал на новом поршне. След все еще присутствует по всей площади юбки. При царапании юбки ногтем слышно характерный звук как от мелкой гребенки. О чем это говорит? О том что износ юбки поршня не превышает глубину канавки от резца после точения.
Вот новый поршень для сравнения.
Кольцо похоже все еще на 100% не приработано. При увеличении, на поверхности видна та шероховатость которая присутствовала на новом. Это к слову об эффективности обкатки на холостых. Если зеркала на кольце нет после 16+ литров в воздухе, то в чем смысл обкатывать бак на холостых.
Палец вместе контакта с поршнем похоже попросту не двигался достаточно, что бы оксидная пленка истиралась. Не знаю. Меня больше интересует откуда там синий цвет побежалости. Неужели палец до 500 градусов разогревался
Замок у кольца симметричный. Надеюсь кольцо отметили как стояло, если перевернуть на 180 градусов то притирка начнется заново.
Палец в месте контакта с поршнем и не должен двигаться. Синий цвет это означает перегрев (бедная смесь, недостаточное охлаждение и т.п.).
Из практики: стопорные кольца пальца вылетают - неисправные подшипники коленвала (передний или коренной без разницы), в добавок разбивает нижнюю головку шатуна.
С кольцом момент я учел. Его не пришлось помечать, потому что нижняя сторона притерта к поршню и блестит, а верхняя черная и матовая.
Из практики: стопорные кольца пальца вылетают - неисправные подшипники коленвала (передний или коренной без разницы), в добавок разбивает нижнюю головку шатуна.
Поршень при этом долбит дном головку? Еще учтите возможность детонации, тоже замечательная штука.
Я немного ошибся с определением температуры по цвету побежалости. Синий это ~300 градусов, а не 500, что вполне ожидаемо учитывая сколько времени мотор работал на максимальной мощности. Такая температура хоть и кажется высокой, но не критична для поршневой.
Палец стремно выглядит … почему такой темный в местах контакта с поршнем?
Получается что это тоже цвет побежалости - фиолетово/коричневый, а это ~270 градусов
В общем, посадочные я поправил и поставил новые стопоры. 2 бака успел отлетать. Решение именно менять стопоры принял потому, что старые уменьшились в диаметре на 0.5мм в свободном состоянии в сравнении с новыми и я подумал, что может в этом причина их вылета. Так же один старый слегка изменил свою форму.
Потом, на одном из стопоров я все таки обнаружил следы трения о палец, так что мое первое предположение, что стопоры истираются о палец, имеет место быть и его надо будет так же проверить при следующей разборке мотора.