Что такое "ШИМ=10 мс." и 98 мс. ? Вы, похоже, с трудом понимаете что такое ШИМ. В Мс. измеряется время. Как его к ШИМу привязать ?
PS: Плохо, когда человек не может объяснить что ему нужно. Вас, действительно, трудно понять...
Вполне
Просто не нужно употреблять те слова, значение которых Вы с трудом понимаете, для того, что-бы угодить оппоненту. Выражайтесь "своим языком", т.е. как сами понимаете происходящее. Вас всегда переспросят то, что не понятно.
Аlex писал(а):Просто не нужно употреблять те слова, значение которых Вы с трудом понимаете, для того, что-бы угодить оппоненту. Выражайтесь "своим языком", т.е. как сами понимаете происходящее.
Я понимаю и так и так. 10мс. - длительность импульса ШИМ или по заполнению = 10%. По моему так. Это при периоде ШИМ 100мс.
Вот это:
Аварийный режим - пропадание частоты на выходе при аварии датчика 50% ШИМ.
И запаздывание так и не понял, как его прикрутить и куда. Так, как Вы описываете в регулировании возникают неоднозначные ситуации. Поэтому без него.
----
Вобщем сделал как понял и как смог. Дискретность ШИМ 2 мсек, ограничение связано с некоторыми трудностями реализации. Соответственно число ступеней 50. Устанавливаются две температуры: нижний и верхний пределы... Подробное описание во вложении. Там же проект в Proteus (почти схема) и прошивка.
Вот это:
Аварийный режим - пропадание частоты на выходе при аварии датчика 50% ШИМ.
И запаздывание так и не понял, как его прикрутить и куда. Так, как Вы описываете в регулировании возникают неоднозначные ситуации. Поэтому без него.
----
Вобщем сделал как понял и как смог. Дискретность ШИМ 2 мсек, ограничение связано с некоторыми трудностями реализации. Соответственно число ступеней 50. Устанавливаются две температуры: нижний и верхний пределы... Подробное описание во вложении. Там же проект в Proteus (почти схема) и прошивка.
Огромное спасибо за оперативность! Да. С аварийным режимом мой косяк. Коряво объяснил, сам даже понял с трудом. Погонял проект в Протеусе. Есть одна ошибка в работе и одно пожелание. Ошибка.
Пример:
tl=90
th=100
при понижении температуры до 90,9, импульс достигает величины 10мс. и при продолжении падения температуры продолжает уменьшаться. При 90,1 импульс 2мс. но при 90 импульс становится 10мс. Импульс управления не должен быть менее 10мс.
В работе контроллера управления двигателем есть такая особенность что при срыве частоты на входе или уменьшении импульса меньше 10мс. происходит срыв управления и набор оборотов до 100% мощности.
И одно пожелание:
при аварии датчика устанавливать не 98мс. а 50мс. т.е 50% оборотов эл. двигателя.
Сам вентилятор имеет мощность 850вт. и диаметр лопостей 520мм. Тягу создает очень хорошую и шум воздуха тоже не слабый.
Pavel_v писал(а):
Ошибка.
При 90,1 импульс 2мс. но при 90 импульс становится 10мс. Импульс управления не должен быть менее 10мс.
Исправил.
Pavel_v писал(а):
И одно пожелание:
при аварии датчика устанавливать не 98мс. а 50мс. т.е 50% оборотов эл. двигателя.
Сделал.
Проверьте.
ОГРОМНОЕ СПАСИБО! Проверил! Версия уже вполне работоспособная. Но я бы поменял немного алгоритм расчета заполнения ШИМ. Сейчас получается что надо ставить нижнюю границу температуры на 1 градус ниже.
Пример:
Устанавливаем 90гр. Шим начинает меняться только с 91гр.
Я так понимаю что в алгоритме сначала идет подсчет градации шим, относительно придела температур, а подом делаете поправку по нижнему приделу 10%? Если это так то мне кажется что надо делать сначала -10% а потом вычислять градацию ШИМ по пределу температуты. Если я не прав то поправте пожалуйста, т.к. исходников не вижу и ни чего сказать не могу. Готовый исходник я еще могу переделать, худо-бедно, а вот написать с нуля чего то ни как. Тем более ШИМ. Пробовал. Но вышла такая ахинея....... Как делать - понимаю, а вот как доходит до реализации...
Начал сегодня делать ДВА варианта платы, себе и жене на машину. У жены обычный вентилятор, с коллекторным двигателем. На коллекторный двигатель могу выложить на форум. Я сомневаюсь что для моей версии кому то подойдет, кроме владельцев мерседес.
Только для полной универсальности (для коллекторных двигателей) я бы еще добавил одну переменную. начальный процент заполнения ШИМ (10мс. изменяемые от до 30мс). Т.к. эл. двигатели разные то и момент на валу, при пониженном напряжении разный. Коэффициент в приделах 10-30% от нижнего придела.
А так за помощ ОГРОМНОЕ СПАСИБО!!!!!!!!!!
Погонял последнюю версию проекта termometr_v20_16F84. Есть одна ошибка:
При шаге регулирования (st)=1 выдает сразу 4мс., при шаге 2 получается уже 6мс. и так далее...
Немного не удобно при расчетах параметров. Сразу прям и запутался. А так получилось очень интересно. Надо будет попробовать на реальном коллекторном двигателе. На моем, который с контроллером, все должно пойти нормально а вот с коллекторным наверное частоты ШИМ может оказаться маловато. Хотя не факт.
Pavel_v писал(а):Есть одна ошибка:
При шаге регулирования (st)=1 выдает сразу 4мс., при шаге 2 получается уже 6мс. и так далее...
Исправил, проверяйте еще.
P.S.
По условным обозначениям: st рассчитывается как 100 мсек деленное на 50 (дискретность изменения ширины импульса) и всегда равно 2 мсек.
Ура!!! Заработало в железе!!! Прошу прощения за столь долгую задержку. Был на южном берегу Карского моря (командировка)...
Результат испытаний.
С безколекторным двигателем от мерседес все работает просто замечательно а вот для коллекторного частота ШИМ маловата.
Можно как то ввести еще одну переменную в настройках "частота ШИМ"? Скажем "F" от 0 до 100. 0=10 Гц и приращение с каждой единицей по 100 Гц.
Pavel_v писал(а):...Скажем "F" от 0 до 100. 0=10 Гц и приращение с каждой единицей по 100 Гц.
Тут сильно не разгонишься. Связано с особенностями датчика температуры. Если нужна большая частота, то надо переходить на другой МК, например PIC16F628A.
Pavel_v писал(а):А до какой частоты можно разогнаться? Хотя бы до 20-30 кГц. получится?
В данной разработке до 20 Гц.
---
Для правильной работы с датчиком, должны быть сформированы четкие интервалы времени во время передачи/приема данных. Самый продолжительный - ~1 мсек. Это и будет минимальной величиной дискретизации ШИМ. Другими словами, минимальная ширина одного импульса 1 мсек. Теперь эту величину надо умножить на количество ступеней регулировки мощности. Если взять 100, то будет 100 х 1 = 100 мсек. То есть 10 Гц.
Я взял интервал с запасом (2 мсек) и число ступеней меньше (50), но в сумме так и вышло.
Для дальнейшего увеличения частоты нужно с ювелирной точностью рассчитать работу с датчиком (образно: между ударами сердца), что на практике может привести к сбоям.
Все решается элементарно, если использовать МК с аппаратным ШИМ. Если Вы в командировке заработали 1,5 лишних доллара, то купите PIC16F628A, я Вам перепишу под него прошивку.
Спасибо за ликбез. Да действительно немного ступил. Но я же не в курсе каким способом Вы решали эту задачу. Хорошо еще что хватило времени все это обработать.
PIC16F628A у меня есть пара штук. Просто PIC16F84A скопилось кучка малая. А на 628-й много мороки перевести эту задачу? И получится ли работать от встроенного генератора, там кажется 4мГц. есть?
Pavel_v, я переделал под 628-ой "не глядя" на ТЗ. Проверьте работу, если что не так - сформулируйте заново ТЗ, перечитывать всю переписку нет сил.
Изменения:
- 100 ступеней регулировки;
- частота ШИМ 2,5 кГц;
- кварцевый резонатор не нужен.
Во вложении проект в Proteus и прошивка.