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

近期下载者

相关文件


收藏者