在反馈循环中使用系统对象
如果您的算法需要通过System对象™处理非直接反馈数据,请使用isInputDirectFeedthroughImpl
,outputImpl
,updateImpl
方法。这些方法通过System对象处理非直接反馈数据。
大多数System对象使用直接馈通,需要对象的输入来生成输出。对于这些直接馈通对象,一步
方法计算输出并更新状态值。然而,对于非直接馈通,对象的输出依赖于内部状态,而不是直接依赖于输入。输入或输入的子集用于更新对象状态。对于这些对象,计算输出与更新状态值是分开的。这使您能够将对象用作反馈循环中的反馈元素。
这个例子展示了如何实现具有非直接馈通的延迟对象。
在MATLAB®中,选择新>系统对象>基本.
选择插入方法并实现
outputImpl
和updateImpl
方法。outputImpl
从状态和/或输入计算输出。updateImpl
从输入更新状态值。在实施
outputImpl
方法时,不要访问直接馈通标志为false的System对象输入。如果System对象支持代码生成并且不使用金宝app传播,则Simulink金宝app®可以自动推断直接馈通设置从系统对象MATLAB代码。但是,如果System对象不支持代码生成,则默认为金宝app
isInputDirectFeedthroughImpl
方法返回false(无直接反馈)。在这种情况下,重写此方法以指定非直接馈通行为。
非直接馈通的处理改变了软件在Simulink引擎上下文中调用System对象方法的方式。金宝app