Nyt Matlab-ekspertit apua!!

Seuraa 
Viestejä45973
Liittynyt3.9.2015

"Eräässä virtapiirissä u(t)=110V*sin(100*pi*t) ja kytkin K suljetaan ajanhetkellä t=0, jolloin kondensaattorin varaus q(0)=60 As. Tällöin ajanhetkellä t on voimassa Lq'' + Rq' + (1/C)q = u(t). Ratkaise yhtälöstä kondensaattorin varaus ajan t funktiona. Lisäksi tiedetään että q'(t)=i(t), ts. q'(0)=0. Ratkaise tämän perusteella edellisen yhtälön ratkaisusta piirissä kulkevan virran voimakkuus hetkellä t, kun L=4, R=1 ja C=0.02."

Lähdin kehittämään tätä Matlabbiin seuraavasti:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

Vastauksena 10 riviä pitkä hirvitys... Auttakee, mitä teen väärin? Miten muokkaan tuon siten että saan i(t) yhtälön ulos jotta voi sijoittaa nuo annetut arvot?

Kommentit (9)

Vierailija
Insinöörimaisteri
"Eräässä virtapiirissä u(t)=110V*sin(100*pi*t) ja kytkin K suljetaan ajanhetkellä t=0, jolloin kondensaattorin varaus q(0)=60 As. Tällöin ajanhetkellä t on voimassa Lq'' + Rq' + (1/C)q = u(t). Ratkaise yhtälöstä kondensaattorin varaus ajan t funktiona. Lisäksi tiedetään että q'(t)=i(t), ts. q'(0)=0. Ratkaise tämän perusteella edellisen yhtälön ratkaisusta piirissä kulkevan virran voimakkuus hetkellä t, kun L=4, R=1 ja C=0.02."

Lähdin kehittämään tätä Matlabbiin seuraavasti:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

Vastauksena 10 riviä pitkä hirvitys... Auttakee, mitä teen väärin? Miten muokkaan tuon siten että saan i(t) yhtälön ulos jotta voi sijoittaa nuo annetut arvot?




Kauan sitten kaukaisessa opinahjossa, muistelen, että piirianalyysi tapahtui ihan käsipelillä.

Vierailija
JW
Insinöörimaisteri
"Eräässä virtapiirissä u(t)=110V*sin(100*pi*t) ja kytkin K suljetaan ajanhetkellä t=0, jolloin kondensaattorin varaus q(0)=60 As. Tällöin ajanhetkellä t on voimassa Lq'' + Rq' + (1/C)q = u(t). Ratkaise yhtälöstä kondensaattorin varaus ajan t funktiona. Lisäksi tiedetään että q'(t)=i(t), ts. q'(0)=0. Ratkaise tämän perusteella edellisen yhtälön ratkaisusta piirissä kulkevan virran voimakkuus hetkellä t, kun L=4, R=1 ja C=0.02."

Lähdin kehittämään tätä Matlabbiin seuraavasti:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

Vastauksena 10 riviä pitkä hirvitys... Auttakee, mitä teen väärin? Miten muokkaan tuon siten että saan i(t) yhtälön ulos jotta voi sijoittaa nuo annetut arvot?




Kauan sitten kaukaisessa opinahjossa, muistelen, että piirianalyysi tapahtui ihan käsipelillä.



Kiva kuulla, mutta osaisiko joku auttaa tämän kanssa?

Opettaja
Seuraa 
Viestejä1983
Liittynyt22.7.2011

Täytyy tunnustaa, että en tuota matlappia tunne (eli asiahan ei minulle kuulu), mutta lauseke näyttää ihan hyvältä, asia erikseen mitä nuo dsolve (onko tämä differentiaaliyhtälön ratkaisija, missä näkyy, että q:ta etsitään?) ja D oikeasti tekevät. Varmaan olet vakioille R jne. antanut alkuarvot jossain? (Vaikka jos tuo dsolve jokin symbolinen ratkaisija on, niin pitäisihän tuo parametreillakin onnistua.) Mitäköhän tuo kone sitten ratkaisuksi suoltaa? Yhtälö on ihan tavallinen lineaarinen diffyhtälö, jonka ratkaisu on varsin simppeli. Tosin ratkaisun muoto riippuu noista kertoimista eli jospa ohjelma yrittää tarjota kaikki vaihtoehdot?

Ja hetkinen... tuosta yhtälöstä saat vasta q:n joten pitää vielä derivoida.

Vierailija

Hei,

kyseessä on symbolisen laskennan kurssin yksi tehtävä ja tarkoitus on nimenomaan ratkaista matlabilla, eikä käsipelillä..

