Error evaluating parameter 'Value' in simulink

113 views (last 30 days)
Hi,
I am using simulink to calculate ballistics flights. Until now a used :
[time, state, output]=sim ('ballistic_flight_3',15); within an m-file In this m-file the input for the simulation were given in nromal way:
nameVar=valueVar
now in a next step I had to change this m-file to a function, the function is normally identical to the m-file, all teh same variables are used and assigned the same values within the function
function [FlightDistMat,FlightDistSim]=CompareBallisticFu(LaunchAngleDeg,HorLaunchSpeedMps,DiamM, UseSimulink)
For ..... Cr=0.44; HorStartPos=0; HorVertPos=1; .... [time, state, output]=sim ('ballistic_flight_3',15); ...
end
Now I get error on the line were I call: [time, state, output]=sim ('ballistic_flight_3',15);
Error evaluating parameter 'Value' in 'ballistic_flight_3/Cr': Error using ==> sim Undefined function or variable 'Cr'.
The strange this is : if I run the m-file first and then I try calling the function again, it works,
So I found that if I load the vars in the workspace first it worksn while those same vars are defined in the function???
Looking for solutions on the internet I looked at 'Initialising Simulink Model Parameter Variables using Callbacks' but I was not able to solve my problem also tried setting the model workspace via the model explorer but I think that is the wrong way because some of the values are changed in my function for each time that I call the simulation
thanks for any help
regards,
I use Simulink 7.0 R2007b
  3 Comments
Jürgen
Jürgen on 4 Jul 2012
I do not completely understand your question: the mfile: CompareBallistic.m is called from the command line the function [FlightDistMat,FlightDistSim]=CompareBallisticFu(LaunchAngleDeg,HorLaunchSpeedMps,DiamM, UseSimulink) is also called from the function line
What is also strange in the m-file a define some vars=
drag, vertpos,horpos.. , I define the same var in the function but it seems he does not accept this for input in the simulink model BUT if I load those vars in the workspace just before I run the function it works also!!
Jürgen
Jürgen on 4 Jul 2012
Hi, need to add some thing, I start searching what you meant with base workspace and indeed if I clear the workspace, and then perform the function I can see in workspace that my vars are in the stack but not in the base, if I do the m-file first the are in base and in stack? I am not familiar with this...base vs stack, normally all vars defined within the function should be available no?

Sign in to comment.

Accepted Answer

TAB
TAB on 4 Jul 2012
Edited: TAB on 4 Jul 2012
Ok, I think I got the problem.
By default the source workspace for simulink model is base workspace. So when you simulate the model, it resolves the parameters from base workspace.
As your parameters are in function workspace your model is not taking these parameters.
So you can resolve it in two ways...
1. Exports the parameters from the function to base workspase using assignin() or evalin() commands before simulating the model.
2. Change the source workspace of your model to current (function) workspace using simset() command. See How do I run a model from my MATLAB function.
  1 Comment
Jürgen
Jürgen on 4 Jul 2012
indeed seems logical , thanks for the help , I'll implement it

Sign in to comment.

More Answers (1)

Moti Bekuma
Moti Bekuma on 29 Sep 2021
please help me on this. when i run it it says
Invalid setting in 'The_overall_quadrotor_yaw_attitude_model/From Workspace' for parameter 'VariableName'.
Error evaluating parameter 'VariableName' in 'The_overall_quadrotor_yaw_attitude_model/From Workspace'
Undefined variable "PRBS" or class "PRBS.mat".

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!