主要内容

系统设计金宝app使用系统对象

系统设计和仿真金宝app

您可以使用系统对象模型来模拟仿真软件金宝app®

  1. 创建一个系统对象™模型中使用。看到定义新的系统对象模型使用金宝app获取信息。

  2. 测试您的新系统在MATLAB对象®。看到测试新系统在MATLAB对象

  3. 系统对象添加到您的模型通过使用MATLAB系统块。看到系统对象添加到仿真软件模型金宝app获取信息。

  4. 根据需要添加其他仿真金宝app软件模块和连接块构造系统。

  5. 运行系统。

用于定义新系统对象金宝app

对象是一个组件可以使用系统在MATLAB中创建您的系统。您可以编写MATLAB中的代码和使用仿真软件代码来创建一个块。金宝app定义你自己的系统对象,编写一个类定义文件,它是一种基于文本的MATLAB文件,其中包含定义对象的代码。看到使用MATLAB系统集成系统对象

定义系统对象块定制

创建一个系统对象模型使用。金宝app执行系统识别的例子使用至少意味着广场(LMS)自适应滤波器。

创建一个类定义文本文件来定义您的系统对象。这个例子中的代码创建了一个至少意味着广场(LMS)过滤器,包括自定义块图标和对话框出现。

请注意

而不是手动创建你的类定义文件,您可以使用>系统对象>金宝app模型的扩展菜单选项来打开一个模板。这个模板包含定制的系统对象模型的使用金宝appMATLAB系统块。你编辑的模板文件,使用它作为指导方针,创建自己的系统对象。

在类定义的第一行文件,指定您的系统对象的名称和子类matlab.System。的matlab.System基类使您能够使用所有的基本系统对象方法并指定块的输入和输出的名称,标题和属性组。

添加适当的基本系统对象方法建立,重置,设置输入和输出的数量,和运行您的算法。看到参考页面为每个方法和完整的类定义文件下面的每一个方法的实现。

  • 使用setupImpl执行一次性计算方法和初始化变量。

  • 使用stepImpl方法来实现块的算法。

  • 使用resetImpl重置状态属性或方法DiscreteState属性。

  • 使用getNumInputsImplgetNumOutputsImpl指定数量的输入和输出的方法,分别。

添加适当的方法定义的外观MATLAB系统块模型。金宝app看到参考页面为每个方法和完整的类定义文件下面的每一个方法的实现。

  • 使用getHeaderImpl方法来指定要显示在标题和描述块对话框。

  • 使用getPropertyGroupsImpl方法来指定属性显示在组块对话框。

  • 使用getIconImpl方法来指定要显示在文本块图标。

  • 使用getInputNamesImplgetOutputNamesImpl方法来指定块的标签来显示输入和输出端口。

完整的类定义文件至少意味着正方形过滤器:

classdeflmsSysObj < matlab.System% lmsSysObj至少意味着广场(LMS)自适应滤波。% # codegen属性%μ步长μ= 0.005;结束属性(Nontunable)%权值滤波器权重重量= 0;重量% N多的过滤器N = 32;结束属性(DiscreteState) X;H;结束方法(访问=保护)函数setupImpl (obj) obj。X = 0 (obj.N, 1);obj。H = 0 (obj.N, 1);结束函数[y, e_norm] = stepImpl (obj d u) tmp = obj.X (1: obj.N-1);obj.X (2: obj.N, 1) = tmp;obj.X (1,1) = u;y = obj.X ' * obj.H;e = dy;obj。H = obj。H + obj.Mu * e * obj.X;e_norm =规范(obj.Weights -obj.H);结束函数resetImpl (obj) obj。X = 0 (obj.N, 1);obj。H = 0 (obj.N, 1);结束结束%块自定义图标和对话框方法(静态访问=保护)函数头= getHeaderImpl头= matlab.system.display.Header (“lmsSysObj”,“标题”,的LMS自适应滤波器);结束函数组= getPropertyGroupsImpl upperGroup = matlab.system.display.SectionGroup (“标题”,“一般”,“PropertyList”,{“亩”});lowerGroup = matlab.system.display.SectionGroup (“标题”,“系数”,“PropertyList”,{“重量”,“N”});组= [upperGroup, lowerGroup];结束结束方法(访问=保护)函数图标= getIconImpl(~)图标= sprintf (“LMS自适应\ nFilter”);结束函数[in1name, in2name] = getInputNamesImpl in1name = (~)“想要的”;in2name =“实际”;结束函数[out1name, out2name] = getOutputNamesImpl out1name = (~)“输出”;out2name =“EstError”;结束结束结束

