企业碳排放解决方案合约案例 助力双碳

Posted CN-ZHANG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业碳排放解决方案合约案例 助力双碳相关的知识,希望对你有一定的参考价值。

企业碳排放解决方案合约案例 助力双碳

1.区块链为“双碳”带来了什么? | 研讨会回顾

原文介绍:

6月22日,由微众区块链、金链盟、FISCO BCOS开源社区联合举办的“‘链’筑可持续”ESG系列研讨会第一期在线举行。本期研讨会以“区块链助推‘双碳’战略”为主题,邀请权威专家和代表企业共话“双碳”工作推进中存在的难点痛点,以及区块链技术如何助推“双碳”战略。

研讨会由微众银行区块链CMO李贺主持,邀请了广州碳排放权交易所总经理助理李原、微众银行区块链首席架构师兼金链盟FISCO BCOS首席架构师张开翔、零数科技双碳事业部总经理沈文昌、碳抵科技副总经理耿振博、万物数创CTO黄一分别做主题演讲。

随着碳达峰碳中和各项政策纷纷部署落地,碳排放数据的采集、碳普惠机制的激励等实操性痛点问题亟待解决。对此,区块链技术作为可信基础设施,不仅为上述问题提供了可行的解决方案,更与金融、绿色建筑等行业结合,诞生出一系列实践案例。

区块链作为一种分布式账本技术,具有去中心化、不可篡改、透明等特点,可以为“双碳”(即低碳经济)发展带来一些潜在的好处。

  1. 碳交易和碳信用积分:区块链可以为碳交易和碳信用积分提供一个安全的、透明的、不可篡改的记录和管理方式。通过将碳排放权分割成数字资产,可以方便地进行转移、交易和跟踪。
  2. 资源管理和监控:区块链可以用于跟踪能源、水资源和土地等资源的使用情况,并对资源的使用进行监控。这可以帮助促进资源的高效利用和减少浪费。
  3. 能源交易和分布:区块链可以用于管理去中心化的能源市场,使个人和企业可以直接进行能源交易和分享。这可以促进可再生能源的使用和减少对传统能源的依赖。
  4. 碳足迹追溯:区块链可以用于记录产品的生产和运输过程,并追溯产品的碳足迹。这可以帮助消费者更好地了解产品的环境影响,从而做出更环保的选择。

总之,区块链可以为“双碳”发展提供一些有益的支持。通过利用区块链的技术特点,可以实现更加透明、高效和安全的碳交易和碳管理,促进可持续发展和低碳经济的建设。

2.碳排放资产管理设计

基于区块链的碳资产管理可以通过以下设计来实现:

  1. 碳资产登记:碳资产应该被注册到区块链上,以确保其真实性和合法性。可以使用智能合约来记录碳资产的属性,例如产生碳排放的方式、数量和时间等。此外,为了防止双重计数,应该为每个碳资产分配唯一的标识符。
  2. 碳交易:碳交易应该通过区块链进行。买卖双方应该通过数字签名来确认交易,并将交易记录在区块链上。区块链的智能合约可以自动化交易,以确保快速、安全和低成本的交易。
  3. 碳资产追踪:区块链可以记录每个碳资产的交易历史和归属权,以确保其可追溯性。可以将交易信息记录在区块链上,使每个参与方都可以查看碳资产的交易历史。此外,可以使用区块链的权限控制功能来确保只有授权人员可以访问特定的交易记录。
  4. 碳资产溯源:区块链可以记录碳资产的溯源信息,以追踪其来源和流向。可以使用智能合约来记录碳资产的生产过程、运输过程和交易过程等信息。这些信息可以用于证明碳资产的真实性和合法性,也可以用于监管和审计。

总之,基于区块链的碳资产管理应该包括碳资产登记、碳交易、碳资产追踪、碳资产溯源等方面,以实现快速、安全和低成本的碳交易,并确保碳交易市场的透明度和可信度。

3.合约设计思路

3.1 基本的业务流程

3.2 具体的设计思路

