[自動控制原理][05][zhangfan_space]——慣性環節怎麼寫成m語言

背景

相信很多同學在使用各個環節的時候,傾向於使用的工具都是simulink,simulink對於s域更加方便,那後續用其他語言編寫控制算法的時候,怎麼編寫各個block呢,下面以慣性環節爲例,以m語言做一個簡單的示範。

推導

推導主要是兩步:拉普拉斯逆變換和離散化
不必要的操作:不要陷入卷積定理中

  1. 以慣性環節110s+1\frac{1}{10s+1}爲例,可以得到Y(s)U(s)=110s+1\frac{Y(s)}{U(s)}=\frac{1}{10s+1}
  2. 可以得到10sY(s)+Y(s)=U(s)10sY(s)+Y(s)=U(s)
  3. 拉普拉斯逆變換爲10Y˙(t)+Y(t)=U(t)10 \dot{Y}(t)+Y(t)=U(t),不需要解方程
  4. 離散化,計算過程中以δt\delta t爲固定步長進行計算,可以得到10Y(k+1)Y(k)δt=U(k)Y(k)10\frac{Y(k+1)-Y(k)}{\delta t}=U(k)-Y(k),化簡可得Y(k+1)=δtU(k)+(10δt)Y(k)10Y(k+1)=\frac{\delta tU(k)+(10-\delta t)Y(k)}{10}
  5. m語言編程內容如下:
u_k = 1;
delta_t = 0.1;
trial_length = 600;
y_k = 0;
y_k_sum = [];
for i=1:1:trial_length
    y_k_sum = [y_k_sum y_k];
    y_k = delta_t*u_k+(10-delta_t)*y_k;
    y_k = y_k/10;
end
plot(y_k_sum)
xlabel('ms')

如下圖所示:
在這裏插入圖片描述

與simulink對照

在這裏插入圖片描述
在這裏插入圖片描述
基本一致(主要是計算步長的差別)
OK,結束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章