Professional Documents
Culture Documents
Đào Quang Trư NG
Đào Quang Trư NG
Viện Cơ Khí
MSSV: 20187503
1
I/Tìm hàm truyền theo các thông số có sẵn của cơ hệ
Z1 = Z2 = 20
Tỉ số truyền cả cơ hệ = 1
Bánh răng Z1 được làm từ gang xám
Z2 được làm từ thép C45
Tính độ cứng của bánh răng 1:
Ta tính được hệ số độ cứng dựa trên biến dạng của bánh răng 1:
2 Nm
K 1= =142 Nm/mm
0,014 mm
2
Tính độ cứng của bánh răng 2:
Ta tính được hệ số độ cứng dựa trên biến dạng của bánh răng 2:
1 0 Nm
K 2= =222,2 Nm/ mm
0,045 mm
3
Từ đó ta tính được hệ số giảm chấn
Hệ số giảm chấn cả hệ:
B=2.k xi.√ mK = 23
Thay các đại lượng vừa tìm được vào phương trình động học
2
Bdy (t ) d y (t )
+ Ky ( t ) + m. 2 =M (t)
dt d t
Từ phương trình động học ta thu được hàm truyền nhờ phương pháp Laplace
1
=¿ M(S)
B . S + K +m . S2
4
Không có hiện tượng vọt lố nhưng thời gian đáp ứng lâu.
Khi chưa có bộ phản hồi sai số ta có đồ thị được hiển thị như hình:
5
Sử dụng tiêu chuẩn Bode để khảo sát tính ổn định ta có:
6
GM>0 và ϕM<0
=>Hệ chưa ổn định
Để hệ ổn định ta thêm bộ phản hồi sai số PID controller:
7
2.2/Mô phỏng động cơ:
8
Mô hình hệ truyềnn động của động cơ DC
Theo lý thuyết ta có phương trình trạng thái:
Phương trình điện:
d i a (t)
V(t)+ L . + R a i a ( t ) =K e ϴ̇
dt
9
La làđộ tự cảm ở lõi động cơ , La =0,1214 H
M (t ) làmomen tải
Bm là hệ số cản nhớt . B m=0,002953 Nm/rad
Sử dụng matlab ta mô phỏng được động cơ dưới dạng sơ đồ khối như sau:
10
Và đơn giản hoá khối đó ta lại thu được:
III/Xử lý thông số đầu ra và kiểm nghiệm lại hàm truyền của hệ thống:
Vận Thời
tốc gian
0 0
3.35 2
6.43 4
8.86 6
10.78 8
12.35 10
13.63 12
14.69 14
15.58 16
16.33 18
11
16.97 20
17.51 22
17.97 24
18.35 26
18.68 28
18.96 30
19.19 32
19.38 34
19.54 36
19.67 38
19.78 40
19.87 42
19.94 44
20 46
20 48
20 50
20 52
20 54
20 56
20 58
12
Em sử dụng chức năng tìm hàm truyền ổn định cho biểu đồ trên và thu được biểu
đồ dưới đây:
13
Từ system identification ta thu được hàm truyền cuối cùng, sử dụng hàm step và
bode để kiểm tra lại cơ hệ:
14
15
Dựa vào khảo sát ta có
GM>0 và ϕM>0
=>hệ đã ổn định
IV/Sử dụng ardruino để điều khiển động cơ
Mô phỏng và điều khiển bằng ardruino
16
Bằng cách đặt giá trị vận tốc cần đạt trên matlab-simulink ta có thể điều khiển
được chính xác vận tốc thực tế của động cơ thông qua arduino
Ta sử dụng mạch cầu H để kết nối arduino với động cơ và nguồn điện 12V.Bằng
cách sử dụng một biến trở ta có thể điều khiển vị trí của động cơ.Sử dụng thêm
encoder để có thể đo chính xác vị trí phản hồi về của động cơ.
Lập trình arduino:
#include <PinChangeInt.h>
#include <PID_v1.h>
#define encodPinA1 2
#define encodPinB1 8
#define M1 9
#define M2 10
double kp = 5 , ki = 1 , kd = 0.01;
double input = 0, output = 0, setpoint = 0;
long temp;
volatile long encoderPos = 0;
17
PID myPID(&input, &output, &setpoint, kp, ki, kd, DIRECT);
void setup() {
pinMode(encodPinA1, INPUT_PULLUP);
pinMode(encodPinB1, INPUT_PULLUP);
attachInterrupt(0, encoder, FALLING);
TCCR1B = TCCR1B & 0b11111000 | 1;
myPID.SetMode(AUTOMATIC);
myPID.SetSampleTime(1);
myPID.SetOutputLimits(-255, 255);
Serial.begin (115200);
}
void loop() {
setpoint = analogRead(0) / 5;
input = encoderPos ;
// Serial.println(encoderPos);
myPID.Compute();
pwmOut(output);
}
18
}
else {
analogWrite(M1, 0);
analogWrite(M2, abs(out));
}
}
void encoder() {
if (PINB & 0b00000001) encoderPos++;
else encoderPos--;
}
19