CarbonAsset 合约 CarbonAsset 合约是管理碳排放额度和碳交易的核心合约。该合约包含以下功能:

  • 分配碳排放额度:CarbonCertification 合约审核通过后,将为企业在 CarbonAsset 合约中分配碳排放额度。
  • 挂单出售:企业可以将其碳排放额度挂单出售到 CarbonAsset 合约中。
  • 直接购买:企业可以直接在 CarbonAsset 合约中购买其他企业挂单出售的碳排放额度。
  • 检查余额:企业可以随时查询其在 CarbonAsset 合约中的碳排放额度余额。
  • 转移额度:企业可以将其在 CarbonAsset 合约中的碳排放额度转移给其他企业。
  • 支付奖励积分:企业在完成某些减少碳排放量的行为后,可以获得奖励积分。CarbonAsset 合约可以用来支付奖励积分。
  1. CarbonCertification 合约用于管理企业的资质信息和审核状态。企业可以将其资质信息上传到 CarbonCertification 合约中,并等待监管统计部门进行审核。审核通过后,CarbonAsset 合约将分配相应的碳排放额度。
  2. CarbonExcitation合约 CarbonExcitation合约用于管理企业的碳排放量和奖励积分。该合约可以追踪企业的碳排放量,并计算其应该获得的奖励积分。企业可以在 CarbonAsset 合约中收到奖励积分,或在 CarbonExcitation合约中查看其奖励积分余额。
  3. SafeMath 合约 SafeMath 合约是一个安全数学库,用于处理合约中的数学运算。它可以避免整数溢出和下溢等问题,确保合约中的数学计算是安全和可靠的。在 CarbonAsset 合约中,SafeMath 合约可以用来处理碳排放额度的加减操作,以避免可能的数学错误和安全问题。

通过以上合约的设计和实现,我们可以构建一个完整的碳资产管理系统,其中企业和监管统计部门可以使用区块链来实现碳资产的管理和交易,确保碳排放量的准确计量和碳市场的透明和公正。该系统可以提高碳交易的效率和安全性,减少人为错误和舞弊行为的发生,同时也可以为企业提供更多的碳减排激励,促进全社会对低碳经济的转型和发展。

4.具体开发步骤

4.1 CarbonCertificationV2合约业务介绍

CarbonCertification的主要业务:

  • 拥有两个角色,分别是企业和监管部门
  • 基本业务是注册企业和监管部门的个人信息
  • 企业需要上传资质,等待审核
  • 监管部门需要查看进行审批,如果审批通过则发放1000的额度,未通过审核的企业无法进行下一步操作
  • 企业审核完之后可以对自己的信息进行更新上传,包括余额、总排放量
  • 企业之间的交易会记录下交易的信息体,所有需要存放交易的历史记录
  • 我定义了四个个主要的结构体,分别是:EnterpriseRegulatorQualificationTransaction

这里我自己定义了Ownable合约,就是可公共拥有的变量或者函数以及事件

pragma solidity ^0.4.25;

contract Ownable 
    // 定义角色枚举类型
    enum Role  Enterprise, Regulator 
    // 默认发放的额度
    uint256 internal constant TOTAL_EMISSION = 1000;
    // 进行审核的变量
    bool internal constant AUDIT_SUCCESS = true;
    bool internal constant AUDIT_FAILED = false;

    // 企业账户的事件
    event RegisterAccount(address indexed _acount,string indexed _name);
    // 上传审核的事件
    event UploadQualification(address indexed _acount,string indexed _name,string indexed _content);
    // 审批企业申请的事件
    event VerifyQualification(address indexed _enterpriseAddr,uint256 indexed _emissionLimit);
    // 交易碳额度
    event TransferEmissionLimit(address indexed _from,address indexed _to,uint256 indexed _amount);
    // 出售碳额度
    event SellEmissionLimit(uint256 indexed _emissionLimitCount,uint256 indexed _amount);
    // 更新企业账户的余额
    event UpdateBalnce(address indexed _enterpriseAddr,uint256 indexed _amount);
    // 更新企业账户的碳排放额度
    event UpdateEmissionLimit(address indexed _enterpriseAddr,uint256 indexed _emissionLimit);

4.2 CarbonCertificationV2合约

