Jürgen asked . 2021-10-21
Error evaluating parameter 'Value' in simulink
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
simulink input var... , matlab
Kshitij Singh answered . 2024-12-13 21:11:08
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.
Not satisfied with the answer ?? ASK NOW