本文我们继续介绍增程式电动汽车仿真模型的建立,模型在前期建立的simulink纯电动车基础模型上进行功能扩展,更多内容请参见合集《真·simulink车辆仿真基础教程》。
这一节我们继续讲控制策略的构建。
我们已经在前面介绍了模式控制,本文我们介绍各模式下的增程器控制。
我们需要控制增程器哪些变量?
发电是通过发电机输出负扭矩来完成的,所以需要计算发电机的扭矩。
发电机是由发动机驱动的,所以我们还需要计算发动机的扭矩。
我们在建立发动机模型时提到,需要根据发动机启动状态控制发动机扭矩的输出,所以我们还需要一个发动机启动状态的信号。
这样我们控制模块的输出就是:发电机目标扭矩、发动机目标扭矩、发动机状态。
EV模式
EV模式下,增程器睡的跟死猪一样,所以各种输出都是0。
EngineStart模式
增程器的发动机一般不配启动机,所以增程器进入发动机启动模式时,需要发电机作为启动机,将发动机转速提升到合适区间。
所以这里主要完成的就是:
【1】发电机的扭矩控制
【2】根据发动机状态,使能发动机启动标志位
先说下发电机扭矩控制。
在此模式下,发电机的主要功能是将发动机转速拉升至某设定值。为了使其转速快速提升,所以我们希望在开始阶段发电机转矩能大一点,以提供更大的角加速度,同时当转速接近阈值时应减小发电机转矩,以防止转速超调。
所以,想到了什么, PID控制啊亲。
但是对于仿真来说,这里不需要太高的控制精度,所以可以只用一个比例环节。
当发动机转速拉升起来后,就可以点火了。当然模型里我们无法获取发动机的点火状态,所以我们将发动机转速作为发动机启动标志位使能的控制变量。
模型里,我们将发动机拉升的目标转速设为1300转,发动机启动标志位转速阈值设置为1200转。
根据上面逻辑,模型Chua、Chua、Chua就建立好了:
问题:这里发动机启动标志位转速阈值设置的为什么要比发动机目标转速低?
你们思考下。
EngineStop模式
发动机停机时,为了使其转速快速下降,可以通过发电机对其转速进行控制。但是,我们比较懒,就让发动机做自由停机吧,这样这个模式跟EV模式一样了。
REV模式
增程模式下发动机带动发电机发电,此时发动机作为扭矩源输出正扭矩,发电机作为阻力源输出负扭矩。(这里叫阻力源可能不太合适,一时想不起合适的词,你们理解意思就行)
由于文中建立的策略是恒温器控制,所以增程器启动后在恒定的工作点下运转,模型里我们只需要定义一个工作点即可。
所以在这个模式下,增程器运转的应该稳如老狗。
这里的工作点可以用转速+转矩点,也可用转速+功率点,文中采用的是转速+功率点。
定义好转速点及功率点后,增程器输出转矩通过下式计算:
建模时注意扭矩方向。
发动的扭矩怎么控制呢?
通过目标转速与实际转速的转速差。
看到这里你想到了啥,是不是反手就是掏出一个PID。
是的,我们把建立的驾驶员模型的PI控制器拿过来,缝缝补补。
然后用PI控制器计算的扭矩与发动机最大输出能力取小值,建立模型如下。
将以上两部分模型整合,最终完成的REV模式下的模型如下:
至此,增程器控制部分的模型就建立完成了,下面我们将其接入模型。
在电池模块中,新建一个增程器发电功率输入接口,并与电机功率相加,作为电池实际输入功率。
根据信号名称建立模块数据连接。
当然这里可以通过mux、demux或者bus数据总线模块整理下信号,会使模型界面更为整洁。
这儿就不搞了,有兴趣的铁子自己试下。
然后我们跑一下模型,验证下其是否按我们设计的既定的策略运行。
增程器控制相关变量建立如下:
为了尽快触发增程器启动条件,将电池初始SOC设为32%。选择CLTC工况,运行时间20000s。
运行完成后我们发现发动机转速发生了抖动
好家伙,PI控制器忘记调了,把增程模式下的PI控制器参数调节为如下值,重新运行模型。
现在发动机转速已经稳如老狗了。
我们再看下电池SOC与车辆模式:
SOC低于30%时,车辆进入增程模式,SOC高于80%后,车辆退出增程模式。完全符合我们策略设定。(至于中间模式,由于时间轴缩放原因不太明显,铁子们自己跑的时候可以放大看一下)
运行过程中,累积燃油消耗如下:
Ok,增程模型的扩展我们也介绍完成了,对于增程模式的多点及功率跟随策略铁子们可以参考以前文章自行建立。
真·simulink车辆仿真基础教程(番外)-增程系列,完结,撒花。