问题现象
input 应该怎么使用,直接写,参数不生效。

解决方法
变量没有赋值这个概念,可以理解为一个初始值,并非参数,input对于这个模型来说,是个输入,直接对模型进行仿真,如果没有输入,那么这个输入就没有值了,一直等于0;
正确的使用方法是:不在同一层给变量值,在模型外层给输入,比如新建一个model2,将此模型拖入,此时这个参数a相当于有了默认外部输入,即可达到想要的效果。

input的详细解释如下:
input定义因果关系和/或方框图连接语义(取决于上下文)。
前缀“输入”和“输出”的语义略有不同,这取决于它们使用的上下文:
在函数中,这些前缀定义了函数体的计算因果关系,即给定作为输入声明的变量,作为输出声明的变量在函数体中计算;
在仿真模型和模块中(即在要仿真的模型或块的顶层),这些前缀定义了与使用仿真模型或块的环境的交互。特别是,输入前缀定义了该变量的值必须由仿真环境提供,输出前缀定义了该变量的值可以直接在仿真环境中使用;
在组件模型和块中,输入前缀定义了在使用组件时必须为相应的变量提供绑定方程,以保证模型的局部平衡(即局部方程的个数等于未知数的局部个数)。
示例:
block FirstOrder
input Real u;
…
end FirstOrder;
model UseFirstOrder
FirstOrder firstOrder(u=time); // binding equation for u
…
end UseFirstOrder;
输出前缀在模型或块组件中没有特定的效果,因此被忽略。
在连接器中,前缀输入和输出定义相应的连接器只能根据方框图语义进行连接(例如,具有输出变量的连接器只能连接到将相应的变量声明为输入的连接器)。有一个限制是,至少有一个变量声明为输入的连接器必须是外部连接的(为了获得局部平衡的模型,其中局部未知数的数量与未知方程的数量相同)。加上方框图语义规则,这意味着这样的连接器必须在外部精确地连接一次;
在记录中,不允许使用前缀输入和输出,因为如果不这样做,记录就不能作为输入参数传递给函数。