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

Таблица 8.4 скорость падающего шара

Эта задача обратна той, которую мы только что рассмотрели. Как же решить ее, если скорость машины непостоянна, если она то ускоряется до 90 км/час, то замедляется, затем где-то останавливается у свето­фора и т.д.? Сделать это нетрудно. Нужно использовать ту же идею и выражать полное расстояние через бесконечно малые его части. Пусть в первую секунду скорость будет v 1 , тогда по формуле s= v 1 t можно вычислить расстояние, пройденное за эту секунду. В следующую секунду скорость будет несколько другой, хотя, может быть, и близкой к первоначальной, а расстояние, пройденное машиной за вторую секунду, будет равно новой скорости, умноженной на интервал времени (1 сек). Этот процесс можно продолжить дальше, до самого конца пути. В ре­зультате мы получим много маленьких отрезков, которые в сум­ме дадут весь путь. Таким образом, путь является суммой ско­ростей, умноженных на отдельные интервалы времени, или s = vt, где греческая буква  (сигма) означает сумми­рование. Точнее, это будет сумма скоростей в некоторые мо­менты времени, скажем t i , умноженные на t:

причем каждый последующий момент t i+1 находится по пра­вилу t i+1 =t i +t. Но расстояние, полученное этим методом, не будет точным, поскольку скорость за время t все же изменяет­ся. Выход из этого положения заключается в том, чтобы брать все меньшие и меньшие интервалы t, т. е. разбивать время дви­жения на все большее число все меньших отрезков. В конце концов мы придем к следующему, теперь уже точному выра­жению для пройденного пути:

Математики придумали для этого предела, как и для диф­ференциала, специальный символ. Значок  превращается в d, напоминая о том, что интервал времени сколь угодно мал, а знак суммирования превращается в ∫ - искаженное большое S, первая буква латинского слова «Summa». Этот значок назван интегралом. Таким образом, мы пишем

s=∫v(t)dt, (8.8)

где v(t) - скорость в момент t. Сама же операция суммирования этих членов называется интегрированием. Она противополож­на операции дифференцирования в том смысле, что производная этого интеграла равна v(t), так что один оператор (d/dt) «уничто­жает» другой (∫). Это дает возможность получать фор­мулы для интегралов путем обращения формул для дифферен­циалов: интеграл от функции, стоящей в правой колонке табл.8.3, будет равен функции, стоящей в левой колонке. Диф­ференцируя все виды функций, вы сами можете составить таблицу интегралов.

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

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

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

. (8.7)

Таблица 8.4 Скорость падающего шара

Математики придумали для этого предела, как и для дифференциала, специальный символ. Значок превращается в , напоминая о том, что интервал времени сколь угодно мал, а знак суммирования превращается в - искаженное большое , первая буква латинского слова «Summa». Этот значок назван интегралом. Таким образом, мы пишем

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

В разделе на вопрос никак не могу понять что такое интегралы заданный автором Простирнуть лучший ответ это Нарисуйте оси координат и какую-ндь кривую. Всё равно какую, лишь бы она представляла собой непрерывную и однозначную функцию (то есть рисовать синус по вертикали не надо). А потом отметьте на оси Х две точки и от них проведите вертикальные линии. Вот эти линии, сама ось Х и кривая образовали "четырёхугольник" (ну и что, что одна сторона у него кривая). Так вот площадь этого четырёхугольника - как раз интеграл от этой кривой.
Можно и физический пример привести. Есть такие приборы - акселерометры. Они позволяют очень точно измерять ускорение. Внимание, вопрос: как, пользуясь таким прибором, измерить пройденный путь? Ответ: проинтегрировать его показания по времени (два раза). Ведь скорость - это интеграл от ускорения, а пройденный путь - интеграл от скорости.
Ещё один пример, весьма для меня жизненный. Есть матрица ПЗС, и есть переменный световой поток. Опять же - вопрос: какой сигнал зарегистрирует матрица? Ответ: это будет интеграл от освещённости по времени (за время накопления одного кадра) .
Всё это я к чему: математика - чертовски практичная вещь...

Ответ от Невроз [гуру]
Грубо говоря определения площади не ровного тела. Которое нувозможно разделить на правильные формы.


Ответ от Kida [гуру]
Интеграл, это то, что было до нас.... а мы - его производные.. .
Толсьая многотомная книжко Фихтенгольца тебе в помощь.. . Познакомься с ботаником..