定义与间接直通的系统对象

创建一个系统对象模型使用。金宝app执行系统识别的例子使用至少意味着广场(LMS)自适应滤波器和使用反馈循环。

创建一个类定义文本文件来定义您的系统对象。这个例子中的代码创建了一个整数延迟,包括反馈循环,和自定义块图标。反馈的信息,请参阅在反馈回路中使用系统对象。这个例子实现了一个系统对象,您可以使用间接引线。

在类定义文件的第一行,子类matlab.System。的matlab.System基类使您能够使用所有的基本系统对象方法并指定块的输入和输出的名称,标题和属性组。

添加适当的基本系统对象方法设置和重置对象并设置和验证的属性。因为这个对象支持间接直通的,你不会实金宝app现stepImpl方法。你实现了updateImploutputImpl而不是方法。看到参考页面为每个方法和完整的类定义文件下面的每一个方法的实现。

  • 使用setupImpl方法来初始化对象的一些属性。

  • 使用resetImpl方法重置属性状态。

  • 使用validatePropertiesImpl检查属性值是有效的方法。

而不是添加下面的类方法stepImpl方法来指定块如何更新其状态和它的输出。看到下面的参考页面和完整的类定义文件每一个方法的实现。

  • 使用outputImpl计算方法实现代码块的输出。

  • 使用updateImpl方法来实现代码更新块的内部状态。

  • 使用isInputDirectFeedthroughImpl方法来指定块不是直接引线。它的输入不直接影响其输出。

添加getIconImpl方法定义块图标时用于仿真软件通过金宝appMATLAB系统块。看到下面的参考页面和完整的类定义文件的实施这个方法。

完整的类定义文件的延迟是:

classdefintDelaySysObj < matlab.System% intDelaySysObj延迟输入指定数量的样本。% # codegen属性% InitialOutput初始输出InitialOutput = 0;结束属性(Nontunable)% NumDelays延误的数量NumDelays = 1;结束属性(DiscreteState) PreviousInput;结束方法(访问=保护)函数setupImpl (obj ~) obj。obj.NumDelays PreviousInput = 1 (1) * obj.InitialOutput;结束函数[y] = outputImpl (obj ~)%不直接依赖于输入输出y = obj.PreviousInput(结束);结束函数updateImpl (obj, u) obj。PreviousInput = [u obj.PreviousInput (1: end-1)];结束函数国旗= isInputDirectFeedthroughImpl(~ ~)国旗= false;结束函数validatePropertiesImpl (obj)如果((元素个数(obj.NumDelays) > 1) | | (obj。NumDelays < = 0))错误(延误的数量必须是正的非零…标量价值。');结束如果(元素个数(obj.InitialOutput) > 1)错误(“初始输出必须标量值。”);结束结束函数resetImpl (obj) obj。obj.NumDelays PreviousInput = 1 (1) * obj.InitialOutput;结束函数图标= getIconImpl(~)图标= sprintf (“整数\ nDelay”);结束结束结束

测试新系统在MATLAB对象

  1. 你的新系统对象创建一个实例。例如,创建一个实例lmsSysObj

    s = lmsSysObj;

  2. 多次运行该对象与不同的输入。做这一步测试语法错误和其他可能的问题之前,你将它添加到仿真软件。金宝app例如,

    期望= 0;实际= 0.2;(实际需要,);

系统对象添加到你的金宝app模型

系统MATLAB功能块中的对象

您可以包括系统对象代码的仿真软件模型金宝appMATLAB函数块。你的函数可以包含一个或多个系统对象。部分系统可能更容易比直接在模型在MATLAB环境中实现。金宝app许多系统对象模型与等效功能块同行。金宝app之前编写MATLAB代码包括在仿真软件模型,检查现有块执行所需的操作。金宝app

系统中的对象MATLAB系统

你可以包括个人系统创建的对象的类定义文件到仿真软件金宝appMATLAB系统块。这个选项是一种添加自己的算法模块仿真软件模型。金宝app

添加您的系统对象模型使用模型金宝appMATLAB系统块中描述系统对象代码映射到MATLAB系统块对话框

信息,请参阅使用MATLAB系统集成系统对象