Библиотека для моделирования динамических звеньев
Вложений: 1
Примеры звеньев - смотри тут.
Если вы незнакомы с Теорией Автоматического Управления, то, возможно, вы несколько не понимаете: о чём идёт речь. Простым языком теория изложена здесь. Впрочем, чтобы использовать библиотеку на практике - эти знания вам не нужны. Сразу пример (к сожалению, вам понадобиться Xors3D). Читаем этот топик. Вот решение с визуализацией (на скорую руку): Код:
#include <xors3d.h> Продублирую код заголовочного файла ниже: Динамическое звено описывается: во frontend: коэффициентами числителя и знаменателя передаточной функции звена. в backend: пространство состояний. Для моделирования необходимо реализовать решение диф.ур-ий. Библиотека предусматривает три метода (чем, точнее, тем дольше одна итерация решения), переключаемых функцией SetODE Метод Эйлера (дефолтный решатель) Heun's method Метод Рунге — Кутты. Библиотека протестирована, а её выход сравнён с аналогичными реализациями на MATLAB. За это огромное спасибо Felix (реализация, тестирование, советы). Несколько страшноватенькая реализация (и, конечно же, тот кто не понял теорию - обязательно упрекнёт меня хоть в этом), а именно - обилие векторов, которые при желании можно было бы объединить в матрицу, объясняется привязкой к исходной математической сущности алгоритмов и моделей. К тому же подобная борьба за красоту ещё сильнее усложнила бы решатели. Да - я не стал городить класс для работы с матрицами, а набросал конкретные inline-реализации для конечного числа операций с векторами и квадратными матрицами без всяких защит от дурака - это служебные методы библиотеки, и именно поэтому они включены в её пространство. Объектный подход просто чудовищно бы прибил производительность (куча присваиваний и иных манипуляций в решателе на каждый такт). Однако обортная сторона такого подхода - код решателя превратился в набор команд для абстрактного матричного ассемблера. С другой стороны - там вам копаться не придётся. Пароль от архива
|
Ответ: Библиотека для моделирования динамических звеньев
Для этой задачи, библиотеку можно использовать тоже (хотя сперва надо всё же разобраться с характером помех).
|
Ответ: Библиотека для моделирования динамических звеньев
Демку запустить не на чем.
Я понял это нечто вроде easing? |
Ответ: Библиотека для моделирования динамических звеньев
Цитата:
На сайте, как я понял, представлена коллекция функций от времени с фиксированным параметром x. Иными словами - частные случаи. Так что ответ на вопрос - "да". Представь, что между указателем мыши и объектом находится пружина. Как будет выглядеть функция горизонтальной координаты, когда ты переместишь мышь из позиции 121px в 348px за 1.2сек? При этом ты можешь указать степень затухания колебаний, "медлительность" пружины и усиление/ослабление, которое оно придаёт объекту. Но это если про демку говорить. Так же с помощью этих механизмов можно реализовывать другие зависимости между входом и выходом. Например, поведение объекта в плотной среде. Таким же образом можно влиять на выходной спектр сигнала (например подавлять высокочастотные колебания), т.е. осуществлять фильтрацию сигнала от паразитных составляющих. Например если в ходе раскачивания на качелях начать слишком быстро менять направления усилия, то качели просто остановятся, а пользователь будет дрыгаться туда-сюда. Вооот - качели фильтр нижних частот. Что-то меня понесло. Пока не ляпнул лишнего - приостановлюсь |
Ответ: Библиотека для моделирования динамических звеньев
Вложений: 1
Цитата:
|
Часовой пояс GMT +4, время: 08:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot