[image]

Кобра III

 
1 24 25 26 27 28 78
KZ Xan #18.11.2011 10:52  @Non-conformist#17.11.2011 22:46
+
-
edit
 

Xan

координатор

Non-conformist> Я имел в виду пропорциональное управление: угол отклонения ВТ пропорционален каждому мгновенному значению сигнала с датчика. Уменьшается сигнал - пропорционально уменьшается угол.

Когда возвращающая сила пропорциональна отклонению, получается простая пружина:

F = k * x

Вместе с инерцией палки получится "грузик на пружинке" - будет колебаться не затухая.

Кроме того, поскольку есть задержка, при движении от равновесия сила будет меньше, а при движении к равновесию - больше. И колебания будут усиливаться.

Поэтому в управление надо обязательно добавлять "вязкое трение" - силу, пропорциональную скорости.

Non-conformist> Кроме того, имеется также схема phase locked loop (затрудняюсь перевести)

Я точно знаю что это такое, но тоже затрудняюсь перевести! :)
Схема удержания фазы в нужном значении?
Схема следит за разностью фаз двух генераторов и через обратную связь меняет частоту своего генератора так, чтоб удерживать заданную разность фаз.

Non-conformist> К этой схеме, если она задействована, снаружи добавляется RC ФНЧ второго порядка.

Этот фильтр нужен для функционирования микрухи, а не для того, чтоб у юзаря был какой-то выбор.
Просто кондюры фильтра в кремний не поместились.
Такое часто с PLL бывает.
   7.07.0
KZ Xan #18.11.2011 10:58  @Non-conformist#18.11.2011 01:32
+
-
edit
 

Xan

координатор

Xan>> ... и ту арифметику, которой будет заниматься МК, и отработку команд моторчиками.
Non-conformist> Насчёт арифметики я писал чуть выше - времени, чтобы управиться со всеми расчётами, у МК будет целый вагон.

Я о том, чтоб смоделировать работу арифметики МК на компе, чтоб были видны все внутренности счёта.
Вывести в файл в виде большой простыни и неторопясь разглядеть всё детально.
На натурном МК это невозможно.
   7.07.0
UA Non-conformist #18.11.2011 11:24  @Xan#18.11.2011 10:52
+
-
edit
 

Non-conformist

аксакал

Да, чистое П у меня уже было - колебания росли довольно быстро, как ты и пишешь. Но я имел в виду другое. Не маятник, а именно ракету, где создание потребного компенсирующего момента, пропорционального углу ошибки и скорости изменения этого угла, сводится лишь к отклонению ВТ на определённый угол. Больше угол отклонения - больше компенсирующий момент, и наоборот.

И в маятнике, и в ракете моторами нужно управлять не только пропорционально угловому положению датчика, но и пропорционально скорости изменения этого положения (а то ещё и пропорционально ускорению - это будет уже полноценный ПИД). Это я уже понял. Но если в непадающем маятнике эта двойная пропорциональность достигается управлением И скоростью перемещения исполнительного механизма, И его положением, то в ракете - исключительно ПОЛОЖЕНИЕМ. Потому что угловая скорость и угловое ускорение корпуса ракеты зависит только от величины угла между вектором тяги и ЦТ, а не от скорости изменения этого угла. Другими словами, я думаю, что РДТТ должен отклоняться на нужный угол с МАКСИМАЛЬНО возможной скоростью - в любом случае. Иначе мы будем искусственно тупить время реакции системы...
   8.08.0
UA Non-conformist #18.11.2011 11:35  @Xan#18.11.2011 10:58
+
-
edit
 

Non-conformist

аксакал

Xan> Я о том, чтоб смоделировать работу арифметики МК на компе, чтоб были видны все внутренности счёта. Вывести в файл в виде большой простыни и неторопясь разглядеть всё детально.

Сложно ли это сделать практически? Что для этого нужно?
   8.08.0
KZ Xan #18.11.2011 16:30  @Non-conformist#18.11.2011 11:35
+
-
edit
 

Xan

координатор

Non-conformist> Сложно ли это сделать практически? Что для этого нужно?

Нужно уметь программить и знать какой-нибудь язык (на компе).

Вот пример падения тела в воздухе (физика):

Древний турбобейсик

dt = 0.01 — шаг по времени сотая секунды.
m = 1 — один килограмм, все физические величины СТРОГО В СИ !
g = 9.81 — это понятно
rho = 1.1 — плотность воздуха
S = 1 — сечение 1 м2
Cx = 1 — коэффициент сопротивления
t = 0 — время
h = 0 — начальная высота
v = 0 — скорость
a = 0 — ускорение
F = 0 — сила сопротивления

