Pyomo/python_03 离散化

本文介绍了如何使用Pyomo对含有微分或积分的模型进行离散化,重点讨论了有限差分和配置两种离散化方案。详细阐述了有限差分的参数设置,如'nfe'、'wrt'和'scheme',以及配置变换的选项,如配置方法('scheme')和配置点数('ncp')。同时,展示了如何应用多个离散化变换以及自定义离散方案的过程。
摘要由CSDN通过智能技术生成

在将带有微分或积分组件的Pyomo模型发送到求解器之前,必须先离散化。DAE将问题中的连续域离散化,并引入近似于离散点上的导数和积分的等式约束,其离散化方案:有限差分和配置,此方案仅适合微分。

【1】有限差分变换

  • ‘nfe’:需要离散化的有限元点的数目。默认值是10。
  • ‘wrt’:指定离散化的连续集,如果未指定则将对每个ContinuousSet应用相同模式。
  • ‘scheme’:指定应用的有限差分方法,默认向后差分方法。
#向后差分离散化
>>> discretizer = TransformationFactory('dae.finite_difference')
>>> discretizer.apply_to(model,nfe=20,wrt=model.time,scheme='BACKWARD')

#为离散模型添加约束
>>> def _sum_limit(m):
...    return sum(m.x1[i] for i in m.time) <= 50
>>> model.con_sum_limit = Constraint(rule=_sum_limit)

#求解离散模型
>>> solver = SolverFactory('ipopt')
>>> results = solver.solve(model)

【2】配置变换

该变换利用正交配置对模型中的微分方程进行离散,主要两种方法:带有高斯-拉多根或高斯-勒让德根的拉格朗日多项式。

    • 0
      点赞
    • 4
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值