Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха. |
18.12.2017, 00:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
И вобще как саказала легендарная и неповторимая Фаина Раневская - лучше быть хорошим человеком ругающимся матом, чем тихой и воспитаной тварью.
|
|
|
|
18.12.2017, 02:17
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
ALEGYR, А оно мне надо? У каждого свой критерий определения наворочености горшка.
|
Так мы тут не горшок обсуждаем, а ДВА КОНКРЕТНЫХ кода, реализующих один и тот же вид регулятора
Первый представлен AR_Favorit,
Цитата:
|
Код:
if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;
else
{
pid_counter = 0;
PID_curr_err = EE_FUEL_TARGET_TEMP - temp;//Начало
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;
control = (int32_t)EE_PID_P*PID_curr_err;
control += (integral_err*(int32_t)EE_PID_I)/1000;
control -= (PID_prev_err - PID_curr_err)*(int32_t)EE_PID_D;
PID_prev_err = PID_curr_err;//конец
}
if (control›heat_counter) HEAT_ON; else HEAT_OFF;
heat_counter++;
if (heat_counter›(EE_PID_TIME*1000)) heat_counter=0;
|
и второй, который используется в библиотеке Arduino
Цитата:
|
void Compute()
{
unsigned long now = millis();
int timeChange = (now - lastTime);
if(timeChange›=SampleTime)
{
double error = Setpoint - Input;
errSum += error;
double dInput = (Input - lastInput);
Output = kp * error + ki * errSum - kd * dInput;
lastInput = Input;
lastTime = now;
}
}
|
|
|
|
|
18.12.2017, 09:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
лучше быть хорошим человеком ругающимся матом, чем тихой и воспитаной тварью.
|
При таком скудном выборе -да.
|
|
|
|
18.12.2017, 12:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
А мне не тот не тот не нравится.
Я бы так реализовал.
Опрос АЦП - получаем целое число выраженое в шагах АЦП
Считаем ошибку опятьже выраженую в шагах АЦП например ацп 10бит - 1024 значений
уставка 879. текущая 128.
err = 879 - 128;
Считаем значение ПИД причем коэффициенты целые. без точки.
коректируем под необходимый период регулирования. тоже целочисленно.
загружаем полученное значение в таймер ШИМ.
запускаем второй таймер отсчитывающий период регулирования.
стартуем оба таймера.
теперь или занимаемся своими делами или просто курим в сторонке.
по прерыванию таймера регулирования.
тормозим оба таймера.
возвращаемся к опросу АЦП.
И никаких тебе флоатов. единственное нужно помнить что точность потдержания зависит шага АЦП.
Ну это утрировано. дальше поле для деятельности хоть 2 хоть 3 ступенчатый.
опятьже есть вариант изменять период регулирования. выход на режим допустим 5 секунд. после определенного значения уменьшаем это время. чтобы заброса не было.
Никто это не запрещает. Ведь по ГОСТу ПИД это формула а не алгоритм работы прибора.
|
|
|
Сказали "Спасибо" stalkernet
|
|
|
18.12.2017, 12:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,862
Сказал спасибо: 2,730
Сказали Спасибо 2,674 раз(а) в 1,978 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от omercury
|
То же с видаками плюс двухфазный БВГ - ОС по датчикам Холла.
|
Подправлю чуток - датчики Холла всего лишь показывают положение блока видеоголовок.
Скорость их вращения регулируется по кварцевому генератору (т.е. обратная связь - с него). А фаза - подстраивается по синхросигналу, записанному на магнитную ленту стационарной (невращающейся) головкой. (с этим сигналом связан трекинг - регулировка фазы БВГ по отношению к синхросигналу). Т.е. еще одна обратная связь.
Так что да, в видиках используется достаточно сложный регулятор - все же ширина дорожки видеозаписи около полумиллиметра, и вращающаяся головка должна точно по ней проехать.
|
|
|
|
18.12.2017, 13:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
omercury, специально залез в хламовник и откопал контроллер диска. стоит драйвер - на входе прямоугольник задающий частоту. на выходе три частоты со сдвигом. обратная связь по току. чтото связаное с моментом пуска. не разбирался. защита по току от заклинивания. Пида не увидел. В свое время хотел переделать под блок вентиляторов. не получилось сильно уж они вылизаны под определенный режим работы.в другом режиме им не очень хорошо.
Блок перемещения головок прост до безобразия. два магнита соедененные в систему. между ними катушка. микросхема есть но дату на нее не нашел. Магниты притом такие что прилипил а ручками отодрать не удалось. только отверткой.
|
|
|
|
18.12.2017, 13:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Теперь о той части из за которой весь сыр-бор. Второе звено регулятора. именно звено а не ступень. Преславутый корректор мошности. Его суть состоит в том чтобы скоректировать попугаи ПИДа в регулирующее воздействие.
самая простейшая модель для постоянного тока
if Pout › 100 then Pout := 100
else
begin
if Pout ‹ 0 Then Pout := 0
else begin
TSHIM := (TReg * Pout) / 100;
end
end;
Опять же это не есть аксиома и пременима при определенных условиях. Но ею довольно часто пользуются. довольна проста в расчетах и легко применима к разному времени регулирования Treg. Дальше еще можно ввести коэф. пропорциональности, пересчет на интеграл синусоиды. но обычно на это забивают.
|
|
|
|
18.12.2017, 13:57
|
|
Заблокирован
Регистрация: 21.03.2015
Сообщений: 40
Сказал спасибо: 3
Сказали Спасибо 72 раз(а) в 20 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
и откопал контроллер диска. стоит драйвер - на входе прямоугольник задающий частоту. на выходе три частоты со сдвигом. Пида не увидел.
|
А почему он должен быть в драйвере двигателя?
Это только часть сервоконтура.
В тиристорном (симмисторном) регуляторе мощности для нагревателя,
тоже трудно найти PID
|
|
|
|
18.12.2017, 15:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
SergeySD, спорить не буду. а в самом контроллере нет настроения ковырятся. но единственное что запомнился это геморой с пуском на другой частоте. притом выяснилось что это связано с конструктивом двигателя. притом мощность резко падала даже при 7 - 10% отклонения частоты от номинала. доходило до того что даже крыльчатку врощать не мог. поэтому собрал мешок раздербанных винтов и сдал на .... ну вобщем цветмет. в шкафу почти полкуба места освободилось. потом мне дали пощупать авиомодельный асинхронник. вот это весчь. конечно мертвые зоны есть. но в качестве навороченного куллера очень годится. надо еще и с CD приводов пощупать. может мало отличаются. а с винтов сразу в цветмет.
|
|
|
|
18.12.2017, 17:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,862
Сказал спасибо: 2,730
Сказали Спасибо 2,674 раз(а) в 1,978 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
надо еще и с CD приводов пощупать
|
Там в 99% стоят обычные коллекторные движки с напряжением питания 3-6 вольт в основном. Очень слабенькие, коллекторные щетки - тонкие волосинки. Ими - только лысый диск раскручивать, без крыльчатки.
Пару раз видел внутри бесколлекторный двух (или трех) фазник, тоже слабенький.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:50.
|
|