CarbonCertificationV2的合约详细

主要的函数方法有如下:

  • registerEnterprise() : 注册企业函数,初始化一个新的企业
  • registerRegulator() :注册监管机构函数,初始化一个监管机构
  • qualificationUpload() :企业上传资质函数,等待监管机构审批资质
  • verifyQualification() :监管机构审批企业的资质函数,用于审批
  • updateBalance() :更新企业余额函数,企业的账户余额用于交易
  • queryEnterpriseInfo() :查询企业信息函数,返回企业的结构体信息
  • queryRegulatorInfo() :查询监管机构信息函数,返回监管机构的结构体信息
  • queryAllEnterprises() :分页查询所有企业的函数,避免返回整个数组
  • queryAllTransactions() :分页查询所有企业的交易历史记录函数,避免返回整个数组
// SPDX-License-Identifier: MIT
pragma solidity ^0.4.25;
pragma experimental ABIEncoderV2;

import "./Ownable.sol";

contract CarbonCertificationV2 is Ownable 
    address public Owner;

    // 定义一个结构体来表示企业账户信息
    struct Enterprise 
        uint256 enterpriseId;                   // 账户ID
        address enterpriseAddress;              // 账户地址
        string  enterpriseName;                 // 企业名称
        uint256 enterpriseBalance;              // 账户余额
        uint256 enterpriseTotalEmission;        // 总需排放的量
        uint256 enterpriseOverEmission;         // 已完成的排放量
        uint256 enterpriseCarbonCredits;        // 奖励积分
        bool enterpriseVerified;                // 是否通过审核
        Role userType;                          // 账户角色
        Qualification qualification;            // 资质信息
    

    // 定义一个结构体来表示企业的资质信息
    struct Qualification 
        string  qualificationName;                    // 资质名称
        string  qualificationContent;                 // 资质内容
        uint256 qualificationUploadTime;              // 上传时间
        uint256 qualificationAuditTime;               // 审核时间
        uint256 qualificationEmissionLimit;           // 碳排放额度
    


    // 定义一个结构体来表示监管部门账户信息
    struct Regulator 
        uint256 regulatorId;            // 账户ID
        address regulatorAddress;       // 账户地址
        string  regulatorName;          // 部门名称
        Role userType;                  // 账户类型
    

    // 定义一个结构体来表示交易订单信息
    struct Transaction 
        uint256 transactionId;               // 订单的交易ID
        string  transactionOrderName;        // 订单的名字
        address transactionBuyAddress;       // 买家地址
        address transactionSellAddress;      // 卖家地址
        uint256 transactionTime;             // 订单创建时间
        uint256 transactionQuantity;         // 购买碳额度的数量
    

    // 定义交易的记录
    uint256 public enterpriseCount;
    uint256 public regulatorCount;
    uint256 public transactionCount;


    // 定义存储企业的数据集合
    Enterprise[] public enterpriseList;
    // 定义存储监管部门的数据集合
    Regulator[] public regulatorList;
    // 定义存储交易订单的数据集合
    Transaction[] public transactionList;


    address[] public enterprisesAddress;
    address[] public regulatorsAddress;


    // 通过地址映射企业的详细信息
    mapping(address => Enterprise) public enterpriseMap;
    // 通过地址映射监管部门的详细信息
    mapping(address => Regulator) public regulatorMap;
    
    mapping(uint256 => Transaction) public transactionMap;

    mapping(address => Transaction[]) public enterpriseToTransactions;


    // 企业
    modifier OnlyEnterprice(address _account) 
        require(
            enterpriseMap[_account].enterpriseAddress == msg.sender &&
            enterpriseMap[_account].userType == Role.Enterprise,"当前没有企业的权限"
        );
        _;
    
    // 监管
    modifier OnlyRegulator(address _account) 
        require(
            regulatorMap[_account].regulatorAddress == msg.sender &&
            regulatorMap[_account].userType == Role.Regulator,"当前没有监管机构权限"
        );
        _;
    

    // 检查是否注册
    modifier CheckRegistered(address _enterpriseAddress) 
        require(!selectHasRegulator(_enterpriseAddress),"当前企业未注册");
        _;
    

    /*
    * @dev 注册一个企业
    * @param _account 企业账户地址
    * @param _name 企业名称
    */
    function registerEnterprise(address _enterpriseAddress,string memory _enterpriseName) public 
        // 判断当前是否存在
        require(!selectHasEnterprise(_enterpriseAddress),"当前企业已经注册");
        enterpriseCount++;
        uint256 _accountId = enterpriseCount;

        Enterprise storage _newEnterprise = enterpriseMap[_enterpriseAddress];
        _newEnterprise.enterpriseId = _accountId;
        _newEnterprise.enterpriseAddress = _enterpriseAddress;
        _newEnterprise.enterpriseName = _enterpriseName;
        _newEnterprise.enterpriseBalance = 0;
        _newEnterprise.enterpriseTotalEmission = 0;
        _newEnterprise.enterpriseOverEmission = 0;
        _newEnterprise.enterpriseCarbonCredits = 0;
        _newEnterprise.enterpriseVerified = false;
        _newEnterprise.userType = Role.Enterprise;
        _newEnterprise.qualification = Qualification("","",0,0,0);
        // enterpriseNameToAddressMap[_enterpriseName] = _enterpriseAddress;
        enterprisesAddress.push(_enterpriseAddress);
        enterpriseList.push(_newEnterprise);
        // 触发企业注册的事件
        emit RegisterAccount(_enterpriseAddress,_enterpriseName);
    


    // 查询企业是否注册
    function selectHasEnterprise(address _enterpriseAddr) public returns(bool) 
        if (enterpriseMap[_enterpriseAddr].enterpriseAddress == _enterpriseAddr)
            return true;
        else 
            return false;
        
    


    /*
    * @dev 注册一个监管部门
    * @param _regulator 监管部门的地址
    * @param _name 监管部门的名称
    */
    function registerRegulator(address _regulatorAddress,string memory _regulatorName) public 
        require(!selectHasRegulator(_regulatorAddress),"当前监管机构已经注册");
        regulatorCount++;
        uint256 regulatorId = regulatorCount;

        Regulator storage _newRegulator = regulatorMap[_regulatorAddress];
        _newRegulator.regulatorId = regulatorId;
        _newRegulator.regulatorAddress = _regulatorAddress;
        _newRegulator.regulatorName = _regulatorName;
        _newRegulator.userType = Role.Regulator;

        // regulatorNameToAddressMap[_regulatorName] = _regulatorAddress;
        regulatorsAddress.push(_regulatorAddress);
        regulatorList.push(_newRegulator);
        emit RegisterAccount(_regulatorAddress,_regulatorName);
    

    // 查询企业是否注册
    function selectHasRegulator(address _regulatorAddr) public view returns(bool) 
        if (regulatorMap[_regulatorAddr].regulatorAddress == _regulatorAddr)
            return true;
        else 
            return false;
        
    

    // 注销企业
    function deleteEnterprise(address _enterpriseAddress) public returns(bool) 
        if (selectHasRegulator(_enterpriseAddress))
            return false;
        else 
            delete enterpriseMap[_enterpriseAddress];
            for (uint i = 0; i < enterprisesAddress.length; i++)
                if (enterprisesAddress[i] == _enterpriseAddress)
                    delete enterprisesAddress[i];
                
            
            return true;
        
    

    /*
    * @dev 
    
    * @param _qualificationName 审核的资质名称
    * @param _qualificationContent 审核资质的内容
    */
    function qualificationUpload(string memory _qualificationName,string memory _qualificationContent) public OnlyEnterprice(msg.sender) CheckRegistered(msg.sender) 
        // 该企业不能存在已经上传资质的情况
        require(enterpriseMap[msg.sender].enterpriseVerified == false,"已经上传过资质,当前无法上传审核资质");
        Qualification storage _qualification = enterpriseMap[msg.sender].qualification;
        // 上传审核的资料
        _qualification.qualificationName = _qualificationName;
        _qualification.qualificationContent = _qualificationContent;
        _qualification.qualificationUploadTime = block.timestamp;
        // 触发上传审核资料的事件
        emit UploadQualification(msg.sender,_qualificationName,_qualificationContent);
    


    /*
    * @dev 监控部门审核企业上传的资质
    * @param _enterpriseAddr 企业的账户地址
    * @param _emissionLimit 企业的审批通过下发的额度
    */
    function verifyQualification(address _enterpriseAddress,bool _flag) public OnlyRegulator(msg.sender) returns(Enterprise memory) 
        // 这部分代码是主要业务
        Enterprise storage _enterprise = enterpriseMap[_enterpriseAddress];
        _enterprise.qualification.qualificationAuditTime = block.timestamp;
        if (_flag) 
            _enterprise.enterpriseVerified = AUDIT_SUCCESS;
            _enterprise.qualification.qualificationEmissionLimit = TOTAL_EMISSION;
        else 
            return;
        
        emit VerifyQualification(_enterpriseAddress,TOTAL_EMISSION);
        return _enterprise;
    


    /*
    * @dev 更新企业的余额
    * @param _enterpriseAddr 企业的账户地址
    */
    function updateBalance(address _enterpriseAddress,uint256 _amount) public OnlyEnterprice(msg.sender) CheckRegistered(msg.sender) returns(bool) 
        Enterprise storage _enterprise = enterpriseMap[_enterpriseAddress];
        _enterprise.enterpriseBalance += _amount;
        emit UpdateBalnce(msg.sender,_amount);
        return true;
    

    /*
    * @dev 查看企业的详细信息
    * @param _enterpriseAddr 企业的账户地址
    */
    function queryEnterpriseInfo(address _enterpriseAddress) public view returns(Enterprise memory) 
        Enterprise memory enterprise = enterpriseMap[_enterpriseAddress];
        return enterprise;
    

    /*
    * @dev 查看监管部门的详细信息
    * @param _regulatorAddr 监控部门的账户地址
    */
    function queryRegulatorInfo(address _regulatorAddress) public view returns(uint256,address,string memory,Role) 
        Regulator memory regulator =  regulatorMap[_regulatorAddress];
        return (regulator.regulatorId,regulator.regulatorAddress,regulator.regulatorName,regulator.userType);
    


    /*
    * @dev 查看企业购买的交易历史信息
    * @param _enterpriseAddr 企业的账户地址
    */
    function queryEnterpriseTransactionInfo(address _enterpriseAddress) public view returns(Transaction[] memory)
        Transaction[] memory transactions = enterpriseToTransactions[_enterpriseAddress];
        return transactions;
    

    /*
    * @dev 查看当前企业是否通过认证
    */
    function checkEnterpriseVerified(address _enterpriseAddr) public view returns(bool)
        return enterpriseMap[_enterpriseAddr].enterpriseVerified;
    

    /*
    * @dev 分页拆查询企业的公司信息
    * @param page       查询的页数
    * @param pageSize   查询的每页的数量
    */
    function queryAllEnterprises(uint256 page,uint256 pageSize) public returns(Enterprise[] memory) 
        require(page > 0, "页数不能为0");
        uint256 startIndex = (page - 1) * pageSize; // 计算起始索引
        uint256 endIndex = startIndex + pageSize > enterprisesAddress.length ? enterprisesAddress.length : startIndex + pageSize; // 计算结束索引
        Enterprise[] memory enterpriseArr = new Enterprise[](endIndex - startIndex); // 创建每页大小的 Enterprise 数组
        for (uint i = startIndex; i < endIndex; i++)
            if (enterprisesAddress[i] == address(0))
                continue;
            
            enterpriseArr[i - startIndex] = enterpriseMap[enterprisesAddress[i]];
        
        return enterpriseArr;
    

    /*
    * @dev 分页拆查询企业的交易历史订单信息
    * @param page       查询的页数
    * @param pageSize   查询的每页的数量
    */
    function queryAllTransactions(uint256 page,uint256 pageSize) public returns(Transaction[] memory) 
        require(transactionList.length != 0,"当前没有任何交易历史记录");
        require(page > 0, "页数不能为0");
        uint256 startIndex = (page - 1) * pageSize; // 计算起始索引
        uint256 endIndex = startIndex + pageSize > transactionList.length ? transactionList.length : startIndex + pageSize; // 计算结束索引
        Transaction[] memory transactionArr = new Transaction[](endIndex - startIndex); // 创建每页大小的 Enterprise 数组
        for (uint i = startIndex; i < endIndex; i++)
            transactionArr[i - startIndex] = transactionList[i];
        
        return transactionArr;
    


