Load external file in ssc block Simscape

7 Ansichten (letzte 30 Tage)
Moritz
Moritz am 2 Aug. 2024
Kommentiert: Yifeng Tang am 7 Aug. 2024
I build a "liquid valve" component (.ssc file) in Simscape which includes a dropdown menu to select different valve types. The parameters for each valve are stored as a structure in a separated .m file. Depending on which valve is selected, I would like to "load" the corresponding values into my "liquid valve" component (.ssc file). Similar to the "Thermal Liquid Properties (TL)" component which loads an external file depending on the selected fluid.
How do I "load/import" my external .m file (structure) into my simscape component?
  1 Kommentar
Yifeng Tang
Yifeng Tang am 7 Aug. 2024
My initial thoughts are to put a mask on the Simscape component(s), and use set_params to pull the values from the data source into the mask.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Shishir Reddy
Shishir Reddy am 5 Aug. 2024
Hi moritz
As per my understanding, you would like to “load” the corresponding values into the “liquid valve” component depending upon the valve selected.
For this, the simscape component should be modified as follows
parameters
% Define the parameters with initial values and units
param1={0, 'unit'}; %unit should be replaced with the actual units of param1
param2 = {0, 'unit'};
% Add more parameters as needed
end
function setup
% Loading the parameters from the external .m file
% Ensure the .m file is on the MATLAB path
params = feval('valveParams', valveType);
% valveParams is the separated .m file which contains a function that returns the structure of parameters based on the valve type.
% valveType is the type of the valve selected from the dropdown.
% Assign the loaded parameters to the component parameters
param1 = params.param1;
param2 = params.param2;
% Assign more parameters as needed
end
By following this method, parameters can be loaded dynamically to the simscape component based on the selected valve type.
For more information regarding the “feval” function kindly refer the following documentation https://www.mathworks.com/help/matlab/ref/feval.html
I hope this helps.
  1 Kommentar
Moritz
Moritz am 6 Aug. 2024
Bearbeitet: Moritz am 7 Aug. 2024
Thanks! This is, what I was looking for and it works! :)
However, I get the following warning,
Warning: File: Line: 1, the unit of value assigned to 'param1' was changed from '1' to 'Pa'.
when I use this setting.
parameters
param1 = {0, 'Pa'};
end
function setup
params = feval('valveParams', valveType);
param1 = params.param1;
end
I can suppress the warning, by adding the 'unit' in the 'function setup',
parameters
param1={0, 'Pa'};
end
function setup
params = feval('valveParams', valveType);
param1 = {params.param1, 'Pa'};
end
To me, this seems to be redundant. Is this correct or can I solve this differently?
Matlab states that using the setup function is not recommended ((Not recommended) Prepare component for simulation - MATLAB - MathWorks Benelux). Would it be possible to do the same things without using the setup function? I am just curious.
Thanks!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Foundation and Custom Domains finden Sie in Help Center und File Exchange

Produkte


Version

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by