open "p.txt" for output as #1 — открываем файл для вывода результатов

L:

t = t + dt
F = Cx * S * rho * v*v
a = g - F / m
v = v + a * dt
h = h + v * dt

print #1, using "t =##.## F =##.## a =##.## v =##.## h =###.##"; t, F, a, v, h — печать в файл в красивом формате

if t < 2 then goto L — до двух секунд
end

Запускаем, получаем:
t = 0.01 F = 0.00 a = 9.81 v = 0.10 h = 0.00
t = 0.02 F = 0.01 a = 9.80 v = 0.20 h = 0.00
t = 0.03 F = 0.04 a = 9.77 v = 0.29 h = 0.01
t = 0.04 F = 0.09 a = 9.72 v = 0.39 h = 0.01
t = 0.05 F = 0.17 a = 9.64 v = 0.49 h = 0.01
t = 0.06 F = 0.26 a = 9.55 v = 0.58 h = 0.02
t = 0.07 F = 0.37 a = 9.44 v = 0.68 h = 0.03
t = 0.08 F = 0.50 a = 9.31 v = 0.77 h = 0.03
...
t = 2.00 F = 9.81 a = 0.00 v = 2.99 h = 5.37

Если тебе здесь всё понятно и сам так можешь, то проблема только в том, чтоб правильно понять, что тебе надо.
   7.07.0
UA Non-conformist #18.11.2011 17:18  @Xan#18.11.2011 16:30
+
-
edit
 

Non-conformist

аксакал

Xan> Если тебе здесь всё понятно и сам так можешь, то проблема только в том, чтоб правильно понять, что тебе надо.

Здесь мне понятно, что ты взял формулу, в которую увязаны ряд величин, описывающих свободное падение тела в воздухе. И проинтегрировал (?) её с выбранным тобою временным шагом. Результаты вывел на дисплей в заданном формате. Ни первого, ни второго, ни третьего я делать не могу.

Теперь о том, что я хочу. Я хочу перейти от отвлечённых примеров к конкретному предмету. Я хочу, чтобы вместо примера, описывающего падение тела в воздухе, ты потратил немного своего времени на то, чтобы выразить в числах и формулах падение на бок вертикально стоящей палки.

Ещё я хочу, чтобы ты подтвердил или опроверг мои соображения по поводу управления ракетой посредством УВТ. Как по-твоему, прав ли я, что единственное, чем может воздействовать на угловые скорость, ускорение и положение корпуса ракеты относительно вертикали - это ПОЛОЖЕНИЕ вектора тяги относительно ЦТ? Если да, то как это обстоятельство выразить на языке физики - например в формате, тобою предложенном?

***
Вот, наконец спаял адаптер:
Прикреплённые файлы:
 
   8.08.0
KZ Xan #18.11.2011 17:43  @Non-conformist#18.11.2011 17:18
+
-
edit
 

Xan

координатор

Non-conformist> И проинтегрировал (?)

Просимулировал. В том числе там есть интегрирование ускорения в скорость и скорости в высоту.

Non-conformist> Ни первого, ни второго, ни третьего я делать не могу.

Блин. Мне это кажется простым и очевидным. Я даже более сложную задачу примерно в восьмом классе программил на транзисторной ЭВМ Проминь.

Non-conformist> Я хочу, чтобы вместо примера, описывающего падение тела в воздухе, ты потратил немного своего времени на то, чтобы выразить в числах и формулах падение на бок вертикально стоящей палки.

Может тебя научить всему, что тебе сейчас нужно?
(Могу заслать эгзешник этого древнего турбобейсика, 120 кил.)
Какая из строчек тебе непонятна?

Non-conformist> Ещё я хочу, чтобы ты подтвердил или опроверг мои соображения по поводу управления ракетой посредством УВТ. Как по-твоему, прав ли я, что единственное, чем может воздействовать на угловые скорость, ускорение и положение корпуса ракеты относительно вертикали - это ПОЛОЖЕНИЕ вектора тяги относительно ЦТ?

Так точно.

Non-conformist> Если да, то как это обстоятельство выразить на языке физики - например в формате, тобою предложенном?

Утром надо спрашивать! Вечером мозги не варят!!! :D
Попозже.
   7.07.0
