Что-то ни одна ссылка не работает...У меня, или проблемы у всех???
Вид для печати
Что-то ни одна ссылка не работает...У меня, или проблемы у всех???
Наконец, довел большинство своих макросов до стабильной версии.
Буду потихоньку выкладывать наиболее полезные.
Первым идет макрос определения времени программного цикла "dt".
Используется в фильтрах, регуляторах и прочих алгоритмах реального времени.
Макрос и описание к нему во вложении. Исходный файл описания либо файл изображения могу дам по запросу (если например, оное будет полезно для добавления этого макроса в онлайн-библиотеку).
В будущем выложу свои фильтры (скользящая средняя, адаптивная скользящая средняя) и свою реализацию ПИД, а то я часто всем советую делать рукописный ПИД, но ни разу не выложил ту его версию, что я считаю правильной=)
А зачем считать dt , а не использовать сам цикл ПР?
Сам цикл ПР меняется от сложности программы ,но постоянен для данного проекта .То есть цикл ПР является минимальным квантом времени ,меньше его вычислять нет смысла ,а больше -не та будет точность .Ибо дельта Т должна стремится к нулю в идеале , в ПР к времени цикла ...
Я же говорю ,что его можно вообще не вычислять ,а применять . Например ,возьмите ADD на один вход подайте значение ,а второй вход соедините с его же выходом - получите интегратор ,с квантом времени -цикл ПР.
Представьте, что нам нужно компенсировать инерцию датчика, которая составляет 1 секунду. По началу у нас 1000 циклов в секунду, мы пишем t_ист=t_показ+dt*1000 и идем дальше.
По началу это работает, но по мере усложнения программы цикл внезапно становится равен 2 миллисекундам. И наш алгоритм начинает перерегулировать. Если не знать эту тонкость, можно долго не понимать, что происходит, почему при удалении одного элемента все работает, а при добавлении любого нового начинается перерегулирование)
Вот для борьбы с этим и будет полезно автоматическое вычисление dt. В будущем когда программа устаканится, вы всегда можете заменить макрос dt на константу с определенным известным вам значением.