【问题标题】:Detecting sampling instant for a discerete controller in MATLAB/Simulink在 MATLAB/Simulink 中检测离散控制器的采样时刻
【发布时间】: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


    【解决方案1】:

    您应该只使控制器离散。右键单击 MATLAB Function 模块,选择 Block Parameters,然后指定离散采样时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2022-01-23
      • 2021-03-04
      • 1970-01-01
      相关资源
      最近更新 更多