dc-motor-smc-master
所属分类:matlab编程
开发工具:matlab
文件大小:259KB
下载次数:10
上传日期:2020-05-12 20:33:50
上 传 者:
CD57
说明: 使用滑模控制器对直流电机实现速度控制的matlab代码
(Matlab code for speed control of DC motor using sliding mode controller)
文件列表:
docs (0, 2018-06-04)
docs\current.png (2804, 2018-06-04)
docs\full_block.png (38880, 2018-06-04)
docs\motor.png (31837, 2018-06-04)
docs\s.png (1675, 2018-06-04)
docs\scope.png (19155, 2018-06-04)
docs\velocity_diff.png (2206, 2018-06-04)
motor.slx (23746, 2018-06-04)
script.m (146, 2018-06-04)
sliding.slx (23819, 2018-06-04)
# DC motor csuszomod (SMC) sebesseg szabalyozas
A projektben egy DC motor elmeleti csuszomod sebesseg szabalyozasat (sliding mode speed control) mutatom be Matlab es Simulink segitsegevel.
### 1. Differencial egyenletek
#### Aram egyenlete:
![Current](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/current.png)
ahol L~a~ a motor induktanciaja H-ben, i~a~ az atfolyo aram A-ben, V~a~ a motorra kapcsolt feszultseg V-ban, K~b~ az ellen-elektromotors ero (back EMF) Vs/rad-ban, omega a szogsebesseg rad/s-ben, R~a~ az ellenallasa Ohm-ban kifejezve.
#### Szogsebesseg egyenlete:
![Angular velocity](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/velocity_diff.png)
ahol J a rotor inerciaja Kgm^2^/s^2^-ben, K~t~ a motorra vonatkozo forgatonyomatek konstans Nm/A es b a viszkozus surlodas konstansa Nms-ben kifejezve.
A fenti egyenletekbol megvalosithato Simulink-ben a motor modellje:
![Motor modell in Simulink](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/motor.png)
### 2. Szabalyozas
A masodfoku rendszerunkhoz masodfoku szabalyzot kell alkalmaznunk.
#### Csuszofelulet meghatarozasa
![sliding surface](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/s.png)
ahol lambda egy altalunk valasztott konstans es y~e~ a hiba.
#### Csattogas csokkentese es vezerles
Annak erdekeben, hogy a csattogas ne "faltol falig" tortenjen csak, egy szaturacios fuggvenyt vezetunk be. Ezt a kodban az elagazasos vezerles valositja meg. A psi itt egy altalunk valasztott konstans.
A vezerlo belso Matlab kodja a kovetkezo
```matlab
function output = smc(hiba, hiba_deriv, K, lambda, psi)
s = lambda * hiba + hiba_deriv;
if (abs(s) > psi)
sat_s = sign(s);
else
sat_s = s/psi;
end
output = s - K * sat_s;
end
```
#### Teljes blokkdiagram
![full diagram](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/full_block.png)
### 3. Teszteles
A futtatas parameterei
```matlab
Ra = 0.6;
La = 0.012;
Kt = 0.8;
Kb = 0.8;
J = 0.0167;
b = 0.0167;
% SMC parameterek
% K = 3
% lambda = 3
% psi = 0.05
```
![scope](https://raw.githubusercontent.com/maraid/dc-motor-smc/master/docs/scope.png)
A tervezes soran valamilyen szamitasi hiba tortent es nem sebesseg hanem pozicio szabalyozas tortenik.
### 4. Felhasznalt irodalom
https://bono02.wordpress.com/2007/12/14/simulation-and-implementation-of-servo-motor-control-with-sliding-mode-control-smc-using-matlab-and-labview/
Sliding Mode Speed Control of a DC Motor (Srinivasa Kishore Babu Yadlapati, K. Amaresh), 2011
http://www.mogi.bme.hu/TAMOP/robotalkalmazasok/ch07.html
http://www.mogi.bme.hu/TAMOP/digitalis_szervo_hajtasok_angol/ch04.html
Sliding mode position control of a DC motor (P. Feller, U. Benz), 1***7
近期下载者:
相关文件:
收藏者: