# 错误(4405)
# 4405-1
# 错误信息
%1!s! 是实型离散变量, 但其没有在 when 中显式赋值.
# 产生原因
Modelica 语义规定离散时间变量即整型, 布尔型, 字符串型, 枚举型变量以及在 when 子句中赋值的实型变量; 如果给出的变量为实型离散的, 必须在 when 子句中赋值, 否则产生错误 4405.
# 解决方法
将实型离散变量在 when 子句中赋值.
# 示例
model Error_4405_1_RealDiscreteVarMustBeAssignedInWhen
class A
replaceable Real x;
replaceable parameter Real y;
end A;
class B
extends A(x = 2.0, y = 3);
end B;
B b(redeclare discrete Real y);
algorithm
//when (b.x > 0) then //Error:4405注释掉此句和end when 则报出4405
b.y := 3;
//end when;
end Error_4405_1_RealDiscreteVarMustBeAssignedInWhen;
# 4405-2
# 错误信息
不能用连续表达式对实型离散变量 %1!s! 赋值.
# 产生原因
使用连续表达式对实型离散变量赋值.