UA Non-conformist #18.11.2011 18:01  @Xan#18.11.2011 17:43
+
-
edit
 

Non-conformist

аксакал

Xan> Какая из строчек тебе непонятна?

Прежде всего - откуда взялся временной шаг, с которым ты елозишь по формуле? Не могу найти, где ты его объявил.
А вообще - дело не в понимании. Понимаешь, я смогу научиться, решая только КОНКРЕТНУЮ задачу, ту задачу, которая меня действительно волнует и занимает. Первый шаг - балансирование палкой. Эта задача меня действительно занимает и даже волнует. Если хочешь проверить свои педагогические способности - я готов быть прилежным учеником, но только при озвученном выше условии. Да, ещё одно условие - не Бейсик, а С. Я сейчас читаю Крупника в свободное время и потихоньку. Скажу прямо - не в восторге от своих умственных способностей, но хоть что-то узнаю новое - и то ладно...
   8.08.0
KZ Xan #18.11.2011 18:53  @Non-conformist#18.11.2011 18:01
+
-
edit
 

Xan

координатор

Non-conformist> Прежде всего - откуда взялся временной шаг, с которым ты елозишь по формуле?

С потолка.
Для тебя лучше всего его брать равным частоте отсчётов с гироскопов = частоте вызова арифметики.

Non-conformist> Понимаешь, я смогу научиться, решая только КОНКРЕТНУЮ задачу, ту задачу, которая меня действительно волнует и занимает.

Очевидно.

Non-conformist> Да, ещё одно условие - не Бейсик, а С.

Можешь посчитать на Си такой пример:

a = 2;
b = 3;
c = a + b;
и напечатать значение переменной "c" где-нибудь, а лучше вывести в файл?
У тебя есть какой-нибудь Си, который делает эгзешник? Не для микроконтроллера, а для писюка?

Non-conformist> Я сейчас читаю Крупника в свободное время и потихоньку. Скажу прямо - не в восторге от своих умственных способностей, но хоть что-то узнаю новое - и то ладно...

В общем-то, для арифметики в любом языке достаточно выучить несколько стандартных заклинаний.
   7.07.0
IS Брат-2 #18.11.2011 19:16  @Non-conformist#18.11.2011 18:01
+
-
edit
 

Брат-2

опытный

Non-conformist> ... Скажу прямо - не в восторге от своих умственных способностей, но хоть что-то узнаю новое - и то ладно...

Знаешь, года три назад тоже попытался освоить программирование в частности AVR. Ну, процесс программирование освоил, разобрался с аппаратной частью, ну, команды в тумане, но немного понятно, а вот с составлением алгоритмов полный пипец. Главное, понял, что после 50 у человека значительно больше шансов стать маразматиком, чем программистом, а тем более хорошим программистом, то есть не пустым болтуном!
И отстань от товарища, посмотри, сколько ему за, он уже даже забыл, что в его бытность в восьмом классе он программировал на замусоленных деревянных счетах! :)
   
+
-
edit
 

Xan

координатор

Брат-2> Главное, понял, что после 50 у человека значительно больше шансов стать маразматиком, чем программистом

Я ж говорю, что для этой задачи достаточно выучить несколько заклинаний конкретного языка и вспомнить школьную алгебру.
На мой взгляд, это вполне возможно.
   7.07.0
UA Non-conformist #18.11.2011 19:58  @Брат-2#18.11.2011 19:16
+
-
edit
 

Non-conformist

аксакал

Брат, я тоже прежде всего хочу разобраться с аппаратной частью. С программированием - ровно настолько, чтобы не быть уже полным пипцом. Твои двусмысленные комплименты, кстати сказать, этому процессу никак не способствуют. Пиши по делу. Если нечего сказать, то читай, что пишут другие. А лучше всего выражай свои идеи графически - рисуй схемы, это у тебя гораздо удачнее получается. И маразм отступит, вот увидишь!

***
По поводу сложения двух чисел - это я могу, только не сейчас. Пока читаю листинг в книжке - всё понятно (х = х + у не как математическое выражение, а как операция присваивания, причём читать справа налево, и т.п.), но на память воспроизвести не смогу. Надо привыкать, печатать руками...

Ради прикола, никуда не заглядывая:

int a=2
int b=3
int c
int c=a+b
printf c

)))
   8.08.0
KZ Xan #18.11.2011 20:11  @Non-conformist#18.11.2011 19:58
+
-
edit
 

Xan

координатор

