Главная » Микроконтроллеры
Призовой фонд
на май 2017 г.
1. Тестер компонентов MG328
Паяльник
2. Осциллограф DSO138
Паяльник
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Похожие статьи:


Вычисление функций

Решение уравнений по известным зависимостям – типичная зада для микропроцессорной системы. Удельная доля времени, которое тратится на вычислительные операции, сильно зависит от области применения микроконтроллера. Если его основным предназначением является обработка данных, что особенно характерно для 16-32-разрядных сигнальных процессоров, то в его состав, как правило включены и специальные аппаратные узлы (умножители, делители, сумматоры и т.д.). Что же касается ниши 8-разрядных встраиваемых микроконтроллеров, то здесь картина выглядит несколько иначе. Их главная задача - организация автономного управления небольшой системой, сбор и передача информации. Такие функции требуют интенсивной работы системы ввода-вывода, а обработку данных (если в этом есть необходимость) обычно перекладывают на компьютер.  

Все вышесказанное это, конечно, только общее правило и существует множество приложений где, сложных вычислений, связанных с использованием различных алгебраических функций, не избежать. В этом плане AVR, с их производительностью и объемом памяти, имеют значительное преимущество перед многим 8-битным микроконтроллерам. Но и их возможности можно быстро исчерпать, если использовать неправильные методы решения данной задачи.

Вычисление функций с помощью разложения в степенной ряд

Большинство зависимостей, с которыми так или иначе приходится встречаться на практике 8-разрядному микроконтроллеру - линейные. Если говорить о цифровых датчиках температуры, давления, угла поворота, тока и т.п., то все они, как правило, связывают результат измерения X с фактическим значением величины Y = F(X) уравнением вида Y = a*X + b.

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

Когда информация приходит в виде аналогового сигнала или величина сопоставляется с числом или длительностью импульсов,
то зависимость может быть и не похожа на прямую. Но и здесь с некоторой погрешностью функция, чаще всего, может быть линеаризована. Однако многие физические процессы имеют значительно более сложные зависимости от своих параметров и включают такие функции, как sinX, sqrtX, lnX и т.д.

Самый общий способ решения подобных уравнений заключается в разложении функции Y = F(X) в степенной ряд Тейлора:
Разложение функции в степенной ряд Тейлора

Ниже приведены примеры разложения некоторых функций:
sin X = X – X3/6 + X5/120 – …   ,   |X| < ∞
tg X = X + X3/3 + 2*X5/15 + …   ,   |X| < π/2
eX = 1 + X + X2/2 + …   ,   |X| < ∞  
ln X = (X-1) – (X-1)2/2 + (X-1)3/3 - … ,   0 < X ≤ 2.

Точность приближения будет зависеть от количества взятых членов ряда. Скажем, при sin X ≈ X относительная погрешность не выйдет за пределы 0,1% только при аргументе из диапазона |X| ≤ 0,077 рад (|X| ≤ 4,4°). Если sin X ≈ X – X3/6, то при той же погрешности аргумент можно будет задавать уже из области |X| ≤ 0,580 рад (|X| ≤ 33,2°).

Кроме того, все ряды сходятся с различной скоростью. Но это не представляет большой проблемы. При ограниченном диапазоне изменения X, для всех практически важных функций удается подобрать аппроксимирующие полиномы, которые обеспечивают необходимую точность приближения при использовании всего 3…5 членов ряда.

Для решения степенных уравнений необходимы только операции сложения и умножения. Однако сложности проявляются здесь в другом. При вычислении функций возникают иррациональные числа, для представления которых необходимо в общем случае пользоваться форматом с плавающей запятой. Программирование таких операций на ассемблере связано со значительными трудностями и выходит за рамки темы данной книги.

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Макетная плата для пайки (10 шт) Металлоискатель MD3010II
вверх