IPB

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Алгоритм непрерывного слежения за величиной синуса, кто встречал подобное?
orthodox
сообщение 30.6.2010, 13:46
Сообщение #1


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22826
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Значит, так примерно: задача измерить амплитуду синусоидального сигнала - бывает частенько,
силовики знают.

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

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

Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса.
Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус.

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

Моделирование даже значительно более примитивного алгоритма из этой серии давало на 50 гц задержку слежения за амплитудой
около 2 мс, но лень было реализовывать вычисления. Но и то неплохо(это в аналоге, естественно).

В цифре тоже может оказаться непросто вычислять корень квадратный... Или просто? То есть при наличии апппаратного делителя, наверное, будет успевать... А без?

PS Это я все к вопросу обучения - может, мне эту задачу к соседней прилепить, как раз стабилизатор заодно получится...

pPS в простейшем случае алгоритм работает только на одной частоте, но есть варианты и для диапазона...Но они в аналоге, не в цифре...Для них, наверное, DSP надо...
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 30.6.2010, 14:00
Сообщение #2





Гости






Цитата(orthodox @ 30.6.2010, 15:46) *
Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса.
Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус.

Дифцепочка на опере?
Иначе придётся учитывать затухание

Плюс, не стоит возлагать больших надежд на встроенные АЦП контроллеров. 8-10 бит - очень небольшая точность.
Хотя, смотря для каких целей.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 30.6.2010, 14:08
Сообщение #3


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22826
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 30.6.2010, 15:00) *
Дифцепочка на опере?
Иначе придётся учитывать затухание

Затухание учитывать надо всегда, в любой схеме.
А "иначе" - надо учитывать погрешность по фазе, не точно равнoй 90°.
Опер не нужен.
Есть один трик- можно чуть интегрировать один вход, а второй дифференциировать от души.
Но можно и обсчитать, наверное...

Могу входные цепочки просчитать в cимуляторе, не сложно.
Какое входное сопротивление входа АЦП? Менее мегома? А как узнать точно для избранного какого-то PICа ?
Самопроверку сделать?
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 30.6.2010, 14:19
Сообщение #4





Гости






Цитата(orthodox @ 30.6.2010, 16:08) *
Какое входное сопротивление входа АЦП? Менее мегома? А как узнать точно для избранного какого-то PICа ?

В даташите должно быть указано, в электрических параметрах
Обычно невысокое, в пределах нескольких кОм
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 30.6.2010, 14:35
Сообщение #5


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22826
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 30.6.2010, 15:19) *
В даташите должно быть указано, в электрических параметрах
Обычно невысокое, в пределах нескольких кОм


В общем, терпимо - лишь бы стабильное было.
Перейти в начало страницы
 
+Цитировать сообщение
zzzzzzzz
сообщение 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). И табличным способом?
А перед АЦП нужно ФНЧ, для устранения помех и повышения точности.


А зачем смотреть несинусность синуса быстро, для каких применений?
Перейти в начало страницы
 
+Цитировать сообщение
zzzzzzzz
сообщение 30.6.2010, 19:26
Сообщение #7


начинающий нейрохирург-любитель и очень добрый таксидермист
***

Группа: Пользователи
Сообщений: 2578
Регистрация: 21.11.2009
Из: РФ, Земля
Пользователь №: 14



Цитата(Огурцов @ 30.6.2010, 19:55) *
Очень похоже на попытку упростить жизнь программирование МК. Хотя лучше бы наоборот, иначе на кой он тогда нужен.
Никакого упрощения, голимая точная математика. Все ошибки даст физическая реализация, не более.

Поясню смысл, - по двум точкам синуса известной частоты можно построить весь синус. И, естественно, узнать его амплитуду.
Если, конечно, временной интервал между этими точками гораздо меньше половины периода этого синуса.

Это самый примитивный случай Фурье-преобразований. Потому и система уравнений столь проста.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 30.6.2010, 22:09
Сообщение #8


тот самый
Иконка группы

Группа: Мод
Сообщений: 13003
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(zzzzzzzz @ 30.6.2010, 20:26) *
Поясню смысл, - по двум точкам синуса известной частоты можно построить весь синус. И, естественно, узнать его амплитуду.
Это самый примитивный случай Фурье-преобразований..

1. Я на Вашей стороне. smile.gif
2. В общем случае у нас не синус, а нечто на него похожее, посему поминать Фурье не будем. Нужно копать в направлении экстраполяции по N точкам, и не забывать про производные.
Для полного успеха надо детектировать ноль. Затем, после принятого нуля у нас первые отсчеты будут с несмешной достоверностью, я думаю, это очевидно. НО! первые отсчеты соотвествуют максимуму первой производной сигнала, воспользуемся этим и создадим канал численного дифференцирования, например, по 7-ми точкам. Далее, информативность кнала производной убывает, зато возрастает количество точек, по которым можно обеспечивать достоверную экстраполяцию. В итоге должно присутствовать какое-то весовое суммирование выхода каналов, чтобы обеспечить стабильное и достоверное значение амплитуды на выходе.
Идея пока что на кончиках пальцев. Как идея-то? Нравится или?
Перейти в начало страницы
 
