Я считаю, что ничего страшного не происходит. Всегда есть прототип, который потом более или менее выкидывается и делается нормальное железо/софт с учётом ошибок предыдущего. В корзину при этом идёт только железо, которое восполнимо. А опыт остаётся навсегда
( ... )
Вы правильно сказали, требуется именно "положительное подкрепление", а то постоянные неудачи вгоняют в тоску. Перед подходом к БУ была попытка сделать контроллер ведущего двигателя, и тоже наполовину неудачная. Отложил. Вроде, не берусь за сложные проекты. Но все равно сплошные неудачи
( ... )
Лично я за STM32. Раньше не писал, так как боялся холивара Atmega vs STM32.
Я программировал и на том и на другом. Моё мнение однозначно - у Atmega ADC считай что и нету. Причем на STM32 (начиная с STM32F3 и выше) можно использовать float без опасений за производительность.
STM32H750VBT6 стоит 250 рублей, а это честные 400 МГц частоты и довольно быстрый (хотя и кривоватый) 16-ти битный ADC.
Программировать STM32 намного сложней и неприятней. В этом магнитофоне STM32 заложен в измерителе уровня (из-за АЦП), потихоньку им тоже занимаюсь. Очень трудно себя заставить ворошить эти тонны документации, к проекту не хочется подходить из-за процессора. Ничего общего у такого программирования с получением фана нет. Поэтому стараюсь такого избегать и где только возможно ставлю AVR.
Второй момент - нет гарантии, что проблемы в САР натяжения из-за скорости процессора или из-за плохого АЦП. Чисто в теории все должно работать и на AVR. Хотя уже почти уговорили попробовать сделать макет САР натяжения на STM32F100.
Почему Вы закрываете для меня в который раз мою ветку комментариев? Если я тут мешаю, так скажите прямо и я больше не буду никогда тут писать.
А теперь по делу, "но качество регулирования натяжения ленты не требуется какое-то рекордное"...
Речь не о рекордах, а о том, что в данном случае ПИД-ом поддерживается мгновенная величина, если бы нужно было поддерживать среднюю величину, было бы все прощще. Мешают артефакты цифрового ПИД, использование которого в данном месте я считаю инженерной ошибкой.
А что такое "закрываете ветку комментариев"? Это как? Я ничего не делаю.
Любая САР имеет ограниченное быстродействие и подавляет возмущения только в какой-то полосе частот. Тут сама механика является фильтром, выше 20 Гц практически ничего нет. Цифровой регулятор работает с частотой дискретизации 250 Гц, есть основания полагать, что в полосе до 20 Гц он справится. Не вижу инженерной ошибки в выборе типа регулятора, ошибка скорее в его конкретной реализации.
"А что такое "закрываете ветку комментариев"? Это как? Я ничего не делаю."
Выгладит это так: в начале топика моё сообщение, первое. Сейчас, если я нажимаю там репли, то ничего не происходит, сайт не пускает меня отправить новое сообщение в эту ветку. Я предположил, что Вы заморозили обсуждение в этой ветке как хозяин своего блога. Возможно, это не так. Заранее извиняюсь за подозрения.
По делу. К сожалению, я пока не могу заняться своим полусделанным проектом с ПИД, поддерживающем мгновенную точную температуру тоненькой спиральки(а это скорости повыше чем в ЛПМ). ПИД там сделан цифровым на СТМ32 по необходимости, ибо для аналоговой схемы тупо нет места. Работаю щас "на дядю", поэтому другими делами загружен.
Но, я достиг примерно таких же результатов, как и у вас, и поимел те же проблемы, какие вы тут и описываете. А именно, при поддержании средней величины, нагреватель там, и тд.. ПИД в цифре работает отлично, но при поддержании мгновенной величины цифровой ПИД уступает аналоговому.
Когда в блоке есть несколько слабозависимых рилтаймовых функций, удобнее всего сделать так, как делали в студийной и промышленной технике: каждая функция - свой блок. Сделать блок управления в виде кросс-платы с контроллером, который занимается исключительно логикой управления, а на ней несколько мезонинов со своими микроконтроллерами, реализующими какую-то функцию, никак не пересекающуюся с кодом других блоков. Не понравился вариант управления - поменял мезонин и всё, не надо заново проектировать весь БУ. :)
Comments 271
Reply
Reply
Совершенно необязательно. Дополнительные абстракции за тем и нужны, чтобы не писать всё на логике низкого уровня.
Reply
Reply
Я программировал и на том и на другом. Моё мнение однозначно - у Atmega ADC считай что и нету.
Причем на STM32 (начиная с STM32F3 и выше) можно использовать float без опасений за производительность.
STM32H750VBT6 стоит 250 рублей, а это честные 400 МГц частоты и довольно быстрый (хотя и кривоватый) 16-ти битный ADC.
Reply
Второй момент - нет гарантии, что проблемы в САР натяжения из-за скорости процессора или из-за плохого АЦП. Чисто в теории все должно работать и на AVR. Хотя уже почти уговорили попробовать сделать макет САР натяжения на STM32F100.
Reply
Мне вот скоро придётся портировать код с Cyclone IV на Zync XC7Z010. И плату под BGA256 (или BGA400) разводить :)
Reply
Reply
ну чуть подправить некоторые части.
а то "усовершенствованный" магнитофон превратится в современную балалайку.
Reply
Reply
А теперь по делу, "но качество регулирования натяжения ленты не требуется какое-то рекордное"...
Речь не о рекордах, а о том, что в данном случае ПИД-ом поддерживается мгновенная величина, если бы нужно было поддерживать среднюю величину, было бы все прощще. Мешают артефакты цифрового ПИД, использование которого в данном месте я считаю инженерной ошибкой.
Reply
Любая САР имеет ограниченное быстродействие и подавляет возмущения только в какой-то полосе частот. Тут сама механика является фильтром, выше 20 Гц практически ничего нет. Цифровой регулятор работает с частотой дискретизации 250 Гц, есть основания полагать, что в полосе до 20 Гц он справится. Не вижу инженерной ошибки в выборе типа регулятора, ошибка скорее в его конкретной реализации.
Reply
Выгладит это так: в начале топика моё сообщение, первое. Сейчас, если я нажимаю там репли, то ничего не происходит, сайт не пускает меня отправить новое сообщение в эту ветку. Я предположил, что Вы заморозили обсуждение в этой ветке как хозяин своего блога. Возможно, это не так. Заранее извиняюсь за подозрения.
По делу. К сожалению, я пока не могу заняться своим полусделанным проектом с ПИД, поддерживающем мгновенную точную температуру тоненькой спиральки(а это скорости повыше чем в ЛПМ). ПИД там сделан цифровым на СТМ32 по необходимости, ибо для аналоговой схемы тупо нет места. Работаю щас "на дядю", поэтому другими делами загружен.
Но, я достиг примерно таких же результатов, как и у вас, и поимел те же проблемы, какие вы тут и описываете. А именно, при поддержании средней величины, нагреватель там, и тд.. ПИД в цифре работает отлично, но при поддержании мгновенной величины цифровой ПИД уступает аналоговому.
Reply
Вопрос с ПИД, как я понимаю, чисто количественный. Для быстрых процессов нужна повыше частота дискретизации.
Reply
Reply
Reply
Leave a comment