4.3 CarbonAssetV2合约业务介绍

CarbonAsset的主要业务:

  • 需要检查当前的企业是否认证
  • 通过认证之后可以进行碳资产的出售和购买
  • 企业需要申请排放额度,审批排放额度之后即可排放
  • 企业排放资源之后会加入到计算积分排行中
  • 对企业的排放量进行排序,在后端进行相应的排序,不要在链上排序,避免消耗极大的GAS
  • 可以进行统计排名前三奖励可以自行调整

4.4 CarbonAssetV2合约

这里我使用了SafeMath合约,防止计算数字溢出

pragma solidity ^0.4.25;

library SafeMath 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) 
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) 
            return 0;
        

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) 
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b

百度智能云发布零碳园区解决方案,助力实现双碳目标

“在未来的新型能源供应体系下,技术将发挥越来越大的作用。”百度副总裁李硕在12月29日举行的百度 Create 2021“绿色双碳论坛”上表示。他还与中国社科院学部委员、经济学家潘家华教授围绕《AI 助力,碳致中和》主题进行了对话,包括双碳、绿色制造、绿色金融等多个话题,与观众分享了精彩的观点和行业洞察。当日,百度智能云还重磅发布了“零碳园区解决方案”,助力工业园区实现双碳目标。

百度副总裁李硕对话中国社科院学部委员、经济学家潘家华教授,主题为《AI 助力,碳致中和》