+Цитировать сообщение
zzzzzzzz
сообщение 30.6.2010, 23:00
Сообщение #9


начинающий нейрохирург-любитель и очень добрый таксидермист
***

Группа: Пользователи
Сообщений: 2578
Регистрация: 21.11.2009
Из: РФ, Земля
Пользователь №: 14



Вариантов, конечно, куча и тележка.
Однако, надо исходить из цели.
Под неё и строить алгоритм.
Если он нужен в самом деле.
Ведь быстро-быстро узнать значение амплитуды, еще до появления первого экстремума, не есть конечная цель?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 30.6.2010, 23:59
Сообщение #10


тот самый
Иконка группы

Группа: Мод
Сообщений: 13003
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(zzzzzzzz @ 1.7.2010, 0:00) *
Ведь быстро-быстро узнать значение амплитуды, еще до появления первого экстремума, не есть конечная цель?

Напомнило вот это
Перейти в начало страницы
 
+Цитировать сообщение
Burner
сообщение 7.8.2010, 4:11
Сообщение #11


Активный участник
***

Группа: шизо
Сообщений: 1410
Регистрация: 17.1.2010
Из: Винница
Пользователь №: 84



Еще одна мысля. Можно в одном канале сдвигать +45 град, в другом -45 град. Но быстродействие будет хуже. ФНЧ, однако, необходим по обоим каналам. АЦП в Пике нормально работает вроде до 50 кспс. Если 2 канала - то по 25 кспс на каждый. Иметь на входе АЦП сигнал выше частоты оцифрения - вредно.
Так что получается структура: ФНЧ, фазовращатель, АЦП. Ессно, чем ниже вы режете частоту и чем круче срез, тем больше задержка ФНЧ. Однозвенное RC на 10 кГц - вроде нормально.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 11:28
Сообщение #12


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
Просто берем два канала АЦП МК. Первый измеряет тупо мгновенные значение исходного синуса.
Второй - мгновенные значения сдвинутого по фазе на 90° дифф цепочкой - то есть, к примеру, уже косинус.
тогда, пронормировав один раз при калибровке оба канала, можем использовать корень квадратный из суммы квадратов.


..Вспомним декодирование цвета в системе PAL. Там, атрибутом является привязка к несущей частоте. То есть, если мы измеряем, зная фазу, амплитуда находится по одному измерению, без квадратов и корней.
Синхронизироваться можно по переходам через нуль. Таймер о 16-ти разрядах, есть, практически, везде.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 13:32
Сообщение #13


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата(orthodox @ 7.8.2010, 18:06) *
Приведите более подробный пример? может я чего-то не понял.
Мне показалось так:
Мы знаем фазу, находимся в фазе 0 либо 180 градусов, где мгновенное значение равно нулю.


..Ну, в таймере фиксируем время проведения измерения, то есть, фазу, отсчитываемую от момента перехода через нуль. Фазе однозначно соответствует, вычисленное (может, табличное) значение синуса единичной амплитуды в момент измерения. Теперь, делим измеренное (с помощью АЦП) значение синуса на значение синуса единичной амплитуды в этот же момент – получаем амплитуду синуса. С учетом масштабирования (делитель на входе АЦП), конечно.
А что тут непонятного?
..Поскольку у таймера 16-ть разрядов, то, точность вычисления амплитуды, вероятно, определится разрядностью АЦП, которая, обычно, 10.
..В течение всего полупериода, можно делать, с какой-то сеткой, эти измерения-вычисления. Если, вдруг, амплитуда скачком примет другое значение, вычислитель определит это через шаг сетки.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 14:08
Сообщение #14


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
будет немного сложнее, и не так стабильно - но работать тоже будет.
Возможны проскоки и срывы стабилизации на время входа в синхронность с питающей сетью, правда...


..Так, то, что вы предлагаете, если я правильно понял, "те же яйца".
Если сеть пропала и появилась, получить из синуса косинус, вероятно, надо не меньше периода. То есть, то самое время, чтобы засинхронизироваться, хотя бы, по одному - двум переходам через нуль..
..По определению, синус - периодический сигнал, полностью судить о нем, можно, имея, минимум, его полупериод (или период).

..Потом, почему "сложней"-то? Алгоритм, вероятно, проще, без корней и квадратов. Сплошное деление на изменяющийся коэффициент. Если сетка измерений частая, возможно, удалось бы еще оптимизировать, для малых приращений.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 15:03
Сообщение #15


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



..Чем привязка к пику амплитуды принципиально лучше привязки к нулю?
То и другое - характерные экстремумы синуса..

