Error evaluating parameter 'Value' in simulink

115 次查看(过去 30 天)
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 个评论
Jürgen
Jürgen 2012-7-4
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 2012-7-4
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?

请先登录,再进行评论。

采纳的回答

TAB
TAB 2012-7-4
编辑:TAB 2012-7-4
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 个)

Moti Bekuma
Moti Bekuma 2021-9-29
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".

类别

Help CenterFile Exchange 中查找有关 Simulink Functions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by