Ответ от Колосовые [активный]
Понятие интеграла довольно абстрактное и большое (интегралы, например, разных типов бывают) , и приложений у них куча. Так что это вопрос из серии: "А расскажите мне прямо тут, просто и доступно историю Руси при Иване Грозном".


Ответ от ScrAll [гуру]
Делить на Ноль - абсурдно, но на Оч-чень маленькую величину можно.. .
А сколько будет весить пучок таких ма-аленьких величин?
Интеграл поможет.

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

1. Метод прямоугольников

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

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

y(n) = y(n-1) + x(n-1)*T

где:
n — номер текущего шага;
y(n) — значение интеграла на шаге n;
y(n-1) — значение интеграла на предыдущем шаге n-1;
x(n-1) — значение подынтегральной функции на предыдущем шаге n-1;
T — приращение времени на текущем шаге.

Другими словами, на каждом этапе работы алгоритма мы прибавляем к уже накопленной площади, новый прямоугольник, который на картинке отмечен пунктиром.

Как видно из рисунка, при расчете площади мы упускаем из виду небольшие криволинейные треугольники, которые образуются между верхней стороной прямоугольника и кривой. Сумма площадей этих треугольников дает нам суммарную погрешность данного метода, которая является самой высокой среди всех остальных подходов.

2. Метод трапеций

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

Как известно, площадь трапеции со сторонами a и b равна:

S = a*b*h/2

Исходя из этого, разностное уравнение для данного метода интеграции принимает вид:

y(n) = y(n-1) + (x(n-1) + x(n))*T/2

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

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

3. Физический смысл интеграла

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

a(t) = a0

Интегрируя данную функцию по времени t мы получим выражение для функции скорости v от времени t:

v(t) = v0 + a0*t

Еще раз интегрируя полученное выражение мы получим уже функцию расстояния s от t:

s(t) = s0 + v(t)*t = s0 + v0*t + a0*t*t/2

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

4. Интегрирование показаний гироскопа

Как уже неоднократно говорилось, на выходе типичного MEMS-гироскопа мы имеем вовсе не угол наклона датчика, а угловую скорость его вращения. Другими словами, MEMS-гироскоп — это на самом деле гиротахометр , и чтобы узнать угол наклона нам потребуется проинтегрировать его показания.

Пусть угол поворота датчика angle измеряется в градусах (гр), а угловая скорость вращения aspeed в градусах за секунду (гр/сек). Для вычисления интеграла применим метод прямоугольников. Для этого разобьем временную ось на небольшие отрезки по delta секунд в каждом. Таким образом, каждые delta секунд мы будем вычислять площадь очередного прямоугольника и прибавлять полученное значение к уже накопленной площади:

angle = angle + aspeed * delta

Ниже представлен код соответствующей программы для Arduino.

Const int gyrPin = A0; const int INTEGR_DELAY = 20; const int SERIAL_DELAY = 100; // Датчик Pololu LPR550AL const float vref = 3.3; const float vzero = 1.23; const float sens = 0.0005; const float adc = 1023; int integr_time, serial_time, real_delta; short gyr_raw; float angle, aspeed; void setup() { Serial.begin(9600); angle = 0; } void loop() { // Интегрирование скорости поворота гироскопа time = millis(); real_delta = time - integr_time; if(real_delta > INTEGR_DELAY){ integr_time = time; gyr_raw = analogRead(gyrPin); aspeed = ((gyr_raw * vref)/adc - vzero)/sens; angle = angle + aspeed * real_delta; } // Отправка угла через последовательный порт на ПК time = millis(); if(time - serial_time >

Данный Arduino-скетч рассчитывает угол наклона гироскопа и отправляет данное значение на рабочую станцию через последовательный порт каждые 100мс. Следует заметить, что для преобразования входного аналогового сигнала в конкретное значение угловой скорости нам потребовалось использовать известное выражение:

gyr = (gyr_raw * vdd — gyr_zero) / gyr_sens

где величины vdd, gyr_zero и gyr_sens следует брать из спецификаций используемого гироскопа.

5. Повышение точности интегрирования

Мы знаем, что точность расчета интеграла тем больше, чем меньше отрезок дискретизации delta. В указанной выше программе, данный временной отрезок delta равен 20мс (INTEGR_DELAY), что в принципе позволяет достаточно сносно решать задачу стабилизации мультикоптера. Как вариант, для увеличения точности мы можем попробовать уменьшить delta, если конечно нам это позволит мощность микроконтроллера.

