ردیابی مسیر با فیلتر کالمن با متلب به همراه داکیومنت
در این پست پروژه ردیابی مسیر با فیلتر کالمن با متلب به همراه داکیومنت را به صورت رایگان آماده کرده ایم که امیدواریم مورد استفاده و رضایت شما کاربران عزیز قرار گیرد. تمامی خطوط برنامه به فارسی کامنت گذاری شده است.
در برنامه ردیابی مسیر با فیلتر کالمن ، فیلتری اعمال شده است که مسیری را برای آغاز حرکت از زمین با سرعت زاویه 40 درجه آغاز می کند و این همان قسمت قرمز رنگ است که در تصویر بالا مشاهده می فرمائید.
سپس دماغه به جهت تشخیص یک شی از دماغه یا شبیه سازی اندازه گیری دماغه ، اعمال شده است. بعد از آن نویز گوسین به طور تصادفی که اعداد تصادفی برای توزیع گوسین با انحراف استاندارد سیگما میدهد، تولید شده و فیلتر کالمن به آن اعمال شده است.
فیلتر کالمن ، تخمین حالت های سیستم در زمان به کمک یک سری اطلاعات در رابطه با مدل را میدهد. در پروژه ردیابی مسیر با فیلتر کالمن ، اطلاعات شامل حرکت آزاد در جهت افقی و حرکت شتاب در جهت عمودی می باشند. قابل ذکر است که شتاب ثابت می باشد. بدنه کلی نیز با مکان (x,y) و سرعت (vx,vy) و شتاب عمودی ay توصیف می شود.
در ادامه، فیلم و تصویر خروجی دیگر، و دانلود رایگان پروژه ردیابی مسیر با فیلتر کالمن با متلب به همراه داکیومنت فراهم شده است.
کدهای برنامه ردیابی مسیر با فیلتر کالمن با توضیحات:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | clc; clear; close all; % آماده سازي متلب براي اجرا - پاک کردن نوشته ها در خط فرمان، پاک کردن % فرامين در محيط کاري و بستن همه پنجره هاي از قبل باز al=40*pi/180; % زاويه سرعت در آغاز کار v0=10; % سرعت اوليه g=9.8; % ثابت گرانش vx=v0*cos(al); vy=v0*sin(al); % سرعت اوليه در محور ايکس و واي x=0; y=0; % مکان اوليه در محور ايکس و واي dt=0.02; % گام زماني sgx=0.02; % سيگماي ايکس sgy=0.02; % سيگماي واي % در زير توليد مسير اصلي تعريف شده است xa=[]; % مختصات ايکس ذخيره مي گردد ya=[]; % مختصات واي ذخيره مي شود vxa=[]; % اجزاي ايکس سرعت ذخيره مي شود vya=[]; % اجزاي واي سرعت ذخيره مي شود ta=[]; % در اينجا زمان ذخيره مي گردد xna=[]; % محل ذخيره دماغه مختصات ايکس yna=[]; % محل ذخيره دماغه مختصات واي t=0; % زمان شروع براي رديابي مسير % در زير حلقه بي نهايت استفاده شده است while 1 xa=[xa x]; ya=[ya y]; vxa=[vxa vx]; vya=[vya vy]; ta=[ta t]; xna=[xna x+sgx*randn]; yna=[yna y+sgy*randn]; % در دو خط بالا نويز گاوسيان اعمال مي شود if y<0 break end % شرط بالا به منظور بازگشت به سطح مي باشد و سپس توقف حرکت % با توجه به مسيرهاي يافت شده و رديابي شهد نياز به بروز رساني مي باشد x=x+vx*dt; % vx~(x(k+1)-x(k))/dt => x(k+1)~x(k)+vx*dt y=y+vy*dt; vy=vy-g*dt; t=t+dt; % دقت شود که % vx % تغيير نمي کند end % رسم خروجي بخش هاي بالا figure; plot(xna,yna,'b-'); xlabel('x, m'); ylabel('y, m'); legend('real curve','noised curve'); % در بخش زير فيلتر کالمن اعمال شده است R=[sgx^2 0 0 sgy^2]; % ماتريس کواريانس براي دماغه ايکس و واي H=[1 0 0 0 0; 0 0 1 0 0]; % ماتريس مشاهده اي F=[ 1 dt 0 0 0 0 1 0 0 0 0 0 1 dt 0 0 0 0 1 dt 0 0 0 0 1 ]; % ماتريس انتقال حالت P=eye(5); % ميزان اوليه ماتريس پي I=eye(5); % ماتريس واحد xc=[xna(1) 0 yna(1) 0 0]; % حدس مقدار اوليه تخمين بردار حالت براي ايکس و واي براي دريافت موقعيت اوليه % دماغه ها که براي % vx , vy , ay % صفر مي باشد z=[xna yna]; % مشاهده ماتريس حالت xca=xc; % داده هاي % xc % در % xca % ذخيره مي شوند % در حلقه زير شمارنده حلقه است که آغاز آن از گام دوم اجرايي است - منظور % زماني است که فيلتر کالمن به آن اعمال مي شود nc=2; for t=ta(2:end) Ps=F*P*F'; K=Ps*H'*(H*Ps*H'+R)^(-1); xc=F*xc+K*(z(:,nc)-H*F*xc); P=(I-K*H)*Ps*(I-K*H)'+K*R*K'; xca=[xca xc]; nc=nc+1; end % رسم با مسير که روي آن فيلتر کالمن اعمال شده است hold on; plot(xca(1,:),xca(3,:),'r-','linewidth',2); legend('noised','filtered'); title('trajectory'); % رسم گراف سرعت در پنجره اي جداگانه figure; plot(ta,xca(2,:),'r-','linewidth',2); hold on; plot(ta,vxa,'r--'); plot(ta,xca(4,:),'b-','linewidth',2); plot(ta,vya,'b--'); xlabel('time, s'); legend('filtered vx','original vx','filtered vy','original vy'); title('velocities'); |
تصویر خروجی 2:




















(139 امتیاز از 34 رای)








سلام اگه مقاله این پروژرو هم دارید لطفا تو سایت بزارید دستتون درد نکنه .