Linearization error "NaN's cannot be converted to logicals"
39 次查看(过去 30 天)
显示 更早的评论
I get the error. " NaN's cannot be converted to Logicals" when trying to linearize my model. The model runs actually with no problem. the problem arises only when linearizing the model in control design. I don't know what exactly simulink does during linearazation that causes this error.
2 个评论
采纳的回答
Adam Danz
2018-8-9
This will replicate your error:
v = [1 0 1 1 0 NaN 0 1 0 0];
logical(v)
Error using logical
NaN's cannot be converted to logicals.
My guess is that you're using logical() to convert a variable with 0s and 1s that also have NaN values.
If that's the case, you need to decide whether NaNs should be a 0 or a 1. In this example, I set NaNs to 0.
v = [1 0 1 1 0 NaN 0 1 0 0];
v(isnan(v)) = 0;
logical(v)
Or you can remove the NaNs
v = [1 0 1 1 0 NaN 0 1 0 0];
v(isnan(v)) = [];
logical(v)
4 个评论
Tim
2018-12-8
Hi, could you please explain how exactly you added v(isnan(v)) = []; to the block output?
更多回答(3 个)
Barton Bacon
2023-10-24
This just happened to me and the culprit was a square root block I had recently added to a simulation.... believe it or not. Changing the square root block to a power block and using .5 as the exponent for some reason allowed the linearization to proceed without the "NaN's cannot be converted into logicals" error. MATHWORKS what the heck is going on in the square root and reciprocal square block that would produces this problem in linearization? Those blocks linearize fine by themshelves in a their own block diagram. In a complicated simulation, not so much apparently.
0 个评论
Welid Benchouche
2019-1-4
hello guys, can you please help me , i get the same error on model predictive control when linearizing Rc=0.15
2 个评论
Apicha Kittirattanachai
2020-8-21
please kindly explain "integrators in your model they should be responsible for "NaNs" "
How are integrators setting for response the NaN value ?
My problem is appear in mpc toolbox when linearize of toolbox.
Thankyou.
Ahmed Elgohary
2022-3-5
编辑:Ahmed Elgohary
2022-3-5
Well, i got the same error with model predictive control during linearization and i could solve the problem by changing the range of simulink operating point as shown at the figure. So it was from [0 1] and i made it from [0.1 1] for example as you want for the upper limit but the main problem was related to using zero for lower limit during the linearization.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/915659/image.png)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!