“双碳”工作任重道远,云智一体献上新利器

实现碳达峰、碳中和是一场广泛而深刻的经济社会系统性变革。今年12月,中央经济工作会议定调明年“双碳”工作方向,明确提出“要正确认识和把握碳达峰碳中和”。传统能源逐步退出要建立在新能源安全可靠的替代基础上。要立足以煤为主的基本国情,抓好煤炭清洁高效利用,增加新能源消纳能力,推动煤炭和新能源优化组合。要狠抓绿色低碳技术攻关。深入推动能源革命,加快建设能源强国。

与发达国家相比,我国实现碳达峰、碳中和目标愿景,时间更紧、幅度更大、困难更多。人工智能、大数据、云计算、物联网等技术,在国家“双碳”工作中的价值不断凸显。百度等科技公司输出领先能力,从供能端到用能端,多方面助力国家双碳目标。

从供能端来看,火电是我国第一大能源,在新能源体系中仍将占据重要位置。国家能源局最新数据显示,火电占全部电力的71.03%。百度智能云智慧能源解决方案,依托“云智一体”领先能力,可以让火电企业低成本、快捷地利用云计算,同时通过 AI 技术的预测、优化、调度、监控能力,赋能生产、储运、消费、管理等各环节,落地各种场景化 AI 应用,助力企业实现降碳、降本、安全和提效。该方案已在实践中帮助某火电厂优化空冷岛能耗,将煤耗降低1.55克/度电,效果显著。

