انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
شناسایی سیستم با متلب

شناسایی سیستم با متلب

#5
(۱۳۹۳/۰۱/۲۶, ۰۲:۱۵ ق.ظ)'admin' نوشته: من دستور czt رو پیدا کردم که برای Chirp z-transform به کار میره. دستور ztrans هم که برای تبدیل z از یک تابع مشخص (به صورت سمبلیک) می باشد و عملا به دردمون نمیخوره.
مثلا برای گرفتن تبدیل فوریه، برای توابع مشخص (به صورت سمبلیک)، دستور fourier رو داریم، اما برای گرفتن تبدیل فوریه از داده های گسسته، از دستور fft استفاده می شود (Fast Fourier transform)، حالا اینکه نامشون با هم فرق داره، نباید فکر کنیم که Fast Fourier transform جواب غلط میده، بلکه Fast Fourier transform برای گرفتن تبدیل فوریه از مقادیر گسسته به کار می رود و در پروژه های شبیه سازی، از آن استفاده می کنند. در واقع، روش Fast Fourier transform ، روشی برای محاسبه discrete Fourier transform می باشد (DFT).
این رو گفتم که برید دنبال مفهوم  Chirp z-transform و اگر برای همین مورد شما به کار می رود، از دستور مربوط به آن استفاده کنید.
همچنین برای شناسایی سیستم، از همین تبدیل فوریه نیز می توانید استفاده کنید (از دستور fft). از ورودی و خروجی، تبدیل فوریه می گیرید و سپس آنها را بر هم تقسیم می کنید تا تابع تبدیل به دست آید. در صورت تمایل، می توانید با استفاده از دستور ifft ، از آن تبدیل فوریه معکوس بگیرید.
در ضمن، این مطالب را بر حسب تجربه خود نوشته ام و هر کدام از آنها که غلط بود (یا روش بهتری برای آن پیدا کردید)، خوشحال می شوم تذکر بدهید.
آن m-file ها را هم باید ابتدا کدهایشان را بخوانید و ندیده نمی توان گفت که چگونه عمل می کنند.



 

ممنون از راهنمایتون من دستور را با داده های ورودی (یه بردار با طول 200) وخروجی (یه بردار با طول 200) امتحان کردم که حاصل تقسیم تبدیل z خروجی به تبریل z ورودی
 یه ماتریس 200*200 شد به نظرتون چطوری این ماتریس به معادله تبدیل کنم چون هدف یافتن معادله ای است که ارتباط بین ورودی و خروجی را نشان دهد    البته تابع همبستگی هم روش دیگری است . این مورد هم مثل تبدیل z مشکل داشتم که  چطوری تابع خود همبستگی ورودی ( Rxx) و همبستگی متقابل ورودی وخروجی (Rxy)  هر کدام جداگونه حساب و تبدیل z گرفته تقسیم کنم یکی از m-file ها در زیر است به نظرتون چطوری از این m-file برای شناسایی سیستم استفاده کنم (روش OLS برای شناسایی سیستم است)

کد:
clear u_t U N N_GUESS y u m n k j  iteration P_0 P_T_1 TETA_0 TETA_K_1 i c  a
Y y_hat num den;
N=4000; % Number of asmpels
PRBS = idinput (4095 , 'prbs',[0,1],[0,1]) ;
PRBS=PRBS-.5;
%for n=1:20000
%  PRBS(n+4095)=PRBS(n);
%end
for n=1:1:N
u(n) =1+ PRBS(n)/2;
end
for i=1:N
y_simulinks=(y_simulink)';
y(i)=y_simulinks(i);
end
%*************************THIS PART IS SPECIALLY ABOUT LS******************
% n : number of coefficients of denamenator of transfer function
% m : number of coefficients of numerator of transfer function
% N : number of samples
% a : column of matrix U
n=3;
m=n;
c=1;
for a=1 : n %This loop assigns first n columns of matrix U
j=1+a;
for k=j:N
U(k,a)=-y(c);
c=c+1;
end
c=1;
end
for a= n+1 : n+m % This loop assigns m columns of matrix U
i=a-n;
for k=i:N
U(k,a)=u(k);
end
end
%*************Now U is obtained . so we start to find teta*****************
teta=((inv(U'*U))*U')*y';
for i=1:n
den(i)=teta(i);
end %This line forms denamenators of transfer function
den=[1 den];
p=1;
100
for i=n+1:n+m
num(p)=teta(i);
p=p+1;
end % This line forms numerator of transfer function
h = tf (num , den , 0.01 , 'variable' , 'z^-1')
bode(h);
Y_hat=U*teta;
e_hat=y'-Y_hat;
S_hat=0;
for i=1:N %This loop calculates S-hat
k=e_hat(i)^2;
S_hat=S_hat+k;
end
S_hat;
segma_hat2=S_hat/(N-(n+m));
cov_teta_hat = ((segma_hat2)^2).*(inv((U')*U))
پاسخ


پیام‌های این موضوع
شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۲۳, ۰۳:۲۳ ب.ظ
RE: شناسایی سیستم با متلب - توسط admin - ۱۳۹۳/۰۱/۲۳, ۰۷:۲۰ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۲۴, ۰۵:۰۷ ب.ظ
RE: شناسایی سیستم با متلب - توسط admin - ۱۳۹۳/۰۱/۲۶, ۰۲:۱۵ ق.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۲۶, ۰۷:۱۷ ب.ظ
RE: شناسایی سیستم با متلب - توسط admin - ۱۳۹۳/۰۱/۲۸, ۰۲:۱۲ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۲۹, ۰۴:۱۱ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۳۰, ۱۰:۰۸ ق.ظ
RE: شناسایی سیستم با متلب - توسط admin - ۱۳۹۳/۰۱/۳۰, ۰۸:۴۰ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۱/۳۰, ۰۹:۰۶ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۲/۰۶, ۰۷:۱۱ ب.ظ
RE: شناسایی سیستم با متلب - توسط ayande - ۱۳۹۳/۰۳/۱۵, ۰۴:۲۷ ب.ظ
RE: شناسایی سیستم با متلب - توسط admin - ۱۳۹۳/۰۳/۱۷, ۰۹:۳۹ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان