Страница 1 из 1

Дифференцирование показаний датчика угла поворота

Добавлено: 31 июл 2018, 16:16
sdv_cyborg!
Доброго времени суток.
В ходе разработки сервопривода на основе К1921ВК01Т возникла дилемма. Сервопривод представляет собой мотор с редуктором, на выходном валу которого установлен датчик угла поворота, но конструкцией установка датчика угла поворотов нигде не предусмотрена - ни энкодера, ни Холла. Остается, собственно говоря, определять обороты по ЭДС самоиндукции (используется ДПТ) и дифференцированием значений датчика угла поворота. Однако, насколько мне известно, дифференцировать лишний раз никакие данные, особенно в целочисленных расчетах, крайне нежелательно. Поэтому хотелось бы попросить подсказать, какие методы численного дифференцирования пригодны для этой задачи? Интересует именно практическое мнение, имеет ли смысл связываться с дифференцированием и какой именно метод годится исходя из практического опыта? Или лучше сразу переходить на измерение оборотов по ЭДС самоиндукции.

Re: Дифференцирование показаний датчика угла поворота

Добавлено: 07 авг 2018, 15:27
Лашкевич Максим
Добрый день. Какой тип электродвигателя? Какую задачу выполняет сервопривод? На нулевой скорости положение все равно не определить по противоЭДС. Давайте начнем с постановки задачи - скорости, точности, какой объект и т.п. Пока до методов дифференцирования здесь далеко.

Re: Дифференцирование показаний датчика угла поворота

Добавлено: 07 авг 2018, 16:09
sdv_cyborg!
Здравствуйте.
Электродвигатель постоянного тока с постоянными магнитами, ДП-112. Сервопривод через редуктор управляет положением лафетного ствола, всего два привода, по двум осям.
По скорости отработки положения требование не более 5с, по точности допускается погрешность в установившемся режиме не более 5%. Все это уже промоделировано в матлабе в виде системы трехконтурного подчиненного регулирования, собственно говоря дело дошло уже до реализации в железе.
Положение мы как раз определяем датчиком угла положения, подключенного по SSI интерфейсу, а вот со скоростью - туже, т.к. ни под какой энкодер не предусмотрено места в механической части сервопривода, варианта определять скорость всего два: или по ЭДС самоиндукции, или дифференцированием значений датчика угла положения.

Re: Дифференцирование показаний датчика угла поворота

Добавлено: 07 авг 2018, 18:13
Лашкевич Максим
Все понятно. Ну тогда дифференцированием, конечно же. И можно использовать фильтр для сглаживания "дискретности" датчика. В простейшем случае можно поставить 1/(Tp+1), а если надо можно и до калмана дойти.

Re: Дифференцирование показаний датчика угла поворота

Добавлено: 07 авг 2018, 18:18
Лашкевич Максим
Вот, можно посмотреть простейшую реализацию тут для энкодера, но где скорость рассчитывается программным дифференцированием. https://bitbucket.org/niietcm4/motorcon ... ew-default

Смотреть под if (p->SpeedCalcType==SPEED_CALC_TYPE_BY_SOFT)

Re: Дифференцирование показаний датчика угла поворота

Добавлено: 07 авг 2018, 21:13
sdv_cyborg!
Вот же, перед носом был пример, т.к. разбирался как раз в проекте MotorControlDemo, и не обратил внимания. Спасибо за совет, буду просто дифференцировать с фильтром. А то уж думал, что нужно будет сглаживать интерполяционными многочленами Ньютона или Лагранжа.