برای یافتن تبدیل فوریه یک تابع در حوزه ی زمان می توان از دستور fourier استفاده کرد. مثال:
کد:syms x;
f = exp(-x^2);
fourier(f)
Printable View
برای یافتن تبدیل فوریه یک تابع در حوزه ی زمان می توان از دستور fourier استفاده کرد. مثال:
کد:syms x;
f = exp(-x^2);
fourier(f)
در این پست مدل Simulink کنترل یک سیستم جرم و فنر با روش State Vector Feedback قرار گرفته است. در SVFC با فیدبک گرفتن از تمام حالت های سیستم، نوع پاسخ آن کنترل می شود. اما در مدل جرم و فنر در عمل امکان فیدبک گرفتن از سرعت وجود ندارد. لذا جهت یافتن مقدار تقریبی سرعت باید از یک تخمین گر حالت (State Estimator) استفاده کرد. جهت اجرای این کار از یک مشاهده گر با رتبه ی کاهش یافته (Reduced Order Observer) بهره گرفته شده است.
جهت تولید پالس مربعی در MATLAB از فرمان gensig به شکل زیر عمل می کنیم:
که در آن:کد:[u,t] = gensig('square',T,d,Ts)
- T دوره تناوب پالس
- d مدت زمان پالس
- Ts زمان نمونه برداری
مثال:
کد:[u,t] = gensig('square',5,30,0.1)
اگر یک سیستم دینامیکی در فضای حالت به شکل زیر تعریف شده باشد:آن گاه ماتریس کنترل پذیری و مشاهده پذیری به ترتیب به شکل زیر در به دست می آیند:
x. = Ax + Bu
y = Cx + Du
مثال:کد:ctrb(A,B)
obsv(A,C)
کد:A = [1 2;-1 1];
B = [2;1];
C = [1 0];
ctrb(A,B)
obsv(A,C)
برای محاسبه ی گرامیان کنترل پذیری و مشاهده پذیری در متلب از فرمان gram استفاده می شود.
مثال:
کد:sys = ss([0 1;-1 -1],[0;1],[1 0],0);
gram(sys,'c')
gram(sys,'o')
جهت طراحی یک کنترلر بهینه ی مربعی-خطی در متلب می توان از فرمان LQR به شکل زیر بهره برد:
که در آن A و B ماتریس های فضای حالت سیستم و Q، R و N پارامتر های تابع هدف هستند. در آن صورت K ماتریس ضرایب بردار فیدبک حالت، S پاسخ معادله ی ریکاتی و e مقادیر ویژه ی سیستم مطلوب خواهد بود.کد:[K,S,e] = LQR(A,B,Q,R,N)
من به کد متلب روش ضمنی دو بعدی در مکعب مستطیل نیاز دارم. لطفا کمکم کنید.
دوست گرامی عضویت شما رو در شهر سخت افزار تبریک می گم.نقل قول:
اگر منظورتون روش ضمنی تفاضل محدود در حل معادلات دیفرانسیل کارتزین دو بعدی هستش می تونید به دو پیوند زیر مراجعه کنید:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
ولی اگه منظورتون چیز دیگه ای بوده، لطفا سوالتون رو واضح تر مطرح بفرمایید.
با سپاس
آرمین
الگوریتم Local Linear Model Tree یا به اختصار LOLIMOT یک الگوریتم برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]-برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] براساس مدل TSK است که در یادگیری سیستم های غیر خطی و تشخیص الگو کاربرد دارد.
برای یافتن تبدیل فوریه ی دو بعدی یک تصویر می توان به شکل زیر عمل کرد:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]کد:I = imread('test.jpg'); % Read image from the path
F = fft2(I); % 2D FFT
F = fftshift(F); % Center FFT
F = abs(F); % Get the magnitude
F = log(F+1); % Use log, for perceptual scaling, and +1 since log(0) is undefined
F = mat2gray(F); % Use mat2gray to scale the image between 0 and 1
imshow(F,[]); % Display the result
با دستور diag به شکل زیر می توان عناصر روی قطر اصلی یک ماتریس مربعی را استخراج کرد:
کد:a = rand(3);
diag(a)
سورس پیوست شده یک آشوب را در سیستم دینامیکی را نشان می دهد که به ازای دو شرط اولیه ی نزدیک به هم، پاسخ های سیستم پس از مدتی تفاوت قابل ملاحظه ای از هم پیدا می کنند.
دستور margin فرمانی مفید جهت یافتن حد بهره (Gain Margin) و حد فاز (Phase Margin) یک سیستم دینامیکی است. مثال:
کد:hd = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1)
[Gm, Pm] = margin(hd)
جهت ایجاد یک عدد تصادفی با توزیع نرمال یا گاوسی از فرمان randn در متلب استفاده می شود. مثال زیر یک عدد تصادفی را براساس یک توزیع نرمال با میانگین 1 و انحراف معیار 2 ایجاد می کند:
کد:r = 1 + 2.*randn(1)
آرمین جان برای توزیع های دیگه مثل نمایی یا برنولی هم دستوری وجود داره؟نقل قول:
بله مهراد جان... فرمان random در آرگومان خودش اسم توزیع رو دریافت می کنه که شامل توزیع های متنوعی میشه. مثلا" برای تولید یک عدد تصادفی با توزیع ریلی فرمان زیر رو وارد می کنیم:نقل قول:
برای برخی از توزیع های پرکاربرد هم از جمله همین توزیع نمایی و توزیع برنولی دستور اختصاصی وجود داره که به ترتیب exprnd و binornd هستش.کد:x1 = random('rayl',1)
موفق باشی
برای ذخیره کردن محتویات پنجره ی Figure در یک فایل از فرمان saveas به شکل زیر استفاده می کنیم:
کد:h = figure(1);
saveas(h, 'filePath', 'jpg')
سلام. ببخشید میخواستم بدونم کد آماده ای در متلب هست که بتونه یک ماتریس رو به عنوان ورودی بگیره و درایه های اون رو به طور اتوماتیک تغییر بده و این کار رو چندین بار انجام بده و در هر بار یک ماتریس جدید به ما بده (مثلا با 100 تکرار) . خیلی ممنون.
با سلام!نقل قول:
دوست گرامی عضویت شما رو در شهر سخت افزار تبریک می گم.
منظورتون از این که " درآیه های ماتریس رو به طور اتوماتیک تغییر بده " چیه؟
برای پیچاندن (Convolve) دو سیگنال تک بعدی x و y در هم از فرمان conv به شکل زیر استفاده می کنیم:
کد:conv(x,y)
سورس پیوست شده مربوط به تشخیص چهره با الگوریتم Kanade–Lucas–Tomasi یا به اختصار KLT است که برخلاف الگوریتم Voila-Jones قابلیت تعیین زاویه ی چرخش چهره و یا تجانس آن را دارد.
کد زیر مثالی از نوشتن مقدار سه متغیر در یک فایل متنی است:
کد:a = 2;
b = 4;
c = 10;
fid = fopen('output.txt','w');
fprintf(fid,'a=%g\r\n',a);
fprintf(fid,'b=%g\r\n',b);
fprintf(fid,'c=%g',c);
fclose(fid);
برای تبدیل یک رنگ از فضای RGB به HSV به شکل زیر عمل می کنیم:
کد:rgb2hsv([255 128 0])
کد MATLAB پیوست شده تابعی است که کاربر را قادر می سازد تا فریم های دلخواهی را از یک فایل ویدئویی حذف کند و ویدئوی جدید را در خروجی تولید نماید.
جهت Crop کردن یک تصویر در متلب به شکل زیر عمل می کنیم:که در آن x1، y1 و x2، y2 مختصات دو گوشه ی مستطیل برش اند.کد:I = imread('Image Path');
I2 = imcrop(I,[x1 y1 x2 y2]);
imshow(I2)
برای تولید اعداد تصادفی صحیح بین دو عدد a و b به شکل زیر عمل می کنیم:
کد:randi([a,b])
فایل پیوست شده مربوط به شبیه سازی یک Classic Washout Filter جهت ایجاد حرکات شتاب دار در شبیه ساز ها است. برای اجرای فایل نیاز به نرم افزار MATLAB 2013 است.
در صورتی که بخواهیم بهینه سازی مقاوم انجام دهیم چگونه باید از این کد استفاده کرد؟
نقل قول:
با سلام!نقل قول:
در مجموعه ای که شما بهش اشاره کردید بهینه سازی مقاوم بر اساس دو رویکرد RBDO و RDO صورت می گیره. در RBDO توابع هدف شما احتمال های شکست خواهند بود که در فایلی که در انجمن قرار داده شده بود احتمال شکست در مورد مقاومت و جرم یک تیر تحت بار لحاظ شده بود. در RDO میانگین و انحراف مربوط به یک پارامتر مثلا مقاومت تیر به عنوان توابع هدف مطرح میشه. برای استفاده از این فایل ها شما کافیه تعداد نمونه ها و PDF و CDF پارامتر های عدم قطعیت رو تعیین کنید و خروجی رو به عنوان توابع هدف در NSGA استفاده کنید.
موفق باشید
آرمین
برای یافتن عدد شرطی (Condition Number) ماتریس A به شکل زیر عمل می کنیم:
کد:cond(A)
کد زیر محتویات داخل حلقه را تنها تا 10 ثانیه تکرار می کند:برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]کد:start_tm = clock();
loopTime = 10;
while etime(clock(),start_tm)<loopTime,
%... Put your code in here ...
end
برای یافتن تابع تبدیل حلقه بسته ی (Closed Loop) سیستم مدار باز G که تابع تبدیل مسیر فیدبک آن H است، می توان از فرمان feedback به شکل زیر استفاده کرد:
کد:feedback(G,H)
برای استخراج هیستوگرام روشنایی یک تصویر در متلب به شکل زیر عمل می کنیم:
کد:img = imread('Image Path');
img = rgb2gray(img);
imhist(img)
برای یافتن مقدار میانه در یک آرایه از فرمان median به شکل زیر استفاده می کنیم:
کد:median([1 5 3 10 6])
ans = 5
سلام دوست عزیز.
من خیلی فوری یه برنامه متلب می خوام که 1000 تا تابع سینوسی با فازهای مرتب ( با فاصله های یکسان) رو ایجاد کنه. بعد این توابع رو بر حسب زمان رسم کنه.
مرسی.:give_rose:
من خودم این برنامه رو نوشتم شما اطلاع داردید درست هست یا نه؟
کد:clc;
clear;
t= linspace(0,10,1000);
f= linspace (0,4*pi,1000);
y= sin ( (2 * pi * t)+ f);
plot(t,y);
title('Constant Phase & Constant Amp');
ylabel('Summation');
xlabel('Time');
سلام مهندس
من میخوام تبدیل فوریه یک پالس مربعی رو رسم کنم.
کمک میکنید؟
با سلام!نقل قول:
دوست گرامی منظورتون از فاز مرتب چیه؟ اگر منظورتون اینه که 1000 تا تابع سینوسی مد نظر تون است که هر کدوم با تابع قبلی یک اختلاف فاز ثابت داشته باشن کدی که قرار دادید رو باید به شکل زیر اصلاح بفرمایید:
موفق باشیدکد:clear all
clf
clc
t=linspace(0,10);
f=linspace (0,2*pi,1000);
for i=1:1000
y=sin((2*pi*t)+f(i));
hold on
plot(t,y);
end
title('Constant Phase & Constant Amp');
ylabel('Summation');
xlabel('Time');
آرمین
با سلام!نقل قول:
دوست گرامی به شهر سخت افزار خوش آمدید.
بفرمایید:
موفق باشیدکد:t=linspace(0,2*pi);
y=square(t);
z=fft(y);
plot(t,z)
آرمین
برای یافتن بیش ترین مقدار در یک آرایه و همچنین اندیس آن مقدار در MATLAB می توان به شکل زیر عمل کرد:
خروجیکد:A = [1 3 5 2 4];
[maxVal,maxInd] = max(A);
کد:maxVal = 5
maxInd = 3