Non-conformist> Ради прикола, никуда не заглядывая:
Non-conformist> int a=2
Non-conformist> int b=3
Non-conformist> int c
Non-conformist> int c=a+b

Ага.

Non-conformist> printf c

А вот и нет! :)
printf("%6d", c);
"%6d" — это формат вывода, число печатается на шести позициях, то есть:
_____0
_____9
____27
_45678
-12345
Подчёркивания здесь - это пробелы.
   7.07.0
RU SashaPro #18.11.2011 23:02  @Non-conformist#18.11.2011 01:32
+
-
edit
 

SashaPro

аксакал

Non-conformist> Это я соображаю, как свести количество комплексных огневых испытаний к минимуму - тех испытаний, в ходе которых электроника и механика взаимодействуют с работающим РДТТ. Потому что один из них (по закону подлости - один из первых) обязательно рванёт, и тогда всё придётся начинать сначала...

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

Ракетный софт

Тема посвящена программам для расчетов ракет, двигателей, топлив. // www.balancer.ru
 

Перемещение по XYZ
Вращение вокруг XYZ
Изменение координат всех сил их модуля и направлений. Тяга, трение, инерция.
Моделирование ветра, колебаний изменения векторная тяги и других сил.
И много другое.
Всё это позволит моделировать даже стабилизацию ракеты с помощью вращения, оценивать её устойчивость, моделировать работу датчиков для МК и последующей отработки алгоритмов для МК.
В общем планов громадьё, пока вот делаю файл данных для этой программы. Всё будет вводиться в неё через эксель (см. прикреп. файлы), так как это проще всего, чем громоздить огромный пользовательский интерфейс.

Non-conformist> Ради прикола, никуда не заглядывая:
Non-conformist> int a=2
Non-conformist> int b=3

Non-conformist> int c
Non-conformist> int c=a+b

int c - это объявление переменной или программа, которая потом читает то, что ты написал, соображает, что под С значится некая область в памяти, которую нужно выделить для этвоей переменной. Дважды этого делать не надо.

Либо int c
Либо int c=a+b

правда если компилятор не тупой, то он автоматически отбросит двойственную операцию...
Прикреплённые файлы:
 
   7.07.0
KG denek #21.11.2011 19:53  @Non-conformist#18.11.2011 19:58
+
-
edit
 

denek

новичок
А рассматривалась идея с гироскопом настоящим? Да, может это и позапрошлый век, но для той пластиковой трубы, которая будет в начале летать, думаю будет уместная конструкция. Как мне видится, можно установить магниты на оси кардана гироскопа, а рядом неподвижные датчики Холла, а их в свою очередь, соединить с простой схемой управления сервоприводом (по-моему, эти схемы успешно делают на 555 микросхеме).
   
UA Non-conformist #21.11.2011 20:29  @denek#21.11.2011 19:53
+
-
edit
 

Non-conformist

аксакал

Нет, боюсь что это будет уже другой проект, с другим названием и в другом топике. Предложи в "Стабилизацию Активную", там проходило подобное предложение.
   8.08.0
UA Non-conformist #21.11.2011 23:15  @Non-conformist#21.11.2011 20:29
+
-
edit
 

Non-conformist

аксакал

Xan, GOGI - купил пару гироскопов L3G4200D по семь баков за штуку. Как проверить их работоспособность? Есть ЛПТ-адаптер; УСБ-адаптер/мостУСБ-УАРТ в процессе изготовления.

Регистры гироскопа можно только в обвязке с МК прочесть, или напрямую тоже можно? Как первый шаг я хочу сделать платку а-ла Pololu - L3G4200D 3-Axis Gyro Carrier with Voltage Regulator укрепить её на палочке, подсоединить к компу, и помахав ею из стороны в сторону получить файл для Екселя, к примеру... Ну, или что-то в этом роде...

Прошу конкретики, руки чешутся. Ловим момент!
   8.08.0
UA Non-conformist #21.11.2011 23:39  @Non-conformist#21.11.2011 23:15
+
-
edit
 

Non-conformist

аксакал

Вот библиотечка для подключения сабжа к ардуиноконструкторам:

L3G4200D at master from pololu/L3G4200D - GitHub

Arduino library for the Pololu L3G4200D carrier board

// github.com
 


Я сам спаяю вам какую хочешь ардуино - скажите только, что конкретно паять, нарисуйте конкретную схему. И расскажите понятно, как всё подключать и вообще "что нажимать". ))

Есть пара АТмега32; хотелось бы их использовать, а то уже залежались без дела...
   8.08.0
