Кобра III

 
1 8 9 10 11 12 78
UA Serge77 #16.03.2009 14:48  @Non-conformist#16.03.2009 14:47
+
-
edit
 

Serge77

модератор

-VMK->> Стъпка на Ъгъла = 1/78 от 360 градуса
Non-conformist> Извини, плохо читается... Здесь может кто-нибудь перевести? Как перевести "стъпка на ъгъла"?

шаг угла

-VMK-

опытный

Non-conformist> Стоп... У меня 72 (семьдесят два) отчета. Каждые пять градусов. Откуда взялось еще шесть?

A-a мое късогледство: отчетите са точно 72! (от колона "B/C" 7 до 78) - от там и заблуждението че са 78 :( С формулите и изчисленията всичко е наред - стъпките(steps) са 72!

Non-conformist> А как ты сделал это ПРАКТИЧЕСКИ? Т.е. вопрос чисто "екселевский", не математический.

Реших следната задача:
"Да се построи синусоида с данни от "min" до "max" в 72! стъпки(steps) и да се изобрази графически"

Non-conformist> Можешь дать пошаговую инструкцию?

виж ексел файла

Non-conformist> еще вопрос: почему ты переводил градусы в радианы? Нельзя ли эти преобразования выполнить с градусами (так мне привычнее)?

За удобство в ексел. Но няма проблем с преобразуването на радиани в градуси и обратно.
"Luck is a great time-saver, cost-effective, and very reliable when it works." - Jimmy Yawn  3.0.73.0.7
UA Non-conformist #16.03.2009 15:06  @Serge77#16.03.2009 14:45
+
-
edit
 

Non-conformist

аксакал

Serge77> Я всё прекрасно понял. Но как ты из этих данных собираешься получить зависимость отклика датчика от угла отклонения? Или тебе эта зависимость не нужна? Тогда что нужно?
VMK, мне кажется, ответил на этот вопрос. Берется размах изменения сигнала одной из осей, и делится на размах полного угла отклонения, от максимума до максимума. Получаем реальный, КРИВОЙ датчик с характеристикой вида "Х мВ/градус". Зашиваем в МК таблицу поправок, добытую участником -VMK-, в которой каждому пятиградусному диапазону милливольт соответствует свой поправочный коэффициент. "Сырые", "кривые", "реальные" данные приходят в регистр; МК ищет поправочный коэффициент к диапазону, в который входит пришедший байт; перемножает эти два числа и возвращает результат в алгоритм ПИД, для дальнейших вычислений.

Serge77> Можешь чётко сформулировать задачу? Только не "таблицу поправок", а более общую задачу.
Не знаю, смог ли. См. выше.
Skype: a_schabanow  
UA Non-conformist #16.03.2009 15:09  @-VMK-#16.03.2009 15:04
+
-
edit
 

Non-conformist

аксакал

-VMK-> Реших следната задача:
Я попробую чуть позже. :) Спасибо еще раз!
Skype: a_schabanow  
+
-
edit
 

Serge77

модератор

Т.е. ты хочешь исходя из двух сигналов с датчика получить, скажем так, направление часовой стрелки на циферблате (считая твою мишень циферблатом)?
UA Non-conformist #16.03.2009 15:24  @Serge77#16.03.2009 15:13
+
-
edit
 

Non-conformist

аксакал

Serge77> Т.е. ты хочешь исходя из двух сигналов с датчика получить, скажем так, направление часовой стрелки на циферблате (считая твою мишень циферблатом)?
Сергей... Имея на руках четыре координаты (две "Х" и две "У") мы не только направление "плоской стрелки" на плоском циферблате определим. Мы определим угол отклонения ВТ от оси 3Д-конуса с вершиной в центре симметрии кардана. А твоя "стрелка на циферблате" окажется лишь 2Д-ПРОЕКЦИЕЙ нашего любимого вектора на плоскость мишени.
Skype: a_schabanow  