..Если, как я "предложил" (это очевидно, конечно же) - с появлением синуса сети, после первого его перехода через нуль, уже можно вести отсчет фазы, предполагая, в начале, что полупериод равен точно 10 mS. Затем, это время можно уточнить..

..То есть, ваш подход интересен, конечно, но, я думал, что проклюнулся какой-то "принципиальный" прорыв.. smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 15:39
Сообщение #16


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
Такой себе интересный детектор, с быстрой реакцией и непрерывным слежением, без пульсаций...
Если б нашел готовый - взял бы готовый. Но я не нашел.

Вопрос интересный.
Может, вам стоит, для лучшего понимания (моего и других коллег), четче сформулировать, какая задача ставится, как именно она решается, ну, и, некоторые важные цифры, описывающие быстродействие и точность.
А то я уже слегка запутался - фазу мы вычисляем, скорость нарастания, амплитуду ли?

P.S.
..Опоздал, что-то вы уже определили. Но, суть-то вашего решения в чем?
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 16:41
Сообщение #17


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
непрерываное слежение за амплитудным значением

Это постановка задачи.

Цитата
исходя из мгновенного значения и скорости нарастания в этот момент.

Это общая (ваша) предпосылка вашего решения.
А решение-то конкретное в чем заключается?

..Ну, не на уровне детального описания схемы.. ..хотя бы, на структурном уровне, с уточнением отдельных важных деталей.
Я помню, была какая-то дифцепочка.. потом, она делась? ..или осталась? Что еще есть, что вычисляется PIC-ом?
То есть, грубо, на пальцах, аппаратная часть и алгоритм расчета.. Или, пока этого нет, только есть предпосылка?
Тогда, принцип надо тоже конкретизировать. А то "..исходя из мгновенного значения и скорости нарастания " - звучит замечательно, но, бесполезно.. smile.gif

..И еще. Всегда полезно оценить собственную идею с точки зрения, "не нарушает ли она чего". Какой-нибудь из основных, хорошо известных законов.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 7.8.2010, 22:48
Сообщение #18


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



..Хм.. Тут я уже несколько не понимаю.
"Проекция сигнала на действительную ось" - это текущее мгновенное значение сигнала, так?
"Радиус-вектор или комплексная амплитуда" - это понятно.

Цитата
Для чистого синусоидального сигнала необходимо и достаточно слежение цепью ООС только за проекцией этого сигнала на одну ось.

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

..А вот зачем Ортодоксу именно амплитуда теоретического синуса, это я тоже не знаю..
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 7.8.2010, 23:47
Сообщение #19


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22826
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(тау @ 8.8.2010, 0:38) *
 Предполагаю что ему хочется иметь конвертор входного сетевого напряжения , с заданной скважностью работы ШИМ-а (примерно постоянной) , но в которую заведена быстрая (квазинепрерывная) ОС по амплитуде огибающей (длине радиус-вектора) относительно некоторого постоянного напряжения опоры . Длина радиус вектора теоретически чистого синусоидального сигнала не меняется на протяжении всего периода, поэтому можно потенциально осуществить быстродействующую (или глубокую ООС) , если конечно оно получится, в чем у меня есть сомнения из-за фазовращателя.

+500.
ОС не будет, будет связь вперед.
Но если бы была - то ведет она себя хоть и непросто, но не так как ОС, описанная вами - все же физика иная.
Я углубляться не особо хочу в ту физику , пока начинаю работать со "связью вперед".

А фазовращатель в ОС - это вообще отдельная тема....
Вот при случае копну ее, чтоб не разводить теоретических предположений - тогда, вдруг амеры все же правы...
Чего я за столько лет не проверил ни разу...
Перейти в начало страницы
 
+Цитировать сообщение
Гость_Максим Зиновьев_*
сообщение 8.8.2010, 10:15
Сообщение #20





Гости






Мне кажется, можно чуть проще решить задачу.
Имеем на входе синус, по переходу через 0 формируем ФАПЧ опорный синус (не физически, а, например, таблично), которым будем выставлять выходное напряжение (операция "умножение").
Далее сравниваем "случайную" выборку АЦП входного синуса, запущенного на отсчет в нужный момент (реально интересен экстремум, ожидать его мы можем через пи/2 от перехода через ноль синхронизатора ФАПЧ с вероятностью 99%).
Половая разница (операция "вычитание") между отсчетом и нашим фапчевым опорным табличным синусом, с учетом задержки ФНЧ АЦП "в тактах" даст искомую разницу для формирования (операция "умонжение") табличного ШИМ на силу, любую.

Доб. Можно еще "справляться" о амплитуде входного синуса отсчетом пи/4,или пи3/4 чтобы минимизировать влияние не единичного КМ(несинусоидальность синусоиды™) входной сети на выход стабилизатора.
Перейти в начало страницы
 
+Цитировать сообщение

3 страниц V   1 2 3 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24.2.2018, 4:06