而在用能端,作为“用能大户”制造业发展的主要载体,工业园区是行业、区域、城市碳减排的关键。在论坛现场,百度智能云重磅发布全新产品“零碳园区解决方案”,覆盖工业园区的能源生产、能源使用以及碳交易等诸多环节,提供电站智能巡检、智能调度、能耗监测和分析、碳中和监测等 AI 能力,赋能园区碳足迹追踪和碳中和管理,降低碳排放,助力碳交易,最终实现碳中和。目前,该方案已落地某工业园区,帮助园区内企业用电成本降低20-30%,还通过用能监测与预警,让用能设施运维效率提升20%。

能源供需因 AI 更稳定安全,绿色金融大有可为

随着“双碳”工作不断深入,科技赋能、绿色制造、绿色金融等前沿话题备受业内人士关注。在“绿色双碳论坛”中,百度副总裁李硕与中国社科院学部委员、经济学家潘家华教授展开了一场主题为《AI 助力,碳致中和》的深度对话。

李硕表示,“以人工智能为代表的新技术,将在电力调度等重要场景下释放能力,显著提升系统表现。”他特别提及百度2020年参加 NeurIPS 电网调度大赛的经历。百度提出的智能电网调度解决方案获得了赛事双料冠军;百度智能云还联合国家电网,共同研究如何以 AI、超大规模算力赋能电力调度系统。

