MATLAB中的LQR函式用法

2021-07-12 17:26:21 字數 1950 閱讀 1027

1樓:

以倒立擺控制器的設計為例:

a = [0 1 0 0

0 0 -1 0

0 0 0 1

0 0 9 0];

b = [0;0.1;0;-0.1];

c = [0 0 1 0];   %觀測角度d = 0;

q = [1 0 0 0

0 1 0 0

0 0 10 0

0 0 0 10

r = 0.1;

%由上面這個系統,可以計算出k

k = lqr(a,b,q,r);

ac = a - b*k;

%對系統進行模擬

x0 = [0.1;0;0.1;0]; %初始狀態t = 0:0.05:20;

u = zeros(size(t));

[y,x]=lsim(ac,b,c,d,u,t,x0);

plot(t,y);

擴充套件資料matlab中lqr的使用:

sys_c=ss(ac,bc,cc,dc);

[y,t,x]=lsim(sys_c,u,t);

釋義:sys_c=ss(ac,bc,cc,dc);以ac,bc,cc,dc作為引數,建立一個狀態空間模型。狀態空間(ss)是matlab控制系統工具箱中非常重要的一種模型形式,和傳遞函式(tf)、零極點(zpk)可以互相轉換。

[y,t,x]=lsim(sys_c,u,t);使用lsim函式對系統進行**。lsim可以接受任意形式的輸入訊號,不過,就現在的輸入訊號而言,使用的是單位階躍訊號,其實也可以改用step函式:[y,t,x]=step(sys_c);結果完全相同。

2樓:匿名使用者

lqr(linearquadraticregulator)即線性二次型調節器,其物件是現代控制理論中以狀態空間形式給出的線性系統,而目標函式為物件狀態和控制輸入的二次型函式。lqr最優設計指設計是出的狀態反饋控制器k要使二次型目標函式j取最小值,而k由權矩陣q與r唯一決定,故此q、r的選擇尤為重要。lqr理論是現代控制理論中發展最早也最為成熟的一種狀態空間設計法。

特別可貴的是,lqr可得到狀態線性反饋的最優控制規律,易於構成閉環最優控制。而且matlab的應用為lqr理論**提供了條件,更為我們實現穩、準、快的控制目標提供了方便。

lqr linear-quadratic regulator design for state space systems.

[k,s,e] = lqr(sys,q,r,n) calculates the optimal gain matrix k

such that:

* for a continuous-time state-space model sys, the state-feedback

law u = -kx minimizes the cost function

j = integral dt

subject to the system dynamics dx/dt = ax + bu

* for a discrete-time state-space model sys, u[n] = -kx[n] minimizes

j = sum

subject to x[n+1] = ax[n] + bu[n].

the matrix n is set to zero when omitted. also returned are the

the solution s of the associated algebraic riccati equation and

the closed-loop eigenvalues e = eig(a-b*k).

[k,s,e] = lqr(a,b,q,r,n) is an equivalent syntax for continuous-time

models with dynamics dx/dt = ax + bu

matlab中random函式的用法

y randn n 返回一個n n的隨機項的矩陣。如果n不是個數量,將返回錯誤資訊。y randn m,n 或 y randn m n 返回一個m n的隨機項矩陣。y randn m,n,p,或 y randn m n p.產生隨機陣列 感覺就是三維陣列,請看如下例子 random格式 random...

matlab中max函式的用法問題

y,i max m,2 在 第抄2維方向上取最大值 襲,也就 是每bai行最du大值,結果存在y裡,zhii裡存的是每行最大值的dao列位置。m magic 3 m 8 1 6 3 5 7 4 9 2 y,i max m,2 y 879 i 132 matlab中max函式的結果是什麼?你可以分步去...

MATLAB中MAX的用法,matlab中max函式的用法問題

a是cell陣列,max函式不支援對cell陣列直接操作。可以這樣 aa cell2mat a max aa 各列最大值 max aa aa中所有元素最大值 max在數學中表示最大的集合元素,即最大值。min表示最小的意思。a 你這個地方a不是一個矩陣應該是 a 1 2 3 3 4 5 6 7 8 ...