Либо, мы можем применить другой метод интегрирования, например метод трапеций. В последнем случае программа вычисления угла наклона гироскопа не слишком усложнится и примет следующий вид:

Const int gyrPin = A0; const int INTEGR_DELAY = 20; const int SERIAL_DELAY = 100; // Датчик Pololu LPR550AL const float vref = 3.3; const float vzero = 1.23; const float sens = 0.0005; const float adc = 1023; int integr_time, serial_time, real_delta; short gyr_raw; float angle, old_aspeed, aspeed; void setup() { Serial.begin(9600); angle = 0; aspeed = 0; } void loop() { // Интегрирование скорости поворота гироскопа time = millis(); real_delta = time - integr_time; if(real_delta > INTEGR_DELAY){ integr_time = time; gyr_raw = analogRead(gyrPin); aspeed = ((gyr_raw * vref)/adc - vzero)/sens; angle = angle + (aspeed + old_aspeed) * real_delta / 2; old_aspeed = aspeed; } // Отправка угла через последовательный порт на ПК time = millis(); if(time - serial_time > SERIAL_DELAY){ serial_time = time; Serial.print(angle, 4); } }

Заключение

Итак, теперь мы умеем интегрировать показания гироскопа и получать угол наклона вокруг его осей. Следовательно, мы можем сделать простейшую систему стабилизации для квадрокоптера на основе одного лишь датчика и платформы Arduino Uno, к примеру. Такой аппарат будет сносно держаться в воздухе, но его будет всегда немного вести в стороны из-за дрейфа нуля у гироскопа. Об этом плохом эффекте и о том, как его победить, я поведаю в следующей .

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

где пробегают все степени свободы; кинетическая энергия; потенциальная энергия; считаем, что связи не зависят от

времени. Уравнения движения в лагранжевой форме для каждой координаты имеют следующий вид:

где Q - силы, не вытекающие из потенциала (силы трения). Уравнения (1.20) могут быть также выведены из вариационного принципа или непосредственным сравнением с ньютоновскими законами движения. Если мы определим гамильтониан через

не определяя пока продифференцируем то получим

где выражение (1.20) подставлено в третью сумму с правой стороны. Если затем определить посредством выражения

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

Здесь обобщенный импульс, который для случая, обсуждавшегося ранее, сводится к обычному импульсу. В последующих параграфах мы будем предполагать, что все силы имеют потенциал; в этом случае и (1.24) сводится к (1.1) - каноническим уравнениям Гамильтона.

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

полную производную по времени от произвольной функции и подставляя уравнения Гамильтона (1.1), получаем

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

Для гамильтониана, независящего явно от времени, и для специального случая, когда все координаты циклические,

Интегрируя, получаем соотношение

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

Мы уже нашли преобразование от лагранжевой формы с переменными к гамильтоновым пер еменным Более общее преобразование ведет к теории Гамильтона - Якоби классической механики. Для перехода от переменных к новой группе переменных их можно связать посредством функции, зависящей от одной старой и одной новой переменных. Так как лагранжиан выводится из вариационного принципа, то, используя (1.21), имеем

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

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

Считая, что переменные в (1.29) независимы, находим, сравнивая члены в (1.28) и требуя, чтобы члены при равнялись нулю, что

Можно также определить произвольные функции как функции других пар переменных:

Если, к примеру, образуем преобразованием Лежандра

то получим уравнения преобразования:

Функции определяются преобразованиями, сходными с (1.31), которые ведут к соответствующим уравнениям преобразования.

С помощью этих преобразований можно показать, хотя бы формально, как могут быть решены уравнения движения динамической системы. Заслуживают интереса два случая: один - с зависящим от времени гамильтонианом, другой - с гамильтонианом, не зависящим от времени. В первом случае положим что эквивалентно преобразованию к новым координатам и импульсам, производные по времени от которых, как следует из канонических уравнений движения, равны нулю. Таким образом, координаты и импульсы сами являются константами, что можно конкретизировать как начальные значения непреобразойанных величин. Таким образом, уравнения преобразования являются в действительности

нием, дающим координату и импульс в любой момент времени в зависимости от начальных значений. Подставляя (1.32) в (1.34) с получаем дифференциальное уравнение в частных производных.