-VMK-

опытный

Non-conformist> Я попробую чуть позже. :) Спасибо еще раз!

За мен е удоволствие. Аз харесвам проект "кобра" и ще се радвам да го видя работещ и завършен. Успех!

Non-conformist> Можешь дать пошаговую инструкцию?

Промених теоретичните данни за X и Y съответно на COS(angle) и SIN(angle) (поправен бъг - в предишната версия! е обратно) Добавих колона със стъпки/градуси (step/degrees), както и разлика "експериментални-идеални" данни.
Прикреплённые файлы:
tilt_sensor_curve[Edit2].xls (скачать) [44 кбайт, 111 загрузок] [attach=144092]
 
 
"Luck is a great time-saver, cost-effective, and very reliable when it works." - Jimmy Yawn  3.0.73.0.7
UA Non-conformist #16.03.2009 15:34  @-VMK-#16.03.2009 15:27
+
-
edit
 

Non-conformist

аксакал

Non-conformist>> Я попробую чуть позже. :) Спасибо еще раз!
-VMK-> За мен е удоволствие. Аз харесвам проект "кобра" и ще се радвам да го видя работещ и завършен. Успех!
Я хотел бы выпить с тобой водки. Желание несбыточное, но так или иначе - в данный момент я испытываю очень редко испытываемое мной чувство интеллектуального единения. Как твое имя?
Skype: a_schabanow  
UA Serge77 #16.03.2009 15:42  @Non-conformist#16.03.2009 15:24
+
-
edit
 

Serge77

модератор

Non-conformist> Сергей... Имея на руках четыре координаты (две "Х" и две "У") мы не только направление "плоской стрелки" на плоском циферблате определим. Мы определим угол отклонения ВТ от оси 3Д-конуса с вершиной в центре симметрии кардана. А твоя "стрелка на циферблате" окажется лишь 2Д-ПРОЕКЦИЕЙ нашего любимого вектора на плоскость мишени.

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

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

-VMK-

опытный

Non-conformist> Я хотел бы выпить с тобой водки. Желание несбыточное, но так или иначе....

:) Малко вероятно..., но наздраве!

Non-conformist> Как твое имя?

Веселин, (VMK - са моите инициали)
"Luck is a great time-saver, cost-effective, and very reliable when it works." - Jimmy Yawn  3.0.73.0.7
+
-
edit
 

Serge77

модератор

Я сделал то, что писал, для оси У. Получил зависимость угла отклонения по этой оси от сигнала одного датчика. Только этот угол условный, для получения действительного угла мне нужно знать диаметр окружности, описанной лазером на стене и расстояние от центра кардана до стены.

Зависимость хорошо описывается кубическим уравнением. Наверно это можно легко считать прямо в МК, без таблицы поправок.
Прикреплённые файлы:
tilt_sensor_curve1.xls (скачать) [24 кбайт, 75 загрузок] [attach=144106]
 
 
+
-
edit
 

Serge77

модератор

Serge77> Зависимость хорошо описывается кубическим уравнением.

По графику видно, что зависимость станет близкой к линейной, если увеличить расстояние между фотосенсорами, наверно раза в полтора.
UA Non-conformist #16.03.2009 17:57  @Serge77#16.03.2009 16:25
+
-
edit
 

Non-conformist

аксакал

Serge77> для получения действительного угла мне нужно знать диаметр окружности, описанной лазером на стене и расстояние от центра кардана до стены
Вот-вот. А с моим методом ничего этого знать не нужно. Главное, чтобы пятно в момент считывания очередных показаний было как можно более четко поделено надвое очередной "спицей" мишени; и чтобы описываемая пятном окружность была вписана в "обод" мишени строго концентрически, либо вообще совпадала с "ободом". Вот и все условия... Не все. Нужно все-таки знать расстояние от центра симметрии кардана до плоскости мишени - чтобы тригонометрически рассчитать размах угла отклонения. Но это ничего не меняет - мой способ остается намного более простым, чем твой.

Две мои кривые (синусоида и косинусоида) дают РОВНО ту же информацию, что и две твоих "почти прямых": они дают характеристику датчика вида "Х мВ/градус", и поправочную таблицу для линеаризации этого датчика. Получить эти кривые гораздо проще, чем твои прямые - не надо заниматься построением проекций точек пространственной дуги на плоскость, не надо ничего стопорить в кардане.

Хоть ты и пишешь, что ты все прекрасно понял, из этого твоего поста видно, что это далеко не так. Ты приходишь к странному выводу: по-твоему, если я сниму показания с датчика так, как это описываешь ты, то он будет выполнять свои функции; а если я сделаю - ТО ЖЕ САМОЕ - как-то по-другому, то ЭТОТ ЖЕ ДАТЧИК уже работать не будет.

Serge77> Зависимость хорошо описывается кубическим уравнением. Наверно это можно легко считать прямо в МК, без таблицы поправок.
Программная линеаризация датчиков выполняется именно методом массивов поправок, а не решением кубических уравнений в реальном масштабе времени. Так мне объяснил местный специалист.
Skype: a_schabanow  
UA Non-conformist #16.03.2009 18:30  @Non-conformist#16.03.2009 17:57
+
-
edit
 

Non-conformist

аксакал

Вот твоя мишень (синяя), и вот моя мишень (черная). Причем твоя получается уже ПОСЛЕ моей. ИЗ моей. Ну и зачем все это городить? Плюс кольца стопорить надо. Сначала одну пару, потом ее надо расстопорить аккуратненько, и застопорить другую... Цель?
Прикреплённые файлы:
targets_to_compare.png (скачать) [10,75 кбайт, 11 загрузок] [attach=144125]
 
 
Skype: a_schabanow  
+
-
edit
 

Serge77

модератор

Я НЕ ПРЕДЛАГАЮ делать новую мишень и заново чего-то измерять!!!!!!!

Я предлагаю из УЖЕ ИЗМЕРЕННЫХ ТОБОЙ данных получить нужную зависимость угол-сигнал. Как это сделать - я показал в примере.
UA Serge77 #16.03.2009 18:44  @Non-conformist#16.03.2009 17:57
+
-
edit
 

Serge77

модератор

Non-conformist> Две мои кривые (синусоида и косинусоида) дают характеристику датчика вида "Х мВ/градус"

Нет, не дают. На твоих графиках НЕТ ГРАДУСОВ. У тебя по оси Х не градусы, а ШАГИ.
А на моих - градусы.
+
-
edit
 

Serge77

модератор

Serge77> Нет, не дают. На твоих графиках НЕТ ГРАДУСОВ. У тебя по оси Х не градусы, а ШАГИ.

Точнее, всё-таки градусы, но не те. У тебя градусы поворота часовой стрелки. А нужны градусы поворота оси кардана. Они связаны, но это разные вещи.
UA Non-conformist #16.03.2009 19:21  @Non-conformist#16.03.2009 18:30
+
-
edit
 

Non-conformist

аксакал

Non-conformist> Вот твоя мишень (синяя), и вот моя мишень (черная).
Виноват, неправильно нарисовал. Вот правильное построение "осевой мишени". Угловой шаг я здесь взял равным 0,5 градуса. На четырнадцать градусов размаха получается двадцать восемь меток с расстоянием между соседними метками около 7 мм (расстояние это увеличивается от центра к концам отрезка, максимальная разница составляет около 0,2 миллиметра - т.е. кривизна пространственной дуги, о проекции которой я говорил выше, на таком угле раскрыва крайне незначительна). Реальные расстояния, видимо, нужно будет взять в два раза больше - 400 мм длина оси, 14 мм - среднее расстояние между соседними метками и 1600 мм - расстояние от центра симметрии кардана до плоскости мишени.

