
آموزش راه اندازی سرو درایور MHD4830 با نرمافزار هرکولس
۸ شهریور ۱۳۹۸
راه اندازی سرو درایور MHD4830 در مد حلقه بسته (پوزیشن کنترل) در نرم افزار متلب
۸ شهریور ۱۳۹۸۱- مقدمه
سرو درایور MHD4830 یک کنترلکننده موتور دیسی مجهز به پروتکل ارتباطی شبکه میباشد که قادر است گشتاور، سرعت و موقعیت هر موتور DC دلخواهی را به صورت دقیق کنترل نماید. سرو درایور دارای چهار مد عملیاتی تنظیمات، حلقه باز، حلقه بسته و سنسورلس میباشد. در مد حلقه باز سرو درایور تنها فرمان حرکتی را دریافت کرده و بدون هیچگونه عملیات کنترلی آن را به موتور اعمال میکند و سپس دادههای مربوط به ولتاژ موتور، جریان موتور، سرعت موتور و موقعیت موتور را برای کنترلر (کامپیوتر، PLC و …) ارسال میکند. از دادههای ارسال شده میتوان به منظور پیادهسازی انواع الگوریتمهای کنترلی در نرمافزارهایی همچون متلب، ویژوال استودیو و … استفاده کرد. لازم به ذکر است که پایان نامه کارشناسی ارشد اینجانب تحت عنوان «شناسایی و کنترل تطبیقی موقعیت و سرعت موتور DC مغناطیس دائم با مشخصه غیر خطی ناحیه مرده مبتنی بر ماشینهای بردار پشتیبان» که مقاله آن در ژورنال کنترل خواجه نصیر به چاپ رسیده است، توسط سرو درایور MHD4830 پیادهسازی شده است.
۲- ساخت مدل در سیمولینک
برای اینکه بتوانیم فرمان حرکت را برای سرو درایور ارسال کرده و سپس اطلاعات مربوط به ولتاژ، جریان، سرعت و موقعیت را دریافت کنیم، نیازمند یک مدل در سیمولینک هستیم. مدل ساخته شده در سیمولینک به صورت شکل ۱ میباشد. جهت اطلاع از جزئیات تنظیمات مدل به فیلم آموزشی در آخر این مقاله مراجعه کنید.

شکل ۱: مدل ساخته شده در سیمولینک
در مدل شکل ۱ تابع fcn قبل از بلوک Pack وظیفه تولید مسیر مرجع را بر عهده دارد. بلوک TCP/IP Client Send در هر مرحله یک عنصر از مسیر مرجع را دریافت کرده و آن را برای سرو درایور ارسال میکند. به صورت همزمان نیز دادههای مربوط به ولتاژ، جریان، سرعت و موقعیت موتور توسط بلوک TCP/IP Client Receive دریافت شده و داخل متغیر FDB قرار میگیرند. مسیر مرجع یک تناوب از شکل موج سینوسی به صورت شکل ۲ میباشد.

شکل ۲: مسیر مرجع سینوسی
برای اجرای مدل و سپس رسم دادههای مربوط به ولتاژ، جریان، سرعت و موقعیت موتور از کد زیر استفاده شده است. برای توضیح جزئیات کد به فیلم آموزشی در آخر این مقاله مراجعه کنید.
clc; clear; close all; warning off; %% L = 4000; x = 0:L-1; yOL = 8750*sin(2*pi*(x/L)); plot(x,yOL); %% S = zeros(L,2); for i = 1:L H = dec2hex(uint16(yOL(i)+ 32767)); S(i,:) = hex2dec({H(1,1:2),H(1,3:4)}); end %% sim('TCPIPOL'); %% VoltageOL = zeros(1,2*L+1); CurrentOL = zeros(1,2*L+1); SpeedOL = zeros(1,2*L+1); PositionOL = zeros(1,2*L+1); t = FDB.Time; DATA = FDB.Data; for i = 1:length(t) V = (bitshift(int32(DATA(1,1,i)),24) + bitshift(int32(DATA(2,1,i)),16)+ ... bitshift(int32(DATA(3,1,i)),8)+ bitshift(int32(DATA(4,1,i)),0)); VoltageOL(1,i) = V; C = bitshift(int32(DATA(5,1,i)),24) + bitshift(int32(DATA(6,1,i)),16)+ ... bitshift(int32(DATA(7,1,i)),8)+ bitshift(int32(DATA(8,1,i)),0); CurrentOL(1,i) = C; S = bitshift(int32(DATA(9,1,i)),24) + bitshift(int32(DATA(10,1,i)),16)+ ... bitshift(int32(DATA(11,1,i)),8)+ bitshift(int32(DATA(12,1,i)),0); SpeedOL(1,i) = S/1000; P = bitshift(int32(DATA(13,1,i)),24) + bitshift(int32(DATA(14,1,i)),16)+ ... bitshift(int32(DATA(15,1,i)),8)+ bitshift(int32(DATA(16,1,i)),0); PositionOL(1,i) = P; end %% Z = zeros(1,length(t)); ymin = min(VoltageOL); ymax = max(VoltageOL); plot(t(1:4000),VoltageOL(1:4000),'linewidth',1.5); hold on; plot(t,Z,'--'); axis([0 max(t(1:4000)) ymin ymax]); grid on; title('Terminal Voltage(ADC Value)','LineWidth',4); xlabel('Time(sec)','LineWidth',4) ylabel('Voltage(ADC Value)','LineWidth',4) %% ymin = min(CurrentOL); ymax = max(CurrentOL); figure,plot(t(1:4000),CurrentOL(1:4000),'linewidth',1.5); hold on; plot(t(1:4000),Z(1:4000),'--') axis([0 max(t) ymin ymax]) grid on; title('Current(ADC Value)','LineWidth',4); xlabel('Time(sec)','LineWidth',4) ylabel('Current(ADC Value)','LineWidth',4) %% ymin = min(SpeedOL); ymax = max(SpeedOL); figure,plot(t(1:4000),SpeedOL(1:4000),'linewidth',1.5); hold on; plot(t,Z,'--'); axis([0 max(t(1:4000)) ymin ymax]); grid on; title('Speed(RPM)','LineWidth',3); xlabel('Time(sec)','LineWidth',3) ylabel('Speed(RPM)','LineWidth',3) %% ymin = min(PositionOL); ymax = max(PositionOL); figure,plot(t(1:4000),PositionOL(1:4000),'linewidth',1.5); hold on; plot(t(1:4000),Z(1:4000),'--') axis([0 max(t) ymin ymax]) grid on; title('Position(pulse)','LineWidth',3); xlabel('Time(sec)','LineWidth',3) ylabel('Position(pulse)','LineWidth',3) %% save('OLSine.mat','t','VoltageOL','CurrentOL','SpeedOL');
۳- اجرای کد و رسم نمودارها
قبل از اتصال تغذیه ابتدا مد عملیاتی سرو درایور را در حالت حلقه باز و به صورت فرمان از طریق پورت ایترنت قرار دهید. مثالی از نحوه تنظیم دیپ سوئیچ ها در این مد عملیاتی به صورت شکل ۳ میباشد.

شکل ۳: مد عملیاتی حلقه باز به صورت فرمان از طریق پورت ایترنت با لیمیت جریان 8 آمپر
پس از تنظیم دیپ سوئیچها سرو درایور را از طریق کابل شبکه به پورت ایترنت کامپیوتر متصل کنید و سپس تغذیه سرو درایور را وصل نمایید. پس از اتصال تغذیه تنظیمات مربوط به پورت شبکه در کامپیوتر را انجام دهید. جهت اطلاع از نحوه اتصال سرو درایور به کامپیوتر به مقاله آموزشی “نحوه اتصال سرو درایور MHD4830 به کامپیوتر” مراجعه فرمایید. پس از اتصال سرو درایور به کامپیوتر در محیط کدنویسی متلب کلید F5 بر روی صفحه کلید کامپیوتر را فشار داده تا کد اجرا شود. پس از اجرای کد نمودارهای مربوط به ولتاژ، جریان، سرعت و موقعیت موتور به صورت شکل های ۴ تا ۷ میباشند.

شکل ۴: شکل موج ولتاژ موتور بر حسب عدد مبدل آنالوگ به دیجیتال در سرو درایور

شکل ۵: شکل موج جریان موتور بر حسب عدد مبدل آنالوگ به دیجیتال در سرو درایور

شکل ۶: شکل موج سرعت موتور بر حسب دور بر دقیقه

شکل ۷: شکل موج موقعیت موتور بر حسب تعداد پالس انکودر
مطابق شکل ۴ نمودار شکل موج ولتاژ موتور جهت افزایش رزولوشن بر حسب عدد مربوط به مبدل آنالوگ به دیجیتال رسم شده است که برای تبدیل آن به ولت باید آن را تقسیم بر 517 نمود(مراجعه به دفترچه راهنمای سرو درایور). همچنین طبق شکل ۵ شکل موج جریان موتور نیز بر حسب عدد مربوط به مبدل آنالوگ به دیجیتال رسم شده است که برای تبدیل آن به آمپر باید آن را تقسیم بر 281.5 نمایید. در شکل ۶ سرعت موتور برحسب دور بر دقیقه رسم شده است و در نهایت در شکل ۷ موقعیت موتور نیز بر حسب تعداد پالس انکودر رسم شده است. کدهای متلب و سیمولینک این مقاله را میتوانید از اینجا دریافت کنید. همچنین در فیلم آموزشی زیر جزئیات کد و مدل سیمولینک توضیح داده شده است.
محصول «سرو درایور موتور دیسی MHD4830» را ببینید. ✕
همه مستندات مربوط به «سرو درایور موتور دیسی MHD4830» را ببینید. ✕
1 Comment
[…] درایور را از مد سنسورلس و یا حلقه بسته وارد مد عملیاتی حلقه باز کرده و سپس به مد سنسورلس و یا حلقه بسته برگردانید تا […]