MATLAB微分方程幾種求解方法及程式

2021-07-25 06:47:04 字數 1962 閱讀 4773

第五章控制系統**

§5.2 微分方程求解方法

以乙個自由振動系統例項為例進行討論。

如下圖1所示彈簧-阻尼系統,引數如下:

m=5 kg, b=1 n.s/m, k=2 n/m, f=1nxb

mfk圖1 彈簧-阻尼系統

假設初始條件為:時,將m拉向右方,忽略小車的摩擦阻力, 求系統的響應。

)用常微分方程的數值求解函式求解包括ode45、ode23、ode113、ode15s、ode23s等。

wffc1.m myfun1.m

一、常微分方程的數值求解函式ode45求解

解:系統方程為

這是乙個單變數二階常微分方程。

將上式寫成乙個一階方程組的形式,這是函式ode45呼叫規定的格式。

令位移)

(速度)

上式可表示成:

下面就可以進行程式的編制。

%寫出函式檔案myfun1.m

function xdot=myfun1(t,x)

xdot=[x(2);1-10*x(2)-20*x(1)];

% 主程式wffc1.m

t=[0 30];

x0=[0;0];

[tt,xx]=ode45(@myfun1,t,x0);

plot(tt,yy(:,1),':b',tt,yy(:,2),'-r')

legend('位移','速度')

title('微分方程的解 x(t)')

二、方法2:

%用傳遞函式程式設計求解ksys1.m

num=1;

den=[5 1 2];

%printsys(num,den)

%t=0:0.1:10;

sys=tf(num,den);

figure(1)

step(sys)

figure(2)

impulse(sys)

figure(3)

t=[0:0.1:10]';

ramp=t;

lsim(sys,ramp,t);

figure(4)

tt=size(t);

noise=rand(tt,1);

lsim(sys,noise,t)

figure(5)

yy=0.1*t.^2;

lsim(num,den,yy,t)

w=logspace(-1,1,100)';

[m p]=bode(num,den,w);

figure(6)

subplot(211);semilogx(w,20*log10(m));

grid on

subplot(212);semilogx(w,p)

grid on

[gm,pm,wpc,wgc]=margin(sys)

figure(7)

margin(sys)

figure(8)

nyquist(sys)

figure(9)

nichols(sys)

方法3:

% 主程式wffc1.m

t=[0 30];

x0=[0;0];

[tt,yy]=ode45(@myfun1,t,x0);

figure(1)

plot(tt,yy(:,1),':b',tt,yy(:,2),'-r')

hold on

plot(tt,0.2-0.2*yy(:,2)-0.4*yy(:,1),'-.k')

legend('位移','速度','加速度')

title('微分方程的解')

figure(2)

plot(yy(:,1),yy(:,2))

title('平面相軌跡')

%寫出函式檔案myfun1.m

function xdot=myfun1(t,x)

xdot=[x(2);0.2-0.2*x(2)-0.4*x(1)];

求解微分方程小結

張成偉 pb08207215 微積分總是那麼讓人琢磨不透,用了幾個月才把極限搞懂了一點。接著又是定積分和不定積分的大量運算,現在又是微分方程的令人頭暈目眩。不過,經過一段時間的學習,仔細的總結一下,不難發現,其實求解微分方程基本上是乙個程式化的過程,不太需要特殊的思維技巧和各種繁瑣的運算。求導是乙個...

實驗三常微分方程求解Matlab實驗報告

北京理工大學珠海學院實驗報告 zhuhai campaus of beijing institute of technology 班級2012電氣2班學號 姓名陳冲指導教師張凱成績 實驗題目 實驗三 常微分方程求解實驗地點及時間 jb501 2013 12 31 3 4節 一 實驗目的 1.掌握用程...

微分方程總結

一 基本概念 微分方程 方程的階 方程的解 通解 特解 初始條件 積分曲線 階線性微分方程等.二 一階微分方程 1.可分離變數的微分方程 1 定義 形如的方程.2 解法 分離變數,兩邊同除,得,再積分可 得通解為 2.齊次方程 定義 形如的方程.解法 令,則,於是,原方程化為,整理為,積分為,再將代...