

САБ
Members-
Content Count
1424 -
Joined
-
Last visited
-
Days Won
1
САБ last won the day on July 23 2012
САБ had the most liked content!
Community Reputation
419 ОтличнаяAbout САБ
-
Rank
Гуру
- Birthday 07/13/1973
Contact Methods
-
ICQ
1581411
-
Skype
dushevny
Дополнительная информация
-
Место в рейтинге
341
-
Конфигурация компьютера
ASUS A53S i3 2.3GHz/4GB/630GB notebook
Profile Information
-
Gender
Male
-
Location
Рига
-
Interests
Разработка встраиваемых систем (embedded).
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Стандартная схема включения - это как? Это когда на СКТ подаются два синуса, а с обмотки возбуждения снимается сигнал рассогласования и мотор крутится до минимизации сигнала рассогласования? Почему не получится поднять синусоиду? Процессор у вас вроде бы шустрый и загружен не сильно - оцифровывайте почаще и делайте ДПФ. На выходе получите амплитуду и фазу. Мне на ATmega88 это было недоступно, ваш процик и не заметит, наверное.
- 502 replies
-
- ту-154м
- авиатренажер
-
(and 1 more)
Tagged with:
-
У меня точно так же как и у вас на один конец синусной и косинусной обмоток подается половина питания (не знаю как у вас, у меня - с резистивного делителя). Я оцифровываю сигнал со вторых концов обмоток в моменты примерно 1/4 T и 3/4 T от начала периода. Допустим, с одной обмотки в первый момент считалось значение 700, во второй - значение 250, итого разница, т.е. размах сигнала на этой обмотке - 700-250 = 450. Со второй обмотки в первый момент считалось 100, во второй 920, разница между ними 100-920 = -820, а угол поворота СКВТ, соответственно, atan2(450, -820) = -28.75 градуса (если калькулятор не врет). Причем такой угол я получу и в случае, если я с первой обмотки считаю 600 и 150, а со второй - 0 и 820, т.е. если я на первые выводы подам не 1/2 питания, а 0.45 или 0.6 - лишь бы сигнал на втором конце обмотки при любом угле поворота не выходил за допустимые для АЦП пределы.
- 502 replies
-
- ту-154м
- авиатренажер
-
(and 1 more)
Tagged with:
-
Я генерю синус ШИМом, при питании 27В получается около 19 В 400 Гц. Двигателям хватает, хотя, конечно, от 36 В они бы крутились шустрее. Но основная мысль была не о синусе, а о двух измерениях и вычислении их разности, которая позволяет не учитывать напряжение на общей точке обмоток СКВТ/сельсина.
- 502 replies
-
- ту-154м
- авиатренажер
-
(and 1 more)
Tagged with:
-
Понятно. Я делал аналогично, но возбуждал синусом, который все равно генерится для двигателей. А выходы индикаторных обмоток подавал на АЦП через резистивные делители, чтобы привести амплитуду ко входному диапазону АЦП. Кроме того, я делаю оцифровку дважды за период - на максимуме и минимуме, затем вычитаю один результат из другого получая размах от минимума до максимума, независящий от абсолютной величины напряжения на общем выводе обмоток.
- 502 replies
-
- ту-154м
- авиатренажер
-
(and 1 more)
Tagged with:
-
Секрет фирмы или можете поделиться подробностями?
- 502 replies
-
- ту-154м
- авиатренажер
-
(and 1 more)
Tagged with:
-
Подключение устройств индикации через юсб контроллер
САБ replied to kreml's topic in "Железные" кокпиты
Потому что нельзя сравнивать "жигули" и четырехтактный бензиновый двигатель.- 1065 replies
-
- usb контроллер
- подключение приборов
-
(and 1 more)
Tagged with:
-
Замена МП на ПК проблема с контроллером GVL224-4000-8
САБ replied to andrey_g_p's topic in "Железные" кокпиты
Про сертификаты -
Замена МП на ПК проблема с контроллером GVL224-4000-8
САБ replied to andrey_g_p's topic in "Железные" кокпиты
Можно подробнее? А то может я на работе что-то неправильно делаю (мои устройства вин10 пропускает и даже драйвера сама ставит)? -
Слабо понимаю, что такое "изменение времени с ускорением", но если это ускорение времени - то и лампа будет мигать пропорционально быстрее. А как надо?
- 801 replies
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
Тогда задачу можно сильно упростить. Достаточно взять текущее время сима в секундах, умножить его на два и остаток от деления на два и будет результатом "горит-не горит". Осталось понять, как в Lua получить остаток от деления.
- 801 replies
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
А, у вас одна мигалка на все лампы. Тогда да. Вспоминаю, что у Ми-2 действительно одна мигалка на все лампы. В современных ЛА, подозреваю, каждая система может иметь свою мигалку, никак не синхронизированную с другими. У меня реализован именно такой вариант - каждая лампа может мигать со своим периодом и длительностью независимо от других. Используя один и тот же код. И все нужные для этого переменные хранятся внутри замыкания.
- 801 replies
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
Может кому пригодится - код обработки команд, написанный для Костиной (bm906) кабины Ми-2: --[[ устанавливает propety_ref в значение on_value в момент начала выполнения команды cmd_name и в значение off_value в момент окончания выполнения команды cmd_name --]] local function setup_command(off_value, on_value, cmd_name, property_ref, description) local function create_handler(off_value, on_value, property_ref) return function(phase) -- собственно обработчик команд -- пишем в property новое значение только если оно изменилось -- phase == 1 пока кнопка нажата if phase == 0 then -- phase == 0 в момент нажатия set(property_ref, on_value) elseif phase == 2 then -- phase == 2 в момент отпускания set(property_ref, off_value) end return 1 -- возможны другие обработчики этой команды end end -- ищем команду среди существующих, если не найдена - создаем, регистрируем обрабочик и указываем -- ему вызывать функцию, которую возвращает (создает) замыкание (closure) create_handler() registerCommandHandler(findCommand(cmd_name) or createCommand(cmd_name, description or ""), 0, create_handler(off_value, on_value, property_ref)) end -- setup_command(<значение отпущенной кнопки>, <значение нажатой кнопки>, <команда>, <датареф>, <необязательное описание датарефа>) setup_command(0, 1, "xap/akkumnaset", globalPropertyf("sim/custom/xap/switch_shina"), 'переключатель шины двойного питания "сеть на аккумулятор"') setup_command(1, 2, "xap/akkum", globalPropertyf("sim/custom/xap/switch_battery"), 'переключатель источника питания "наземное/аккумулятор"') setup_command(0, 1, "xap/gen1", globalPropertyf("sim/custom/xap/switch_generator_l"), 'выключатель левого генератора') setup_command(0, 1, "xap/gen2", globalPropertyf("sim/custom/xap/switch_generator_r"), 'выключатель правого генератора') setup_command(0, 1, "xap/ampermetr", globalPropertyf("sim/custom/xap/switch_amp"), 'переключатель амперметра "левый генератор/аккумулятор"') -- ......... -- setup_command(3, 0, "xap/DC_volt_check_left", globalPropertyi("sim/custom/xap/switch_amp_gen"), 'переключатель замера напряжения, положение "левый генератор"') setup_command(3, 1, "xap/DC_volt_check_bat", globalPropertyi("sim/custom/xap/switch_amp_gen"), 'переключатель замера напряжения, положение "аккумулятор"') setup_command(3, 2, "xap/DC_volt_check_right", globalPropertyi("sim/custom/xap/switch_amp_gen"), 'переключатель замера напряжения, положение "правый генератор"') страшно вспомнить, какая тарелка с макаронами из copy-paste тут была изначально (420 строк на 31 команду превратились в 109 строк на 77 команд).
- 801 replies
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
Дело не столько в универсальности, сколько в том, что если у вас сегодня одна мигалка - завтра их будет две, три, десять. Конечно, их можно размножать методом copy-paste, но к гадалке не ходи - хотя бы в одном месте вы забудете поле copy-paste поменять название переменной или потом решите поменять режим работы и поменяете его в 9 местах из 10 и будете долго искать, почему же одна лампа работает неадекватно. У меня же код один-единственный на все мигалки и его исправление влияет на все лампы одновременно. Да и работать с коротким кодом приятнее, чем с простынями копий.
- 801 replies
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
Вот писал давно из головы, могут быть опечатки: defineProperty("actual_time", globalPropertyf("sim/time/total_running_time_sec")) -- текущее время local function blink(property_ref, on_time, off_time) -- функция, создающая замыкание (closure) для мигалки -- локальные переменные конкретной мигалки local Property = createGlobalPropertyf(property_ref, 0, false, false) -- ссылка на датареф local Cycle_start_timestamp = get(actual_time) -- время начала цикла local Cycle_period = on_time + off_time -- период мигалки local Current_state = 0 -- текущее состояние -- собственно функция мигания, ее возвращает замыкание и именно она будет вызываться. return function(time_now) local Cycle_time = time_now - Cycle_start_timestamp if Cycle_time > Cycle_period then -- цикл закончился, начинаем новый Cycle_start_timestamp = Cycle_start_timestamp + Cycle_period Current_state = 1 set(Property, 1) elseif Cycle_time > on_time and Current_state ~= 0 then Current_state = 0 set(Property, 0) end end end -- создаем мигалки: local Beacon = blink("pnv/tr_light/beacon", 0.5, 0.5) -- 0.5 сек. горит, 0.5 сек. не горит local Strobe = blink("pnv/tr_light/srobe", 0.1, 0.7) -- 0.1 сек. горит, 0.7 сек. не горит function update() -- читаем текущее время один раз для всех мигалок local Now = get(actual_time) -- собственно мигаем Beacon(Now) Strobe(Now) end Как видно, все локальные переменные спрятаны внутри замыкания и можно легко добавить сколько угодно мигалок - на добавление каждой новой мигалки требуется дописать всего две строчки. Мигание привязано к текущему времени сима, которое не зависит от частоты кадров. Lua изучал по этой ссылке: Learn Lua in 15 Minutes
- 801 replies
-
- 1
-
-
- Имитатор кабины
- Имитатор кабины Л-410
-
(and 1 more)
Tagged with:
-
Все, что есть: Это из описания БСУ-3П
- 717 replies
-
- 1
-
-
- принципиальные схемы
- электросхемы
-
(and 1 more)
Tagged with: