Алгоритм непрерывного слежения за величиной синуса, кто встречал подобное? |
Здравствуйте, гость ( Вход | Регистрация )
Алгоритм непрерывного слежения за величиной синуса, кто встречал подобное? |
30.6.2010, 13:46
Сообщение
#1
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Значит, так примерно: задача измерить амплитуду синусоидального сигнала - бывает частенько,
силовики знают. Как правило, измеряют амплитуду на выходе пикового детектора, либо среднее значение и т д... Недостаток один - измерение небыстрое. между тем, синус - это всего лишь проекция частицы , вращающейся по кругу, на плоскость... Пока она вращается равномерно, в любой точке круга радиус (амплитуда) - одинаковый. Почему тогда измеряем лишь в одной, максимум двух точках? Можно и в любой. Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса. Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус. тогда, пронормировав один раз при калибровке оба канала, можем использовать корень квадратный из суммы квадратов. Моделирование даже значительно более примитивного алгоритма из этой серии давало на 50 гц задержку слежения за амплитудой около 2 мс, но лень было реализовывать вычисления. Но и то неплохо(это в аналоге, естественно). В цифре тоже может оказаться непросто вычислять корень квадратный... Или просто? То есть при наличии апппаратного делителя, наверное, будет успевать... А без? PS Это я все к вопросу обучения - может, мне эту задачу к соседней прилепить, как раз стабилизатор заодно получится... pPS в простейшем случае алгоритм работает только на одной частоте, но есть варианты и для диапазона...Но они в аналоге, не в цифре...Для них, наверное, DSP надо... |
|
|
Гость_MrYuran_* |
30.6.2010, 14:00
Сообщение
#2
|
Гости |
Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса. Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус. Дифцепочка на опере? Иначе придётся учитывать затухание Плюс, не стоит возлагать больших надежд на встроенные АЦП контроллеров. 8-10 бит - очень небольшая точность. Хотя, смотря для каких целей. |
|
|
30.6.2010, 14:08
Сообщение
#3
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Дифцепочка на опере? Иначе придётся учитывать затухание Затухание учитывать надо всегда, в любой схеме. А "иначе" - надо учитывать погрешность по фазе, не точно равнoй 90°. Опер не нужен. Есть один трик- можно чуть интегрировать один вход, а второй дифференциировать от души. Но можно и обсчитать, наверное... Могу входные цепочки просчитать в cимуляторе, не сложно. Какое входное сопротивление входа АЦП? Менее мегома? А как узнать точно для избранного какого-то PICа ? Самопроверку сделать? |
|
|
Гость_MrYuran_* |
30.6.2010, 14:19
Сообщение
#4
|
Гости |
|
|
|
30.6.2010, 14:35
Сообщение
#5
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
30.6.2010, 16:38
Сообщение
#6
|
|
начинающий нейрохирург-любитель и очень добрый таксидермист Группа: Пользователи Сообщений: 2578 Регистрация: 21.11.2009 Из: РФ, Земля Пользователь №: 14 |
Ежели так извращаться для фиксированной частоты, то надо делать АЦП просто 2 отсчета, и решать простенькую систему:
U1=ASin(wt1) U2=ASin(wt2) t2 - t1 = tau известны tau, U1, U2, w=2piF найти А ну и, со знаками аккуратненько, не облажаться. ПС. Системку, кстати, можно и упростить. Используя sin(a-b). И табличным способом? А перед АЦП нужно ФНЧ, для устранения помех и повышения точности. А зачем смотреть несинусность синуса быстро, для каких применений? |
|
|
30.6.2010, 19:26
Сообщение
#7
|
|
начинающий нейрохирург-любитель и очень добрый таксидермист Группа: Пользователи Сообщений: 2578 Регистрация: 21.11.2009 Из: РФ, Земля Пользователь №: 14 |
Очень похоже на попытку упростить Никакого упрощения, голимая точная математика. Все ошибки даст физическая реализация, не более.Поясню смысл, - по двум точкам синуса известной частоты можно построить весь синус. И, естественно, узнать его амплитуду. Если, конечно, временной интервал между этими точками гораздо меньше половины периода этого синуса. Это самый примитивный случай Фурье-преобразований. Потому и система уравнений столь проста. |
|
|
30.6.2010, 22:09
Сообщение
#8
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Поясню смысл, - по двум точкам синуса известной частоты можно построить весь синус. И, естественно, узнать его амплитуду. Это самый примитивный случай Фурье-преобразований.. 1. Я на Вашей стороне. 2. В общем случае у нас не синус, а нечто на него похожее, посему поминать Фурье не будем. Нужно копать в направлении экстраполяции по N точкам, и не забывать про производные. Для полного успеха надо детектировать ноль. Затем, после принятого нуля у нас первые отсчеты будут с несмешной достоверностью, я думаю, это очевидно. НО! первые отсчеты соотвествуют максимуму первой производной сигнала, воспользуемся этим и создадим канал численного дифференцирования, например, по 7-ми точкам. Далее, информативность кнала производной убывает, зато возрастает количество точек, по которым можно обеспечивать достоверную экстраполяцию. В итоге должно присутствовать какое-то весовое суммирование выхода каналов, чтобы обеспечить стабильное и достоверное значение амплитуды на выходе. Идея пока что на кончиках пальцев. Как идея-то? Нравится или? |
|
|
30.6.2010, 23:00
Сообщение
#9
|
|
начинающий нейрохирург-любитель и очень добрый таксидермист Группа: Пользователи Сообщений: 2578 Регистрация: 21.11.2009 Из: РФ, Земля Пользователь №: 14 |
Вариантов, конечно, куча и тележка.
Однако, надо исходить из цели. Под неё и строить алгоритм. Если он нужен в самом деле. Ведь быстро-быстро узнать значение амплитуды, еще до появления первого экстремума, не есть конечная цель? |
|
|
30.6.2010, 23:59
Сообщение
#10
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Ведь быстро-быстро узнать значение амплитуды, еще до появления первого экстремума, не есть конечная цель? Напомнило вот это |
|
|
7.8.2010, 4:11
Сообщение
#11
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Еще одна мысля. Можно в одном канале сдвигать +45 град, в другом -45 град. Но быстродействие будет хуже. ФНЧ, однако, необходим по обоим каналам. АЦП в Пике нормально работает вроде до 50 кспс. Если 2 канала - то по 25 кспс на каждый. Иметь на входе АЦП сигнал выше частоты оцифрения - вредно.
Так что получается структура: ФНЧ, фазовращатель, АЦП. Ессно, чем ниже вы режете частоту и чем круче срез, тем больше задержка ФНЧ. Однозвенное RC на 10 кГц - вроде нормально. |
|
|
7.8.2010, 11:28
Сообщение
#12
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
Цитата Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса. Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус. тогда, пронормировав один раз при калибровке оба канала, можем использовать корень квадратный из суммы квадратов. ..Вспомним декодирование цвета в системе PAL. Там, атрибутом является привязка к несущей частоте. То есть, если мы измеряем, зная фазу, амплитуда находится по одному измерению, без квадратов и корней. Синхронизироваться можно по переходам через нуль. Таймер о 16-ти разрядах, есть, практически, везде. |
|
|
7.8.2010, 13:32
Сообщение
#13
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
Приведите более подробный пример? может я чего-то не понял. Мне показалось так: Мы знаем фазу, находимся в фазе 0 либо 180 градусов, где мгновенное значение равно нулю. ..Ну, в таймере фиксируем время проведения измерения, то есть, фазу, отсчитываемую от момента перехода через нуль. Фазе однозначно соответствует, вычисленное (может, табличное) значение синуса единичной амплитуды в момент измерения. Теперь, делим измеренное (с помощью АЦП) значение синуса на значение синуса единичной амплитуды в этот же момент – получаем амплитуду синуса. С учетом масштабирования (делитель на входе АЦП), конечно. А что тут непонятного? ..Поскольку у таймера 16-ть разрядов, то, точность вычисления амплитуды, вероятно, определится разрядностью АЦП, которая, обычно, 10. ..В течение всего полупериода, можно делать, с какой-то сеткой, эти измерения-вычисления. Если, вдруг, амплитуда скачком примет другое значение, вычислитель определит это через шаг сетки. |
|
|
7.8.2010, 14:08
Сообщение
#14
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
Цитата будет немного сложнее, и не так стабильно - но работать тоже будет. Возможны проскоки и срывы стабилизации на время входа в синхронность с питающей сетью, правда... ..Так, то, что вы предлагаете, если я правильно понял, "те же яйца". Если сеть пропала и появилась, получить из синуса косинус, вероятно, надо не меньше периода. То есть, то самое время, чтобы засинхронизироваться, хотя бы, по одному - двум переходам через нуль.. ..По определению, синус - периодический сигнал, полностью судить о нем, можно, имея, минимум, его полупериод (или период). ..Потом, почему "сложней"-то? Алгоритм, вероятно, проще, без корней и квадратов. Сплошное деление на изменяющийся коэффициент. Если сетка измерений частая, возможно, удалось бы еще оптимизировать, для малых приращений. |
|
|
7.8.2010, 15:03
Сообщение
#15
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
..Чем привязка к пику амплитуды принципиально лучше привязки к нулю?
То и другое - характерные экстремумы синуса.. ..Если, как я "предложил" (это очевидно, конечно же) - с появлением синуса сети, после первого его перехода через нуль, уже можно вести отсчет фазы, предполагая, в начале, что полупериод равен точно 10 mS. Затем, это время можно уточнить.. ..То есть, ваш подход интересен, конечно, но, я думал, что проклюнулся какой-то "принципиальный" прорыв.. |
|
|
7.8.2010, 15:39
Сообщение
#16
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
Цитата Такой себе интересный детектор, с быстрой реакцией и непрерывным слежением, без пульсаций... Если б нашел готовый - взял бы готовый. Но я не нашел. Вопрос интересный. Может, вам стоит, для лучшего понимания (моего и других коллег), четче сформулировать, какая задача ставится, как именно она решается, ну, и, некоторые важные цифры, описывающие быстродействие и точность. А то я уже слегка запутался - фазу мы вычисляем, скорость нарастания, амплитуду ли? P.S. ..Опоздал, что-то вы уже определили. Но, суть-то вашего решения в чем? |
|
|
7.8.2010, 16:41
Сообщение
#17
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
Цитата непрерываное слежение за амплитудным значением Это постановка задачи. Цитата исходя из мгновенного значения и скорости нарастания в этот момент. Это общая (ваша) предпосылка вашего решения. А решение-то конкретное в чем заключается? ..Ну, не на уровне детального описания схемы.. ..хотя бы, на структурном уровне, с уточнением отдельных важных деталей. Я помню, была какая-то дифцепочка.. потом, она делась? ..или осталась? Что еще есть, что вычисляется PIC-ом? То есть, грубо, на пальцах, аппаратная часть и алгоритм расчета.. Или, пока этого нет, только есть предпосылка? Тогда, принцип надо тоже конкретизировать. А то "..исходя из мгновенного значения и скорости нарастания " - звучит замечательно, но, бесполезно.. ..И еще. Всегда полезно оценить собственную идею с точки зрения, "не нарушает ли она чего". Какой-нибудь из основных, хорошо известных законов. |
|
|
7.8.2010, 22:48
Сообщение
#18
|
|
стажер Группа: Пользователи Сообщений: 871 Регистрация: 28.11.2009 Пользователь №: 36 |
..Хм.. Тут я уже несколько не понимаю.
"Проекция сигнала на действительную ось" - это текущее мгновенное значение сигнала, так? "Радиус-вектор или комплексная амплитуда" - это понятно. Цитата Для чистого синусоидального сигнала необходимо и достаточно слежение цепью ООС только за проекцией этого сигнала на одну ось. Вот это не понятно. Нас, в данном случае, интересует огибающая, то есть, некий пунктир, соединяющий максимумы той кривой, которую мы, в первом приближении, считаем синусом, но, можем предполагать там наличие еще каких-то гармоник. То самое, что выделяет, собственно, двухполупериодный выпрямитель с электролитом, все меньшие значения нам не важны. А все текущие значения ("проекция сигнала на действительную ось") зачем нам.. И к чему нам все мгновенные значения синуса в сети отслеживать.. Куда мы их засунем? ..А вот зачем Ортодоксу именно амплитуда теоретического синуса, это я тоже не знаю.. |
|
|
7.8.2010, 23:47
Сообщение
#19
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Предполагаю что ему хочется иметь конвертор входного сетевого напряжения , с заданной скважностью работы ШИМ-а (примерно постоянной) , но в которую заведена быстрая (квазинепрерывная) ОС по амплитуде огибающей (длине радиус-вектора) относительно некоторого постоянного напряжения опоры . Длина радиус вектора теоретически чистого синусоидального сигнала не меняется на протяжении всего периода, поэтому можно потенциально осуществить быстродействующую (или глубокую ООС) , если конечно оно получится, в чем у меня есть сомнения из-за фазовращателя. +500. ОС не будет, будет связь вперед. Но если бы была - то ведет она себя хоть и непросто, но не так как ОС, описанная вами - все же физика иная. Я углубляться не особо хочу в ту физику , пока начинаю работать со "связью вперед". А фазовращатель в ОС - это вообще отдельная тема.... Вот при случае копну ее, чтоб не разводить теоретических предположений - тогда, вдруг амеры все же правы... Чего я за столько лет не проверил ни разу... |
|
|
Гость_Максим Зиновьев_* |
8.8.2010, 10:15
Сообщение
#20
|
Гости |
Мне кажется, можно чуть проще решить задачу.
Имеем на входе синус, по переходу через 0 формируем ФАПЧ опорный синус (не физически, а, например, таблично), которым будем выставлять выходное напряжение (операция "умножение"). Далее сравниваем "случайную" выборку АЦП входного синуса, запущенного на отсчет в нужный момент (реально интересен экстремум, ожидать его мы можем через пи/2 от перехода через ноль синхронизатора ФАПЧ с вероятностью 99%). Половая разница (операция "вычитание") между отсчетом и нашим фапчевым опорным табличным синусом, с учетом задержки ФНЧ АЦП "в тактах" даст искомую разницу для формирования (операция "умонжение") табличного ШИМ на силу, любую. Доб. Можно еще "справляться" о амплитуде входного синуса отсчетом пи/4,или пи3/4 чтобы минимизировать влияние не единичного КМ(несинусоидальность синусоиды™) входной сети на выход стабилизатора. |
|
|
Текстовая версия | Сейчас: 29.3.2024, 11:04 |