日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 循环神经网络 >内容正文

循环神经网络

单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法)

發(fā)布時(shí)間:2023/12/9 循环神经网络 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

建模

牛頓法

有空再寫(xiě)

拉格朗日方程法

首先我們先確定廣義坐標(biāo),并同時(shí)計(jì)算出來(lái)擺桿的轉(zhuǎn)動(dòng)慣量

接著列拉格朗日方程

計(jì)算動(dòng)能(轉(zhuǎn)動(dòng)動(dòng)能)

?計(jì)算勢(shì)能(取鉸鏈處為零勢(shì)能高度):

?計(jì)算L

計(jì)算拉格朗日方程中的中間量?

?將上述的中間量帶入拉格朗日方程,得到動(dòng)力學(xué)模型:

變換一下形式:

?當(dāng)角度較小時(shí)

我們可以假設(shè)角度比較小,因?yàn)榭刂埔话愣际窃谄胶恻c(diǎn)附近。

這時(shí),然后得出下面的狀態(tài)空間方程。

當(dāng)角度較大時(shí)

經(jīng)常情況下角度沒(méi)有那么小,這個(gè)時(shí)候我們就不能假設(shè),所以就得到非線(xiàn)性的控制系統(tǒng)。

所以這個(gè)時(shí)候我們這樣操作,將這個(gè)二階微分方程轉(zhuǎn)化成一階微分方程組,這樣就可以用matlab的ode45微分方程求解器求取數(shù)值解,求得的數(shù)值解即為系統(tǒng)狀態(tài)?y。然后得到系統(tǒng)狀態(tài)之后,控制器基于當(dāng)前狀態(tài)計(jì)算輸入,再施加給執(zhí)行器進(jìn)行控制。

?matlab仿真

?我們先把微分方程求解器做出來(lái):

直接把g=9.8,l=1和u=0帶入式子;

[t,y] = ode45(@odeBai,[0 10],[1;0]); plot(t,y(:,1),'-o',t,y(:,2),'-o');function dy = odeBai(t,y)dy = zeros(2,1);dy(1) = y(2);dy(2) = -3 * 9.8 / ( 2 * 1 )*sin(y(1))+0; end

從圖片也可能看出規(guī)律:

這下,我們就求出來(lái)了位置(角度)時(shí)間曲線(xiàn)和速度(角速度)時(shí)間曲線(xiàn)。

然后,我們做一個(gè)控制器,把輸入加上去。

控制器代碼:

總程序代碼:

clear all; clc;[t,y] = ode45(@odeBai,[0 10],[1;0]); plot(t,y(:,1),'-o',t,y(:,2),'-o');function dy = odeBai(t,y)dy = zeros(2,1);tau = PIDController(t,y);dy(1) = y(2);dy(2) = -3 * 9.8 / ( 2 * 1 )*sin(y(1)) + 3 * tau /(1*1*1); endfunction tau=PIDController(t,y) % 目標(biāo)狀態(tài) y1_desire = pi/4; y2_desire = 0; % 控制增益 Kp = 1000; Kd = 500; % 控制力矩 tau = Kp*(y1_desire-y(1))+Kd*(y2_desire-y(2)); end

仿真圖像如下:可以彈道藍(lán)線(xiàn)逐漸逼近pi/4即45度的位置,而橙線(xiàn)從較大的值趨于0,即速度最終為0.?

代碼:

clear all; clc;global m l g m = 1; l = 1; g = 9.8;[t,y] = ode45(@odeBai,[0 10],[-1;0]); figure(1); plot(t,y(:,1),'-o',t,y(:,2),'-o');figure(2); x0=0; y0=0;v = VideoWriter('Pen.avi'); open(v);for k=1:200:size(t)x1=l*cos(y(k,1));y1=l*sin(y(k,1));link1_x=[0,x1];link1_y=[0,y1];line(link1_x,link1_y,'linewidth',2,'color','b')axis equalaxis([-1.55 1.55 -1.55 0.55])grid on;hold on;plot(x0,y0,'o','linewidth',2,'color','r');frame = getframe(gcf);writeVideo(v,frame);clf; end close(v);function dy = odeBai(t,y)dy = zeros(2,1);tau = PIDController(t,y);dy(1) = y(2);dy(2) = -3 * 9.8 / ( 2 * 1 )*sin(y(1)) + 3 * tau /(1*1*1); endfunction tau=PIDController(t,y) % 目標(biāo)狀態(tài) y1_desire = -pi/4; y2_desire = 0; % 控制增益 Kp = 1000; Kd = 500; % 控制力矩 tau = Kp*(y1_desire-y(1))+Kd*(y2_desire-y(2)); end

參考鏈接

1.matlab動(dòng)力學(xué)建模與simscape驗(yàn)證(代碼) - 嗶哩嗶哩

總結(jié)

以上是生活随笔為你收集整理的单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。