resetToDefault - Resets parameter value to default - MATLAB (original) (raw)

This example shows a wheel axle architecture model with instance-specific parameters exposed in System Composer™. These parameters are defined as model arguments on the Simulink® reference model used as a model behavior linked to two System Composer components. You can change the values of these parameters independently on each reference component.

To add parameters to the architecture model or components, use the Parameter Editor. To remove these parameters, delete them from the Parameter Editor.

Open the architecture model of the wheel axle mAxleArch to interact with the parameters on the reference components using the Property Inspector.

model = systemcomposer.openModel("mAxleArch");

Look up the Component objects for the RightWheel and LeftWheel components.

rightWheelComp = lookup(model,Path="mAxleArch/RightWheel"); leftWheelComp = lookup(model,Path="mAxleArch/LeftWheel");

Get the parameter names for the RightWheel component. Since the LeftWheel component is linked to the same reference model mWheel, the parameters are the same on the LeftWheel component.

paramNames = rightWheelComp.getParameterNames

paramNames = 1×3 string "Diameter" "Pressure" "Wear"

Get the Pressure parameter on the RightWheel component architecture.

paramPressure = rightWheelComp.Architecture.getParameter(paramNames(2));

Display the value type for the Pressure parameter.

ans = ValueType with properties:

       Name: 'Pressure'
   DataType: 'double'
 Dimensions: '[1  1]'
      Units: 'psi'
 Complexity: 'real'
    Minimum: ''
    Maximum: ''
Description: ''
      Owner: [1×1 systemcomposer.arch.Architecture]
      Model: [1×1 systemcomposer.arch.Model]
       UUID: '47c2446a-f6b0-4710-9a73-7ed25d1671c4'
ExternalUID: ''

Get the RightWheel component parameter values.

for i = 1:length(paramNames) paramName = paramNames(i) [paramValue,paramUnits,isDefault] = rightWheelComp.getParameterValue(paramNames(i)) end

Get the LeftWheel component parameter values.

for i = 1:length(paramNames) paramName = paramNames(i) [paramValue,paramUnits,isDefault] = leftWheelComp.getParameterValue(paramNames(i)) end

First, check the evaluated RightWheel parameters.

for i = 1:length(paramNames) paramName = paramNames(i) [paramValue,paramUnits] = rightWheelComp.getEvaluatedParameterValue(paramNames(i)) end

Check the evaluated LeftWheel parameters.

for i = 1:length(paramNames) paramName = paramNames(i) [paramValue,paramUnits] = leftWheelComp.getEvaluatedParameterValue(paramNames(i)) end

Set the parameter value and unit for the PSI parameter on the LeftWheel component.

First, check the current values for the pressure on LeftWheel.

[paramValue,paramUnits,isDefault] = leftWheelComp.getParameterValue("Pressure")

Update the values for the pressure on LeftWheel.

leftWheelComp.setParameterValue("Pressure","34") [paramValue,paramUnits,isDefault] = leftWheelComp.getParameterValue("Pressure")

Revert the Pressure parameter on LeftWheel to its default value.

leftWheelComp.resetParameterToDefault("Pressure")

Check the reverted values for the pressure on LeftWheel.

[paramValue,paramUnits,isDefault] = leftWheelComp.getParameterValue("Pressure")

Promote the Pressure parameter on the LeftWheel component.

addParameter(model.Architecture,Path="mAxleArch/LeftWheel",Parameters="Pressure");

Get the promoted Pressure parameter from the root architecture of the mAxleArch model.

pressureParam = model.Architecture.getParameter("LeftWheel.Pressure");

Adjust the value of the promoted Pressure parameter.

pressureParam.Value = "30"; pressureParam

pressureParam = Parameter with properties:

  Name: "LeftWheel.Pressure"
 Value: '30'
  Type: [1×1 systemcomposer.ValueType]
Parent: [1×1 systemcomposer.arch.Architecture]
  Unit: 'psi'

Get the source parameter from which the Pressure parameter is promoted.

sourceParam = getParameterPromotedFrom(pressureParam)

sourceParam = Parameter with properties:

  Name: 'Pressure'
 Value: '30'
  Type: [1×1 systemcomposer.ValueType]
Parent: [1×1 systemcomposer.arch.Component]
  Unit: 'psi'

Reset the value of the promoted Pressure parameter to the default value in the source parameter.

resetToDefault(pressureParam); pressureParam

pressureParam = Parameter with properties:

  Name: "LeftWheel.Pressure"
 Value: '32'
  Type: [1×1 systemcomposer.ValueType]
Parent: [1×1 systemcomposer.arch.Architecture]
  Unit: 'psi'

Delete the promoted parameter.

Add a new Muffler component to the mAxleArch architecture model.

topModel = systemcomposer.loadModel("mAxleArch"); mufflerComp = addComponent(topModel.Architecture,"Muffler");

Add the parameter noiseReduction to the Muffler component.

noiseReduce = addParameter(mufflerComp.Architecture,"noiseReduction");

Set the default Unit value for the NoiseReduction parameter.

valueTypeNoise = noiseReduce.Type; valueTypeNoise.Units = "dB";

Set the Value property for the noiseReduction parameter.

noiseReduce.Value = "30";

View the properties of the noiseReduction parameter.

noiseReduce = Parameter with properties:

  Name: "noiseReduction"
 Value: '30'
  Type: [1×1 systemcomposer.ValueType]
Parent: [1×1 systemcomposer.arch.Architecture]
  Unit: 'dB'

Rearrange the mAxleArch architecture model to view all components.

Simulink.BlockDiagram.arrangeSystem("mAxleArch");

Delete the Muffler component.

Save the updated models.

model = systemcomposer.loadModel("mWheelArch"); save(model) save(topModel)