Load SIMULINK Model from MATLAB GUI, domain error - matlab

i need to open an existing simulink model from my Matlab GUI. I am not into Simulink at all and i just have to make it work somehow. To open the model i use the command
open_system('filepath_to_model')
Now an error occurs:
Warning: Physical modeling domain definition file psatdomain.m not found. You will not be able simulate this model. Please close
your model, then add the domain definition file to the MATLAB path and re-open your model.
What does this error mean? i added psatdomain.m to the directory of the model but the error remains the same.
% PSATDOMAIN defines the domain for the PSAT-Simulink library
I would be glad for your help so that i can open an existing Simulink model and run it from my Matlab GUI.
Thank you very much!!
Best regards, John

Related

where to find missing tlc file generated by simulink?

please help with this problem
while i am trying to deploy a model into Arduino mega from my 2013a 32bit matlab i had this error.
( The corresponding 'Model name.tlc' file for the MATLAB S-function 'Model name' in block 'block name' must be located in the current working directory, ...)
i have looked in many websites and forums for solution but i couldn't find, maybe because i am not familiar with matlab much. but i guess the problem is with S-function. i noticed that it is easy to get tlc file if i use s-function builder. but the current model i am trying to deploy is {M-S-Function: User-definable block written using the MATLAB S-Function API...}
what shall i do?
after i used newer version of matlab and newer version of the support package i was able to generate automatically all the files including tlc file.

Run Simulink from Matlab function

I am running Simulink using FastRestart, as I need to start and stop the simulation multiple times changing parameters. When I run Simulink from the main script, there are no problems. However, as soon as I make the script a function so that I can run it for different input data, I get an error that is clearly related to Simulink not seeing the Matlab workspace within the function.
To be more precise, say sfile is my Simulink file, then I run the following lines AFTER having initialized all variables I need in structures in Matlab:
load_system(sfile);
set_param(sfile,'FastRestart','on');
set_param(sfile,'SaveFinalState','on');
set_param(sfile,'SaveCompleteFinalSimState','on');
set_param(sfile,'SimulationCommand','update');
At the last line, I get the error that Simulink does not recognize mdl.tStep (which is the time step), as mdl is not a recognized structure. In fact, it is and if I run Simulink from the main script everything is fine.
Now, in the past, I would have used
options = simset('SrcWorkspace','current');
However, an expert I know has advised me against simset (as it may get deprecated in the future) and encouraged me to use set_param instead. I have
looked up the options for set_param on-line, but I could not find the setting for the Matlab workspace.
Any help would be greatly appreciated. Thank you in advance!
In many instances it is better to use the Model Workspace rather than the Base Workspace:
hws = get_param(model, 'modelworkspace');
hws.assignin('mdl',mdl);
At least be aware that this option exists.
A solution to your problem might be to use the assignin-function to all the variable whose value you want to pass to simulink in your matlab base workspace. To do so just use
assignin('base','mdl',mdl)
Having the variable in your base workspace should allow simulink to see it.

Error library Simulink

I have created a simple Simulink library because I am learning about masks. The library is saved into Documents folder, which is in path of MATLAB. To test my library, I've created a model and I've inserted my block from my library. When I want to change the value of a parameter in the mask I receive this error screenshot of message
Is there any configuration to do?
Thank you so much

setting Simulink block parameter from matlab without opening Simulink

I have Simulink moodel, and it has a block parameter , which can be set as
(in Matlab)
set_param('pth/_dat1', 'fileName', 'data1.wav');
But, this only works if model is first open by typing model name on matlab script.
Is it possible to set it without opening the Simulink model GUI,(like e.g we can change something in visual studio project by manipulating xml rather than GUI)
See load_system, which from the doc,
load_system('sys') loads sys, where sys is the name of a
Simulink® model, into memory without making its model window visible.

Open the m file for System Objects in MATLAB

I am trying to use the Communications Toolbox in Matlab. In this toolbox there are a number of built in Systems Objects for example
1) comm.PSKModulator
I want to examine the .m file and see how these system objects are implemented. So I wrote down the command
open comm.PSMModulator
However, that doesnt help. Does anyone know why it doesn't work or maybe one cant access such code?
Update
When I write down which comm.PSKModulator I receive the following
/Applications/MATLAB_R2014a.app/toolbox/comm/comm/+comm/PSKModulator.p % comm.PSKModulator constructor
and where I write open comm.PSKModulator I get
Error using open (line 146)
File associated with
'/Applications/MATLAB_R2014a.app/toolbox/comm/comm/+comm/PSKModulator.p' not found.
Thanks
Some System objects may be implemented in C++ and does not have much to show in MATLAB code which might be the reason this is p-coded. You need to check the corresponding Simulink block documentation for description of the algorithm used. You can find documentation for M-PSK Modulator Baseband at http://www.mathworks.com/help/comm/ref/mpskmodulatorbaseband.html which has more description about the algorithm implemented.