Load external file in ssc block Simscape

9 visualizaciones (últimos 30 días)
Moritz
Moritz el 2 de Ag. de 2024
Comentada: Yifeng Tang el 7 de Ag. de 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 comentario
Yifeng Tang
Yifeng Tang el 7 de Ag. de 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.

Iniciar sesión para comentar.

Respuestas (1)

Shishir Reddy
Shishir Reddy el 5 de Ag. de 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 comentario
Moritz
Moritz el 6 de Ag. de 2024
Editada: Moritz el 7 de Ag. de 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!

Iniciar sesión para comentar.

Categorías

Más información sobre Foundation and Custom Domains en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by