Вопрос о коммутации
- vlasovzloy
- Друг Кота
- Сообщения: 20070
- Зарегистрирован: Чт янв 26, 2012 16:44:29
- Откуда: Таксимо
Re: Вопрос о коммутации
Классика рока не только лишь металл. Вон глубокофиолетовые например рокеры, а песни почти все про любовь
И металл тоже разный, есть магнитится а есть нержавейка. Тут тоже на любителя
И металл тоже разный, есть магнитится а есть нержавейка. Тут тоже на любителя
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
- Реклама
Re: Вопрос о коммутации
[uquote="vlasovzloy",url="/forum/viewtopic.php?p=4113003#p4113003"]И металл тоже разный, есть магнитится а есть нержавейка.[/uquote]
Чем дальше от установленной классификации, тем выше шанс найти шматик нержавейки.
А всё, что в струе - чисто чугун - 6000 за тонну.
Чем дальше от установленной классификации, тем выше шанс найти шматик нержавейки.
А всё, что в струе - чисто чугун - 6000 за тонну.
Re: Вопрос о коммутации
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112929#p4112929"]Сравнивал даже на новодельных винилах (особенно ярко проявилось на винилах группы Агата Кристи).[/uquote]ЧАВО???
Этих раздолбаев издали на виниле?
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
- vlasovzloy
- Друг Кота
- Сообщения: 20070
- Зарегистрирован: Чт янв 26, 2012 16:44:29
- Откуда: Таксимо
Re: Вопрос о коммутации
Я тебе больше скажу, только не падай со стула
https://www.avito.ru/moskva/kollektsion ... 2031172395
https://www.avito.ru/moskva/kollektsion ... 2031172395
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
[uquote="mickbell",url="/forum/viewtopic.php?p=4113217#p4113217"][uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112929#p4112929"]Сравнивал даже на новодельных винилах (особенно ярко проявилось на винилах группы Агата Кристи).[/uquote]ЧАВО???
Этих раздолбаев издали на виниле?[/uquote]
в СССР были изданны 2 альбома. Позорная Звезда и Декаданс.
В 2014 Бомба мьюзик издала всю дискографию
в СССР были изданны 2 альбома. Позорная Звезда и Декаданс.
В 2014 Бомба мьюзик издала всю дискографию
- Реклама
Re: Вопрос о коммутации
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112929#p4112929"]Тот мастеринг что делают под винил - намного лучше того что для цифровых записей.[/uquote]Audiophil detected!
Добавлено after 6 minutes 24 seconds:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112969#p4112969"]Агата Кристи конечно не зарубежный рок, но вполне себе интересная группа[/uquote]Однажды, лет так двадцать пять назад, ко мне во двор зашли, по-видимому, двое с гитарами, и давай под них петь песни. Все - из репертуара АК, как раз был пик популярности. Вообще-то я терпеть не могу, когда во дворе горланят... но эти так пели и играли - я подумал, уж не братки ли Самойловы собственными персонами пожаловали? К сожалению, кто - этого с пятого этажа, ещё и из-за деревьев, видно не было, а выходить на улицу было лениво. Однако мы с женой с удовольствием послушали весь концерт. Какой винил, какая оцифровка? Живой звук с доставкой прямо на дом.
Добавлено after 6 minutes 24 seconds:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112969#p4112969"]Агата Кристи конечно не зарубежный рок, но вполне себе интересная группа[/uquote]Однажды, лет так двадцать пять назад, ко мне во двор зашли, по-видимому, двое с гитарами, и давай под них петь песни. Все - из репертуара АК, как раз был пик популярности. Вообще-то я терпеть не могу, когда во дворе горланят... но эти так пели и играли - я подумал, уж не братки ли Самойловы собственными персонами пожаловали? К сожалению, кто - этого с пятого этажа, ещё и из-за деревьев, видно не было, а выходить на улицу было лениво. Однако мы с женой с удовольствием послушали весь концерт. Какой винил, какая оцифровка? Живой звук с доставкой прямо на дом.
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
CPC1008N подошли. Теперь буду алгоритм совершенствовать. Пока подстройка скорости реализована так.
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
freqtaho = TCNT0;
TCNT2=206;
TCNT0=0;
iter=1;
}
while (1)
{
if(iter==1){
if( freqtaho>1) {
if(OCR1A>0x00){
OCR1A=OCR1A-1;
}
}
if(freqtaho<1) {
if(OCR1A<0xff){
OCR1A=OCR1A+1;
}
}
iter=0;
}
Чип Atmega8. Timer 0 используется как счетчик. Timer1 - ШИМ. Timer2 - запитанный от внешнего кварца.
Вот вроде бы и работает, а с другой стороны оно недостаточно оперативно подстраивает скорость. Может тут что то не так?
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
freqtaho = TCNT0;
TCNT2=206;
TCNT0=0;
iter=1;
}
while (1)
{
if(iter==1){
if( freqtaho>1) {
if(OCR1A>0x00){
OCR1A=OCR1A-1;
}
}
if(freqtaho<1) {
if(OCR1A<0xff){
OCR1A=OCR1A+1;
}
}
iter=0;
}
Чип Atmega8. Timer 0 используется как счетчик. Timer1 - ШИМ. Timer2 - запитанный от внешнего кварца.
Вот вроде бы и работает, а с другой стороны оно недостаточно оперативно подстраивает скорость. Может тут что то не так?
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
Подскажите пожалуйста еще такое возможно ли на ATMEGA8 реализовать ПИД регулятор? Если да может у кого то образцы кода завалялись?
Re: Вопрос о коммутации
Возможно. Я на attiny45 реализовал ПИ-регулятор, для пид-регулятора немного кода придётся добавить. Но надо будет подбирать коэффициенты. Проще всего вводить их, считывая аналоговые сигналы - напряжения с трёх подстроечных потенциометров. Я так не делал ввиду недостатка лап у таньки. ПИД мне для паяльной станции показался ни к чему. Ну да разберётесь, я думаю. Указанный код выполняется раз, кажется, в миллисекунду.
#define ERROR_MAX 2000 // Ограничение ошибки сверху
#define ERROR_MIN -2000 // Ограничение ошибки снизу
#define INTEGR_MAX 200 // Ограничение интегратора вверх
#define INTEGR_MIN -200 // Ограничение интегратора вниз
(...)
// Здесь thermo_in и thermo_fb увязаны между собой по масштабу и смещению.
// Одна единица соответствует приблизительно 0.155 градуса.
error=(int16_t)thermo_in-(int16_t)thermo_fb;
if(error<ERROR_MIN) error=ERROR_MIN;
if(error>ERROR_MAX) error=ERROR_MAX;
// Начальное значение pwm (50%)
pwm_out=0;
// Пропорциональная часть регулятора температуры
prop=(int16_t)((int32_t)error*kp_reg/1000);
// Инкремент счётчиков времени и интегральная часть регулятора температуры
t++;
if(t>=200)
{
integr+=(int16_t)((int32_t)error*ki_reg/10000);
if(integr>INTEGR_MAX) integr=INTEGR_MAX;
if(integr<INTEGR_MIN) integr=INTEGR_MIN;
t=0;
}
pwm_out+=prop;
pwm_out+=integr;
// Ограничение переменной pwm и отработка ШИМ
if(pwm_out<-100) pwm_out=-100;
if(pwm_out>100) pwm_out=100;
if(t<(pwm_out+100)) {outpwm_1();}
else {outpwm_0();}
Ну вот как-то так. Здесь ШИМ сверхмедленный, чтобы глазами видно было, как ШИМит, реализован программно.
PS БЛИН!!! Исходник не форматируется никак, что с ним ни делай! Администраторы-модераторы, придумайте что-нибудь.
#define ERROR_MAX 2000 // Ограничение ошибки сверху
#define ERROR_MIN -2000 // Ограничение ошибки снизу
#define INTEGR_MAX 200 // Ограничение интегратора вверх
#define INTEGR_MIN -200 // Ограничение интегратора вниз
(...)
// Здесь thermo_in и thermo_fb увязаны между собой по масштабу и смещению.
// Одна единица соответствует приблизительно 0.155 градуса.
error=(int16_t)thermo_in-(int16_t)thermo_fb;
if(error<ERROR_MIN) error=ERROR_MIN;
if(error>ERROR_MAX) error=ERROR_MAX;
// Начальное значение pwm (50%)
pwm_out=0;
// Пропорциональная часть регулятора температуры
prop=(int16_t)((int32_t)error*kp_reg/1000);
// Инкремент счётчиков времени и интегральная часть регулятора температуры
t++;
if(t>=200)
{
integr+=(int16_t)((int32_t)error*ki_reg/10000);
if(integr>INTEGR_MAX) integr=INTEGR_MAX;
if(integr<INTEGR_MIN) integr=INTEGR_MIN;
t=0;
}
pwm_out+=prop;
pwm_out+=integr;
// Ограничение переменной pwm и отработка ШИМ
if(pwm_out<-100) pwm_out=-100;
if(pwm_out>100) pwm_out=100;
if(t<(pwm_out+100)) {outpwm_1();}
else {outpwm_0();}
Ну вот как-то так. Здесь ШИМ сверхмедленный, чтобы глазами видно было, как ШИМит, реализован программно.
PS БЛИН!!! Исходник не форматируется никак, что с ним ни делай! Администраторы-модераторы, придумайте что-нибудь.
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
А такой вопрос - а нужен ли он в моей задаче?
Пока более менее подстройку оборотов удалось настроить вот таким извращенством
if(iter==1){ //срабатывать по переполнению таймера отмеряющего период захвата таходатчика
if(pval<10){
pval++;
}
if(run>1){//даем двигателю время разогнатся
run--;
freqtaho=0;
}
if(freqtaho==1) { // по достижении заданных оборотов уменьшаем скорость изменения ШИМ
if(pval>1){
pval--;
}
}
if((freqtaho>1)) { //если обороты больше заданных - уменьшаем напряжением генерируемое ШИМ
if(OCR1A>0x00){
OCR1A=OCR1A-pval;
}
}
if(freqtaho<1) { //если обороты меньше заданных - увеличиваем напряжением генерируемое ШИМ
if(OCR1A<0xff){
OCR1A=OCR1A+pval;
}
}
iter=0;
}
Пока более менее подстройку оборотов удалось настроить вот таким извращенством
if(iter==1){ //срабатывать по переполнению таймера отмеряющего период захвата таходатчика
if(pval<10){
pval++;
}
if(run>1){//даем двигателю время разогнатся
run--;
freqtaho=0;
}
if(freqtaho==1) { // по достижении заданных оборотов уменьшаем скорость изменения ШИМ
if(pval>1){
pval--;
}
}
if((freqtaho>1)) { //если обороты больше заданных - уменьшаем напряжением генерируемое ШИМ
if(OCR1A>0x00){
OCR1A=OCR1A-pval;
}
}
if(freqtaho<1) { //если обороты меньше заданных - увеличиваем напряжением генерируемое ШИМ
if(OCR1A<0xff){
OCR1A=OCR1A+pval;
}
}
iter=0;
}
Re: Вопрос о коммутации
Если я правильно понял, у вас тут просто И-регулятор. Я не уверен, что с таким будет нормально работать, без раскачки. Хотя маховик с большим моментом инерции может её исключить. Пробовать надо.
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
Да инерционность этого двигателя с диском оч большая. Настолько что для быстрой остановки надо реверсировать двигатель
Re: Вопрос о коммутации
А ещё чисто интегральный регулятор плох тем, что он довольно медленно набирает выход - он же его интегрирует, а на это время надо. Добавьте пропорциональную часть, её выход должен быть пропорционален (с неким коэффициентом) ошибке, то есть разнице между заданной скоростью и реальной.
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
[uquote="mickbell",url="/forum/viewtopic.php?p=4116452#p4116452"]А ещё чисто интегральный регулятор плох тем, что он довольно медленно набирает выход - он же его интегрирует, а на это время надо. Добавьте пропорциональную часть, её выход должен быть пропорционален (с неким коэффициентом) ошибке, то есть разнице между заданной скоростью и реальной.[/uquote]
Не подскажете как в этот код добавить
Не подскажете как в этот код добавить
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Вопрос о коммутации
[uquote="mickbell",url="@@"]PS БЛИН!!! Исходник не форматируется никак, что с ним ни делай! Администраторы-модераторы, придумайте что-нибудь.[/uquote]
господа програмеры неужелди не знакомы с тегом CODE???
господа програмеры неужелди не знакомы с тегом CODE???
Код: Выделить всё
ваща
.....
.....
хренограмаZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Re: Вопрос о коммутации
[uquote="musor",url="/forum/viewtopic.php?p=4116600#p4116600"]господа програмеры[/uquote]Ёпта, это кого ты тут ща программером назвал? А забазар? 
Добавлено after 4 minutes 21 second:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4116590#p4116590"]Не подскажете как в этот код добавить[/uquote]Не подскажу. Ибо всегда проще самому насрать, чем в чужом говне копаться.
Добавлено after 4 minutes 31 second:
Проверка.ОК, работает.
Добавлено after 4 minutes 21 second:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4116590#p4116590"]Не подскажете как в этот код добавить[/uquote]Не подскажу. Ибо всегда проще самому насрать, чем в чужом говне копаться.
Добавлено after 4 minutes 31 second:
Проверка.
Код: Выделить всё
#define ERROR_MAX 2000 // Ограничение ошибки сверху
#define ERROR_MIN -2000 // Ограничение ошибки снизу
#define INTEGR_MAX 200 // Ограничение интегратора вверх
#define INTEGR_MIN -200 // Ограничение интегратора вниз
(...)
// Здесь thermo_in и thermo_fb увязаны между собой по масштабу и смещению.
// Одна единица соответствует приблизительно 0.155 градуса.
error=(int16_t)thermo_in-(int16_t)thermo_fb;
if(error<ERROR_MIN) error=ERROR_MIN;
if(error>ERROR_MAX) error=ERROR_MAX;
// Начальное значение pwm (50%)
pwm_out=0;
// Пропорциональная часть регулятора температуры
prop=(int16_t)((int32_t)error*kp_reg/1000);
// Инкремент счётчиков времени и интегральная часть регулятора температуры
t++;
if(t>=200)
{
integr+=(int16_t)((int32_t)error*ki_reg/10000);
if(integr>INTEGR_MAX) integr=INTEGR_MAX;
if(integr<INTEGR_MIN) integr=INTEGR_MIN;
t=0;
}
pwm_out+=prop;
pwm_out+=integr;
// Ограничение переменной pwm и отработка ШИМ
if(pwm_out<-100) pwm_out=-100;
if(pwm_out>100) pwm_out=100;
if(t<(pwm_out+100)) {outpwm_1();}
else {outpwm_0();}
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
[uquote="mickbell",url="/forum/viewtopic.php?p=4116604#p4116604"][uquote="musor",url="/forum/viewtopic.php?p=4116600#p4116600"]господа програмеры[/uquote]Ёпта, это кого ты тут ща программером назвал? А забазар? 
Добавлено after 4 minutes 21 second:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4116590#p4116590"]Не подскажете как в этот код добавить[/uquote]Не подскажу. Ибо всегда проще самому насрать, чем в чужом говне копаться.
Добавлено after 4 minutes 31 second:
Проверка.ОК, работает.[/uquote]
Не представляю как это в мое применить... тут период снятия показаний с таходатчика 13,67 миллисекунд при 33 оборотах и 10 мс для 45 оборотов. За этот период оно смотрит - кол-во импульсов больше 1 или меньше.. Если делать период больше то оно и подстраивает не оч оперативно
Добавлено after 4 minutes 21 second:
[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4116590#p4116590"]Не подскажете как в этот код добавить[/uquote]Не подскажу. Ибо всегда проще самому насрать, чем в чужом говне копаться.
Добавлено after 4 minutes 31 second:
Проверка.
Код: Выделить всё
#define ERROR_MAX 2000 // Ограничение ошибки сверху
#define ERROR_MIN -2000 // Ограничение ошибки снизу
#define INTEGR_MAX 200 // Ограничение интегратора вверх
#define INTEGR_MIN -200 // Ограничение интегратора вниз
(...)
// Здесь thermo_in и thermo_fb увязаны между собой по масштабу и смещению.
// Одна единица соответствует приблизительно 0.155 градуса.
error=(int16_t)thermo_in-(int16_t)thermo_fb;
if(error<ERROR_MIN) error=ERROR_MIN;
if(error>ERROR_MAX) error=ERROR_MAX;
// Начальное значение pwm (50%)
pwm_out=0;
// Пропорциональная часть регулятора температуры
prop=(int16_t)((int32_t)error*kp_reg/1000);
// Инкремент счётчиков времени и интегральная часть регулятора температуры
t++;
if(t>=200)
{
integr+=(int16_t)((int32_t)error*ki_reg/10000);
if(integr>INTEGR_MAX) integr=INTEGR_MAX;
if(integr<INTEGR_MIN) integr=INTEGR_MIN;
t=0;
}
pwm_out+=prop;
pwm_out+=integr;
// Ограничение переменной pwm и отработка ШИМ
if(pwm_out<-100) pwm_out=-100;
if(pwm_out>100) pwm_out=100;
if(t<(pwm_out+100)) {outpwm_1();}
else {outpwm_0();}
Не представляю как это в мое применить... тут период снятия показаний с таходатчика 13,67 миллисекунд при 33 оборотах и 10 мс для 45 оборотов. За этот период оно смотрит - кол-во импульсов больше 1 или меньше.. Если делать период больше то оно и подстраивает не оч оперативно
-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
Подкрутил и пропорциональное регулирование
Код: Выделить всё
if(iter==1){
if(run>1){
if(run>70){
OCR1A=250;
}
run--;
OCR1A=OCR1A-1;
} else {
if(freqtaho==1) {
pval=OCR1A;
}
if(freqtaho>1) {
if(OCR1A>0x00){
error=pval-OCR1A;
if(error<10){
OCR1A=OCR1A-error;
}
OCR1A=OCR1A-1;
}
}
if(freqtaho<1) {
if(OCR1A<0xff){
OCR1A=OCR1A+1;
error=OCR1A-pval;
if(error<10){
OCR1A=OCR1A+error;
}
OCR1A=OCR1A+1;
}
}
}
iter=0;
}-
Ritter_Wulf
- Открыл глаза
- Сообщения: 60
- Зарегистрирован: Ср сен 15, 2021 13:22:07
Re: Вопрос о коммутации
за 4 секунды обороты устанавливаются


