Добрый день.
Сразу хочу сказать что опыта работы с подобными проектами ранее не имел вообще. (ТАУ)
Да и в программировании я особо не силен (если откровенно).
Решил попробовать реализовать управление, неким сервоприводом своими силами, но увы, оказалось знаний катастрофически не хватает.
А понимание того что ТАУ надо было все таки учить в институте пришло только сейчас.
Хочу сразу сказать что этот проект не коммерческий, а носит только образовательный характер. И большое желание реализовать его правильно.
Лирическое вступление окончено теперь о ТЗ.
Есть некий механизм (исполнения сименс) представленный на фото1.
Коллекторный мотор постоянного тока на 12вольт (см. пдфку)
DC_Motor_31_x_75_1.13.021.6XX.pdf ( 394.76 килобайт )
Кол-во скачиваний: 361Трехступенчатый шестеренчатый редуктор передаточным соотношением 2:1.
На выходном валу сидит червячная пара (ходовой винт + ходовая гайка).
Ходовая гайка посредством пальца *тягает за собой* поворотный рычаг (поступательное движение переходит во вращательно) на оси вращения рычага с одной стороны приклеен круговой магнит (для холла)
,с другом соединительная муфточка для сопряжения с валом.
На выходном валу находится некое *программное колесо (так называю в народе) на фото есть*
выглядит как сегмент шестерни, который фиксируется пластинчатой пружиной с роликом на конце. фото пружины нет.
хочу сказать что пружина очень жесткая.
Основная задача этого механизма переключение (вращение вала) кулисы выбора передач АКПП.
Выходной вал совершает вращение в диапазоне 0 - 58 гр. (регулируемая величина угол поворота) измеряется датчиком холла.
Всего есть четыре точки (угла), перемещении происходит из одной точки в любую из трёх оставшихся. Совершать эти перемещения необходимо очень быстро.
Трудность с которой я столкнулся это быстро остановиться в заданной точке без недолёта или перелёта. Я попытался реализовать подобие ПИ регулятора и настроил его таким образом, что доход до точки становился вялым и не всегда точка остонова была в разрешенных воротах. При условии когда возникало внешнее воздействие (легкое удержание пальцем) у системы был недолёт, остановка, и только потом интегральная часть наращивала воздействие. Для каждого из рабочих перемещений (а их 9ть) были подобраны Кр и Кд, одним из минусов считаю напряжение с датчика холла, оно не линейно. Решив реализовать правильное определения угла (требуются операции с плавающей точкой и double ) понял что 8 битного пика мало. Решил взять 16 бит пик. А также стал вопрос что надо попросить помощи на форуме. Для выбора правильного метода управления.
На фото видна родная плата управления я решил её оставить, выпаял аккуратно родной ST10F269-T3. На переходнике впаял туда свой пик.
На родной плате есть возможность управлять двигателем (Н-мост), измерять ток мотора, напряжение противо-эдс и угол поворота.
Также прилагаю осциллограмму тока и скорости мотора на которой видно как происходит огибание зубов.
Прошу прошение за сыр бор в объяснениях о механизме полагаю всё можно скомпенсировать фотографиями

Всем откликнувшимся спасибо.