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

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