背景
相信很多同學在使用各個環節的時候,傾向於使用的工具都是simulink,simulink對於s域更加方便,那後續用其他語言編寫控制算法的時候,怎麼編寫各個block呢,下面以慣性環節爲例,以m語言做一個簡單的示範。
推導
推導主要是兩步:拉普拉斯逆變換和離散化
不必要的操作:不要陷入卷積定理中
- 以慣性環節爲例,可以得到
- 可以得到
- 拉普拉斯逆變換爲,不需要解方程
- 離散化,計算過程中以爲固定步長進行計算,可以得到,化簡可得
- 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,結束。