Вопрос о коммутации

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Аватара пользователя
vlasovzloy
Друг Кота
Сообщения: 20070
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Re: Вопрос о коммутации

Сообщение vlasovzloy »

Классика рока не только лишь металл. Вон глубокофиолетовые например рокеры, а песни почти все про любовь

И металл тоже разный, есть магнитится а есть нержавейка. Тут тоже на любителя
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Реклама
12943
Друг Кота
Сообщения: 3702
Зарегистрирован: Чт окт 20, 2016 13:51:03

Re: Вопрос о коммутации

Сообщение 12943 »

[uquote="vlasovzloy",url="/forum/viewtopic.php?p=4113003#p4113003"]И металл тоже разный, есть магнитится а есть нержавейка.[/uquote]
Чем дальше от установленной классификации, тем выше шанс найти шматик нержавейки.
А всё, что в струе - чисто чугун - 6000 за тонну.
Реклама
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

[uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112929#p4112929"]Сравнивал даже на новодельных винилах (особенно ярко проявилось на винилах группы Агата Кристи).[/uquote]ЧАВО??? :shock: Этих раздолбаев издали на виниле?
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Аватара пользователя
vlasovzloy
Друг Кота
Сообщения: 20070
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Re: Вопрос о коммутации

Сообщение vlasovzloy »

Я тебе больше скажу, только не падай со стула
https://www.avito.ru/moskva/kollektsion ... 2031172395
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Реклама
Эиком - электронные компоненты и радиодетали
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

[uquote="mickbell",url="/forum/viewtopic.php?p=4113217#p4113217"][uquote="Ritter_Wulf",url="/forum/viewtopic.php?p=4112929#p4112929"]Сравнивал даже на новодельных винилах (особенно ярко проявилось на винилах группы Агата Кристи).[/uquote]ЧАВО??? :shock: Этих раздолбаев издали на виниле?[/uquote]
в СССР были изданны 2 альбома. Позорная Звезда и Декаданс.
В 2014 Бомба мьюзик издала всю дискографию
Реклама
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

[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]Однажды, лет так двадцать пять назад, ко мне во двор зашли, по-видимому, двое с гитарами, и давай под них петь песни. Все - из репертуара АК, как раз был пик популярности. Вообще-то я терпеть не могу, когда во дворе горланят... но эти так пели и играли - я подумал, уж не братки ли Самойловы собственными персонами пожаловали? К сожалению, кто - этого с пятого этажа, ещё и из-за деревьев, видно не было, а выходить на улицу было лениво. Однако мы с женой с удовольствием послушали весь концерт. Какой винил, какая оцифровка? Живой звук с доставкой прямо на дом. :)))
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Реклама
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

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 - запитанный от внешнего кварца.
Вот вроде бы и работает, а с другой стороны оно недостаточно оперативно подстраивает скорость. Может тут что то не так?
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

Подскажите пожалуйста еще такое возможно ли на ATMEGA8 реализовать ПИД регулятор? Если да может у кого то образцы кода завалялись?
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

Возможно. Я на 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 БЛИН!!! Исходник не форматируется никак, что с ним ни делай! Администраторы-модераторы, придумайте что-нибудь.
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

А такой вопрос - а нужен ли он в моей задаче?
Пока более менее подстройку оборотов удалось настроить вот таким извращенством
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;
}
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

Если я правильно понял, у вас тут просто И-регулятор. Я не уверен, что с таким будет нормально работать, без раскачки. Хотя маховик с большим моментом инерции может её исключить. Пробовать надо.
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

Да инерционность этого двигателя с диском оч большая. Настолько что для быстрой остановки надо реверсировать двигатель
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

А ещё чисто интегральный регулятор плох тем, что он довольно медленно набирает выход - он же его интегрирует, а на это время надо. Добавьте пропорциональную часть, её выход должен быть пропорционален (с неким коэффициентом) ошибке, то есть разнице между заданной скоростью и реальной.
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

[uquote="mickbell",url="/forum/viewtopic.php?p=4116452#p4116452"]А ещё чисто интегральный регулятор плох тем, что он довольно медленно набирает выход - он же его интегрирует, а на это время надо. Добавьте пропорциональную часть, её выход должен быть пропорционален (с неким коэффициентом) ошибке, то есть разнице между заданной скоростью и реальной.[/uquote]
Не подскажете как в этот код добавить
Аватара пользователя
musor
Друг Кота
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Re: Вопрос о коммутации

Сообщение musor »

[uquote="mickbell",url="@@"]PS БЛИН!!! Исходник не форматируется никак, что с ним ни делай! Администраторы-модераторы, придумайте что-нибудь.[/uquote]
господа програмеры неужелди не знакомы с тегом CODE???

Код: Выделить всё

ваща 
.....
.....
хренограма
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

[uquote="musor",url="/forum/viewtopic.php?p=4116600#p4116600"]господа програмеры[/uquote]Ёпта, это кого ты тут ща программером назвал? А забазар? :kill:

Добавлено 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.
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

[uquote="mickbell",url="/forum/viewtopic.php?p=4116604#p4116604"][uquote="musor",url="/forum/viewtopic.php?p=4116600#p4116600"]господа програмеры[/uquote]Ёпта, это кого ты тут ща программером назвал? А забазар? :kill:

Добавлено 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();}
ОК, работает.[/uquote]
Не представляю как это в мое применить... тут период снятия показаний с таходатчика 13,67 миллисекунд при 33 оборотах и 10 мс для 45 оборотов. За этот период оно смотрит - кол-во импульсов больше 1 или меньше.. Если делать период больше то оно и подстраивает не оч оперативно
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

Подкрутил и пропорциональное регулирование

Код: Выделить всё

    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;
       }
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16440
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос о коммутации

Сообщение mickbell »

Ну и?
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Ritter_Wulf
Открыл глаза
Сообщения: 60
Зарегистрирован: Ср сен 15, 2021 13:22:07

Re: Вопрос о коммутации

Сообщение Ritter_Wulf »

за 4 секунды обороты устанавливаются
Ответить

Вернуться в «Практика»