У вас может быть одна структура, содержащая ваши переменные, которые можно выборочно использовать в ваших Matlab Function
блоках. Это означает, что вы можете иметь только один Constant
блок и дополнительные функции, инициализированные из вашего скрипта.
В этой статье MathWorks показано, как вы можете преобразовать структуру в Simulink Bus для использования в вашей модели (вы можете не используйте структуру в константном блоке напрямую):
https://blogs.mathworks.com/simulink/2011/12/05/initializing-buses-using-a-matlab-structure/
Даю вам что-то вроде этого:
% initialise constants within struct, keeps the workspace tidy too!
vars = struct();
vars.g = 9.8;
vars.lambda = 2;
% Create bus data for the variables struct
varsInfo = Simulink.Bus.createObject(vars);
% Sim the model
sim( 'myModel.slx' );
С вашим постоянный блок, настроенный для шины, как описано в связанной статье:
![bus config](https://i.stack.imgur.com/7w2Zz.png)
Затем вы можете получить к нему доступ в своей функции
function y = ( y, vars )
% MATLAB Function block function within myModel.slx
y = vars.lambda + u * vars.g;