Это сообщение редактировалось 21.11.2011 в 23:50
RU GOGI #22.11.2011 05:12  @Non-conformist#21.11.2011 23:15
+
-
edit
 
Тебе надо USB - i2c bridge. Схем на AVR достаточно много.
   7.0.17.0.1
KZ Xan #22.11.2011 09:03  @Non-conformist#21.11.2011 23:15
+
-
edit
 

Xan

координатор

Non-conformist> Xan, GOGI - купил пару гироскопов L3G4200D по семь баков за штуку. Как проверить их работоспособность?

Я бы сразу сделал боевую плату с МК, для меня такой путь проще.
И потом постепенно прогу модифицировал бы, осваивая чтение регистров, запись/настройку, чтение данных.

Ну и у меня майкрочип, а не атмел, и (стандартно для меня) связь с компом через RS485.
И в ракете предполагаю связь между блоками через RS485.

Non-conformist> УСБ-адаптер/мостУСБ-УАРТ в процессе изготовления.

У меня покупные USB-RS485 и PCI-RS485.

Non-conformist> Прошу конкретики, руки чешутся. Ловим момент!

Эх! :(:)
Я всё дописать про симуляцию никак...
   7.07.0
UA Non-conformist #22.11.2011 13:11  @Xan#22.11.2011 09:03
+
-
edit
 

Non-conformist

аксакал

USB-I2C

Действительно ли НЕОБХОДИМ такой мост в ДАННОМ проекте? Я почитал статьи на эту тему, и не выявил каких-то преимуществ его перед УАРТ в ДАННОМ приложении. Хотелось бы обойтись минимальным количеством малополезных для дела примочек...

Для моста УСБ-УАРТ у меня уже есть все детали и прошивка, осталось только спаять.
   8.08.0
UA Non-conformist #22.11.2011 14:23  @Non-conformist#22.11.2011 13:11
+
-
edit
 

Non-conformist

аксакал

Я так понял, что у гироскопа один способ общения с миром - через I2C. А в Меге32 на борту присутствуют аппаратные и I2C, и UART. Так может имеет смысл, чтобы не делать кучу переходников, сразу сделать бортовую плату мозгов на Меге32 + гироскоп? Чтобы этой платой и с ПК общаться по УСБ (через мост УСБ - УАРТ), и моторами рулить? Можно в режиме реального времени, а можно и в файл данные записывать, чтобы потом в Экселе кривые анализировать... Плата драйверов электромоторов - отдельная, с отдельным силовым питанием. ???
   8.08.0
UA Serge77 #22.11.2011 14:34  @Non-conformist#22.11.2011 14:23
+
-
edit
 

Serge77

модератор

Non-conformist> Так может имеет смысл, чтобы не делать кучу переходников, сразу сделать бортовую плату мозгов на Меге32 + гироскоп?

Конечно, а как же ещё? Xan именно это и имел в виду "Я бы сразу сделал боевую плату с МК, для меня такой путь проще. И потом постепенно прогу модифицировал бы, осваивая чтение регистров, запись/настройку, чтение данных."

Я сам всегда делаю по ступенькам, здесь бы сделал так:
1. МК + светодиод, мигание.
2. добавить гироскоп, получать с него данные, и когда данные больше чего-то, мигать диодом.
3. добавить связь с компом по UART, пересылать данные с гироскопа на комп.
Потом дальше.
   3.0.193.0.19
UA alex_zeed #22.11.2011 14:46  @Serge77#22.11.2011 14:34
+
-
edit
 

alex_zeed

втянувшийся

Non-conformist>>
Serge77> 1. МК + светодиод, мигание.
Serge77> 2. добавить гироскоп, получать с него данные, и когда данные больше чего-то, мигать диодом.
Serge77> 3. добавить связь с компом по UART, пересылать данные с гироскопа на комп.

ИМХО, лучше наоборот:

1. Мигание светодиодом
2. Связь с компом по UART
3. связь с гироскопом.

Преимущества - отладка через UART намного информативнее, чем через светодиод.
   8.08.0
AD Реклама Google — средство выживания форумов :)
UA Serge77 #22.11.2011 14:53  @alex_zeed#22.11.2011 14:46
+
-
edit
 

Serge77

модератор

alex_zeed> Преимущества - отладка через UART намного информативнее, чем через светодиод.

Да, наверно так лучше.
   3.0.193.0.19
1 24 25 26 27 28 78

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru