Она у на работе, в понедельник поделюсь. Схемка очень простая) Долго не мог подобрать транзисторы, одни сразу горели, вторые через пару минут под нагрузкой. Остановился на IRF640B, в понедельник выложу, будет все понятно.
Нарастание оборотов очень медленное пришлось изменить с 1000 на 1, и как только не игрался с параметрами, не хочет крутится постоянно. Только дергается.
А вы минимальные значени ШИМ для старта установили? Какое? С 1000 на 1 это слишком круто, все равно что и без плавного пуска, попробуйте 500, меньше 300 не советую, лучше увеличте минимальные значени ШИМ для старта т.е. сначала он будет быстро раскручиваться, а потом медленно. Как раз первая причина того, что дергается это резкий старт.
1.Обязательно добейтесь плавного нарастания оборотов, иначе никак.
2.Далее нужно настроить пропорциональную составляющую, для этого нужно отключить интегральную - Ki = 0.0 . При отключенной интегр. составляющей добейтесь стабильной работы двигателя не обращая внимания на статическую ошибку. Если двигатель дергается значит Kp сликом большой, уменьшайте его, пробуйте 0.1, 0.07, 0.04, 0.01, 0.007, 0.004, 0.001 и т.д., но пока двигатель не начнет стабильно работать дальше настраивать нет смысла.
Отпишитесь какие установили значения: заданные обороты, минимальные значени ШИМ для старта, время нарастания ШИМ и Кр.
Наврядли дело в ардуине. Просто я проверяю на небольшом двигателе и задаю средние обороты. Вы, кстати, так и не отписались какие обороты хотите поддерживать?
Минимальные гдето 800-1000. Дома на месте проверяю тоже на маленьком двигателе. Еще хочу попробовать на оптическом датчике, думаю как к двигателю его прикрутить.
Сейчас добился пока того что, пока обороты не достигли заданых (регулирую напряжение двигателя) крутится равномерно, как только доходит до заданого значения (1000), начинает дергатся
У меня получается такое:
RPM = 1525 PWM = 255 P = 0 I = 396
RPM = 1527 PWM = 255 P = 0 I = 396
RPM = 1527 PWM = 255 P = 0 I = 396
RPM = 1526 PWM = 255 P = 0 I = 343
RPM = 1528 PWM = 255 P = 0 I = 343
RPM = 1529 PWM = 255 P = 0 I = 343
RPM = 1528 PWM = 255 P = 0 I = 290
RPM = 1527 PWM = 255 P = 0 I = 290
RPM = 1525 PWM = 255 P = 0 I = 290
RPM = 1522 PWM = 237 P = 0 I = 237
RPM = 1522 PWM = 237 P = 0 I = 237
RPM = 9881 PWM = 237 P = 0 I = 237
RPM = 7396 PWM = 0 P = 0 I = 0
RPM = 2764 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 1030 PWM = 0 P = 0 I = 0
RPM = 0 PWM = 200 P = 200 I = 0
RPM = 106 PWM = 255 P = 200 I = 100
RPM = 7132 PWM = 100 P = 0 I = 100
RPM = 4921 PWM = 100 P = 0 I = 100
RPM = 4217 PWM = 0 P = 0 I = 0
постоянно дергается.
Завтра попробую с библиотекой PID http://arduino.cc/playground/Code/PIDLibrary
Значит не правильно подобраны параметры регулирования
Попробую уже завтра покрутить параметры.
а как выглядит управление двигателем?
И если будете использовать мой код ПИ-ругулятора, перекопируйте его снова, я там внес изменения.
Управление двигателем, после arduinы стоит драйвер ir2110 и 9 шт IRF640
Управление двигателем, после arduinы стоит драйвер ir2110 и 9 шт IRF640
схемкой не поделитесь?
Она у на работе, в понедельник поделюсь. Схемка очень простая) Долго не мог подобрать транзисторы, одни сразу горели, вторые через пару минут под нагрузкой. Остановился на IRF640B, в понедельник выложу, будет все понятно.
Вам спасибо за помощь.
Дописал плавный пуск и начальную компансацию статической ошибки.
01
#define RPMpin 2 // датчик Холла
02
#define PWMpin 5 // выход ШИМ на двигатель
03
04
int
rpmzad = 3000;
// заданное значение оборотов об/мин
05
float
Kp = 0.1;
// коэф. усиления (пропорциональный)
06
float
Ki = 0.05;
// коэф. усиления (интегральный)
07
int
Ti = 100;
// время интегрирования в милисекундах
08
09
int
norm = 0;
10
long
micros1 = 0;
11
long
millis1 = 0;
12
int
rpm = 0;
// текущие обороты об/мин
13
int
P = 0;
14
int
I = 0;
15
16
void
setup() {
17
Serial.begin(9600);
18
digitalWrite(RPMpin, 1);
//
19
pinMode(PWMpin, OUTPUT);
20
attachInterrupt(0, RPM, FALLING);
21
analogWrite(PWMpin, 24);
// минимальное значение ШИМ для старта
22
int
i = 24;
// минимальное значение ШИМ для старта (то же самое)
23
delay(1000);
24
while
(rpm < rpmzad-30){
25
analogWrite(PWMpin, i++);
26
delay(1000);
// время нарастания ШИМ
27
Serial.print(
"RPM = "
);
28
Serial.print(rpm, DEC);
// об/мин
29
Serial.print(
'\n'
);
30
}
31
norm = i;
32
Serial.print(
'\n'
);
33
Serial.print(
"NORM = "
);
34
Serial.print(norm, DEC);
// ШИМ
35
Serial.print(
'\n'
);
36
Serial.print(
'\n'
);
37
}
38
39
void
loop() {
40
if
(micros()-micros1 > 500000){
// если обороты меньше 120 об/мин
41
rpm = 0;
// значит обороты равны 0 об/мин
42
}
43
P_reg();
44
I_reg();
45
int
PI_reg = P + I;
46
if
(PI_reg < 0){
// ограничение по максимуму
47
PI_reg = 0;
48
}
49
if
(PI_reg > 255){
// ограничение по максимуму
50
PI_reg = 255;
51
}
52
analogWrite(PWMpin, PI_reg);
53
54
Serial.print(
"RPM = "
);
55
Serial.print(rpm, DEC);
// об/мин
56
Serial.print(
" PWM = "
);
57
Serial.print(PI_reg, DEC);
58
Serial.print(
" P = "
);
59
Serial.print(P, DEC);
60
Serial.print(
" I = "
);
61
Serial.print(I, DEC);
62
Serial.print(
'\n'
);
63
}
64
65
void
RPM (){
// вычисление оборотов
66
rpm = (1000000.0/(micros() - micros1))*60;
67
micros1 = micros();
68
}
69
70
void
P_reg(){
// пропорциональная составляющая
71
P = Kp*(rpmzad - rpm) + norm;
72
73
if
(P < 0){
// ограничение по минимуму
74
P = 0;
75
}
76
}
77
78
void
I_reg(){
// интегральная составляющая
79
//static long millis1;
80
if
(millis()-millis1 > Ti){
81
if
(rpmzad > rpm){
82
I += Ki*(rpmzad - rpm);
83
}
84
if
(rpmzad < rpm){
85
I -= Ki*(rpm - rpmzad);
86
}
87
millis1 = millis();
88
}
89
90
if
(I < -255){
// ограничение по минимуму
91
I = -255;
92
}
93
if
(I > 255){
// ограничение по максимуму
94
I = 255;
95
}
96
}
Чтобы получить минимальное значение ШИМ для старта, можно использовать код:
01
#define PWMpin 5
02
int
pwm = 0;
03
04
void
setup() {
05
Serial.begin(9600);
06
pinMode(PWMpin, OUTPUT);
07
}
08
09
void
loop() {
10
analogWrite(PWMpin, pwm);
11
Serial.print(
"PWM = "
);
12
Serial.print(pwm, DEC);
// об/мин
13
Serial.print(
'\n'
);
14
delay(3000);
15
pwm++;
16
}
При каком значении начнет вращаться двигатель, то значение и есть минимальное.
Установите его в 21 и 22 строки и подберите время нарастания значения ШИМ в 26 строке, чтобы двигатель запускался плано.
RPM = 0
RPM = 762
RPM = 1221
RPM = 1458
RPM = 1649
RPM = 1835
RPM = 2028
RPM = 2231
RPM = 2439
RPM = 2654
RPM = 2855
RPM = 3029
NORM = 37
RPM = 3030 PWM = 33 P = 34 I = -1
RPM = 3013 PWM = 33 P = 34 I = -1
RPM = 2992 PWM = 35 P = 36 I = -1
RPM = 2986 PWM = 38 P = 38 I = 0
RPM = 2994 PWM = 37 P = 37 I = 0
RPM = 3010 PWM = 36 P = 36 I = 0
RPM = 3019 PWM = 35 P = 35 I = 0
RPM = 3017 PWM = 35 P = 35 I = 0
RPM = 3012 PWM = 35 P = 35 I = 0
RPM = 3007 PWM = 36 P = 36 I = 0
RPM = 3009 PWM = 36 P = 36 I = 0
RPM = 3013 PWM = 35 P = 35 I = 0
RPM = 3011 PWM = 35 P = 35 I = 0
RPM = 3006 PWM = 36 P = 36 I = 0
RPM = 3006 PWM = 36 P = 36 I = 0
Загрузил програмку, но что то у меня никак.
Нарастание оборотов очень медленное пришлось изменить с 1000 на 1, и как только не игрался с параметрами, не хочет крутится постоянно. Только дергается.
А вы минимальные значени ШИМ для старта установили? Какое? С 1000 на 1 это слишком круто, все равно что и без плавного пуска, попробуйте 500, меньше 300 не советую, лучше увеличте минимальные значени ШИМ для старта т.е. сначала он будет быстро раскручиваться, а потом медленно. Как раз первая причина того, что дергается это резкий старт.
1.Обязательно добейтесь плавного нарастания оборотов, иначе никак.
2.Далее нужно настроить пропорциональную составляющую, для этого нужно отключить интегральную - Ki = 0.0 . При отключенной интегр. составляющей добейтесь стабильной работы двигателя не обращая внимания на статическую ошибку. Если двигатель дергается значит Kp сликом большой, уменьшайте его, пробуйте 0.1, 0.07, 0.04, 0.01, 0.007, 0.004, 0.001 и т.д., но пока двигатель не начнет стабильно работать дальше настраивать нет смысла.
Отпишитесь какие установили значения: заданные обороты, минимальные значени ШИМ для старта, время нарастания ШИМ и Кр.
Вот попробовал с библиотекой PID :
01
#define RPMpin 2 // датчик Холла
02
#define PWMpin 5 // выход ШИМ на двигатель
03
04
#include <PID_v1.h>
05
06
long
millis1, micros1 = 0;
07
int
rpm = 0;
08
//Define Variables we'll be connecting to
09
double
Setpoint, Input, Output;
10
//Define the aggressive and conservative Tuning Parameters
11
12
double
aggKp=0.11, aggKi=0.05, aggKd=0.03;
// агресивные параметры
13
double
consKp=0.1, consKi=0.035, consKd=0.035;
// нормальные параметры
14
15
//Specify the links and initial tuning parameters
16
PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, DIRECT);
17
18
void
setup()
19
{
20
Serial.begin(9600);
21
digitalWrite(RPMpin, 1);
//
22
pinMode(PWMpin, OUTPUT);
23
attachInterrupt(0, RPM, FALLING);
24
Input = rpm;
25
Setpoint = 1000;
// заданное значение оборотов об/мин
26
//turn the PID on
27
myPID.SetMode(AUTOMATIC);
28
}
29
30
void
loop(){
31
if
(micros()-micros1 > 500000){
// если обороты меньше 120 об/мин
32
rpm = 0;
// значит обороты равны 0 об/мин
33
}
34
Serial.print(
"RPM = "
);
35
Serial.print(rpm, DEC);
36
Input = rpm;
37
double
gap = abs(Setpoint-Input);
//distance away from setpoint
38
if
(gap<10)
39
{
//we're close to setpoint, use conservative tuning parameters
40
myPID.SetTunings(consKp, consKi, consKd);
41
}
42
else
43
{
44
//we're far from setpoint, use aggressive tuning parameters
45
myPID.SetTunings(aggKp, aggKi, aggKd);
46
}
47
myPID.Compute();
48
analogWrite(PWMpin,Output);
49
Serial.print(
" PWM = "
);
50
Serial.print(Output, DEC);
51
Serial.print(
'\n'
);
52
}
53
54
void
RPM (){
// вычисление оборотов
55
rpm = (1000000.0/(micros() - micros1))*60;
56
micros1 = micros();
57
Сириал:
RPM = 0 PWM = 115.0000000000
RPM = 0 PWM = 115.0000000000
RPM = 0 PWM = 115.0000000000
RPM = 0 PWM = 120.0000000000
RPM = 0 PWM = 120.0000000000
RPM = 0 PWM = 120.0000000000
RPM = 0 PWM = 120.0000000000
RPM = 0 PWM = 125.0000000000
RPM = 0 PWM = 125.0000000000
RPM = 0 PWM = 125.0000000000
RPM = 0 PWM = 125.0000000000
RPM = 0 PWM = 130.0000000000
RPM = 0 PWM = 130.0000000000
RPM = 0 PWM = 130.0000000000
RPM = 0 PWM = 130.0000000000
RPM = 0 PWM = 135.0000000000
RPM = 0 PWM = 135.0000000000
RPM = 108 PWM = 135.0000000000
RPM = 108 PWM = 135.0000000000
RPM = 108 PWM = 95.1800079345
RPM = 108 PWM = 95.1800079345
RPM = 466 PWM = 95.1800079345
RPM = 466 PWM = 95.1800079345
RPM = 466 PWM = 0.0000000000
RPM = 565 PWM = 0.0000000000
RPM = 565 PWM = 0.0000000000
RPM = 565 PWM = 0.0000000000
RPM = 565 PWM = 52.4550018310
RPM = 565 PWM = 52.4550018310
RPM = 461 PWM = 52.4550018310
RPM = 461 PWM = 52.4550018310
RPM = 461 PWM = 127.4900054931
RPM = 461 PWM = 127.4900054931
RPM = 369 PWM = 127.4900054931
RPM = 369 PWM = 137.1650085449
RPM = 369 PWM = 137.1650085449
RPM = 369 PWM = 137.1650085449
RPM = 542 PWM = 137.1650085449
RPM = 542 PWM = 40.9250068664
RPM = 715 PWM = 40.9250068664
RPM = 715 PWM = 40.9250068664
RPM = 715 PWM = 40.9250068664
RPM = 686 PWM = 35.3550109863
RPM = 686 PWM = 35.3550109863
RPM = 686 PWM = 35.3550109863
RPM = 585 PWM = 35.3550109863
RPM = 585 PWM = 122.0400009155
RPM = 585 PWM = 122.0400009155
RPM = 585 PWM = 122.0400009155
RPM = 524 PWM = 119.1300048828
RPM = 524 PWM = 119.1300048828
RPM = 524 PWM = 119.1300048828
RPM = 649 PWM = 51.3350105285
RPM = 649 PWM = 51.3350105285
RPM = 733 PWM = 51.3350105285
RPM = 733 PWM = 51.3350105285
RPM = 733 PWM = 55.7300109863
RPM = 679 PWM = 55.7300109863
RPM = 679 PWM = 55.7300109863
RPM = 679 PWM = 55.7300109863
RPM = 608 PWM = 134.1399993896
RPM = 608 PWM = 134.1399993896
RPM = 608 PWM = 134.1399993896
RPM = 610 PWM = 97.7700119018
RPM = 610 PWM = 97.7700119018
RPM = 736 PWM = 97.7700119018
RPM = 736 PWM = 97.7700119018
RPM = 736 PWM = 48.0300025939
RPM = 776 PWM = 48.0300025939
RPM = 776 PWM = 48.0300025939
RPM = 749 PWM = 48.0300025939
RPM = 749 PWM = 81.7550048828
RPM = 749 PWM = 81.7550048828
RPM = 681 PWM = 81.7550048828
RPM = 681 PWM = 81.7550048828
RPM = 681 PWM = 115.1300125122
RPM = 668 PWM = 115.1300125122
RPM = 668 PWM = 115.1300125122
RPM = 717 PWM = 115.1300125122
RPM = 717 PWM = 81.3850097656
RPM = 717 PWM = 81.3850097656
RPM = 792 PWM = 81.3850097656
RPM = 792 PWM = 81.3850097656
RPM = 799 PWM = 59.5700149536
RPM = 799 PWM = 59.5700149536
RPM = 779 PWM = 59.5700149536
RPM = 779 PWM = 59.5700149536
RPM = 779 PWM = 93.4750061035
RPM = 727 PWM = 93.4750061035
RPM = 727 PWM = 93.4750061035
RPM = 718 PWM = 93.4750061035
RPM = 718 PWM = 113.8950195312
RPM = 718 PWM = 113.8950195312
RPM = 750 PWM = 113.8950195312
RPM = 750 PWM = 83.7250137329
RPM = 813 PWM = 83.7250137329
RPM = 813 PWM = 83.7250137329
RPM = 830 PWM = 83.7250137329
RPM = 830 PWM = 61.3750152587
RPM = 830 PWM = 61.3750152587
RPM = 819 PWM = 61.3750152587
RPM = 819 PWM = 61.3750152587
RPM = 776 PWM = 108.6350097656
RPM = 776 PWM = 108.6350097656
RPM = 757 PWM = 108.6350097656
RPM = 757 PWM = 108.6350097656
RPM = 757 PWM = 101.4400024414
RPM = 812 PWM = 101.4400024414
RPM = 812 PWM = 101.4400024414
RPM = 856 PWM = 101.4400024414
RPM = 856 PWM = 55.8700103759
RPM = 887 PWM = 55.8700103759
RPM = 887 PWM = 55.8700103759
RPM = 868 PWM = 55.8700103759
RPM = 868 PWM = 81.3100128173
RPM = 809 PWM = 81.3100128173
RPM = 809 PWM = 81.3100128173
RPM = 809 PWM = 81.3100128173
RPM = 785 PWM = 120.0150146484
RPM = 785 PWM = 120.0150146484
RPM = 791 PWM = 120.0150146484
RPM = 791 PWM = 120.0150146484
RPM = 863 PWM = 63.8200111389
RPM = 863 PWM = 63.8200111389
RPM = 909 PWM = 63.8200111389
RPM = 909 PWM = 63.8200111389
RPM = 872 PWM = 84.1700134277
RPM = 872 PWM = 84.1700134277
RPM = 838 PWM = 84.1700134277
RPM = 838 PWM = 84.1700134277
RPM = 838 PWM = 104.1100006103
RPM = 832 PWM = 104.1100006103
RPM = 832 PWM = 104.1100006103
RPM = 850 PWM = 104.1100006103
RPM = 850 PWM = 85.4800033569
RPM = 887 PWM = 85.4800033569
RPM = 887 PWM = 85.4800033569
RPM = 900 PWM = 85.4800033569
RPM = 900 PWM = 70.8800048828
RPM = 894 PWM = 70.8800048828
RPM = 894 PWM = 70.8800048828
RPM = 871 PWM = 70.8800048828
RPM = 871 PWM = 98.4150009155
RPM = 840 PWM = 98.4150009155
RPM = 840 PWM = 98.4150009155
RPM = 849 PWM = 98.4150009155
RPM = 849 PWM = 99.4899978637
RPM = 849 PWM = 99.4899978637
RPM = 873 PWM = 99.4899978637
RPM = 873 PWM = 99.4899978637
RPM = 897 PWM = 73.7249984741
RPM = 897 PWM = 73.7249984741
RPM = 913 PWM = 73.7249984741
RPM = 913 PWM = 73.7249984741
RPM = 891 PWM = 91.1299972534
RPM = 891 PWM = 91.1299972534
RPM = 870 PWM = 91.1299972534
RPM = 870 PWM = 91.1299972534
RPM = 873 PWM = 97.3450012207
RPM = 873 PWM = 97.3450012207
RPM = 883 PWM = 97.3450012207
RPM = 883 PWM = 97.3450012207
RPM = 901 PWM = 80.9599990844
RPM = 901 PWM = 80.9599990844
RPM = 908 PWM = 80.9599990844
RPM = 908 PWM = 80.9599990844
RPM = 894 PWM = 92.7600021362
RPM = 894 PWM = 92.7600021362
RPM = 888 PWM = 92.7600021362
RPM = 888 PWM = 92.7600021362
RPM = 888 PWM = 90.3600006103
RPM = 896 PWM = 90.3600006103
RPM = 896 PWM = 90.3600006103
RPM = 903 PWM = 90.3600006103
RPM = 903 PWM = 88.5749969482
RPM = 907 PWM = 88.5749969482
RPM = 907 PWM = 88.5749969482
RPM = 908 PWM = 88.5749969482
RPM = 908 PWM = 89.0849990844
RPM = 907 PWM = 89.0849990844
RPM = 907 PWM = 89.0849990844
RPM = 908 PWM = 89.0849990844
RPM = 908 PWM = 91.0449981689
RPM = 911 PWM = 91.0449981689
RPM = 911 PWM = 91.0449981689
RPM = 915 PWM = 91.0449981689
RPM = 915 PWM = 88.5999984741
RPM = 920 PWM = 88.5999984741
RPM = 920 PWM = 88.5999984741
RPM = 921 PWM = 88.5999984741
RPM = 921 PWM = 88.6349945068
RPM = 920 PWM = 88.6349945068
RPM = 920 PWM = 88.6349945068
RPM = 920 PWM = 88.6349945068
RPM = 920 PWM = 91.2450027465
RPM = 920 PWM = 91.2450027465
RPM = 920 PWM = 91.2450027465
RPM = 923 PWM = 91.2450027465
RPM = 923 PWM = 90.0999984741
RPM = 929 PWM = 90.0999984741
RPM = 929 PWM = 90.0999984741
RPM = 933 PWM = 90.0999984741
RPM = 933 PWM = 87.2350006103
RPM = 936 PWM = 87.2350006103
RPM = 936 PWM = 87.2350006103
RPM = 935 PWM = 87.2350006103
RPM = 935 PWM = 89.7399978637
RPM = 933 PWM = 89.7399978637
RPM = 933 PWM = 89.7399978637
RPM = 934 PWM = 89.7399978637
RPM = 934 PWM = 91.0800018310
RPM = 936 PWM = 91.0800018310
RPM = 936 PWM = 91.0800018310
RPM = 939 PWM = 91.0800018310
RPM = 939 PWM = 89.0349960327
RPM = 944 PWM = 89.0349960327
RPM = 944 PWM = 89.0349960327
RPM = 947 PWM = 89.0349960327
RPM = 947 PWM = 87.5199966430
RPM = 948 PWM = 87.5199966430
RPM = 948 PWM = 87.5199966430
RPM = 946 PWM = 87.5199966430
RPM = 946 PWM = 90.5999984741
RPM = 943 PWM = 90.5999984741
RPM = 943 PWM = 90.5999984741
RPM = 943 PWM = 90.5999984741
RPM = 943 PWM = 91.8149948120
RPM = 947 PWM = 91.8149948120
RPM = 947 PWM = 91.8149948120
RPM = 951 PWM = 91.8149948120
RPM = 951 PWM = 87.8799972534
RPM = 955 PWM = 87.8799972534
RPM = 955 PWM = 87.8799972534
RPM = 956 PWM = 87.8799972534
RPM = 956 PWM = 89.6949996948
RPM = 953 PWM = 89.6949996948
RPM = 952 PWM = 89.6949996948
RPM = 952 PWM = 89.6949996948
RPM = 953 PWM = 90.5299987792
RPM = 953 PWM = 90.5299987792
RPM = 955 PWM = 90.5299987792
RPM = 955 PWM = 90.5299987792
RPM = 957 PWM = 89.1050033569
RPM = 957 PWM = 89.1050033569
RPM = 959 PWM = 89.1050033569
RPM = 959 PWM = 89.1050033569
RPM = 960 PWM = 89.2749938964
RPM = 960 PWM = 89.2749938964
RPM = 961 PWM = 89.2749938964
RPM = 961 PWM = 89.2749938964
RPM = 961 PWM = 89.9599914550
RPM = 961 PWM = 89.9599914550
RPM = 962 PWM = 89.9599914550
RPM = 962 PWM = 89.9599914550
RPM = 963 PWM = 89.6249923706
RPM = 963 PWM = 89.6249923706
RPM = 964 PWM = 89.6249923706
RPM = 964 PWM = 89.6249923706
RPM = 964 PWM = 89.9949874877
RPM = 964 PWM = 89.9949874877
RPM = 965 PWM = 89.9949874877
RPM = 965 PWM = 89.9949874877
RPM = 966 PWM = 89.6449890136
RPM = 966 PWM = 89.6449890136
RPM = 966 PWM = 89.6449890136
RPM = 966 PWM = 89.6449890136
RPM = 966 PWM = 90.4149856567
RPM = 967 PWM = 90.4149856567
RPM = 967 PWM = 90.4149856567
RPM = 969 PWM = 90.4149856567
RPM = 969 PWM = 89.3399887084
RPM = 971 PWM = 89.3399887084
RPM = 971 PWM = 89.3399887084
RPM = 972 PWM = 89.3399887084
RPM = 972 PWM = 89.1499862670
RPM = 972 PWM = 89.1499862670
RPM = 972 PWM = 89.1499862670
RPM = 973 PWM = 89.1499862670
RPM = 973 PWM = 89.7749862670
RPM = 973 PWM = 89.7749862670
RPM = 973 PWM = 89.7749862670
RPM = 973 PWM = 89.7749862670
RPM = 973 PWM = 90.2099914550
RPM = 973 PWM = 90.2099914550
RPM = 973 PWM = 90.2099914550
RPM = 974 PWM = 90.2099914550
RPM = 974 PWM = 89.9299850463
RPM = 976 PWM = 89.9299850463
RPM = 976 PWM = 89.9299850463
RPM = 977 PWM = 89.9299850463
RPM = 978 PWM = 88.6999893188
RPM = 978 PWM = 88.6999893188
RPM = 978 PWM = 88.6999893188
RPM = 978 PWM = 88.6999893188
RPM = 977 PWM = 90.4249877929
RPM = 977 PWM = 90.4249877929
RPM = 977 PWM = 90.4249877929
RPM = 977 PWM = 90.4249877929
RPM = 979 PWM = 89.4099884033
RPM = 979 PWM = 89.4099884033
RPM = 980 PWM = 89.4099884033
RPM = 980 PWM = 89.4099884033
RPM = 980 PWM = 89.6999816894
RPM = 980 PWM = 89.6999816894
RPM = 980 PWM = 89.6999816894
RPM = 980 PWM = 89.6999816894
RPM = 981 PWM = 89.6849822998
RPM = 981 PWM = 89.6849822998
RPM = 981 PWM = 89.6849822998
RPM = 981 PWM = 89.6849822998
RPM = 981 PWM = 90.0799865722
RPM = 980 PWM = 90.0799865722
RPM = 980 PWM = 90.0799865722
RPM = 983 PWM = 90.0799865722
RPM = 983 PWM = 89.3449935913
RPM = 984 PWM = 89.3449935913
RPM = 984 PWM = 89.3449935913
RPM = 984 PWM = 89.3449935913
RPM = 984 PWM = 89.6149902343
RPM = 983 PWM = 89.6149902343
RPM = 983 PWM = 89.6149902343
RPM = 983 PWM = 89.6149902343
RPM = 983 PWM = 90.4099960327
RPM = 984 PWM = 90.4099960327
RPM = 984 PWM = 90.4099960327
RPM = 985 PWM = 90.4099960327
RPM = 988 PWM = 88.1199874877
RPM = 988 PWM = 88.1199874877
RPM = 988 PWM = 88.1199874877
RPM = 988 PWM = 88.1199874877
RPM = 985 PWM = 90.9249877929
RPM = 985 PWM = 90.9249877929
RPM = 984 PWM = 90.9249877929
RPM = 984 PWM = 90.9249877929
RPM = 986 PWM = 89.6849822998
RPM = 986 PWM = 89.6849822998
RPM = 987 PWM = 89.6849822998
RPM = 987 PWM = 89.6849822998
RPM = 986 PWM = 90.0549850463
RPM = 986 PWM = 90.0549850463
RPM = 987 PWM = 90.0549850463
RPM = 987 PWM = 90.0549850463
RPM = 989 PWM = 88.8799819946
RPM = 990 PWM = 88.8799819946
RPM = 990 PWM = 88.8799819946
RPM = 989 PWM = 88.8799819946
RPM = 989 PWM = 89.8349838256
RPM = 988 PWM = 89.8349838256
RPM = 988 PWM = 89.8349838256
RPM = 987 PWM = 89.8349838256
RPM = 987 PWM = 90.7199859619
RPM = 988 PWM = 90.7199859619
RPM = 988 PWM = 90.7199859619
RPM = 990 PWM = 90.7199859619
RPM = 990 PWM = 88.9399871826
RPM = 991 PWM = 88.9399871826
RPM = 991 PWM = 88.9399871826
RPM = 991 PWM = 88.9399871826
RPM = 989 PWM = 90.3049926757
RPM = 989 PWM = 90.3049926757
RPM = 990 PWM = 90.3049926757
RPM = 990 PWM = 90.3049926757
RPM = 992 PWM = 88.5729904174
RPM = 992 PWM = 88.5729904174
RPM = 993 PWM = 88.5729904174
RPM = 993 PWM = 88.5729904174
RPM = 991 PWM = 90.1044921875
RPM = 991 PWM = 90.1044921875
RPM = 989 PWM = 90.1044921875
RPM = 989 PWM = 90.1044921875
RPM = 990 PWM = 90.3044967651
RPM = 990 PWM = 90.3044967651
RPM = 992 PWM = 90.3044967651
RPM = 992 PWM = 90.3044967651
RPM = 995 PWM = 87.6719970703
RPM = 996 PWM = 87.6719970703
RPM = 996 PWM = 87.6719970703
RPM = 994 PWM = 87.6719970703
RPM = 994 PWM = 89.8929977416
RPM = 990 PWM = 89.8929977416
RPM = 990 PWM = 89.8929977416
RPM = 990 PWM = 89.8929977416
RPM = 990 PWM = 91.2929992675
RPM = 990 PWM = 91.2929992675
RPM = 990 PWM = 91.2929992675
RPM = 992 PWM = 91.2929992675
RPM = 992 PWM = 89.1210098266
RPM = 995 PWM = 89.1210098266
RPM = 995 PWM = 89.1210098266
RPM = 996 PWM = 89.1210098266
RPM = 996 PWM = 88.0350036621
RPM = 996 PWM = 88.0350036621
RPM = 996 PWM = 88.0350036621
RPM = 996 PWM = 88.0350036621
RPM = 995 PWM = 89.9025039672
RPM = 995 PWM = 89.9025039672
RPM = 994 PWM = 89.9025039672
RPM = 994 PWM = 89.9025039672
RPM = 994 PWM = 90.0235061645
RPM = 994 PWM = 90.0235061645
RPM = 994 PWM = 90.0235061645
RPM = 994 PWM = 90.0235061645
RPM = 996 PWM = 88.7875137329
RPM = 997 PWM = 88.7875137329
RPM = 997 PWM = 88.7875137329
RPM = 994 PWM = 88.7875137329
RPM = 994 PWM = 90.4085083007
RPM = 992 PWM = 90.4085083007
RPM = 992 PWM = 90.4085083007
RPM = 993 PWM = 90.4085083007
RPM = 993 PWM = 90.1830062866
RPM = 994 PWM = 90.1830062866
RPM = 994 PWM = 90.1830062866
RPM = 995 PWM = 90.1830062866
RPM = 995 PWM = 88.9505157470
RPM = 997 PWM = 88.9505157470
RPM = 997 PWM = 88.9505157470
RPM = 997 PWM = 88.9505157470
RPM = 996 PWM = 89.2145156860
RPM = 996 PWM = 89.2145156860
RPM = 995 PWM = 89.2145156860
RPM = 995 PWM = 89.2145156860
RPM = 995 PWM = 90.0320129394
RPM = 995 PWM = 90.0320129394
RPM = 995 PWM = 90.0320129394
RPM = 995 PWM = 90.0320129394
RPM = 996 PWM = 89.2460174560
RPM = 996 PWM = 89.2460174560
RPM = 998 PWM = 89.2460174560
RPM = 998 PWM = 89.2460174560
RPM = 999 PWM = 88.2495117187
RPM = 999 PWM = 88.2495117187
RPM = 999 PWM = 88.2495117187
RPM = 997 PWM = 88.2495117187
RPM = 997 PWM = 90.2100143432
RPM = 996 PWM = 90.2100143432
RPM = 996 PWM = 90.2100143432
RPM = 998 PWM = 90.2100143432
RPM = 998 PWM = 89.0670166015
RPM = 999 PWM = 89.0670166015
RPM = 999 PWM = 89.0670166015
RPM = 999 PWM = 89.0670166015
RPM = 999 PWM = 88.9705200195
RPM = 1000 PWM = 88.9705200195
RPM = 1000 PWM = 88.9705200195
RPM = 999 PWM = 88.9705200195
RPM = 996 PWM = 90.6845245361
RPM = 996 PWM = 90.6845245361
RPM = 996 PWM = 90.6845245361
RPM = 996 PWM = 90.6845245361
RPM = 999 PWM = 88.2880172729
RPM = 999 PWM = 88.2880172729
RPM = 1000 PWM = 88.2880172729
RPM = 1000 PWM = 88.2880172729<br>
Как у вас все красиво.) А у меня что то ни как. Может связано с arduino-й.?
Наврядли дело в ардуине. Просто я проверяю на небольшом двигателе и задаю средние обороты. Вы, кстати, так и не отписались какие обороты хотите поддерживать?
Минимальные гдето 800-1000. Дома на месте проверяю тоже на маленьком двигателе. Еще хочу попробовать на оптическом датчике, думаю как к двигателю его прикрутить.
А чем датчик холла не устраивает?
Вроде бы устраивает, и понадежнее чем оптический.
Я кстати, там где скачал библиотеку PID, видил библиотеку для автоматической настройки этого регулятора. Пробовали?
Нет, не видел. Есть что то интересное?
github.com/br3ttb/Arduino-PID-AutoTune-Library/zipball/master
Сейчас добился пока того что, пока обороты не достигли заданых (регулирую напряжение двигателя) крутится равномерно, как только доходит до заданого значения (1000), начинает дергатся
Какие параметры Kp, Ki, Kd?
0.3 0.3 0.06 При разных Kp Ki, изменений не замечал.
И если будете использовать мой код ПИ-ругулятора, перекопируйте его снова, я там внес изменения.
здравствуйте!
у меня похожая проблема. нужен код или библиотека ПИ, ПД, или ПИД регулятора, с обратной связью по импульсному сигналу от датчика Холла.
не могли бы вы поделится своим кодом ПИ регулятора?
Код в сообщении #63, библиотеку качать отсюда.
Код в сообщении #63, библиотеку качать отсюда.
спасибо! буду разбираться.
при установке библиотеки PID:
А как код ПИ регулятора переделать, если у меня датчик выдает 60 импульсов за один оборот вала?