реклама на сайте
подробности

 
 
> Извлечение корня и возведение в квадрат в AVR, как быстрее
yanita
сообщение Jul 14 2008, 11:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 9-02-08
Из: Украина
Пользователь №: 34 891



Здравствуйте всем.
У меня возникла следующая задача. В цепи обратной связи мне надо произвести ряд арифметических преобразований, в том числе излечение корня и возведение в квадрат. Как это можно сделать максимально быстро на одном из микроконтроллеров AVR (извлечь корень и возвести в квадрат)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexander55
сообщение Jul 16 2008, 09:42
Сообщение #2


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(yanita @ Jul 14 2008, 15:06) *
В цепи обратной связи мне надо произвести ряд арифметических преобразований, в том числе излечение корня и возведение в квадрат. Как это можно сделать максимально быстро на одном из микроконтроллеров AVR (извлечь корень и возвести в квадрат)?

Сделать быстро при таком варианте не получится. Мой опыт подсказывает, что надо поработать над алгоритмами регулирования.
Альтернативное предложение или идея.
Возможно системе регулирования для качественного регулирования можно сделать перерасчет входного сигнала под датчик, т.е. обратное преобразование. Тогда не требуется скоростная обработка в контуре регулирования.
Для индикации можно медленно пересчитать сигнал датчика по Вашим алгоритмам.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 17 2008, 08:46
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(alexander55 @ Jul 16 2008, 12:42) *
Сделать быстро при таком варианте не получится. Мой опыт подсказывает, что надо поработать над алгоритмами регулирования.


Началось за здравие, кончилось за упокой.
1. Алгоритмы регулирования - может быть FUZZY logic будет проще.
2. Не верю в то, что автору надо больше разрядов, чем в uint16_t. В таком случае посчитаем: умножение 16*16 =18 тактов. При поразрядном уравновешивании имеем 16*18 =288 тактов+пересылка и сравнение. Скажем, выйдет чуть более 300 тактов. Это почти 20 мкс на 16МГц. Это долго?!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- yanita   Извлечение корня и возведение в квадрат в AVR   Jul 14 2008, 11:06
- - defunct   #include <math.h> корень - sqrt квадрат x*x...   Jul 14 2008, 11:28
- - ReAl   Цитата(yanita @ Jul 14 2008, 14:06) Здрав...   Jul 14 2008, 11:30
- - 777777   Цитата(yanita @ Jul 14 2008, 15:06) У мен...   Jul 14 2008, 11:36
|- - ReAl   Цитата(777777 @ Jul 14 2008, 14:36) А чис...   Jul 14 2008, 11:59
|- - mse   Цитата(ReAl @ Jul 14 2008, 15:59) ... Вид...   Jul 15 2008, 07:28
||- - ReAl   Цитата(mse @ Jul 15 2008, 10:28) 24р это ...   Jul 15 2008, 13:30
|- - 777777   Цитата(ReAl @ Jul 14 2008, 15:59) Код cl...   Jul 15 2008, 10:22
- - Kovrov   ну наверное это clr work_h clr work_l   Jul 15 2008, 11:37
- - jasper   Быстрый, но не очень точный способ извлечения корн...   Jul 16 2008, 06:38
- - SpyBot   Неплохо бы уточнить, чем измеряем. Возможно, можно...   Jul 16 2008, 13:58
|- - alexander55   Цитата(SpyBot @ Jul 16 2008, 17:58) Непло...   Jul 17 2008, 04:41
- - yanita   Спасибо всем за помощь. Дело в том, что я не особо...   Jul 17 2008, 14:48
- - defunct   Цитата(yanita @ Jul 17 2008, 17:48) Вот и...   Jul 17 2008, 21:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016