主要内容

定义基本系统对象

这个示例展示了如何创建一个基本的System对象™,该对象将数字加1。示例中使用的类定义文件包含定义System对象所需的最小元素。

创建系统对象类

您可以创建和编辑一个mat文件或使用MATLAB®编辑器来创建System对象。本示例描述如何使用菜单中的MATLAB编辑器。

  1. 在MATLAB中,在编辑器选项卡上,选择>系统对象>基本.打开一个简单的System对象模板。

  2. 子类化对象matlab。系统.取代无标题的AddOne在你文件的第一行。

    classdefAddOne < matlab。系统

    系统对象由基类组成,matlab。系统并且可能包含一个或多个mixin类。在类定义文件的第一行指定基类和mixin类。

  3. 保存文件并命名它AddOne.m

定义算法

stepImpl方法包含在运行对象时要执行的算法。定义此方法,以便它包含您希望System对象执行的操作。

  1. 在您创建的基本System对象中,检查stepImpl模板方法。

    方法(Access = protected)函数y = stepImpl (obj, u)%的实现算法。计算y作为输入u和的函数%离散状态。y = u;结束结束

    stepImpl方法访问始终设置为受保护的因为它是用户不直接调用或运行的内部方法。

    除了静态方法外,所有方法都需要System对象句柄作为第一个输入参数。由MATLAB编辑器插入的默认值为obj.您可以为您的System对象句柄使用任何名称。

    默认情况下,输入和输出的数量都是1。输入和输出可以使用输入/输出.您还可以使用可变数量的输入或输出,请参阅改变输入的数量

    或者,如果您通过编辑mat文件来创建System对象,则可以添加stepImpl方法使用插入方法>实现算法

  2. 中更改计算stepImpl添加方法1的价值u

    方法(Access = protected)函数y = stepImpl(~,u) y = u + 1;结束

    提示

    不需要传入对象句柄,可以使用波浪号()表示该对象句柄未在函数中使用。使用波浪号而不是对象句柄可以防止关于未使用变量的警告。

  3. 删除基本模板中默认包含的未使用的方法。

    您可以修改这些方法来添加更多的System对象操作和属性。您也可以不做任何更改,并且System对象仍然按预期操作。

类定义文件现在拥有了这个System对象所需的所有代码。

classdefAddOne < matlab。系统计算一个比输入值大1的输出值所有方法都出现在方法声明中。% stepImpl方法具有受保护的访问权限方法(访问=保护)函数y = stepImpl(~,u) y = u + 1;结束结束结束

另请参阅

|||

相关的话题