Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobry den,
Potreboval by som pomoct s algortitmom pre riesenie DR NR v MATLAB-e.
Tyka sa to mojej Bakalarskej prace : "Identifikacia a riadenie laboratorneho objektu" , Mam k dispozicii namerane vystupne hodnoty v case. Z tychto hodnot potrebujem vytvorit matematicky model realnej sustavy. Ako vstupny signal pouzivam Heavisideovu skokovu zmenu o hodnote 1. Povodne som mal identifikovat ariadit tuto sustavu len ako celociselnu sustavu. V podstate to uz mam, no mam este cely mesiac cas, tak by som chcel skusit nieco tazsie a v praci porovnat vysledky.
Co sa tyka toho algoritmu, pre sustavu s parametrami a0,a1,alfa , to uz spravene mam,

Pre aproximaciu derivacie vyuzivam nasledujuci vztah:
kde
je "rad derivacie" , h je casovy krk a N je "dlzka pamate".
Pre vypocet bj:
pre
:
Algoritmus ktory potrebujem opravit:
clear all;
cas=20;
del_tau=0.1;
N=cas/del_tau+1;
t=[0:del_tau:cas];
u=1;
a2=3; a1=2; a0=1; alfa=2.3; beta=1.4;
b(1)=1;
c(1)=1;
for j=1:N,
b(j+1)=(1-(1+alfa)/j)*b(j);
c(j+1)=(1-(1+beta)/j)*c(j);
end
y0=0'
j=1;
y(j)=y0;
for m=2:N,
S1=0;
S2=0;
for j=2:m,
S1=S1+b(j)*y(m-j+1);
S2=S2+c(j)*y(m-j+1);
end
y(m)=(u-a2/del_tau^alfa*S1+a1/del_tau^beta*S2)/(a2/del_tau^alfa+a1/del_tau^beta+a0);
end
plot(t,y);
grid on;
Tento program samozrejme nevyuzivam na identifikaciu ale na porovnanie , ak mi toto bude fungovat, algoritmus na identifikaciu si z toho odvodim. Myslim si, ze chyba je v cykloch. Skusal som to menit, no nedostavam adekvatne vysledky.
Za pomoc a ochotu vopred Dakujem.
Offline
↑ ilaplace:
Ak by to niekoho zaujimalo, tak tu je spravne riesenie pre vypocet prech. char. DR NR 2.stupna v MATLAB-e
clear all;
cas=20;
del_tau=0.1;
% del_tau=0.01;
a2=3; a1=2; a0=1; alfa=2.3; beta=1.4;
u=1;
N=cas/del_tau+1;
t=[0:del_tau:cas];
b(1)=1;
c(1)=1;
for j=1:N,
b(j+1)=(1-(1+alfa)/j)*b(j);
c(j+1)=(1-(1+beta)/j)*c(j);
end
y0=0;
y01=0;
% pociatocne podmienky
j=1;
y(j)=y0;
j=2;
y(j)=y01;
for m=3:N,
S1=0;
S2=0;
for j=2:m,
S1=S1+b(j)*y(m+1-j);
S2=S2+c(j)*y(m+1-j);
end
y(m)=(u-a2/del_tau^alfa*S1-a1/del_tau^beta*S2)/(a2/del_tau^alfa+a1/del_tau^beta+a0);
end
plot(t,y); grid on;
save('C:\subX1.dat','t','y','-ASCII');
Offline