Error evaluating parameter 'Value' in simulink

조회 수: 113 (최근 30일)
Jürgen
Jürgen 2012년 7월 4일
답변: Moti Bekuma 2021년 9월 29일
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
Jürgen
Jürgen 2012년 7월 4일
indeed seems logical , thanks for the help , I'll implement it

댓글을 달려면 로그인하십시오.

추가 답변 (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