Все вроде бы вполне нормально, вот только НИКАКОГО УПОРА в этом случае не будет, и фиксировать пятно на метках окажется КРАЙНЕ неудобно, а скорее всего просто невозможно. Показания тестеров будут мигать так, что цифры с них снять можно будет только примерные. Пятнышко указки и с упором "заглушки" о внутреннюю поверхность трубы корпуса не очень-то зафиксируешь... Гнилой вариант, как ни крути.

> !!!!!!!
Ты не шуми наверное? Ты показал, ну и я показал. Друг другу показали - разошлись тихонько.
Прикреплённые файлы:
axis_target.png (скачать) [5,19 кбайт, 17 загрузок] [attach=144134]
 
 
Skype: a_schabanow  
UA Non-conformist #16.03.2009 19:26  @Serge77#16.03.2009 18:47
+
-
edit
 

Non-conformist

аксакал

Serge77> Точнее, всё-таки градусы, но не те. У тебя градусы поворота часовой стрелки. А нужны градусы поворота оси кардана. Они связаны, но это разные вещи.
Они связаны уравнением, которое вывел VMK. Синусом-косинусом они СВЯЗАНЫ, крепко-накрепко. Угловой шаг по плоскости "колесной мишени" известен, и составляет он пять градусов (семьдесят две спицы на триста шестьдесят градусов).
Skype: a_schabanow  
UA Non-conformist #16.03.2009 19:41  @Non-conformist#16.03.2009 19:21
+
-
edit
 

Non-conformist

аксакал

Non-conformist> ... расстояние это увеличивается от центра к концам отрезка, максимальная разница составляет около 0,2 миллиметра - т.е. кривизна пространственной дуги, о проекции которой я говорил выше, на таком угле раскрыва крайне незначительна ...
Еще раз пардон - угол раскрыва не четырнадцать, а двадцать восемь градусов. Четырнадцать - это от оси до упора. Перепутал. Перепутаешь тут...
Skype: a_schabanow  
UA Serge77 #16.03.2009 19:44  @Non-conformist#16.03.2009 19:21
+
-
edit
 

Serge77

модератор

Non-conformist> Все вроде бы вполне нормально, вот только НИКАКОГО УПОРА в этом случае не будет, и фиксировать пятно на метках окажется КРАЙНЕ неудобно, а скорее всего просто невозможно.