Tämmöistä vastausta antaa:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

ans =

(30*(R^2*c^2 - 4*L*c)^(3/2) + 30*R^3*c^3 + 44000*pi*L^2*c^3 + 30*R*c*(4*L*c - R^2*c^2) - 30*R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*R*c^3)/(exp((t*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*((R^2*c^2 - 4*L*c)^(3/2) + 2*R*c*(4*L*c - R^2*c^2) + R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 40000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2))) - (30*R^3*c^3 - 30*(R^2*c^2 - 4*L*c)^(3/2) + 44000*pi*L^2*c^3 + 30*R*c*(4*L*c - R^2*c^2) + 30*R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) - 1200000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*R*c^3)/(exp((t*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*((R^2*c^2 - 4*L*c)^(3/2) - 2*R*c*(4*L*c - R^2*c^2) + R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 40000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2))) + (110*c*exp((R*t)/(2*L) + (t*(R^2*c^2 - 4*L*c)^(1/2))/(2*L*c))*(100*pi*cos(100*pi*t) - (sin(100*pi*t)*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c)))/(exp((t*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*(R^2*c^2 - 4*L*c)^(1/2)*(10000*pi^2 + (R*c + (R^2*c^2 - 4*L*c)^(1/2))^2/(4*L^2*c^2))) - (110*c*exp((R*t)/(2*L) - (t*(R^2*c^2 - 4*L*c)^(1/2))/(2*L*c))*(100*pi*cos(100*pi*t) - (sin(100*pi*t)*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c)))/(exp((t*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*(10000*pi^2 + (R*c - (R^2*c^2 - 4*L*c)^(1/2))^2/(4*L^2*c^2))*(R^2*c^2 - 4*L*c)^(1/2))

tuota kun lähtee derivoimaan niin itku pääsee....

Opettaja
Seuraa 
Viestejä1983
Liittynyt22.7.2011
Insinöörimaisteri
Hei,

kyseessä on symbolisen laskennan kurssin yksi tehtävä ja tarkoitus on nimenomaan ratkaista matlabilla, eikä käsipelillä..

Tämmöistä vastausta antaa:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

ans =

(30*(R^2*c^2 - 4*L*c)^(3/2) + 30*R^3*c^3 + 44000*pi*L^2*c^3 + 30*R*c*(4*L*c - R^2*c^2) - 30*R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*R*c^3)/(exp((t*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*((R^2*c^2 - 4*L*c)^(3/2) + 2*R*c*(4*L*c - R^2*c^2) + R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 40000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2))) - (30*R^3*c^3 - 30*(R^2*c^2 - 4*L*c)^(3/2) + 44000*pi*L^2*c^3 + 30*R*c*(4*L*c - R^2*c^2) + 30*R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) - 1200000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 1200000*L^2*pi^2*R*c^3)/(exp((t*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*((R^2*c^2 - 4*L*c)^(3/2) - 2*R*c*(4*L*c - R^2*c^2) + R^2*c^2*(R^2*c^2 - 4*L*c)^(1/2) + 40000*L^2*pi^2*c^2*(R^2*c^2 - 4*L*c)^(1/2))) + (110*c*exp((R*t)/(2*L) + (t*(R^2*c^2 - 4*L*c)^(1/2))/(2*L*c))*(100*pi*cos(100*pi*t) - (sin(100*pi*t)*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c)))/(exp((t*(R*c + (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*(R^2*c^2 - 4*L*c)^(1/2)*(10000*pi^2 + (R*c + (R^2*c^2 - 4*L*c)^(1/2))^2/(4*L^2*c^2))) - (110*c*exp((R*t)/(2*L) - (t*(R^2*c^2 - 4*L*c)^(1/2))/(2*L*c))*(100*pi*cos(100*pi*t) - (sin(100*pi*t)*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c)))/(exp((t*(R*c - (R^2*c^2 - 4*L*c)^(1/2)))/(2*L*c))*(10000*pi^2 + (R*c - (R^2*c^2 - 4*L*c)^(1/2))^2/(4*L^2*c^2))*(R^2*c^2 - 4*L*c)^(1/2))

tuota kun lähtee derivoimaan niin itku pääsee....




Ihan hyvältähän tuo näyttää, suurin osa on vakiotermejä, joten derivoidessa ne häviää!
Mutta vakavasti: Nyt näyttää tosiaan siltä, että tuossa on mahdollisimman yleinen ratkaisu yhtälölle. Ratkaisu kyllä sievenee, kun annat heti alkuun vakioille R, c ja L ne arvot, jotka tehtävässä on annettu. Periaatteessa voi kai sijoittaa tähänkin, jos tuo on yleinen ratkaisu. (Tietysti panet Matlabin tekemään työt.) Ja toisaalta, osaahan se matlabbi derivoida tuonkin lausekkeen! Suosittelin ihan kokeilemaan kaikilla kolmella tavalla tuleeko lopulta sama tulos.

Stratonovich
Seuraa 
Viestejä358
Liittynyt14.6.2009
Insinöörimaisteri
"Eräässä virtapiirissä u(t)=110V*sin(100*pi*t) ja kytkin K suljetaan ajanhetkellä t=0, jolloin kondensaattorin varaus q(0)=60 As. Tällöin ajanhetkellä t on voimassa Lq'' + Rq' + (1/C)q = u(t). Ratkaise yhtälöstä kondensaattorin varaus ajan t funktiona. Lisäksi tiedetään että q'(t)=i(t), ts. q'(0)=0. Ratkaise tämän perusteella edellisen yhtälön ratkaisusta piirissä kulkevan virran voimakkuus hetkellä t, kun L=4, R=1 ja C=0.02."

Lähdin kehittämään tätä Matlabbiin seuraavasti:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

Vastauksena 10 riviä pitkä hirvitys... Auttakee, mitä teen väärin? Miten muokkaan tuon siten että saan i(t) yhtälön ulos jotta voi sijoittaa nuo annetut arvot?


Eikös tuon voi tehdä ihan matlabilla suurin piirtein näin:

>> q = simplify(dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0'))
>> i = diff(q,sym('t'))
>> simplify(subs(i,{'L','R','c'},{4,1,0.02}))

Vierailija
Stratonovich
Insinöörimaisteri
"Eräässä virtapiirissä u(t)=110V*sin(100*pi*t) ja kytkin K suljetaan ajanhetkellä t=0, jolloin kondensaattorin varaus q(0)=60 As. Tällöin ajanhetkellä t on voimassa Lq'' + Rq' + (1/C)q = u(t). Ratkaise yhtälöstä kondensaattorin varaus ajan t funktiona. Lisäksi tiedetään että q'(t)=i(t), ts. q'(0)=0. Ratkaise tämän perusteella edellisen yhtälön ratkaisusta piirissä kulkevan virran voimakkuus hetkellä t, kun L=4, R=1 ja C=0.02."

Lähdin kehittämään tätä Matlabbiin seuraavasti:

>> dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0')

Vastauksena 10 riviä pitkä hirvitys... Auttakee, mitä teen väärin? Miten muokkaan tuon siten että saan i(t) yhtälön ulos jotta voi sijoittaa nuo annetut arvot?


Eikös tuon voi tehdä ihan matlabilla suurin piirtein näin:

>> q = simplify(dsolve('L*D2q+R*Dq+(q/c)=110*sin(100*pi*t)','q(0)=60','Dq(0)=0'))
>> i = diff(q,sym('t'))
>> simplify(subs(i,{'L','R','c'},{4,1,0.02}))




Olen tätä nyt pyöritellyt ja päässyt samaan lopputulokseen kuin Stratonovichin käskyillä. Ainoa jännä juttu on, kun tekee tuon viimeisen sijoituksen, ilmestyy vastaukseen jostain kokonaan uusi muuttuja I (iso ii). Kaavassa ei tällaista ole eikä sitä pitäisi sinne tulla??

Tässä lopullinen vastaus:

25/4*exp(25/4*t*(- 1/50 + 799^(1/2)*1/50*I))*(- 1/50 + 799^(1/2)*1/50*I)/(1/125000*(-
799)^(3/2) + 799/62500 + 799^(1/2)*pi^2*128/25*I + 799^(1/2)*1/125000*I)*(704/125*pi +
3/12500*(-799)^(3/2) + 768/5*pi^2 + 24/125 + 799^(1/2)*pi^2*768/5*I -

799^(1/2)*3/12500*I) + 25/4*exp(-25/4*t*(1/50 + 799^(1/2)*1/50*I))*(1/50 +
799^(1/2)*1/50*I)/(1/125000*(-799)^(3/2) - 799/62500 + 799^(1/2)*pi^2*128/25*I +
799^(1/2)*1/125000*I)*(704/125*pi - 3/12500*(-799)^(3/2) + 768/5*pi^2 + 24/125 -
799^(1/2)*pi^2*768/5*I + 799^(1/2)*3/12500*I) - 799^(1/2)*exp(1/8*t -
799^(1/2)*t*1/8*I)*exp(25/4*t*(- 1/50 + 799^(1/2)*1/50*I))/(625/16*(- 1/50 +
799^(1/2)*1/50*I)^2 + 10000*pi^2)*(10000*pi^2*sin(100*pi*t) - 625*pi*cos(100*pi*t)*(-
1/50 + 799^(1/2)*1/50*I))*110/799*I + 799^(1/2)*exp(1/8*t + 799^(1/2)*t*1/8*I)*exp(-
25/4*t*(1/50 + 799^(1/2)*1/50*I))/(625/16*(1/50 + 799^(1/2)*1/50*I)^2 +
10000*pi^2)*(10000*pi^2*sin(100*pi*t) + 625*pi*cos(100*pi*t)*(1/50 +
799^(1/2)*1/50*I))*110/799*I - 799^(1/2)*exp(1/8*t - 799^(1/2)*t*1/8*I)*exp(25/4*t*(-
1/50 + 799^(1/2)*1/50*I))*(- 1/8 + 799^(1/2)*1/8*I)/(625/16*(- 1/50 + 799^(1/2)*1/50*I)^2
+ 10000*pi^2)*(25/4*sin(100*pi*t)*(- 1/50 + 799^(1/2)*1/50*I) +
100*pi*cos(100*pi*t))*110/799*I + 799^(1/2)*exp(1/8*t + 799^(1/2)*t*1/8*I)*exp(-
25/4*t*(1/50 + 799^(1/2)*1/50*I))*(1/8 + 799^(1/2)*1/8*I)/(625/16*(1/50 +
799^(1/2)*1/50*I)^2 + 10000*pi^2)*(25/4*sin(100*pi*t)*(1/50 + 799^(1/2)*1/50*I) -
100*pi*cos(100*pi*t))*110/799*I + 799^(1/2)*exp(1/8*t - 799^(1/2)*t*1/8*I)*exp(25/4*t*(-
1/50 + 799^(1/2)*1/50*I))*(- 1/50 + 799^(1/2)*1/50*I)/(625/16*(- 1/50 +
799^(1/2)*1/50*I)^2 + 10000*pi^2)*(25/4*sin(100*pi*t)*(- 1/50 + 799^(1/2)*1/50*I) +
100*pi*cos(100*pi*t))*1375/1598*I - 799^(1/2)*exp(1/8*t + 799^(1/2)*t*1/8*I)*exp(-
25/4*t*(1/50 + 799^(1/2)*1/50*I))*(1/50 + 799^(1/2)*1/50*I)/(625/16*(1/50 +
799^(1/2)*1/50*I)^2 + 10000*pi^2)*(25/4*sin(100*pi*t)*(1/50 + 799^(1/2)*1/50*I) -
100*pi*cos(100*pi*t))*1375/1598*I

Opettaja
Seuraa 
Viestejä1983
Liittynyt22.7.2011

Näköjään aina vaan paranee. Oliskohan tuo I imaginaariyksikkö?
Mikä ihme estää panemasta nuo vakioiden arvot heti alkuun yhtälöön,
siis
L*D2q+R*Dq+(q/c):n
tilalle
4*D2q+1*Dq+(q/0.02)?

Siis homogeeninen yhtälö on 4q''+q'+50q=0.
Tämän ratkaisu on suunnilleen vakio kertaa

q=exp(-t/8)sin(sqrt(799)/8*t)+exp(-t/8)cos(sqrt(799)/8*t).

Yksityisratkaisu on muotoa A*sin(100*pi*t) + B*cos(100*pi*t), missä A ja B ovat vakioita, en jaksa laskea.
Näitten summa on yhtälön ratkaisu. Tuon kun derivoi, niin tulee lauseke, jossa on 6 termiä, elleivät nekin vielä yhdisty. Eli hieman on tuossa ylläolevassa tiivistämistä, mutta onhan tuossa ainakin 799 yhteistä ja näköjään 1/8 on lavennettu
25/4*1/50:ksi. Ihmeellisiä nämä insinöörin apuvälineet!

Edit: Näissä tehtävien ratkaisuissa pitäisi ensin lukea tehtävä, mutta parempi myöhään kuin ei silloinkaan. Siinähän näköjään lukee, että myös varaus (eli q) pitää ratkaista. Liekö tuossa sitten ihan oikeasti tarkoitus vain virta ratkaista vakiot sijoittamalla. Outoa kyllä, että Matlab sillekin antaa noin monimutkaisen lausekkeen, ilmeisesti se ei osaa sieventää.

Uusimmat

Suosituimmat