Goblin 700 RAW Nitro (Benzin)

L2-Max

Обкатка на новом моторе, на фото поршень не имеет ни единой царапины, а кольцо все еще прирабатывается.

Мотор выпил 1.5 литра на 12000 оборотах.

Shumacher82

Максим, а можете описать подробно как обкатывали двигатель.

L2-Max

Обкатываю по мануалу. Оставляю иглы на заводских настройках, настраиваю гувер на 12000 и аккуратно летаю круги восьмерки не перегружая мотор. Заслонка при этом открыта гувером на ~25-30%. Если на таких настройках карба я случайно и загружу ротор так, что гуверу придется открыть заслонку больше, то мотор заливает, а обороты падают. Я эту границу уже на слух определяю и не довожу до переливания.

Вот в таком режиме я и летаю 2-3 литра. Нудная это процедура. На таких оборотах верт на баке летает 40-50 минут, то есть что б пройти процедуру обкатки нужно летать ~3.5 часа.

Shumacher82

А изначально, на земле на холостых мотор разве не должен выработать хотя-бы бак? Обкатку сразу нужно проводить в воздухе?

L2-Max

Слышал, что некоторые люди обкатывают на ХХ, но я не вижу в этом смысла. На ХХ продувка плохая, воспламенение смеси происходит каждые 4-6 тактов, из-за этого юбка поршня не прижата постоянно к выпускному окну, а попеременно ударяется то одной то другой стороной о цилиндр (отсюда и звук трещетки на ХХ), а если поршень в цилиндре наклоняется, то с ним наклоняется кольцо и кромка кольца получается не цилиндрическая, а с некоторым радиусом. Усугубляет это еще и низкая температура, при которой поршень имеет бочкообразную форму, а не цилиндрическую.

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

Да и на ХХ мотор полный бак пить будет сутки. У меня нет столько времени, что б заниматься подобными экспериментами. Производитель мотора написал, что обкатывать нужно в воздухе - я обкатываю в воздухе.

L2-Max

Два дня искал откуда на вертолете воняет жареными проводами. Сегодня нашел.

От вибрации стерлась изоляция положительного провода и образовалась цепь карбон->мотор->модуль зажигания-> -батареи.

mil-lion

На вертолёте обкатку мотора рекомендуют проводить в висении - 2 бака отвисеть (это про Нитро, на бензине и бака хватит). На ХХ не рекомендуют обкатку.

L2-Max

Отказала серва хвоста Nexspor BLS4012T. Слизало зубья на первой шестерне которая после мотора, а именно на ее малой звездочке.

Пока едет ремкомплект я ее заменил взяв у донора SAVOX SC-1257TG который был в наличии. Редукторы обеих серв идентичные. Разница только в материале. Бак отлетал. Редуктор сервы работает плавно и без подклиниваний.

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

Ну а с мотором пока все ОК. После 4х литров следов касания жаровым поясом цилиндра нет. Чистый эксперимент имеет смысл. Смесь держу на границе когда богато и переливает или нормально летит. С бедной смесью не эксперементирую.

Как писал ранее, я после 15 литров разберу мотор и поменяю стопоры пальца, а за одно и проинспектирую насколько они сточились, как разбило посадочное места.

L2-Max

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

Continue the same process until you can take off normally. Once the helicopter takes off, you do not have to close the Low needle any more. Excessive needle adjustment causes over-revving and raises the potential for engine damage.

Вот у меня верт отлично взлетал и висел и летал вроде бы хорошо, но мне недавал покоя тот факт, почему производитель в мануале строго запрещает закручивать H иглу больше чем на 30 градусов, а мне, на двух моторах, приходилось закручивать ее до 70-80 что б нормально летело, а температура головы не поднималась.

А все оказалось просто. “Верт взлетать должен еще лучше” чем мне это казалось, а именно L игла, закрытие которой производителем строго не лимитируется, должна была быть закручена еще больше. Вот только тогда и чувствуется тот узкий диапазон работы H иглы при полном открытии дросселя, когда обе иглы учавствуют 50/50 в смесеобразовании.

Голова при этом на висении имеет температуру 110 градусов при 11С окружающей, а мотор стал значительно приемистей на средних режимах.

Вот сегодняшнее фото поршневой после 6 литров. Как видите жаровой пояс цилиндра не касался. На юбке все еще видны следы от резца.

Если стопоры пальца за 15 литров не вылетят, а их преждевременная замена решит эту проблему, то мотор дает надежды долговечного силового агрегата при условии правильно настроенного карба и использовании качественного синтетического масла.

L2-Max

По мелочам. Шасси стерлись, как бы я их не пытался защитить. Даже научился авторотировать в точку без скольжения в безветрие. Очень хлипкая конструкция, но легкая.

Верт на 1650 оборотах ГР иногда ловит какой то резонанс по циклику, а выглядит это со стороны как “бабочка”. Вылечил это уменьшением гайна циклика до 80-90%. Ограничители хода межлопастного вала при этом стояли В. Сегодня постаил А. Завтра посмотрю как повлияет на поведение.

А с мотором пока все ОК. На данный момент я считаю, что в мануале те их ограничения закрытия скоростной иглы до 30 градусов от заводских настроек в реальности не работают. Что бы мотор набирал обороты на таких настройках скоростной иглы при 100% открытия дросселя, на висении, приходится беднить L иглу и очень сильно. Так сильно, что на раскрутке ротора чувствуется и видится потеря мощности (хвост бросает по часовой срелке). Температура на висении сильно растет. Потому L иглу я консервативно настраиваю на слух и чтоб хвост не дергался, а H иглу закручиваю пока не перестанет переливать на 100% открытия. Сейчас закрыта на 45 градусов от заводских настроек.

Я как то писал выше, что в инверте переливает и это факт. Разогретая до 105 градусов голова, стоит перевернуться теряет 10 градусов. Я на ХХ тоже проводил эксперимент и если ногами вниз мотор работает на 5000 оборотах, то стоит верт перевернуть обороты уже 4500. Похоже с этим придется смириться.

P.S. 8 литров вылетано. Еще 7 литров и разберу мотор для инспекции и замены стопоров пальца.

Solo

Как общие впечатления от владения Гассером ? Я вижу тебя затянуло ! 😉
Громче разговаривать не стал ? 😃

L2-Max

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

Вот например сегодня с установленными #А ограничителями межлопастного верт полетел именно так как мне нравится. Очень мягкий отклик по циклику, а внезапно возникающие вибрации как рукой сняло. И гаин циклика получилось поднять выше 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 минут без перерыва.

Solo:

Громче разговаривать не стал ?

Не понял, о чем ты?

Solo

Я о звуках издаваемых бензомотором …
Лично мне давит на уши конкретно!

L2-Max

Мне нужен пример, чтобы сравнить. Я как бы понимаю о чем говоришь, но не знаю какие моторы и на каких настройках ты слушал. Если я на своем откручу Н иглу на 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 }


L2-Max

Да, ± так же звучит, имеется ввиду спектр издаваемых звуков. Громкость по видео оценить сложно. Возможно 15 кубиков будут потише чем 20-30 кубовый Хансон.

L2-Max

Авторотирует RAW Nitro просто замечательно. Низкий вес и большАя площадь ротора позволяют ротировать на более низких оборотах в сравнении с Thunder плюс меньшие потери в трансмиссии позволяют это делать дольше 😃

Сегодня время в авторотации приближалось к минуте. Конечно же это субъективно.

Мне больше нравится эффект производимый на публику, а именно, когда я летал электро так никто и не замечал когда я мотор выключал в 100 метрах над землей, а сейчас “заглохший” бензиныч замечают все.

L2-Max

Авторотации на 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 }
Anike

На 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.

Solo

Достойное поведение от САБ … правда немного запоздалое …
Но как говорится “лучше поздно чем никогда” 😉

Anike

В догонку. Отправлять будет сам САБ всем, кто напишет в поддержку. Требуется серийный номер и доказательство заказа.

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