【发布时间】:2014-10-09 16:16:59
【问题描述】:
让我们假设我在 Simulink 中有一个要控制的连续系统。首先,我应用卡尔曼滤波器来估计系统的状态。
在下一阶段,我将在嵌入式 MATLAB 函数中使用估计状态 (x_hat),该函数调用模型预测控制器函数 my_mpc,如下所示:
function [u]= emd_fcn(x_hat , r, t, Ts)
% x_hat: estimated state, r: reference to be tracked,
t: clock time, Ts: sampling period
%#codegen
coder.extrinsic('my_mpc'); % to call the function my_mpc
----- % some initialization code
if mod(t, Ts)==0
u=my_mpc(x, r)
else
u=-----; % some code.
end
end
但是,由于时钟时间t 是一个变量,mod(t, Ts) == 0 不会是这种情况。
我的问题是:我们如何检测采样时刻以将离散的 mpc 控制输入应用于连续系统?
【问题讨论】:
标签: matlab controls simulink sampling mpc