欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精)

      時(shí)間:2019-05-12 04:05:27下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精)》。

      第一篇:amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精)

      Amesim 與 matlab 聯(lián)合仿真參數(shù)設(shè)置 實(shí)驗(yàn)軟件平臺(tái)

      Matlab2009a , amesimR8a , VC6.0 企業(yè)版(英文版 步驟: 1 將 VC++中 的 “vcvar32.bat” 文 件 從 Microsoft Visual C++目錄(通常是.Microsoft Visual StudioVC98Bin 中拷 貝至 AMESim 目錄下。設(shè)置環(huán)境變量:我的電腦〉環(huán)境變 量。設(shè)置 AMESim 環(huán)境變量:變量名 AME ,值為其安裝路 徑如安裝在 C 盤中則值為 C:+amesim 安裝路徑。設(shè)置 Matlab 環(huán)境變量:變量名 MATLAB 值為 D:MATLAB,此 處我安裝的 matlab 在 D 盤根目錄下。確認(rèn)在系統(tǒng)環(huán)境變量 PATH 中包含系統(tǒng)安裝目錄 C:WINDOWSsystem32 3 在 Matlab 的目錄列表里加上 AMESim 與 Matlab 接口文 件所在的目錄 %AME%matlabamesim。File-〉 Set Path-〉 Add Folder 加 上 需 要 聯(lián) 合 仿 真 的 amesim 文 件 目 錄 和 C:AMEsimmatlabamesim(注 意 R8A 版 本 是

      將 %AME%scriptingmatlabamesim 設(shè)置到 MATLAB 路徑中 加入 matlab 默認(rèn)路徑中 將聯(lián)合仿真的許可證文件 licnese.dat 拷貝到 AMESim 安 裝目錄下的 licnesing 文件夾中 確認(rèn)是否在 AMESim 中選擇 VC 作為編譯器。具體操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。.在 MATLAB 命令窗口中輸入命令 Mex-setup ,選擇 VC 作為編譯器

      注意點(diǎn): 1, Vc 建議安裝企業(yè)版而且是英文的,其第一次打開安裝 文件安裝并不完全,重啟動(dòng)以后再次點(diǎn)安裝文件,會(huì)出現(xiàn)于 第一次安裝文件不同的界面,就說明沒有安裝完全

      2, Matlab 的安裝目錄和 amesim 的安裝目錄都不能在中文 路徑下,而去文件夾的名稱不能有空格

      3, 聯(lián)合仿真設(shè)置成功的標(biāo)志 : 可以運(yùn)行 amesim-〉 HELP-〉 GET AMESIM DEMO-〉 interface-〉 amesimsimulink 下的范例

      4, 如果運(yùn)行的現(xiàn)實(shí)找不到 matlab bin 則說明系統(tǒng)環(huán)境變 量中沒有設(shè)置 matlab 路徑,設(shè)置方法見上面,再重啟電腦, 再次用 amesim 打開范例并到參數(shù)模式下, 運(yùn)行 TOOLS-〉 Start matlab ,系統(tǒng)會(huì)調(diào)用 matlab 程序,再在打開的 matlab 中找 到與 amesim 中打開的文件同目錄且同名的.mdl 文件,在 matlab 中運(yùn)行仿真, 如果沒有錯(cuò)誤則在 amesim 中進(jìn)入仿真 模式打開相應(yīng)的元件就可

      以看到曲線(注意在 amesim 中不用運(yùn)行仿真 如果上面設(shè)置成功下面不用看 下面給出 amesim4.0 版本設(shè)置方法

      為了實(shí)現(xiàn)二者的聯(lián)合仿真,需要在 Windows2000 或更高級(jí) 操作系統(tǒng)下安裝 Visual C++ 6.0,AMESim4.2以上版本與 MATLAB6.1上版本(含 Simulink 1.將 VC++中 的 “vcvar32.bat” 文 件 從 Microsoft Visual C++目錄(通常是.Microsoft Visual StudioVC98Bin 中拷 貝至 AMESim 目錄下。

      2.環(huán)境變量確認(rèn): 1, 選擇“ 控制面板-系統(tǒng)” 或者在“ 我的電腦” 圖標(biāo)上 點(diǎn)右鍵,選擇“ 屬性”;

      2, 在彈出的“ 系統(tǒng)屬性” 窗口中選擇“ 高級(jí)” 頁(yè),選擇 “ 環(huán)境變量”;

      3, 在彈出的“ 環(huán)境變量” 窗口中找到環(huán)境變量“ AME ” , 它的值就是你所安裝 AMESim 的路徑,選中改環(huán)境變量;4, 點(diǎn)擊“ 確認(rèn)” 按鍵,該變量就會(huì)加到系統(tǒng)中;5, 如上 法確認(rèn)環(huán)境變量 “ MATLAB", 該 值 為你所安裝 的 MATLAB 的路徑 3.確認(rèn)是否在 AMESim 中選擇 VC 作為編譯器。具體操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。

      4.在 MATLAB 命令窗口中使用 Mex – setup , 選擇 VC 作為 編譯器。5.在 Matlab 的目錄列表里加上 AMESim 與 Matlab 接口文 件所在的

      目錄 %AME%matlabamesim,其中 %AME% 是 AMESim 的 安 裝 目 錄 , 如 果 安 裝 在 C:AMEsim , 則 就 加 上 C:AMEsimmatlabamesim。

      6.The name of the S-Function is the name of the system with an ‘_’ added.7.The input of the interface block in AMESim has its ports in reverse order compared with Simulink.(注意 : 這里的模塊的輸入口是指在 matlab 中顯示 的輸入口,而且在 matlab 中的輸出口和 simulink 中的接口 是對(duì)應(yīng)的.可以參考幫助文件,里面有詳細(xì)的提示 8.Remember to change from Parameters to Run mode in AMESim before running the simulation in Simulink or to use File->Write aux.files.注意 : 如果上面的設(shè)置還是不成功 , 甚至運(yùn)行 Amesim 中自帶的范例

      也會(huì)出錯(cuò) , 那可能是你的軟件本身就有問題 , 可以下載一個(gè)補(bǔ) 丁就能解決.

      第二篇:MATLAB與控制系統(tǒng)仿真實(shí)驗(yàn)報(bào)告

      《MATLAB與控制系統(tǒng)仿真》

      實(shí)驗(yàn)報(bào)告

      2013-2014學(xué)年 第 1 學(xué)期

      專業(yè): 班級(jí): 學(xué)號(hào): 姓名:

      實(shí)驗(yàn)三 MATLAB圖形系統(tǒng)一、實(shí)驗(yàn)?zāi)康模?/p>

      1.掌握繪制二維圖形的常用函數(shù)。2.掌握繪制三維圖形的常用函數(shù)。3.熟悉利用圖形對(duì)象進(jìn)行繪圖操作的方法。4.掌握繪制圖形的輔助操作。

      二、實(shí)驗(yàn)原理:

      1,二維數(shù)據(jù)曲線圖

      (1)繪制單根二維曲線 plot(x,y);(2)繪制多根二維曲線 plot(x,y)當(dāng)x是向量,y是有一維與x同維的矩陣時(shí),則繪制多根不同顏色的曲線。當(dāng)x,y是同維矩陣時(shí),則以x,y對(duì)應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。(3)含有多個(gè)輸入?yún)?shù)的plot函數(shù) plot(x1,y1,x2,y2,…,xn,yn)(4)具有兩個(gè)縱坐標(biāo)標(biāo)度的圖形 plotyy(x1,y1,x2,y2)2,圖形標(biāo)注與坐標(biāo)控制 1)title(圖形名稱); 2)xlabel(x軸說明)3)ylabel(y軸說明)4)text(x,y圖形說明)5)legend(圖例1,圖例2,…)

      6)axis([xmin xmax ymin ymax zmin zmax])3, 圖形窗口的分割 subplot(m,n,p)4,三維曲線

      plot3(x1,y1,z1,選項(xiàng)1,x2,y2,選項(xiàng)2,…,xn,yn,zn,選項(xiàng)n)5,三維曲面

      mesh(x,y,z,c)與surf(x,y,z,c)。一般情況下,x,y,z是維數(shù)相同的矩陣。X,y是網(wǎng)格坐標(biāo)矩陣,z是網(wǎng)格點(diǎn)上的高度矩陣,c用于指定在不同高度下的顏色范圍。6,圖像處理

      1)imread和imwrite函數(shù) 這兩個(gè)函數(shù)分別用于將圖象文件讀入matlab工作空間,以及將圖象數(shù)據(jù)和色圖數(shù)據(jù)一起寫入一定格式的圖象文件。

      2)image和imagesc函數(shù) 這兩個(gè)函數(shù)用于圖象顯示。為了保證圖象的顯示效果,一般還應(yīng)使用colormap函數(shù)設(shè)置圖象色圖。

      三、實(shí)驗(yàn)儀器和設(shè)備:

      計(jì)算機(jī)一臺(tái)(帶有MATLAB6.5以上的軟件環(huán)境)。

      四、預(yù)習(xí)要求:

      1.復(fù)習(xí)二維與三維圖形的繪圖函數(shù)。2.復(fù)習(xí)圖形輔助操作。

      五、實(shí)驗(yàn)內(nèi)容及步驟:

      1,設(shè)y?[0.5?3sinx]cosx,在x=0~2π區(qū)間取101點(diǎn),繪制函數(shù)曲線。21?x

      2,已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作:

      (1)在同一坐標(biāo)系下用不同的顏色和線型繪制三條曲線;

      (2)分別用條形圖、階梯圖、桿圖和填充圖繪制三條曲線。

      3,已知

      ?x??,?x?02?e y???1In(x?1?x2),x?0??2在-5<=x<=5區(qū)間繪制函數(shù)曲線。

      4,繪制函數(shù)的曲面圖和等高線

      z?cosxcosye?x2?y24

      其中x的21個(gè)值均勻分布在[-5,5]范圍,y的31個(gè)值均勻分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)將產(chǎn)生的曲面圖和登高圖畫在同一個(gè)窗口上。

      5.畫出函數(shù)

      z?x2?y2?sin(xy)的曲面及等高線圖。

      x2y2?1繪制平面曲線,并分析參數(shù)a對(duì)其形狀的影響。6.根據(jù)2?a25?a2

      四、心得體會(huì):

      通過這次實(shí)驗(yàn)我能熟練掌握二維和三維圖以及其他特殊圖形的制作,弄清楚了基本的圖形操作規(guī)則,大大加深了我對(duì)matlab的興趣。

      實(shí)驗(yàn)二 MATLAB程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.掌握利用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)的方法。

      2.掌握利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的方法。3.掌握利用for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的方法。4.掌握利用while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的方法。

      二、實(shí)驗(yàn)設(shè)備及條件

      計(jì)算機(jī)一臺(tái)(帶有MATLAB6.5以上的軟件環(huán)境)。

      三、實(shí)驗(yàn)內(nèi)容

      1.編寫求解方程ax2?bx?c?0的根的函數(shù)(這個(gè)方程不一定為一元二次方程,因a、b、c的不同取值而定),這里應(yīng)根據(jù)a、b、c的不同取值分別處理,有輸入?yún)?shù)提示,當(dāng)a?0,b?0,c~?0時(shí)應(yīng)提示“為恒不等式!”。并輸入幾組典型值加以檢驗(yàn)。

      clear,clc a=input('請(qǐng)輸入一個(gè)數(shù)a=');b=input('請(qǐng)輸入一個(gè)數(shù)b=');c=input('請(qǐng)輸入一個(gè)數(shù)c=');m=b^2-4*a*c;if a==0

      if b==0

      '為恒不等式'

      end end

      m=b^2-4*a*c;if m>0

      x1=(-b+sqrt(m))/(2*a)

      x2=(-b-sqrt(m))/(2*a)elseif m==0

      x=(-b)/(2*a)else

      '不存在正實(shí)根' end

      2.輸入一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A+、A、B、C、D、E。其中100分為A+,90分~99分為A,80分~89分為B,70分~79分為C,60分~69分為D,60分以下為E。

      要求:(1)用switch語(yǔ)句實(shí)現(xiàn)。

      (2)輸入百分制成績(jī)后要判斷該成績(jī)的合理性,對(duì)不合理的成績(jī)應(yīng)輸出出錯(cuò)信息。

      clear,clc for k=1:10

      a(k)={89+k};b(k)={79+k};

      c(k)={69+k};d(k)={59+k};end A=cell(3,6);A(1,:)={'a','b','c','d','e','f'};A(2,:)={85,76,95,100,40,65};for k=1:6

      switch A{2,k}

      case 100

      r='A+';

      case a

      r='A';

      case b

      r='B';

      case c

      r='C';

      case d

      r='D';

      otherwise

      r='E';

      end

      A(3,k)={r};end A A =

      'a'

      'b'

      'c'

      [85]

      [76]

      [95]

      'B'

      'C'

      'A'

      'd'

      'e'

      [100]

      [40]

      'A+'

      'E'

      'f' [65] 'D'

      3.利用for循環(huán)語(yǔ)句編寫計(jì)算n!的函數(shù)程序,取n分別為-89、0、3、5、10驗(yàn)證其正確性(輸入n為負(fù)數(shù)時(shí)輸出出錯(cuò)信息)。

      clear,clc n=input('請(qǐng)輸入一個(gè)正數(shù)n=');if n<0

      '輸入錯(cuò)誤' elseif n==0

      'n!=0' elseif n==1

      'n!=1' else

      y=1;

      for i=1:1:n

      y=y*i;

      i=i+1;

      end

      y end 請(qǐng)輸入一個(gè)正數(shù)n=-89

      ans =輸入錯(cuò)誤 請(qǐng)輸入一個(gè)正數(shù)n=0

      ans =n!=0 請(qǐng)輸入一個(gè)正數(shù)n=1

      ans =n!=1 請(qǐng)輸入一個(gè)正數(shù)n=3

      y =6 請(qǐng)輸入一個(gè)正數(shù)n=10

      y =3628800

      四、實(shí)驗(yàn)心得體會(huì):

      通過本次實(shí)驗(yàn)課,我能熟練運(yùn)用for循環(huán)語(yǔ)句,switch條件語(yǔ)句以及if條件語(yǔ)句的新用法,和在C中的區(qū)別。盡管如此,但是在實(shí)驗(yàn)中依然容易把for循環(huán)跟C語(yǔ)言中的for語(yǔ)句弄混,最后經(jīng)過不懈努力下,終于弄明白了兩者之間的差別,使我能更好的運(yùn)用這些指令語(yǔ)句。

      第三篇:Matlab與Simulink仿真學(xué)習(xí)心得

      Matlab與Simulink仿真學(xué)習(xí)心得

      班級(jí):07610 學(xué)號(hào):072016 姓名:呂天雄

      一 Matlab學(xué)習(xí)心得體會(huì)與編程實(shí)踐

      <1>學(xué)習(xí)Matlab的心得體會(huì)

      真正開始接觸Matlab是大二上就開始了,到現(xiàn)在已經(jīng)一年多了,在此之間,Matlab的確為我提供了很多便利。Matlab的確不愧成為是草稿紙上的語(yǔ)言。我們不必去為很簡(jiǎn)單的顯示效果圖形去找一些什么其他軟件或者研究比較復(fù)雜的計(jì)算機(jī)圖形學(xué),一個(gè)plot或者別的函數(shù)往往就可以得到很滿意的效果。

      其實(shí)最初開始學(xué)習(xí)matlab的時(shí)候感覺這個(gè)東西和C沒什么兩樣,但是后來具體到一些 東西,比如信號(hào)處理和數(shù)學(xué)建模上以后才感覺到使用matlab編寫程序去驗(yàn)證結(jié)果比C要節(jié) 省很多時(shí)間,而且matlab寫東西基本都是按照自己的思路平鋪直敘很少去考慮什么函數(shù)的 嵌套調(diào)用或者指針等等很頭疼的東西。

      關(guān)于matlab的學(xué)習(xí),我感覺其實(shí)百度和matlab自帶的help基本能夠解決絕大數(shù)問題,而且一些比較好的論壇比如004km.cn都會(huì)為你產(chǎn)生很大的幫助,關(guān)鍵是在于多動(dòng)手實(shí)踐,多思考。但是matlab畢竟只是一個(gè)工具,原理和一些基本的編程素質(zhì)還是必須有的,否則matlab最多也只能是驗(yàn)證一些別人的東西而已,根本幫不上什么忙的。

      <2>遇到的一些問題的思考方式與解決辦法

      最開始用matlab的時(shí)候是在大物實(shí)驗(yàn),實(shí)驗(yàn)要求去根據(jù)測(cè)量得到的數(shù)據(jù)作出圖。但是 手動(dòng)用鉛筆去畫確實(shí)很麻煩,所以用matlab確實(shí)可以省去很大的麻煩。但是第一次遇到問 的時(shí)候是有關(guān)極化坐標(biāo)下的曲線擬合。

      首先是一個(gè)物理實(shí)驗(yàn)的問題;在做一個(gè)關(guān)于光的偏振的實(shí)驗(yàn)的時(shí)候,最后的結(jié)果要在一個(gè)極化坐標(biāo)下顯示出來;因?yàn)閿?shù)據(jù)是離散的,所以顯示出來的圖像是一個(gè)折來折去的一個(gè)東東; 然后很自然的想法是對(duì)這個(gè)曲線進(jìn)行插值處理。

      但是極化坐標(biāo)下MATLAB并未提供插值處理的函數(shù),interp1這個(gè)函數(shù)只能在笛卡爾坐標(biāo)系,也就是直角坐標(biāo)系下使用。

      然后就想到把極坐標(biāo)的數(shù)據(jù)轉(zhuǎn)換的直角坐標(biāo)系下,pol2cart可以實(shí)現(xiàn)這個(gè)想法,但是隨后而來,也就是最后導(dǎo)致整個(gè)問題失敗的關(guān)鍵也在這里。

      pol2cart以后產(chǎn)生的一串?dāng)?shù)據(jù)中出現(xiàn)了重復(fù)的數(shù)據(jù),那么interp1這個(gè)東西也就無能為力了,因?yàn)閕nterp1不能處理一串?dāng)?shù)據(jù)中有重復(fù)出現(xiàn)的情況。最后的處理辦法是把這些數(shù)據(jù)c os,sin這些東西變換一下后,使其大致規(guī)則,然后再用polar畫出極坐標(biāo)下的圖形。

      接下來這個(gè)問題就有點(diǎn)超過我的范圍了,可能會(huì)有點(diǎn)敘述不清楚。問題可以概要為:人臉網(wǎng)格插值。

      這是一個(gè)用三角形網(wǎng)格表示的一個(gè)人臉模型。需要通過插值使其變得光滑,當(dāng)然問題的復(fù)雜之處在于,插值會(huì)改變?cè)镜木W(wǎng)格結(jié)構(gòu)。

      對(duì)于這個(gè)問題許多人都給出了解決的辦法,當(dāng)然是一些關(guān)于人臉識(shí)別技術(shù)和運(yùn)動(dòng)圖像處理的范疇之內(nèi)的。

      主要有兩種,第一種是face—ls算法。這種算法是基于RBF(徑向插值函數(shù))和loop細(xì)分原則的一種算法,當(dāng)然其精確程度比較差點(diǎn)。但是速度挺好。原理是:基于網(wǎng)格上的點(diǎn),產(chǎn)生出頂點(diǎn)的迭代函數(shù),從而產(chǎn)生出新的定點(diǎn),進(jìn)行細(xì)化。然后進(jìn)行插值。也就是引進(jìn)新的頂點(diǎn)。分為兩個(gè)過程內(nèi)部插值和邊緣插值。具體可以去看蘭州大學(xué)信息工程學(xué)院的學(xué)報(bào)。

      第二種也就是基本的老辦法RBF。首先解釋一下什么叫做徑向插值 徑向基函數(shù)

      主要是考慮多維空間的數(shù)據(jù)插值問題,徑向基函數(shù)在三維圖形的變形中常常被采用,用其來變分三維人臉的時(shí)候還應(yīng)結(jié)合人臉的固有特征。確定該方法來實(shí)現(xiàn)三維人臉變形是可行的,但要構(gòu)造好的基函數(shù),以及解這些高維方程的解仍是難點(diǎn)。插值方法:

      假設(shè)大多數(shù)人臉的形狀都可以由一個(gè)拓?fù)湓妥兓脕?,那么,通過調(diào)整一個(gè)一般模型的構(gòu)造參數(shù)可以建立不同的面部模型。但是,這種參數(shù)模型僅僅局限于那些構(gòu)造參數(shù)已知的情況,并且對(duì)特定人臉參數(shù)的調(diào)整非常困難。在離散數(shù)據(jù)的多變量插值問題方面,徑向基函數(shù)(radial basis function,RBF)插值方法是一個(gè)行之有效的工具,所以也適用于類似人臉這樣高維曲面的近似或平滑插值。現(xiàn)有的許多方法使用了基于RBF的插值技術(shù),將一般人臉網(wǎng)格變化到特定人臉的形狀。這種方法的優(yōu)點(diǎn)在于:(1)通過插值可以得到丟失的數(shù)據(jù)點(diǎn),所以源網(wǎng)格和目標(biāo)網(wǎng)格不需要相同數(shù)目的結(jié)點(diǎn);(2)如果選擇了合適的匹配點(diǎn),數(shù)學(xué)上可以保證能夠?qū)⒃淳W(wǎng)格變形到目標(biāo)網(wǎng)格。

      當(dāng)然我也不是很懂,只是理解了部分。這種方法的關(guān)鍵是找到一個(gè)很好的核函數(shù)來計(jì)算出新的頂點(diǎn)。

      最后問題解決的方式是查著了一些圖書館的學(xué)報(bào)。然后而且在網(wǎng)上找到了部分代碼。然后做出來的。這是我校大四一個(gè)同學(xué)畢設(shè)中的一個(gè)東西。

      其實(shí)這個(gè)事件最好的解決辦法是在3D-MAX中,不過因?yàn)闆]能找到MATLAB與3D-MAX是怎么接口的,所以作罷了。

      第三次遇到的問題是我在數(shù)學(xué)建模課上遇到的一個(gè)關(guān)于矩陣LU分解的問題:

      Matlab作出的結(jié)果和手算的結(jié)果竟然不一樣。

      10??1????1???1?

      U=?1? ?一個(gè)矩陣 A=? 經(jīng)過三角分解為L(zhǎng)=101????????11?因?yàn)?/?為一個(gè)極大數(shù) 則1—1/?可以看成—1/?;

      設(shè)?=0.***000000001%10的負(fù)24次方

      從而L*U=則最后一位1沒有了 變成了0

      其中L=

      U=Matlab 程序?yàn)?/p>

      epusino=0.***000000001;U=[epusino 1;0-1/epusino];L=[1 0;1/epusino 1];L*U ans =

      0.***

      1.***

      1.***

      0 而直接用lu函數(shù)對(duì)矩陣A分解的結(jié)果為

      A=[epusino 1;1 1] A =

      0.0000

      1.0000

      1.0000

      1.0000

      >> [L,U]=lu(A)L =

      0.0000

      1.0000

      1.0000

      0

      U =

      0 我們老師當(dāng)時(shí)的解釋是這是由于我們所用matlab是破解版的緣故,破解版的計(jì)算精度 沒正版的高所以導(dǎo)致運(yùn)算結(jié)果的錯(cuò)誤,后來我看了一些LU這個(gè)函數(shù)的help文檔 psychologically lower triangular matrix"(i.e.a product of lower triangular and permutation matrices)in L。翻譯過來是L是一個(gè)心理上的下三角矩陣,其實(shí)是下三角矩陣和置換矩陣也就是最后的結(jié)論。P*A = L*U.。由此可見這并不是什么精度的問題導(dǎo)致的結(jié)果只是LU分解的矩陣意義和書本上的不同而已。

      以下是我自己寫的一些程序的代碼

      1:網(wǎng)絡(luò)隨機(jī)拓?fù)鋱D

      目的是要生成一個(gè)度數(shù)隨機(jī)、權(quán)值隨機(jī)的拓?fù)鋱D。首先的理解是利用鄰接矩陣,先隨機(jī)生成一個(gè)矩陣,該矩陣為一個(gè)對(duì)稱矩陣。然后畫出這個(gè)矩陣就行了。

      隨機(jī)拓?fù)鋱D10026516398191 ***0430 ***065

      %產(chǎn)生數(shù)組A用來存放表示兩點(diǎn)之間權(quán)值的矩陣A,也就是臨接矩陣,那么兩點(diǎn)之間權(quán)值不為零元素的個(gè)數(shù)即為該點(diǎn)的度數(shù)

      DEF=5;%設(shè)定一個(gè)東東 方便改變隨機(jī)點(diǎn)的個(gè)數(shù) A=rand(DEF,DEF);%產(chǎn)生DEF*DEF的隨機(jī)矩陣 for i=1:DEF A(i,i)=0%將對(duì)角線上的數(shù)置為0 end A=10*A;A=floor(A);%向下去整 for i=1:DEF for j=1:i A(j,i)=A(i,j)%將A矩陣變?yōu)橐粋€(gè)上三角或者下三角矩陣 end end x=100*rand(1,DEF);y=100*rand(1,DEF);%產(chǎn)生10個(gè)隨機(jī)的點(diǎn) plot(x,y,'r+');

      for i=1:DEF a=find(A(i,:)>0)%將A矩陣每行大于0的數(shù)的在該行的地址找出來放在a中

      for j=1:length(a)

      c=num2str(A(i,j));%將A中的權(quán)值轉(zhuǎn)化為字符型

      if c~='0'%不顯示為0的值 因?yàn)锳矩陣為零代表兩點(diǎn)不相連 text((x(i)+x(j))/2,(y(i)+y(j))/2,c,'Fontsize',18);%將權(quán)值顯示在兩點(diǎn)連線中間 end hold on;

      line([x(i)x(a(j))],[y(i)y(a(j))]);%連線 end end

      title('隨機(jī)拓?fù)鋱D');e=num2str(DEF);legend(e);%左上角顯示節(jié)點(diǎn)的個(gè)數(shù) for m=1:DEF A(m,m)=m;f=num2str(A(m,m));hold on;text((x(m)+x(m))/2,(y(m)+y(m))/2,f,'Fontsize',18);%將權(quán)值顯示在兩點(diǎn)連線中間 end 接下來是一個(gè)在信息安全課上寫的一個(gè)關(guān)于256色圖分層的程序,一副圖像有m*n個(gè)像素然后每個(gè)像素是一個(gè)8bit的二進(jìn)制數(shù)據(jù)換算為十進(jìn)制是0-255之間。要做的就是把每bit的信息提取出來。

      I=imread('bupt副本.bmp');%讀入源圖像

      I=double(I);%將圖像轉(zhuǎn)換為double類型便于MATLAB中的計(jì)算 %確定圖像的長(zhǎng)寬 M=size(I,1);%長(zhǎng) N=size(I,2);%寬 l=M*N;%圖像長(zhǎng)寬之積 for n=1:8;%剔除每層 for i=1:M

      for j=1:N

      B=numdec2bin(I(i,j),8);%先將每個(gè)像素轉(zhuǎn)換為8位2進(jìn)制序列

      B(n)=[];%刪除相應(yīng)位置的元素

      y(i,j)=numbin2dec(B);%將剩下的7個(gè)元素轉(zhuǎn)換為10進(jìn)制數(shù)放入y矩陣中

      end end

      y=uint8(y);%將10進(jìn)制的矩陣轉(zhuǎn)換為無符號(hào)整形

      subplot(4,2,9-n);%顯示n個(gè)圖像,每層是相應(yīng)的剔除該層的結(jié)果

      imshow(y);%顯示這個(gè)圖像

      title(strcat('去除第',num2str(9-n),'層后的結(jié)果'));%顯示標(biāo)題 end

      附帶的兩個(gè)函數(shù):

      function y=numdec2bin(x,n);%從函數(shù)將十進(jìn)制數(shù)x轉(zhuǎn)化為n位二進(jìn)制 y=zeros(1,n);a=x;i=n;while a>0 y(i)=mod(a,2);a=floor(a/2);i=i-1;end function y=numbin2dec(x)%將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) a=0;lx=length(x);for i=1:lx a=a+x(i)*2^(lx-i);end y=a;

      去除第1層后的結(jié)果去除第2層后的結(jié)果去除第3層后的結(jié)果去除第4層后的結(jié)果去除第5層后的結(jié)果去除第6層后的結(jié)果去除第7層后的結(jié)果去除第8層后的結(jié)果

      Matlab的RGB轉(zhuǎn)換為YCbCr之后轉(zhuǎn)換回來和原圖不符

      這個(gè)是做JPEG圖像壓縮的時(shí)候遇到的一個(gè)問題,當(dāng)時(shí)的代碼是用C寫的但是結(jié)果不對(duì),后來想到用matlab進(jìn)行驗(yàn)證結(jié)果發(fā)現(xiàn)通過公式轉(zhuǎn)換得到的圖是錯(cuò)的。

      原理:BMP圖像壓縮為JPEG的第一步是將RGB色彩空間通過這個(gè)公式映射到Y(jié)CbCr空間上。

      Y=0.299 R + 0.587 G + 0.114 B Cb =0.3313G + 0.5 B + 128 Cr = 0.5 R0.0813 B + 128 然后再進(jìn)行量化,DCT,編碼等等步驟。JPEG解壓時(shí)需要將YCbCr空間的圖像又轉(zhuǎn)化回來到RGB上。

      R = Y + 1.402(Cr0.34414(Cb-128)128)

      B = Y + 1.772(Cb-128)

      但是通過書上給的公式和網(wǎng)上大部分公式卻發(fā)現(xiàn)根本轉(zhuǎn)化不會(huì)來。下面是寫的程序代碼以及測(cè)試得到的結(jié)果圖像。

      clc,clear;Source=imread('hl.jpg');%讀入原始RGB圖像

      figure(1);subplot(1,2,1);imshow(Source):title('original image');%顯示圖像 [r c d]=size(Source);%計(jì)算圖像大小 %------計(jì)算紅色分量并顯示分解圖------% R(:,:,1)=Source(:,:,1);R(:,:,2)=zeros(r,c);R(:,:,3)=zeros(r,c);R=uint8(R);whos;figure(2);subplot(1,3,1);imshow(R)title('Red Component');%-------計(jì)算綠色分量并顯示分解圖-------% G(:,:,2)=Source(:,:,2);G(:,:,1)=zeros(r,c);G(:,:,3)=zeros(r,c);G=uint8(G);figure(2);subplot(1,3,2);imshow(G)title('Green Component');%--------計(jì)算藍(lán)色分量并顯示分解圖-------% B(:,:,3)=Source(:,:,3);B(:,:,1)=zeros(r,c);B(:,:,2)=zeros(r,c);B=uint8(B);figure(2);subplot(1,3,3)imshow(B)title('Blue Component');%------------合成-------------% Comp(:,:,1)=R(:,:,1);Comp(:,:,2)=G(:,:,2);Comp(:,:,3)=B(:,:,3);figure(1);subplot(1,2,2);imshow(Comp):title('composition image');Y=0.229*R+0.587*G+0.114*B;Cb=0.5*B-0.1687*R-0.3313*G+128;Cr=0.5*R-0.4187*G-0.0813*B+128;red=Y+1.402*(Cr-128);green=Y-0.34414*(Cb-128)-0.71414*(Cr-128);blue=Y+1.772*(Cb-128);Comp2(:,:,1)=red(:,:,1);Comp2(:,:,2)=green(:,:,2);Comp2(:,:,3)=blue(:,:,3);figure(3);imshow(Comp2);title('RGB轉(zhuǎn)換為YCrCb后又轉(zhuǎn)換為RGB的圖像');RD=R(:,:,1)-red(:,:,1);GD=G(:,:,2)-green(:,:,2);BD=B(:,:,3)-blue(:,:,3);figure(4);subplot(1,3,1);imshow(RD);title('紅色分量差異');subplot(1,3,2);imshow(GD);title('綠色分量差異');subplot(1,3,3);imshow(BD);title('藍(lán)色分量差異');

      然而可以通過figure(4)的圖像清楚看到R 和G分量轉(zhuǎn)換后恢復(fù) 與以前的差別很大。而且看了一下matlab自帶的rgb2ycbcr和ycbcr2rgb并且用了這兩個(gè)函數(shù)測(cè)試后圖像是一樣的。很是不解

      實(shí)驗(yàn)得到的圖為: original imagecomposition image

      將源圖像分為RGB三個(gè)部分。

      Red ComponentGreen ComponentBlue Component

      將源圖像的RGB分量轉(zhuǎn)換到Y(jié)CbCr上后又轉(zhuǎn)化為RGB得到的三個(gè)分量差異的圖。

      紅色分量差異綠色分量差異藍(lán)色分量差異 公式轉(zhuǎn)換的y分量公式轉(zhuǎn)換的cb分量公式轉(zhuǎn)換的Cr分量matlab函數(shù)轉(zhuǎn)換的y分量matlab函數(shù)轉(zhuǎn)換的Cb分量matlab函數(shù)轉(zhuǎn)換的Cr分量

      從最后的結(jié)果可以看出原圖轉(zhuǎn)換到Y(jié)CbCr空間之后又轉(zhuǎn)化回來得到的圖像與原圖不符….RGB轉(zhuǎn)換為YCrCb后又轉(zhuǎn)換為RGB的圖像

      以上只是我自己用Matlab做過的部分問題,還有一些比如場(chǎng)聲源定位Music算法仿真,DES加密算法。神經(jīng)網(wǎng)絡(luò)濾波器等等,鑒于代碼量太大,就不再敖述。二 Simulink學(xué)習(xí)心得與編程實(shí)踐

      SIMILINK模塊庫(kù)按功能進(jìn)行分類,包括以下8類子庫(kù): Continuous(連續(xù)模塊)Discrete(離散模塊)

      Function&Tables(函數(shù)和平臺(tái)模塊)Math(數(shù)學(xué)模塊)

      Nonlinear(非線性模塊)

      Signals&Systems(信號(hào)和系統(tǒng)模塊)Sinks(接收器模塊)Sources(輸入源模塊)

      對(duì)于simulink來說其實(shí)沒什么好說的,需要什么就把什么拖到Model里面,連線之后設(shè)定參數(shù)。不是很麻煩的。但是重要的是對(duì)于系統(tǒng)的設(shè)計(jì)與仿真思想才是最重要的。而且里面的S-Function也是比較好的一個(gè)設(shè)計(jì),用S-Function可以自定義一些組件,使自己的仿真看上去更加清晰與精簡(jiǎn)。

      Simulink的工作方式:

      (1)模塊內(nèi)的參數(shù)值首先會(huì)送到Matlab中進(jìn)行計(jì)算,得到的參數(shù)值會(huì)用來當(dāng)做以后需要調(diào)用的參數(shù)。

      (2)模型系統(tǒng)中的各個(gè)層級(jí)將被平展開來,每一個(gè)子系統(tǒng)將被相應(yīng)的模塊所代替。(3)模塊按被處理的順序排列,此時(shí)代數(shù)回路結(jié)構(gòu)也被檢查出來,此種排列產(chǎn)生一個(gè)列表,以確保具有代數(shù)回路的模塊驅(qū)動(dòng)輸入的模塊被更新后才更新。

      (4)檢查塊之間的鏈接,是否每一個(gè)塊的輸出端口與它所連接的模塊輸入端口有相同的信號(hào)寬度。

      現(xiàn)在可以準(zhǔn)備執(zhí)行仿真操作,仿真時(shí)使用數(shù)值迭代求的的結(jié)果,每種數(shù)值積分模型提供的連續(xù)狀態(tài)的微分能力。

      Simulink中的模型都是分級(jí)的,因此可以通過自上而下或者自下而上的方式建立模型。定義了一個(gè)模型以后,就可以通過Simulink的菜單或者在Matlab的Command中輸入命令進(jìn)行仿真。

      關(guān)于學(xué)習(xí)的心得就寫到這里了,接下來是一些自己做的仿真。

      1:觀察一個(gè)信號(hào)與積分之后的區(qū)別,目的是了解Scope的功能和用法。

      仿真結(jié)果,左邊為原始信號(hào),右邊為積分后的信號(hào)。

      用XYGraph看到的對(duì)比

      Rossler吸引子產(chǎn)生仿真:

      Rossler 吸引子產(chǎn)生是服從下面這個(gè)方程的 1

      212 331

      仿真圖 ???(x?x)x??x?axx??b?x(x?c)xa?b?0.2c?5.7

      仿真結(jié)果

      LMS自適應(yīng)濾波器: 仿真圖:

      遇到的問題

      問題的解決辦法:

      將Spectrum Scope中的buffer input打勾就行了。

      仿真結(jié)果圖形:

      1:Spectrum Scope的輸出圖形

      2:Vector Scope的輸出結(jié)果

      3:Scope的輸出結(jié)果圖形

      第四篇:基于ADAMS與MATLAB的倒立擺聯(lián)合仿真實(shí)驗(yàn)

      基于ADAMS與MATLAB的倒立擺聯(lián)合仿真實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      在傳統(tǒng)的機(jī)電一體化研究設(shè)計(jì)過程中,機(jī)械工程師和控制工程師雖然在共同設(shè)計(jì)開發(fā)一個(gè)系統(tǒng),但是他們各自都需要建立自己的模型,然后分別采用不同的分析軟件,對(duì)機(jī)械系統(tǒng)和控制系統(tǒng)進(jìn)行獨(dú)立的設(shè)計(jì)、調(diào)試和試驗(yàn),最后進(jìn)行機(jī)械系統(tǒng)和控制系統(tǒng)各自的物理樣機(jī)聯(lián)合調(diào)試,如果發(fā)現(xiàn)問題又要回到各自的模型中分別修改,然后再聯(lián)合調(diào)試,顯然這種方式費(fèi)時(shí)費(fèi)力。

      基于多領(lǐng)域的建模與聯(lián)合仿真技術(shù)很好的解決了這個(gè)問題,為機(jī)械和控制系統(tǒng)進(jìn)行聯(lián)合分析提供了一種全新的設(shè)計(jì)方法。機(jī)械工程師和控制工程師就可以享有同一個(gè)樣機(jī)模型,進(jìn)行設(shè)計(jì)、調(diào)試和試驗(yàn),可以利用虛擬樣機(jī)對(duì)機(jī)械系統(tǒng)和控制系統(tǒng)進(jìn)行反復(fù)聯(lián)合調(diào)試,直到獲得滿意的設(shè)計(jì)效果,然后進(jìn)行物理樣機(jī)的建造和調(diào)試。

      ADAMS與MATLAB是機(jī)械系統(tǒng)仿真和控制系統(tǒng)仿真領(lǐng)域應(yīng)用較為廣泛的軟件,其中ADAMS為用戶提供了強(qiáng)大的建模、仿真環(huán)境,使用戶能夠?qū)Ω鞣N機(jī)械系統(tǒng)進(jìn)行建模、仿真和分析,具有十分強(qiáng)大的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)分析功能;而MATLAB具有強(qiáng)大的計(jì)算功能、極高的編程效率及模塊化的建模方式,因此,把ADAMS與MATLAB聯(lián)合起來仿真,可以充分將兩者的優(yōu)勢(shì)相結(jié)合,將機(jī)械系統(tǒng)仿真分析同控制系統(tǒng)設(shè)計(jì)有機(jī)結(jié)合起來,實(shí)現(xiàn)機(jī)電一體化的聯(lián)合分析。

      本實(shí)驗(yàn)以倒立擺為例,進(jìn)行ADAMS與MATLAB的聯(lián)合仿真,對(duì)倒立擺的運(yùn)動(dòng)性能和運(yùn)動(dòng)規(guī)律進(jìn)行分析。

      二、實(shí)驗(yàn)方法

      軟件環(huán)境:MD ADAMS R3,MATLAB R2009b 2.1 建立倒立擺的動(dòng)力學(xué)模型

      啟動(dòng)ADAMS/View模塊彈出如圖1所示對(duì)話框,建立小車及擺桿模型。首先選擇“Create a new model”選項(xiàng),創(chuàng)建一個(gè)新的模型,將該文件保存在相應(yīng)的文件夾下,本實(shí)驗(yàn)將結(jié)果保存在E:daolibai_adams文件夾下,將文件名取為“daolibai_adams”,其余選項(xiàng)保持默認(rèn)。注意,在ADAMS中路徑名和文件名最好采用英文字符,否則有可能在運(yùn)行的過程中出現(xiàn)意想不到的錯(cuò)誤。

      圖1 啟動(dòng)ADAMS/View模塊

      進(jìn)入ADAMS/View界面后,需要對(duì)相關(guān)參數(shù)進(jìn)行設(shè)置。選擇菜單欄中的“Settings→Working Grid”選項(xiàng),彈出如圖2所示的對(duì)話框,設(shè)置網(wǎng)格的大小。將“Spacing”設(shè)置為X:10mm,Y:10mm,其余參數(shù)保持默認(rèn)。在“Settings”選項(xiàng)中還可以設(shè)置圖標(biāo)的大小,單位等等參數(shù),在本實(shí)驗(yàn)中這些參數(shù)都保持默認(rèn)即可。

      圖2 設(shè)置網(wǎng)格的大小

      與此同時(shí),單擊菜單欄“View”選項(xiàng)下的“Coordinate Window”(或者按下鍵盤上的F4按鈕),如圖3所示。可隨時(shí)在窗口中觀察鼠標(biāo)的當(dāng)前空間坐標(biāo)位置,方便我們進(jìn)行建模。

      圖3 打開鼠標(biāo)當(dāng)前空間位置觀察窗口

      右鍵點(diǎn)擊ADAMS建模工具箱中的圖標(biāo),選擇工具Box,在視圖中(0,0,0)處建一個(gè)長(zhǎng)、寬、高分別為30cm,20cm,20cm的長(zhǎng)方體代替小車模型,如圖4所示。

      圖4 長(zhǎng)方體尺寸設(shè)置

      圖5 在視圖中建立的長(zhǎng)方體前視圖

      長(zhǎng)方體建立完畢后,需要進(jìn)一步在視圖中調(diào)整其位置。在當(dāng)前視角下,點(diǎn)擊工具箱中的圖標(biāo),進(jìn)入如圖6所示的界面。在Distance選項(xiàng)中輸入15cm,選擇長(zhǎng)方體,然后點(diǎn)擊向左的箭頭,小車模型即向左平移15cm。單擊工具箱中的按鈕,即可返回工具箱主界面。點(diǎn)擊圖標(biāo),切換到右視角視圖,再次運(yùn)用按鈕,在Distance選項(xiàng)中輸入10cm,選擇長(zhǎng)方體,然后點(diǎn)擊向右的箭頭,將小車模型向右平移10cm,如圖7所示。

      圖6 將小車模型向左平移15cm

      圖7 將小車模型向右平移10cm

      小車模型位置修改完畢后,右鍵點(diǎn)擊小車模型,選擇Rename,將模型的名稱修改為xiaoche,如圖8所示。與此同時(shí),在右鍵菜單中選擇Modify,將小車的質(zhì)量修改為0.5KG,其修改方法如圖9所示。

      圖8 修改模型名稱

      圖9 修改小車模型的質(zhì)量

      至此,小車模型及參數(shù)設(shè)置完畢,接下來建立擺桿的模型。在建模工具箱中選擇(Cylinder)工具建立擺桿模型,其參數(shù)設(shè)置如圖10所示。

      圖10 擺桿參數(shù)的設(shè)置

      擺桿參數(shù)設(shè)置完畢后,沿小車垂直向上的方向建立該圓柱體,建好后單擊右鍵修改其特性參數(shù),將部件名稱修改為baigan,將擺桿質(zhì)量修改為0.2kg,轉(zhuǎn)動(dòng)慣量修改為0.006kg·㎡。建好后,運(yùn)用工具箱中的順時(shí)針旋轉(zhuǎn)5°,建完后的模型如圖11所示。

      工具,將擺桿繞端點(diǎn)

      圖11 倒立擺模型前視圖與三維視圖

      倒立擺的三維模型建立好后,我們需要為模型添加相應(yīng)的運(yùn)動(dòng)副和運(yùn)動(dòng)。小車與地面用平移副約束,右鍵單擊圖標(biāo),在彈出菜單中選擇工具,添加方式選擇2 Bod-1 Loc方式,分別選擇小車和大地,在小車質(zhì)心處添加水平方向的平移約束副,如圖12。

      圖12 在小車與大地之間添加移動(dòng)副

      擺桿與小車之間存在旋轉(zhuǎn)運(yùn)動(dòng),故需要在小車與擺桿之間添加一個(gè)轉(zhuǎn)動(dòng)副。單擊工具中的圖標(biāo),添加方式選擇2 Bod-1 Loc方式,分別選擇擺桿和小車,在擺桿與小車的鉸接處建立旋轉(zhuǎn)副,如圖13所示。

      圖13 在擺桿與小車之間建立旋轉(zhuǎn)副JOINT_2

      倒立擺模型的約束添加完畢之后,我們可以對(duì)模型進(jìn)行運(yùn)動(dòng)測(cè)試。點(diǎn)擊工具,進(jìn)入運(yùn)動(dòng)仿真測(cè)試對(duì)話框,設(shè)置仿真時(shí)間為1秒,步長(zhǎng)為1000,如圖14所示。

      圖14 運(yùn)動(dòng)仿真參數(shù)設(shè)置

      點(diǎn)擊按鈕開始運(yùn)動(dòng)仿真測(cè)試,可以看到小車沿著水平方向作直線運(yùn)動(dòng),擺桿繞著鉸接點(diǎn)作旋轉(zhuǎn)運(yùn)動(dòng)。

      2.2 定義倒立擺機(jī)械系統(tǒng)的輸入輸出變量

      1)定義輸入變量

      本實(shí)驗(yàn)中需要在ADAMS中定義一個(gè)狀態(tài)變量接收控制小車運(yùn)動(dòng)的水平力。選擇Build菜單下的System Elements創(chuàng)建一個(gè)名為controlforce的狀態(tài)變量,如圖15所示。

      圖15 創(chuàng)建輸入狀態(tài)變量

      由圖15可以看出F(time,?)后面輸入欄中的數(shù)值為0,表示該控制力的數(shù)值將從控制軟件的輸出獲得。

      給小車定義一個(gè)水平力,單擊ADAMS工具箱中的工具,選擇Body Moving的建模方式,一次選擇小車質(zhì)心作為力的作用點(diǎn),選擇水平向右作為其加載方向(如圖16),這樣該水平力將一直隨著小車的移動(dòng)而移動(dòng)。

      圖16 為小車添加水平方向作用力

      上述過程完成以后,右鍵單擊該水平力,選擇Modify,將其函數(shù)值定義為VARVAL(.daolibai_adams.controlforce),以實(shí)時(shí)從狀態(tài)變量controlforce中接收力的數(shù)值,如圖17。

      圖17 函數(shù)值的定義

      2)定義輸出變量

      定義輸出變量的方法與定義輸入變量的方法相同,定義ADAMS狀態(tài)變量以輸出動(dòng)力學(xué)模型的運(yùn)動(dòng)狀態(tài)至控制軟件,本實(shí)驗(yàn)就是要輸出擺桿的擺角。選擇Build菜單下的System Elements創(chuàng)建一個(gè)名為rotateangle的狀態(tài)變量,選擇擺桿的上端點(diǎn)和小車的鉸接點(diǎn)出的MARKER點(diǎn)為擺桿繞Z軸旋轉(zhuǎn)運(yùn)動(dòng)的參考點(diǎn),如圖18所示。

      圖18 定義輸出變量

      其中,在F(time,?)后面的文本輸入欄輸入擺桿擺角表達(dá)式AZ(MARKER_11,MARKER_12),AZ函數(shù)用來測(cè)量繞Z軸旋轉(zhuǎn)的角度,本實(shí)驗(yàn)中即表示擺桿繞著Z軸旋轉(zhuǎn)的角度。利用ADAMS工具箱中的工具,在擺桿的上端點(diǎn)創(chuàng)建一個(gè)測(cè)點(diǎn)MARKER_11,在小車上創(chuàng)建測(cè)點(diǎn)MARKER_12,此點(diǎn)為小車與擺桿的鉸接點(diǎn)。設(shè)置完畢后單擊OK按鈕保存設(shè)置。3)將狀態(tài)變量指定為輸入/輸出變量

      上述狀態(tài)變量定義完成之后,還需要將定義好的狀態(tài)變量指定為輸入或輸出變量。

      指定狀態(tài)變量controlforce為輸入變量。單擊主菜單Build→Data Elements→Plant→Plant Input→New后,彈出輸入變量定義對(duì)話框,如圖19所示。將Variable Name欄中輸入controlforce,然后單擊OK按鈕即完成設(shè)置。

      圖19 輸入變量定義對(duì)話框

      指定狀態(tài)變量rotateangle為輸入變量。單擊主菜單Build→Data Elements→Plant→Plant Output→New后,彈出輸入變量定義對(duì)話框,如圖20所示。將Variable Name欄中輸入rotateangle,然后單擊OK按鈕即完成設(shè)置。

      圖20 輸出變量定義對(duì)話框 4)導(dǎo)出ADAMS模型

      通過以上工作,已經(jīng)在ADAMS機(jī)械系統(tǒng)模型中定義了同控制系統(tǒng)交互的相關(guān)狀態(tài)變量和函數(shù),接下來需要利用ADAMS/Controls模塊將這些狀態(tài)變量定義為輸入輸出信號(hào),并將相關(guān)信息導(dǎo)出,以便和其他控制程序連接。

      單擊Controls菜單下的Plant Export子菜單,彈出如圖21所示的設(shè)置窗口。將輸出文件名修改為test123;在輸入信號(hào)定義欄中,單擊From Input按鈕后,彈出數(shù)據(jù)庫(kù)瀏覽窗口,選擇定義的PINPUT_1為輸入項(xiàng),雙擊后,定義的狀態(tài)變量controlforce將自動(dòng)出現(xiàn)在輸入信號(hào)一欄中,同理,輸出信號(hào)的設(shè)置方法同上。目標(biāo)控制軟件下拉菜單可以根據(jù)需要選取,本實(shí)驗(yàn)?zāi)繕?biāo)軟件選為MATLAB,其他選項(xiàng)保持默認(rèn)。單擊OK按鈕,ADAMS將導(dǎo)出*.m文件,同時(shí)產(chǎn)生調(diào)用ADAMS/Solver的cmd文件和*.adm的ADAMS模型文件。

      圖21 ADAMS變量導(dǎo)出設(shè)置 上述過程完成后,MATLAB已經(jīng)可以讀取ADAMS模型的相關(guān)信息了。

      2.3 在MATLAB/Simulink中導(dǎo)入ADAMS模型

      1)變量的導(dǎo)入

      啟動(dòng)MATLAB后,在命令窗口中輸入導(dǎo)出的ADAMS模型名稱test123,在MATLAB窗口將出現(xiàn)如下信息:

      >> clear all >> test123 ans = 26-Jun-2013 08:53:34 %%% INFO : ADAMS plant actuators names : 1 controlforce %%% INFO : ADAMS plant sensors names : 1 rotateangle 在MATLAB命令提示符下輸入who命令,顯示文件中定義的變量列表,在MATLAB命令窗口中返回如下結(jié)果:

      Your variables are: ADAMS_cwd ADAMS_mode ADAMS_solver_type arch ADAMS_exec ADAMS_outputs ADAMS_static flag ADAMS_host ADAMS_pinput ADAMS_sysdir machine ADAMS_init ADAMS_poutput ADAMS_uy_ids temp_str ADAMS_inputs ADAMS_prefix ans topdir 可以選擇以上顯示的任何一個(gè)變量名,檢驗(yàn)變量,例如,如果輸入ADAMS_outputs,則MATLAB將顯示在ADAMS中定義的輸出變量:

      ADAMS_outputs = Rotateangle 注意:ADAMS導(dǎo)出的文件必須置于MATLAB工作目錄下,即ADAMS與MATLAB共用同一個(gè)工作目錄,否則上述過程不能進(jìn)行。與此同時(shí),還要把ADAMS/win32文件夾下的“adams_plant.mexw32”及ADAMS/Controls/win32/文件夾下的“plant.lib”放在ADMAS與MATLAB的共用工作目錄下。這兩個(gè)文件是adams_sub模塊的核心。ADAMS提供一個(gè)S函數(shù),用于ADAMS和simulink聯(lián)合仿真的調(diào)度和通信,如果simulink找不到它,聯(lián)合仿真就不能進(jìn)行。2)ADAMS模塊的導(dǎo)入

      在MATLAB命令窗口中輸入“adams_sys”命令,即可導(dǎo)入ADAMS模塊,如圖22所示。

      圖22 adams_sys模塊

      3)仿真參數(shù)的設(shè)置

      點(diǎn)擊圖22中的adams_sys模塊,即可進(jìn)入adams_sub模塊,如圖23所示。

      圖23 adams_sub模塊 點(diǎn)擊圖23中的MSC.Software模塊,彈出如圖24所示的對(duì)話框,在對(duì)話框中設(shè)置如下參數(shù):

      圖24 仿真參數(shù)的設(shè)置

      將聯(lián)合仿真的通信間隔Communication Interval選項(xiàng)設(shè)置為0.001,該選項(xiàng)定義了ADAMS與MATLAB/Simulink交換數(shù)據(jù)的通信間隔,調(diào)整該參數(shù)將控制聯(lián)合仿真的速度,并影響計(jì)算的速度。

      將simulation mode選項(xiàng)設(shè)置為continuous,即連續(xù)仿真模式。其余參數(shù)保持默認(rèn),單擊OK按鈕,保存參數(shù)設(shè)置。3)聯(lián)合仿真分析

      在MATLAB/Simulink中建立如下控制框圖(圖25),設(shè)置仿真時(shí)間為5s。

      圖25 聯(lián)合仿真控制框圖

      點(diǎn)擊start命令,開始進(jìn)行聯(lián)合仿真,幾秒鐘后,將彈出一個(gè)DOS窗口,顯示ADAMS在聯(lián)合仿真分析中的各種數(shù)據(jù)。聯(lián)合仿真結(jié)束后,仿真結(jié)果既可以在MATLAB/Simulink中查看,也可以在ADAMS后處理器中查看。圖26和圖27分別為Simulink模型中示波器輸出的擺桿擺角隨時(shí)間變換曲線和輸入力矩隨時(shí)間變化曲線。

      圖26 擺桿擺角隨時(shí)間變化曲線 圖27 輸入力矩隨時(shí)間變化曲線

      一、實(shí)驗(yàn)結(jié)果

      由圖26和圖27可以看出,擺桿的擺角在輸入力矩的作用下,轉(zhuǎn)角由0逐漸增大,當(dāng)?shù)竭_(dá)最大擺角(5°)時(shí),保持不變。

      第五篇:基于adams和matlab的一級(jí)倒立擺聯(lián)合仿真

      基于PRO/E,ADAMS和MATLAB/SIMULINK的雙回路PID控制一級(jí)倒立擺聯(lián)合仿真

      目錄

      一、倒立擺簡(jiǎn)介

      1、概述

      2、倒立擺分類

      3、倒立擺控制方法

      二、聯(lián)合仿真流程

      三、基于PRO/E的一級(jí)倒立擺三維建模

      四、基于ADAMS的一級(jí)倒立擺模型設(shè)計(jì)

      五、ADAMS和MATLAB/SIMULINK的聯(lián)合仿真 六、一級(jí)倒立擺的雙回路PID控制策略

      1、一級(jí)倒立擺的角度控制

      2、一級(jí)倒立擺的雙閉環(huán)控制

      3、一級(jí)倒立擺擺桿長(zhǎng)度參數(shù)對(duì)控制策略的影響

      七、問題總結(jié)

      參考文獻(xiàn)

      一、倒立擺簡(jiǎn)介

      1、概述

      倒立擺控制系統(tǒng)是一個(gè)復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng),是進(jìn)行控制理論教學(xué)及開展各種控制實(shí)驗(yàn)的理想實(shí)驗(yàn)平臺(tái)。對(duì)倒立擺系統(tǒng)的研究能有效的反映控制中的許多典型問題:如非線性問題、魯棒性問題、鎮(zhèn)定問題、隨動(dòng)問題以及跟蹤問題等。通過對(duì)倒立擺的控制,用來檢驗(yàn)新的控制方法是否有較強(qiáng)的處理非線性和不穩(wěn)定性問題的能力。同時(shí),其控制方法在軍工、航天、機(jī)器人和一般工業(yè)過程領(lǐng)域中都有著廣泛的用途,如機(jī)器人行走過程中的平衡控制、火箭發(fā)射中的垂直度控制和衛(wèi)星飛行中的姿態(tài)控制等。

      倒立擺系統(tǒng)按擺桿數(shù)量的不同,可分為一級(jí),二級(jí),三級(jí)倒立擺等,多級(jí)擺的擺桿之間屬于自由連接(即無電動(dòng)機(jī)或其他驅(qū)動(dòng)設(shè)備)。

      倒立擺的控制問題就是使擺桿盡快地達(dá)到一個(gè)平衡位置,并且使之沒有大的振蕩和過大的角度和速度。當(dāng)擺桿到達(dá)期望的位置后,系統(tǒng)能克服隨機(jī)擾動(dòng)而保持穩(wěn)定的位置。

      圖1.1 一級(jí)倒立擺

      2、倒立擺分類

      (1)直線型倒立擺

      它是最常見倒立擺系統(tǒng),也稱車擺裝置,根據(jù)目前的研究它又分為1,2,3,4級(jí)車擺,典型結(jié)構(gòu)圖如圖11.2所示,圖中以三級(jí)車擺為例,它是由可以沿直線導(dǎo)軌運(yùn)動(dòng)的小車以及一端固定于小車之上的勻質(zhì)長(zhǎng)桿組成的系統(tǒng),小車可以通過轉(zhuǎn)動(dòng)裝置由力矩電機(jī)、步進(jìn)電機(jī)、直流電機(jī)或者交流伺服電機(jī)驅(qū)動(dòng),車的導(dǎo)軌一般有固定的行程,因而小車的運(yùn)動(dòng)范圍都是受到限制的。

      圖1.2 直線型倒立擺

      (2)環(huán)型倒立擺

      環(huán)型倒立擺也稱擺桿式倒立擺,如圖1.3所示,圖中以二級(jí)為例,一般是由水平放置的擺桿和連在其端接的自由倒擺組成,原理上也可以看成是車擺的軌道為圓軌情況,擺桿是通過傳動(dòng)電機(jī)帶動(dòng)旋轉(zhuǎn)的。此擺設(shè)計(jì)好了可以擺脫普通車擺的行程限制,但是同時(shí)帶來了一個(gè)新的非線性因素:離心力作用。

      圖1.3 環(huán)形倒立擺

      (3)旋轉(zhuǎn)式倒立擺

      環(huán)型擺也叫旋轉(zhuǎn)式倒立擺,但是這里的旋轉(zhuǎn)式倒立擺不同于第二種的環(huán)型擺,它的擺桿(旋臂)是在豎直平面內(nèi)旋轉(zhuǎn)的,而環(huán)型擺擺桿是在水平面旋轉(zhuǎn)的,如圖1.4所示。圖中倒立擺系統(tǒng)是單級(jí)旋轉(zhuǎn)倒立擺,將擺桿安裝在與電機(jī)轉(zhuǎn)軸相連的旋臂上,通過電機(jī)帶動(dòng)旋臂的轉(zhuǎn)動(dòng)來控制倒擺的倒立,整個(gè)系統(tǒng)復(fù)雜,不穩(wěn)定。

      圖1.4 單級(jí)旋轉(zhuǎn)式倒立擺

      (4)復(fù)合倒立擺系列

      復(fù)合倒立擺為一類新型倒立擺,由運(yùn)動(dòng)本體和擺桿組件組成,其運(yùn)動(dòng)本體可以很方便的調(diào)整成三種模式,一是(2)中所述的環(huán)形倒立擺,還可以把本體翻轉(zhuǎn)90度,連桿豎直向下和豎直向上組成托擺和頂擺兩種形式的倒立擺。

      3、倒立擺控制方法

      控制器設(shè)計(jì)是倒立擺系統(tǒng)的核心內(nèi)容,因?yàn)榈沽[是一個(gè)絕對(duì)不穩(wěn)定的系統(tǒng),為了實(shí)現(xiàn)倒立擺穩(wěn)定性控制并且可以承受一定的干擾,需要給系統(tǒng)設(shè)計(jì)控制器,目前典型的控制器設(shè)計(jì)理論有: a.PID控制。通過機(jī)理分析建立動(dòng)力學(xué)模型,使用狀態(tài)空間理論推導(dǎo)出非線性模型,并在平衡點(diǎn)處進(jìn)行線性化得到系統(tǒng)的狀態(tài)方程和輸出方程,從而設(shè)計(jì)出PID控制器實(shí)現(xiàn)控制。

      b.狀態(tài)反饋控制。使用狀態(tài)空間理論推導(dǎo)出狀態(tài)方程和輸出方程,應(yīng)用狀態(tài)反饋實(shí)現(xiàn)控制“如劉珊中等應(yīng)用狀態(tài)反饋和Kalman濾波相結(jié)合的方法,對(duì)二級(jí)倒立擺平衡系統(tǒng)進(jìn)行控制。

      c.利用云模型實(shí)現(xiàn)對(duì)倒立擺的控制。用云模型構(gòu)成語(yǔ)言值,用語(yǔ)言值構(gòu)成規(guī)則,形成一種定性的推理機(jī)制。

      d.模糊控制。模糊控制是采用模糊化,模糊推理,解模糊運(yùn)算等的模糊控制方法。其主要工作是模糊控制器的設(shè)計(jì)。現(xiàn)以倒立擺控制來簡(jiǎn)單說明模糊控制器設(shè)計(jì)的一般方法。以擺桿的傾角和速度作為輸入變量”可以將傾角描述成:向左傾角大;中;小;向右傾角小;中;大。速度描述成:倒得非常快;快;慢;靜止;升得慢;快;非常決。它們都可以用模糊語(yǔ)言變量來表示用類似的模糊集合可以對(duì)控制小車運(yùn)動(dòng)的輸出進(jìn)行定義。接著定義某些隸屬函數(shù),這個(gè)安排隸屬度的過程就是對(duì)變量實(shí)現(xiàn)模糊化的過程“接著是建立一系列的模糊規(guī)則,如:如果擺桿向左傾斜大并倒的非???那么向左作快運(yùn)動(dòng);如果擺桿向左傾斜大并升的慢,那么向左作慢運(yùn)動(dòng),等等。最后,模糊輸出被分解成可以加到小車上的確切的驅(qū)動(dòng)電壓,這個(gè)過程為解模糊判決。此外,還有對(duì)倒立擺的雙閉環(huán)模糊控制方案。

      e.神經(jīng)網(wǎng)絡(luò)控制。神經(jīng)網(wǎng)絡(luò)能夠任意充分地逼近復(fù)雜的非線性關(guān)系,它能夠?qū)W習(xí)和適應(yīng)嚴(yán)重不確定性系統(tǒng)的動(dòng)態(tài)特性,所有定量或定性的信息按等勢(shì)分布儲(chǔ)存與網(wǎng)絡(luò)內(nèi)的神經(jīng)元,有很強(qiáng)的魯棒性和容錯(cuò)性,也可將Q學(xué)習(xí)算法和BP神經(jīng)網(wǎng)絡(luò)有效結(jié)合,實(shí)現(xiàn)狀態(tài)未離散化的倒立擺的無模型學(xué)習(xí)控制。以及楊振強(qiáng)等為解決模糊神經(jīng)網(wǎng)絡(luò)在控制多變量系統(tǒng)時(shí)的規(guī)則組合爆炸問題,提出用狀態(tài)變量合成模糊神經(jīng)網(wǎng)絡(luò)控制倒立擺。

      f.自適應(yīng)控制。主要為倒立擺設(shè)計(jì)各種自適應(yīng)控制器。上述控制算法大都針對(duì)倒立擺工作在平衡點(diǎn)的穩(wěn)定控制”本論文設(shè)計(jì)的控制器首先是能實(shí)現(xiàn)倒立擺的起擺,在擺起到平衡位置附近時(shí)再切換至穩(wěn)定控制。

      二、聯(lián)合仿真流程

      本文以一級(jí)倒立擺為研究對(duì)象,建立的倒立擺由軌道,滑塊,擺桿和轉(zhuǎn)軸組成,滑塊在軌道上做往復(fù)的直線運(yùn)動(dòng),擺桿繞滑塊做轉(zhuǎn)動(dòng)。具體的聯(lián)合仿真流程如下:

      1、在PRO/E軟件里建立上述各個(gè)零件的三維模型,然后進(jìn)行裝配。裝配后的組件另存為x_t文件,輸入到ADAMS里。

      2、將PRO/E的生成的三維模型導(dǎo)入ADAMS中,在ADAMS中定義各零件的質(zhì)量,施加固定副、移動(dòng)副和轉(zhuǎn)動(dòng)副,然后建立輸入和輸出的狀態(tài)變量(輸入為作用在滑塊上的水平力,輸出為滑塊的位移和擺桿相對(duì)于豎直方向的角度),最后將生成的adm文件導(dǎo)出到MATLAB。

      3、將ADAMS生成的倒立擺模型導(dǎo)入MATLAB,建立控制模型(采用PID雙閉環(huán)的控制方法),設(shè)置好參數(shù)之后進(jìn)行聯(lián)合仿真。

      三、基于PRO/E的一級(jí)倒立擺三維建模

      1、在PRO/E中建立一級(jí)倒立擺的三維模型,擺桿的初始位置為豎直方向。

      2、在組裝零件時(shí)需要注意,為了保證倒立擺模型導(dǎo)入ADAMS里面之后位置正確(即擺桿擺動(dòng)平面為X-Y平面),需要使導(dǎo)軌安裝的長(zhǎng)度方向沿組件默認(rèn)坐標(biāo)軸的x軸方向,其中心與組件坐標(biāo)軸中心重合。

      3、建立倒立擺之后,保存副本,選擇x_t文件格式保存。

      圖3.1 一級(jí)倒立擺的PRO/E模型

      四、基于ADAMS的一級(jí)倒立擺模型設(shè)計(jì)

      1、將PRO/E生成的x_t文件導(dǎo)入ADAMS中,選擇file-import,文件類型選擇x_t,找到PRO/E的文件導(dǎo)入。導(dǎo)入的文件如下圖所示,可以看到,擺桿的運(yùn)動(dòng)平面在x-y平面內(nèi),軌道的質(zhì)心與ADAMS的默認(rèn)坐標(biāo)軸原點(diǎn)重合。圖4.1 導(dǎo)入ADAMS的倒立擺三維模型

      2、設(shè)置文件的保存路徑。為了避免PRO/E文件導(dǎo)入和MATLAB程序運(yùn)行失敗,我們將ADAMS的保存路徑設(shè)在根目錄下,文件名為英文字符,PRO/E的所有文件放入此目錄下。

      3、將導(dǎo)入的PART2,PART3,PART4和PART5分別命名為guidao,huakuai,baigan和zhou。然后定義各零件質(zhì)量,材料選擇steel.4、添加約束。這里需要添加的約束有三個(gè):

      (1)ground和guidao之間的固定副,用來固定軌道。

      圖4.2 固定副定義界面

      圖4.3 固定副

      (2)huakuai和baigan之間的轉(zhuǎn)動(dòng)副,保證擺桿相對(duì)滑塊作轉(zhuǎn)動(dòng)。

      圖4.4 轉(zhuǎn)動(dòng)副定義界面

      圖4.5 轉(zhuǎn)動(dòng)副(3)guidao和huakuai之間的移動(dòng)副,保證滑塊沿軌道作水平運(yùn)動(dòng)。

      圖4.6 移動(dòng)副定義界面

      圖4.7 移動(dòng)副

      5、定義作用力。初始力作用在滑塊上,方向選擇與擺桿偏移方向一致。

      圖4.8 滑塊上的水平作用力

      6、建立輸入和輸出狀態(tài)變量。建立三個(gè)system elements,包括輸入變量(force),輸出變量(angle,position)。(1)Force的參數(shù)設(shè)為零,由MATLAB輸入。

      圖4.9 定義狀態(tài)變量force(2)Angle為擺桿距離豎直方向的角度,使用AZ函數(shù)測(cè)量。選取的參考點(diǎn)為擺桿上的MARKER_16和滑塊上的MARKER_17。

      圖4.10 定義狀態(tài)變量angle

      (3)Position為滑塊質(zhì)心到全局坐標(biāo)原點(diǎn)的距離。位移的測(cè)量值使用DZ函數(shù)。需要注意的是,由于軌道在PRO/E 中的坐標(biāo)軸與ADAMS的默認(rèn)坐標(biāo)系不一致,所以要修改MARKER_20以保持和滑塊的質(zhì)心坐標(biāo)一致。修改方式見下圖的orientation參數(shù)欄。

      圖4.11 定義狀態(tài)變量position

      圖4.12MARKER點(diǎn)定義界面

      (4)完成狀態(tài)變量的設(shè)置后,需要將force與上面建立的作用力SFORCE_1關(guān)聯(lián),使用函數(shù)VARVAL。

      圖4.13 SFORCE_1與force關(guān)聯(lián)

      7、創(chuàng)建輸出文件。這一步我們要?jiǎng)?chuàng)建一個(gè)可以輸入到MATLAB的文件。(1)首先要?jiǎng)?chuàng)建輸入和輸出元素,選擇build—-data elements---plant---plant input,設(shè)置輸入文件名和變量名。輸出元素同理。

      圖4.14 創(chuàng)建plant input

      圖4.15 創(chuàng)建plant output(2)打開controls---plant export New controls plant一欄中填入inverted_pendulum,file prefix同理。輸入和輸出信號(hào)選擇剛才建立的兩個(gè)變量。Target software選擇MATLAB。其他選項(xiàng)默認(rèn)。點(diǎn)擊OK即可。這樣就會(huì)有相關(guān)的文件在我們最初設(shè)置的保存路徑中生成。

      圖4.16 設(shè)置ADAMS和MATLAB接口

      圖4.17 ADAMS輸出文件

      這一步完成之后就完成了ADAMS里的建模。下圖為倒立擺的完成模型。

      圖4.18 ADAMS的倒立擺最終模型

      五、ADAMS和MATLAB/SIMULINK的聯(lián)合仿真

      完成ADAMS建模之后,我們將輸出的文件導(dǎo)入到MATLAB里進(jìn)行仿真。

      使用ADAMS和MATLAB/SIMULINK的聯(lián)合仿真有一個(gè)好處,即不用對(duì)物理模型進(jìn)行分析,再建立傳遞函數(shù)。ADAMS導(dǎo)出的模型直接包含其所有的力學(xué)特性,更加方便進(jìn)行相關(guān)控制。聯(lián)合仿真的步驟:

      1、將MATLAB的當(dāng)前文件夾設(shè)為ADAMS的文件夾,然后在命令窗口輸入inverted_pendulum(即ADAMS輸出的文件名),會(huì)導(dǎo)入倒立擺的參數(shù)和變量。最后輸入adams_sys指令,會(huì)彈出一個(gè)SIMULINK的仿真窗口,我們可以在里面添加控制模塊進(jìn)行倒立擺仿真。

      圖5.1 MATLAB導(dǎo)入ADAMS文件命令

      圖5.2 生成的adams_sys

      2、MATLAB控制方法設(shè)計(jì)。

      在這里我們采用雙閉環(huán)的PID控制方法,一路是角度控制,一路是位移控制。

      首先給倒立擺系統(tǒng)一個(gè)擾動(dòng),這里用階躍信號(hào)實(shí)現(xiàn)(持續(xù)時(shí)間0.1秒,幅值為1),使系統(tǒng)不穩(wěn)定,然后通過角度和位移反饋控制系統(tǒng),達(dá)到穩(wěn)態(tài)。擺桿角度給定值設(shè)定為0度,位移給定值設(shè)為0,分別與模型輸出的實(shí)際角度和實(shí)際位移進(jìn)行比對(duì),差值輸入到PID中進(jìn)行反饋控制,控制的結(jié)果輸入到force接口,實(shí)現(xiàn)系統(tǒng)的控制。建立的模塊圖如下:

      圖5.3 MATLAB/SIMULINK的倒立擺PID控制模塊圖

      3、動(dòng)態(tài)仿真。先確定PID參數(shù)(PID參數(shù)設(shè)置下一章會(huì)講到)。然后設(shè)置adams sub模塊參數(shù),將animation mode改為interactive,communication interval設(shè)為0.005。最后將仿真時(shí)間設(shè)為10秒,開始仿真。仿真時(shí)會(huì)打開ADAMS軟件,動(dòng)畫演示倒立擺的平衡控制過程。

      圖5.4聯(lián)合仿真時(shí)調(diào)用的ADAMS界面 六、一級(jí)倒立擺的PID控制策略

      1、一級(jí)倒立擺的角度控制

      前面我們提到了對(duì)一級(jí)倒立擺的控制目標(biāo)有擺角和滑塊位移,下面先對(duì)角度控制的PID參數(shù)進(jìn)行設(shè)置,然后再加上位移控制環(huán)。

      首先使用PI調(diào)節(jié),調(diào)節(jié)比例參數(shù)使系統(tǒng)出現(xiàn)震蕩,然后加上積分環(huán)節(jié)進(jìn)行微調(diào),最后取Kp=20,Ki=0.1,系統(tǒng)的擺角響應(yīng)曲線如下:

      10.80.60.40.20-0.2-0.4-0.6-0.800.511.522.533.544.55圖6.1 采用PI控制方案的角度響應(yīng)曲線 從輸出曲線可以看出,盡管PI的控制作用總是趨于消除穩(wěn)態(tài)誤差,但由于積分環(huán)節(jié)的缺陷而延緩了響應(yīng)速度,所以不能及時(shí)地將超調(diào)遏制住,控制效果也就不怎么好了。

      基于上述問題,可以加入微分環(huán)節(jié)(相當(dāng)于加入了角速度反饋),參數(shù)設(shè)置為Kp=20,Ki=0.1,Kd=3。進(jìn)行動(dòng)態(tài)仿真后,得到的角度響應(yīng)曲線如下。

      0.035

      0.030.0250.020.0150.010.0050-0.00500.511.522.533.544.55圖6.2 采用PID控制方案的角度響應(yīng)曲線

      可以看到加入微分環(huán)節(jié)后,系統(tǒng)的動(dòng)態(tài)特性得到了很大的改善,系統(tǒng)受到0.1s的擾動(dòng)后,在0.6s左右就達(dá)到了穩(wěn)態(tài),而且穩(wěn)態(tài)精度也大大提高。

      但是由于角度有穩(wěn)態(tài)誤差的存在,所以不加位置反饋控制的話,滑塊會(huì)一直向一個(gè)方向偏移,如圖6.4所示為滑塊的位移曲線。

      -4x 10420-2-4-611.051.11.15圖6.3 采用PID控制方案后角度的穩(wěn)態(tài)誤差

      500-50-100-150-200-250-300

      00.511.522.533.544.55圖6.4 采用PID控制方案的位移響應(yīng)曲線

      2、一級(jí)倒立擺的雙閉環(huán)控制

      在角度反饋的基礎(chǔ)上,加入位置反饋。由于兩路反饋并不是相互獨(dú)立的,所以單單設(shè)置位移的PID參數(shù)必定會(huì)影響到角度的反饋。所以這里PID參數(shù)的設(shè)置思想是,先調(diào)好角度反饋,然后根據(jù)角度的穩(wěn)態(tài)誤差設(shè)定位移的PID參數(shù),使兩路的反饋可以將這一穩(wěn)態(tài)誤差抵消,最后微調(diào)兩路的參數(shù)優(yōu)化控制效果。經(jīng)過調(diào)試,確定角度反饋的PID參數(shù)為Kp=40,Ki=0.02,Kd=10;位移反饋的PID參數(shù)為Kp=-0.04,Ki=-0.01,Kd=-0.02。經(jīng)過仿真后,得到的擺桿擺角和滑塊位移的響應(yīng)曲線如下

      0.030.020.010-0.01-0.02-0.03012345678910圖6.5 雙回路PID控制的角度響應(yīng)曲線(L=500mm)

      50-5-10-***910圖6.6 雙回路PID控制的位移響應(yīng)曲線(L=500mm)

      雙回路控制的平衡時(shí)間比單獨(dú)的角度控制要長(zhǎng),但是在2s左右也基本達(dá)到了平衡,控制效果很好。

      3、一級(jí)倒立擺擺桿長(zhǎng)度參數(shù)對(duì)控制策略的影響

      之前我們建立的一級(jí)倒立擺模型的擺桿長(zhǎng)度是L=500mm,下面將擺桿長(zhǎng)度設(shè)為L(zhǎng)=250mm,分析上面PID的控制策略對(duì)該系統(tǒng)動(dòng)態(tài)響應(yīng)的影響。

      使用PRO/E對(duì)一級(jí)倒立擺重新建模,將擺桿長(zhǎng)度設(shè)為250mm,然后將模型導(dǎo)入到ADAMS中,完成系統(tǒng)力學(xué)定義后導(dǎo)入MATLAB進(jìn)行仿真。

      系統(tǒng)的控制策略仍采用雙回路的PID控制。這里將上一節(jié)得到的角度和位移PID參數(shù)輸入到此模型,觀察其動(dòng)態(tài)響應(yīng)與之前的模型有何不同。

      經(jīng)過聯(lián)合仿真,得到的角度和位移響應(yīng)曲線如下

      0.0150.010.0050-0.005-0.01012345678910圖6.7雙回路PID控制的角度響應(yīng)曲線(L=250mm)

      420-2-4-6-8

      012345678910圖6.8雙回路PID控制的位移響應(yīng)曲線(L=250mm)

      分析:

      角度響應(yīng):L=500模型的超調(diào)量和二次超調(diào)量分別為0.025和0.02,平衡時(shí)間大概為2.5s;L=250模型的超調(diào)量和二次超調(diào)量分別為0.015和0.008,平衡時(shí)間為4.5s。

      位移響應(yīng):L=500模型的超調(diào)量和二次超調(diào)量分別為7和13,平衡時(shí)間為6s;L=250模型的超調(diào)量和二次超調(diào)量分別為2和7,平衡時(shí)間為8s。

      可以看出來,L=250模型要比L=500模型容易穩(wěn)定,即在受到相同的擾動(dòng)狀況下,使用較小的PID參數(shù)就可以達(dá)到平衡。

      七、問題總結(jié)

      本文利用PRO/E、ADAMS和MATLAB軟件成功地對(duì)一級(jí)倒立擺控制系統(tǒng)進(jìn)行了仿真分析.在仿真過程中不需要推導(dǎo)機(jī)械系統(tǒng)的復(fù)雜微分方程,直接用ADAMS建立的虛擬模型進(jìn)行分析,大大方便了建模過程.而且通過ADAMS軟件建立的虛擬模型能更好地接近實(shí)際物理模型,與那些近似線性化的簡(jiǎn)易數(shù)學(xué)模型相比,這為我們以后的物理樣機(jī)試驗(yàn)提供了更為可靠的依據(jù)。

      在聯(lián)合仿真過程中,遇到了一些問題:

      1、PRO/E導(dǎo)入ADAMS會(huì)有模型位置放錯(cuò)的情況,這個(gè)時(shí)候需要保證兩個(gè)軟件里設(shè)定的坐標(biāo)軸一致。

      2、對(duì)于各零件的MARKER點(diǎn)局部坐標(biāo)和ADAMS全局坐標(biāo)不一樣情況,需要修改orientation,否則會(huì)出現(xiàn)測(cè)量錯(cuò)誤的情況。

      3、在使用角度測(cè)量函數(shù)AZ和DZ時(shí),如果將FROM MARKER 和TO MARKER位置搞反的話,后面輸出的角度值可能為負(fù),后面的PID參數(shù)也隨之改變。

      4、使用PID調(diào)節(jié),發(fā)現(xiàn)如果時(shí)間足夠長(zhǎng)的話,倒立擺不能保持位置上的穩(wěn)定,滑塊也會(huì)越走越遠(yuǎn),直到脫離軌道。這是因?yàn)槭褂肞ID控制角度時(shí),總會(huì)有微小的穩(wěn)態(tài)誤差,這個(gè)誤差最終會(huì)導(dǎo)致位置上的不平衡。

      5、本文PID參數(shù)的確定采用的是試湊法,即通過控制經(jīng)驗(yàn)和多次系統(tǒng)調(diào)試來確定參數(shù),往往比較繁瑣,難以達(dá)到期望的精度。而且雙回路控制比單回路控制的難度更大。這種情況下可以采用極點(diǎn)配置法或擴(kuò)充臨界比例法等。

      參考文獻(xiàn)

      1、范成建等(2006).虛擬樣機(jī)軟件MSC.ADAMS應(yīng)用與提高.北京市, 機(jī)械工業(yè)出版社.2、賈長(zhǎng)治,殷軍輝(2010).MD ADAMS虛擬樣機(jī)從入門到精通.北京市, 機(jī)械工業(yè)出版社.3、姜學(xué)軍(2009).計(jì)算機(jī)控制技術(shù).北京市,清華大學(xué)出版社.4、應(yīng)再恩,平雪良.(2012).“基于ADAMS和MATLAB的雙回路PID控制倒立擺聯(lián)合仿真.” 機(jī)械傳動(dòng)(08): 64-67.5、楊世勇,徐莉蘋.(2007).“單級(jí)倒立擺的PID控制研究.” 控制工程(S1): 23-24+53.6、肖力龍(2007).直線一級(jí)倒立擺起擺與穩(wěn)擺控制研究及控制系統(tǒng)設(shè)計(jì), 中南大學(xué).碩士: 77.

      下載amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精)word格式文檔
      下載amesim與matlab聯(lián)合仿真步驟(自己總結(jié))(精).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        電子信息MATLAB系統(tǒng)仿真與設(shè)計(jì)

        電子信息系統(tǒng)仿真與設(shè)計(jì) 課程設(shè)計(jì)報(bào)告 設(shè)計(jì)課題: 油價(jià)變化系統(tǒng)的模型 姓 名: 學(xué) 院: 機(jī)電與信息工程學(xué)院專 業(yè): 電子信息科學(xué)與技術(shù)班 級(jí): 09級(jí) 2班 學(xué) 號(hào): 日 期......

        基于matlab電力系統(tǒng)故障分析與仿真[精選五篇]

        課程設(shè)計(jì)說明書 題目名稱:基于Matlab的電力系統(tǒng)故障分析與仿真 系 部: 電力工程系 專業(yè)班級(jí): 電氣工程 學(xué)生姓名: 學(xué)......

        Matlab與Simulink系統(tǒng)仿真學(xué)習(xí)心得 馬楠(合集)

        Matlab與Simulink系統(tǒng)仿真學(xué)習(xí)心得 班級(jí):07610 學(xué)號(hào):072019 姓名:馬楠 第一部分:Matlab學(xué)習(xí)心得以及實(shí)踐 Matlab是迄今為止我所見到過的功能最為強(qiáng)大實(shí)用范圍寬廣的軟件。的確......

        控制系統(tǒng)的Matlab仿真與設(shè)計(jì)課后答案

        MATLAB課后習(xí)題答案 2.1 x=[15 22 33 94 85 77 60] x(6) x([1 3 5]) x(4:end) x(find(x>70)) 2.3 A=zeros(2,5); A(:)=-4:5 L=abs(A)>3 islogical(L) X=A(L) 2.4 A=[4,15,......

        控制系統(tǒng)的MATLAB仿真與設(shè)計(jì)課后答案

        第二章 1>>x=[15 22 33 94 85 77 60] >>x(6) >>x([1 3 5]) >>x(4:end) >>x(find(x>70)) 2>>T=[1 -2 3 -4 2 -3] ; >>n=length(T); >>TT=T'; >>for k=n-1:-1:0 >>B(:,n-k)=TT......

        matlab與sql總結(jié)

        總結(jié) 一個(gè)星期前老師給了一個(gè)任務(wù),要求用GUI做成一個(gè)simulink仿真界面,通過matlab與SQL的連接,然后把仿真結(jié)果存到sql里建的數(shù)據(jù)庫(kù)里。從一開始什么都不懂,到現(xiàn)在可以用GUI做一......

        MATLAB數(shù)值計(jì)算繪圖模擬仿真以及使用總結(jié)[全文5篇]

        Work1 1-1 1-2 1-3 1-4 Work2 2-1 2-1-(1) 2-2 2-3 2-3- 2-4 2-4- 2-5 2-6和2-7 Work3 3-1 3-1-(1) Work 4 4-1 4-24-2-(2) 4-2-3 Work5 5-1-(1) 5-1-2 5-1-(3) 5-2簡(jiǎn)述MATL......

        MATLAB總結(jié)與上機(jī)指南

        化工計(jì)算中常用的MATLAB命令總結(jié) 化學(xué)工程中的計(jì)算問題一般比較復(fù)雜, 其操作的數(shù)據(jù)對(duì)象通常是數(shù)組, 具體計(jì)算涉及到插值、求積分、參數(shù)擬合、解常微分和偏微分微分方程、解......