Согласен. Только зачем ты это пишешь? Я ничего такого не предлагал, я же написал:
Кобра III [Serge77#16.03.09 18:40]
UA Serge77 #16.03.2009 19:48  @Non-conformist#16.03.2009 19:26
+
-
edit
 

Serge77

модератор

Non-conformist> Они связаны уравнением, которое вывел VMK. Синусом-косинусом они СВЯЗАНЫ, крепко-накрепко.

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

Ещё раз уточню, в чём разница твоего и моего графика (не метода калибровки, а именно графика):
У тебя на графике зависимость сигнала от угла поворота стрелки, а у меня - зависимость сигнала от угла поворота кардана (одного конкретного). Насколько я понимаю, тебе нужна именно вторая зависимость, а не первая.
UA Non-conformist #16.03.2009 21:27  @Serge77#16.03.2009 19:48
+
-
edit
 

Non-conformist

аксакал

Serge77> Совершенно верно, именно так я и вывел угол поворота кардана из угла поворота стрелки в своём последнем примере.
МК перевернутого маятника оперирует не абстрактными понятиями "пространственный угол / плоская стрелка", а всего-навсего двумя парами чисел.

Предположим, в некий момент времени ЦП получил из регистра датчика положения ВТ пару чисел "1-0", а из регистра солнечного датчика - пару чисел "2-0". А в следующий момент времени (через сколько-то машинных тактов, наверное) из регистра СОЛНЕЧНОГО датчика он получил новую пару чисел "2-1", после обработки которой ЦП захотел, чтобы регистр датчика положения ВТ изменил свое состояние, соответствующее некоей новой паре чисел "1-1" - для того, чтобы не упасть. ЦП посылает команду на активаторы, чтобы в регистре датчика положения ВТ пара чисел "1-0" как можно скорее сменилась парой чисел "1-1".

Т.е. все дело сводится к изменению комбинации двух чисел. О каком угле поворота осей кардана (плоской стрелки) с этой точки зрения вообще может идти речь? Есть диапазон значений, за границы которого пара активаторов не может выйти чисто физически, просто потому что труба не пустит. Есть таблица поправочных коэффициентов, которая заботится о том, чтобы изменение пар чисел как можно точнее соотносилось с фактическим изменением углов колец кардана. Ну и все, наверное?

Зачем МК "человеческие" значения углов, выраженные в градусах? Зачем ему еще одна - твоя - кривая (два столбца каких-то новых чисел, выведенных по какому-то закону из старых, исходных)? У тебя что, отличные от моих поправки на нелинейность получились? Кстати - ты их так и не посчитал, а вместо этого нарисовал кубическое уравнение, которое описывает нелинейность датчиков. Насколько я знаю, решать кубические уравнения в масштабе реального времени для МК все-таки сложнее, чем сравнивать попарно два столбика чисел. Да и не описывать нелинейность датчика каким-то уравнением имхо надо, а приводить его показания к линейному закону. Так во всяком случае это делается на практике.

Если хочешь - посчитай свои поправки на нелинейность (соединив "голову" и "хвост" своей "пиявки" прямой линией), а я посчитаю свои. И сравним результаты. Или может у тебя другой ДИАПАЗОН ЗНАЧЕНИЙ получился? Да нет - таблица та же. Так о чем тогда спорим? МК всяко не увидит ни твою кривулю, ни мою.
Skype: a_schabanow  
+
-
edit
 

Serge77

модератор

Вопрос: ты предполагаешь такое управление, при котором двигатель может быть либо точно вдоль оси ракеты, либо упёртый в крайне отклонённое положение (в стенку)? Т.е. твоя система управления не будет хотеть поставить двигатель в положение, отклонённое от оси, но не до упора?

Иными словами, вот в этой фразе:

"П посылает команду на активаторы, чтобы в регистре датчика положения ВТ пара чисел "1-0" как можно скорее сменилась парой чисел "1-1"."

пары чисел "1-0" и "1-1" всегда соответствуют крайнему положению, т.е. упору в корпус, только в разных точках корпуса, естественно?
AD Реклама Google — средство выживания форумов :)
UA Non-conformist #16.03.2009 22:52  @Serge77#16.03.2009 21:46
+
-
edit
 

Non-conformist

аксакал

Serge77> Т.е. твоя система управления не будет хотеть поставить двигатель в положение, отклонённое от оси, но не до упора?
Нет конечно. К чему бы была тогда вся эта петрушка с линеаризацией датчика? Там будет ПИД-управление, а ты описал позиционное управление типа вкл/выкл. Так маятники не делаются.

***
В общем, я пока стою на том, что описав окружность по стенке трубы, мы получили два графика, которые во-первых дали нам возможность четко определиться с ДИАПАЗОНОМ ИЗМЕНЕНИЯ СИГНАЛА. Во-вторых, поделив этот диапазон на диапазон изменения углов, мы получили характеристику датчика вида "Х мВ/градус отклонения колец кардана". А линейность выхода мы добыли подробно описанными выше способами - либо сравнением экспериментальных кривых с чистыми, теоретическими синусоидами (VMK), либо сравнением "пиявки" с чистой, теоретической прямой (твоим).

По моему убеждению, оба способа, в смысле получения таблицы вида "милливольты / градусы отклонения колец кардана" просто ОБЯЗАНЫ дать ОЧЕНЬ близкие результаты.
Skype: a_schabanow  
1 8 9 10 11 12 78

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