潘家华指出,“人工智能对于新能源市场的竞争性和能源生产供给的安全性,绝对必要。”在他看来,高速计算机、各种算法与人工智能决策的组合,在多能互补与储能、化石能源有序退出等方面极为重要,能解决许多人工无法处理的问题。具体而言,多能互补与储能,需要 AI 实时计算特定区域里的供需匹配,保障稳定输出,人工判断一定会产生时滞效应,造成中断;而化石能源的有序退出,必须通过 AI 进行综合地分析评估、模拟计算得到一个最优方案,把用电用能调整到能耗更低;另外,对于人类最后保留的一点化石能源使用,也需要 AI 提供计算对比后更优化的碳排放方法。

说起能源供需调配,制造业等用能大户近来在“双碳”工作上的进展值得关注。李硕提出,“在实际走访中,我们观察到,今天的工业制造领域已经提出了明确的绿色低碳目标,已经有不少企业围绕‘绿色工厂’、‘绿色制造’开展了颇有成效和借鉴意义的实践。”

纺织印染企业浙江美欣达与百度智能云合作,从质量检测到生产控制,全面实现了能源管控的数字化,一年能够节约100万元的能源成本。可以说,在能耗监测和预测管理智能系统的支持下,美欣达能快速发现企业节能的关键点,降低生产能耗成本,加速实现“双碳”目标。 

潘家华则为“绿色制造”提出了4大建议:

  • 其一,灵活判定高能耗,对于必须通过高能耗制造的产品,如果在本行业里面是技术领先、低水平排放、高效率的,就可以认为是低碳绿色的引领者;

  • 其二,允许一定高碳行业的存在,用高碳保障低碳,加速整个产业的低碳过程,如同风电光伏本身存在技术难点,需要高排放的煤电作为备用一样;

  • 其三,用生命周期而不是生产过程来衡量产品的能耗,比如很多低碳设备的生产过程是高碳的,但在长期使用过程中却能为低碳服务;

  • 其四,提高产品质量,延长产品的使用寿命,也可助力节能。

事实上,大量制造业企业在面对双碳目标,优化自身能耗的过程中,对资金的需求日益增长,绿色金融事业由此兴起。

潘家华对此表示,绿色金融的发展是金融资本意识到碳中和已成大势所趋的表现,未来或在政策导向下退出高碳领域,进军零碳领域。这将对市场释放信号,有助于绿色经济发展。绿色金融也体现了金融资本正在担当社会责任,对人类、环境、未来负责。在利润与风险上,有了新的判断标准,主动承担更多风险,在绿色金融发展过程中将形成行业共识或约定,在不同领域支持不同类型的企业,形成以金融力量助力“双碳”的整体社会氛围和准则,加速“双碳”进程。

“发展绿色经济,并非一朝一夕之功。因为这个领域涉及社会所有经济活动的参与者。我们对于碳的相关需求的降低,是一个长期、持续的过程。百度愿意跟所有的客户和合作伙伴一起肩负起我们的责任,不断努力,共同达到目标。”李硕如是说。

以上是关于企业碳排放解决方案合约案例 助力双碳的主要内容,如果未能解决你的问题,请参考以下文章

智慧火电扭转传统运作模式,3D可视化助力双碳政策疾行

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度智能云发布零碳园区解决方案,助力实现双碳目标

行业趋势 | 实现“双碳目标”,AR 大有可为

AI 如何推动双碳目标达成?施耐德电气这么说

《数智碳中和》白皮书发布 | 以数智技术助力关键相关方实现碳达峰碳中和