利用MATLAB繪製相軌跡

2021-08-17 15:34:46 字數 1936 閱讀 2964

不直接用時間變數而用狀態變數表示運動的方法稱為相空間方法,也稱為狀態空間方法。在自動控制理論中,把具有直角座標x和x'的平面叫做相平面。相平面是二維的狀態空間,二階系統的某一狀態對應於相平面上的一點,狀態隨時間轉移的情況對應於相平面上點的移動。相平面上的點隨時間變化描繪出來的曲線叫做相軌跡。相軌跡作為研究二階非線性系統的方法之一,傳統繪製方法包括解析法等傾線法。現在,我們研究如何利用simulink的**功能繪製乙個二階系統的相軌跡。

博主的matlab版本是r2016a。

(1)相變數的實現:利用積分器(integrator)獲得相變數(x,x')

(2)設定初始值:雙擊開啟積分器模組的引數對話方塊,在initial condition source中選擇為internal,在initial condition裡輸入初始值。當然,也可以選擇external來設定,然後在外面選擇訊號源。但是博主要畫的比較簡單,沒有必要~

(3)系統的連線:根據實際情況連線就可以啦;如果想要資料的話也可以設定simulink裡面輸出陣列。以下分別在解析式已知和解析式未知的情況下舉幾個具體的例子。

(1)解析式已知(為了簡便與驗證,我們先畫線性系統的相軌跡)

1)x''+x=0(無阻尼運動)

這是乙個無阻尼運動的方程,它的相軌跡應該是乙個橢圓。現在我們就要看一看我們的猜想對不對啦~初始條件不是十分的重要,我們就認為x'(0)=1,x(0)=1就行。

首先變換一下方程:x''=-x

然後連線好結構圖:

之後插入乙個示波器來觀察x與x'的變化曲線啦,以x為x軸,以x'為y軸就行~

別忘了如果需要的話應當在simulation中的model configuration parameters中進行一些必要的設定哦。之後就可以run啦~開心

真的是橢圓耶,真的真的是橢圓耶!

驗證完成,我們下面嘗試畫一些解析式未知的非線性系統的相軌跡。

2)解析式未知

如上圖系統,已知c(0)=-3,c'(0)=0,求系統相軌跡。

連線如下圖:

可以看到,關鍵是對於傳遞函式環節做出一些變動,使我們可以對於初值進行調整。但是問題自然的提出,就是如果傳遞函式分子分母是同次或僅高一次,那麼該如何處理呢?

這個問題在這裡提出,以後有空想想qaq

**結果如下:

這個結果僅檢驗是正確的,也就是說以上的處理是合理的。

以上就是關於利用simulink進行相軌跡畫圖的全部內容。希望看到的人能解答一下文中提出的問題,或者提供一點想法也行啊qaq

《自動控制原理》程鵬主編,高等教育出版社

自動軌跡繪製

1.定義資料檔案格式 2.編寫程式,根據檔案介面解析引數繪製圖形 3.編制資料檔案 本例子資料定義 300 向前行進距離 1 向判斷0 左轉1 右轉 144 向角度 0 r 1 g 0 b 如下 import turtle as t t.title 自動軌跡繪製 t.setup 800,600,0,...

利用MATLAB繪製內擺線動畫

生成內擺線的函式 function curveplot a,x0,y0,x,y,xin,yin 繪製某一時刻的大圓 小圓和點m a即題中的a,x0,y0 為小圓圓心,x,y 為m點的起始位置,xin,yin 為m點的一般位置 phi 0 0.01 2 pi x 4 a cos phi x,y 為大圓...

Python自動繪製軌跡

使用資料自動繪製軌跡 資料如下 300,0,144,1,0,0 300,0,144,0,1,0 300,0,144,0,0,1 300,0,144,1,1,0 300,0,108,0,1,1 184,0,72,1,0,1 184,0,72,0,0,0 184,0,72,0,0,0 184,0,72,...