虚拟电厂市场化交易中的挑战、策略与关键技术

2024-01-06 10:09许星原陈皓勇黄宇翔吴晓彬王宇绅廉俊豪张健彬
发电技术 2023年6期
关键词:调频不确定性投标

许星原,陈皓勇,*,黄宇翔,吴晓彬,王宇绅,廉俊豪,张健彬

(1.华南理工大学电力学院,广东省 广州市 510610;2.广东博慎智库能源科技发展有限公司,广东省 广州市 511458)

0 引言

当前,面对严重的环境污染和能源短缺问题,可再生能源的利用逐渐成为了全球能源转型以及应对气候变化的重要举措。随着可再生能源发电的发展,美、欧以及我国等多个国家和地区将新型电力系统的建设上升到战略地位[1-4]。高比例可再生能源接入系统将对电网的稳定运行带来一定程度的挑战[5-7],这需要更多灵活性资源参与到电力系统的调节范围[8]。近年来,通信、智能测量、智能控制等技术不断发展,新型电网逐步能获取海量运行数据并快速接收调度指令[9]。在此背景下,基于通信与控制技术,聚合灵活性资源并表现出传统电厂特性的虚拟电厂(virtual power plant,VPP)[10-15]成为重要发展方向。

虚拟电厂在国外起步较早,具有较好的基础[16]。欧洲的虚拟电厂主要聚合“源”侧资源,以消纳可再生能源为主,而美国的工程项目多以需求侧灵活资源管理为主[17]。我国关于虚拟电厂的研究与运行起步较晚,但大有后来居上的势头,2019年我国第一个能够市场化运营的商业性虚拟电厂在冀北启动,2021年广州地区提出《广州市虚拟电厂实施细则》,促使虚拟电厂参与需求响应市场。虚拟电厂的运行可以分为耦合的内外2 个过程:对内,其优化调度是一个典型的经济学命题,本质上是在维系电网稳定运行的前提下,尽可能提升资源的利用效率与经济效益;对外,虚拟电厂可以从电网获得调度指令,以获取补贴或通过参与电力市场赚取利润[18]。

我国电力改革的进程逐步推进,虚拟电厂发展的同时也面临多方面的挑战。一方面,我国电力市场化进程迅速推进,新型市场主体参与电力市场的机制逐步提出,虚拟电厂需要依赖新的市场机制以制定更为优质的投标策略;另一方面,分布式可再生能源、电动汽车等具有强不确定性的可调度资源逐渐增多,虚拟电厂将面临更加困难的资源聚合与管理,经济优化调度也更难以展开。

本文从虚拟电厂的市场化交易入手,分析了虚拟电厂参与市场交易所遇到的阻力与挑战,总结虚拟电厂为扩大利润而采取的投标策略,并对虚拟电厂投标中的不确定性处理、决策分析、资源管理方法等关键技术进行分析,为未来虚拟电厂参与市场的投标策略制定提供借鉴与思路。

1 市场化交易中面临的挑战

虚拟电厂参与市场交易,首要的任务是实现内部的实时平衡,而后基于所聚合资源的特性与可调节能力,参与市场报量或报价的交易。简而言之,其市场化交易所面临的挑战来源于内部与外部两方面。对于外部,虚拟电厂需要顺应市场体系,一方面需要满足市场准入条件,另一方面需要充分契合市场机制,制定合适的交易策略;而对于内部,虚拟电厂需要充分了解各资源的特性,并对不确定性进行合理的处理,进一步展开,市场化交易中面临的挑战通常为以下4个方面。

1.1 多时间尺度决策

近年来,国内外电力市场逐步发展,在许多国家已经形成了完整的电能量市场与辅助服务市场相结合的市场框架[19-23],而在我国,市场化进程也逐步推进,各省份正进行现货市场与各种辅助服务市场的尝试与建设[24-25]。

随着现货市场建设的推进,逐步开放了日内市场与平衡市场的交易。虚拟电厂参与日前投标时,需要充分依赖预测等技术,而随着时间的推进,实时阶段的风光出力预测、负荷预测将更精确,实时市场的价格也更具有保障[26]。作为资源聚合商,虚拟电厂参与市场的策略问题属于典型的投资组合管理问题,目前,其面临的主要挑战之一是如何有效地规划与不同时间范围相关的决策[27]。在多时间尺度的决策规划中,虚拟电厂需要充分权衡日前市场上的报量信息,并在实时市场上进行进一步的修正,一方面尽可能减小预测误差带来的考核成本,另一方面则需要尽可能最大化日前市场与实时市场电价差带来的潜在收益。

1.2 多类型市场决策规划

国外虚拟电厂的商业模式相对丰富。德国虚拟电厂能参与平衡市场获利,同时,调频备用容量市场时间减少促进了虚拟电厂提供备用服务[28]。美国加州市场设计了替代性辅助服务以降低总成本[29],虚拟电厂可参与旋转备用、非旋转备用市场。当前,我国虚拟电厂的发展主要以“荷”侧资源为主,主要通过邀约型需求响应的方式参与市场,未来将进一步开展负荷、储能、新能源等各类资源聚合,虚拟电厂也将通过逐步参与辅助服务市场获利[30]。

辅助服务市场的建设为虚拟电厂获取收益提供了更多有效的途径,但同时,虚拟电厂参与多类型市场的投标策略也将发生巨大的改变。在虚拟电厂参与电能量市场与辅助服务市场时,在处理好不确定性的同时,主要难点在于制定好的投标策略,最大化其潜在利润[31]。在参与辅助服务投标的过程中,虚拟电厂需要充分平衡所聚合资源的性能特性,在满足辅助服务性能需求的情况下进行投标。与此同时,虚拟电厂需要充分处理各类型市场之间的耦合关系,需要综合考量如何分配可调节容量参与不同市场[32]。

1.3 内部指令分解与利益分配

虚拟电厂在市场参与的过程,也是对内部资源的利用进行优化的过程,即投标的过程中需要充分考虑可调节资源的调用量。当辅助服务市场开放后,虚拟电厂可以通过参与调频辅助服务市场获取一定的收益。而调频辅助服务市场对市场参与者的性能要求相对较高[33-34],这对虚拟电厂的内部调度指令分解提出了更为严苛的要求。

同时,虚拟电厂作为一个经济主体,其参与市场调度将获得一定程度的收益,其每一个组成成分都有自己的优化目标,其必然存在一定的利益冲突[35]。为确保所聚合资源充分接受聚合与调度,虚拟电厂需要制定公平、公正且合适的收益分配体系,体现各组成成分的贡献[36],以维系虚拟电厂的稳定运行。

1.4 投标不确定性

虚拟电厂参与市场投标时,其部分资源具有一定的确定性,如微型燃气机等,而部分资源具有相当的不确定性,如风电、光伏发电的输出显著受到天气因素的影响。同时,用户负荷、电动汽车等储能资源、市场电价也具有一定的不确定性。由于参与市场时具有较高的偏差考核成本,不确定性因素的出现将可能使该成本扩大,而巨大的偏差考核成本会对虚拟电厂的经济效益产生显著影响。而过于保守的策略会使虚拟电厂内部弃风弃光量显著增加[37],故制定VPP 的优化投标策略时需要充分考虑不确定因素[38-39]。综上,虚拟电厂参与市场投标的关键是有效地处理各种不确定性,而确定性和不确定性能源的联合协调是相当复杂的问题[26]。

2 市场交易策略与优化调度技术

针对市场机制与资源聚合带来的交易挑战与难点,目前主要通过建立完备、合适的数学模型来描述市场投标策略,以经济性最优为目标,通过混合整数线性/非线性优化等方式求解数学模型。

2.1 多时间尺度现货市场策略

2.1.1 现货市场流程分析

一般而言,现货市场可以分为3个典型阶段,分别为:日前现货市场、实时现货市场与平衡市场。在日前市场上,虚拟电厂依赖电价预测,风、光发电日前预测,以及负荷预测等技术,制定适当的市场参与策略。在实时市场上,虚拟电厂需要缩小实际出力与日前预测之间的差距,并进一步平衡发电预测与负荷预测之间的不匹配。虚拟电厂参与现货市场的流程如图1所示。

图1 虚拟电厂参与现货市场流程Fig.1 Process of virtual power plant participating in spot market

对于虚拟电厂参与现货市场投标的策略研究,当前主要的研究方向分为2 类:单一时间尺度投标策略与多阶段投标策略。对于单一时间尺度投标策略,主要针对虚拟电厂参与日前现货市场的投标策略[40-44]进行探究,通过处理虚拟电厂投标过程中的不确定性,对内部资源进行合理调度以提升虚拟电厂的收益。对于多阶段现货市场的投标策略,则需要充分解决不同范围内决策的冲突。文献[45]考虑了多种类型的负荷聚合;文献[46]进一步考虑了风力发电厂与储能设施;文献[47]则考虑了一个较为完善的多资源聚合体,并提出了参与日前与实时市场的竞标策略;文献[48-49]对时间尺度进一步扩大,研究了包含日前、实时和平衡市场的三阶段市场优化问题;文献[50]研究了多时间尺度下多虚拟电厂的管理问题,基于交替方向乘子法(alternating direction method of multipliers,ADMM)实现了多VPP 分布式协调优化。

2.1.2 现货市场策略优化模型搭建

虚拟电厂参与多阶段现货市场,一般而言,其目标为最大化在日前市场上的交易能量收益和向零售客户出售能量的预期利润,最小化在实时市场、平衡市场中产生的不平衡成本[51]。

1)阶段1:日前市场

一般而言,日前市场的投标策略为:在基于对不确定资源的日前判断下,使VPP 的收益最大化,即售电收益与购电成本之间的差值最大化。其公式为:

式中:RG,t,DA为t时刻虚拟电厂的售电收益,其中的发电资源可以为风力发电、光伏发电等多种类型的资源;λsell,t,DA为t时刻预测的日前市场售电电价;Cload,t,DA为t时刻虚拟电厂在日前市场的购电成本;λbuy,t,DA为t时刻预测的日前市场购电电价;PG,t,DA为t时刻预测的日前市场售电电量;Pload,t,DA为t时刻预测的日前市场购电电量。

式(1)描述了日前市场中虚拟电厂的投标目标,式(2)、(3)则分别描述了虚拟电厂日前市场的收益与支出。若虚拟电厂中包含储能、电动汽车等可进行双向电能传输的设备,则可将其归纳为发电资源或负荷资源,并以负数作为其另一方面的特性。

2)阶段2:实时市场

实时市场的目标同样是实现虚拟电厂收益最大化,在这一阶段,已知虚拟电厂日前市场中的市场资源的投标与日前出清价格,实时市场中VPP的竞价模型可以用如下表达式描述:

式中:RG,t,RT为t时刻虚拟电厂参与实时市场的售电收益;Cload,t为t时刻两阶段市场的总运营成本;PG,t,RT、λsell,t,RT分别为在已知日前市场出清电价时,t时刻预测的实时市场中标电量与出清售电电价;Cload,t,RT为t时刻实时市场环境下的预计购电成本;R'G,t,DA为t时刻虚拟电厂的售电收益;同时,在参与实时市场时,已知日前市场的结算价格,则目标式中的R'G,t,DA、C'load,t,DA分别代表实际日前市场的售电收益与购电成本,均为已知量,可以根据日前结算价格确定。

式(4)描述了实时市场上虚拟电厂的运营目标,为参与两阶段市场时整体收益最大化,Cload代表了两阶段市场的总运营成本。

3)阶段3:平衡市场

在这一阶段,虚拟电厂无需参与投标,这一阶段的所有机组出力与负荷出力均为实际值,难免与日前、实时的预测值之间存在些许误差。由于该误差需要通过系统进行修正,具有一定的偏差考核成本,应尽量缩小此成本,故目标函数为

式中:α为偏差成本系数;PBA,t为t时刻实际运行时电量与预测电量之间的偏差,当PBA,t>0 时,取1.3[52],当PBA,t<0时,取-0.9[49];λbuy,t,RT为t时刻实时市场的出清购电电价。

2.2 多类型市场耦合投标策略

针对虚拟电厂参与辅助服务市场的投标策略,当前研究主要集中在虚拟电厂参与调频、需求响应与旋转备用等市场的投标策略。参与多种类型市场的协调问题,不仅仅是虚拟电厂需要解决的问题,也是市场成员需要解决的共性问题。

近年来,由于碳排放权市场的运行,虚拟电厂在调度过程中需要针对电、碳市场电价波动制定合适的市场策略,以获取最优的收益。文献[53]给出了分时碳价的制定策略并制定了虚拟电厂参与调峰市场、电能量市场与碳市场的耦合市场框架;而文献[54]则分析了能量市场、备用市场与碳市场耦合的碳电一体化交易策略。引入碳交易市场规则后,总体来说,虚拟电厂需要减少燃气机组输出比例,增加清洁能源的发电输出。

对于电能量与辅助服务市场的耦合投标,文献[31,40]制定了虚拟电厂参与电能量市场与旋转备用市场的联合竞价策略;文献[55-57]则建立了能源套利与调频辅助服务相结合的优化框架。需求响应市场参与策略也是重要研究方向,文献[58]设计了虚拟电厂参与需求响应交换市场与电能量市场的策略框架,以利用需求响应资源的灵活性弥补虚拟电厂实时电力供应的偏差。

总体而言,虚拟电厂参与多类型耦合市场时,以总体利益最大化为目标,同时,应当充分考虑不确定性,以最大化虚拟电厂可能获得的潜在收益。其目标函数如下:

式中:Rm为VPP 参与多类型市场的总收益;Rpower为VPP 参与电能量市场的售电收益;Raux为VPP参与碳市场或各类型辅助服务市场的收益;Call为虚拟电厂运营的成本,包含市场购电成本Cm与发电机组运行成本CG。式(8)描述了虚拟电厂的总体潜在利润。

2.3 调频市场策略与调频指令分解

虚拟电厂日前调度技术发展较为完备,而随着调频辅助服务市场的建设,其作为目前需求量较大、可获利性较高的市场类型,虚拟电厂如何参与调频市场并通过一定的调频指令分解技术使其能够响应AGC调频的需求至关重要。

传统的频率调节服务由大型火力发电机组等提供[59],传统的调频功率指令分解方法根据装机容量比例或既定的分配系数进行分配[60],而在虚拟电厂管理时,需要对所管理的不同资源的动态特性与运行模式进行建模,使得虚拟电厂提供调频等服务的优化问题更复杂[61]。

当前,部分学者针对调频指令分解的问题进行了相关研究。文献[60]中虚拟电厂综合调频性能最大为目标,并引入了反馈校正模型,基于量子遗传算法求解虚拟电厂内部功率分配情况,净利润与调频效果获得了一定程度的提升;文献[62]则引入了自适应权重因子对调频信号进行分配;文献[61]基于深度学习进行建模,展示了深度学习在调频指令分解中的作用,提出了离线-在线两阶段的深度学习方法,以使虚拟电厂能为电力系统提供高精度的调频服务;文献[63]对智能楼宇进行了建模,将智能楼宇中的可调节资源建模为虚拟储能参与调频服务;文献[64]开发了一种风电与储能合作参与调频市场的方法。

整体而言,虚拟电厂参与调频,需要充分发挥所管辖范围内储能资源的灵活性。储能资源具有相当优异的调节能力,响应速度极快,且在调节过程中,不同时段有不同的调度策略,日前市场应当以收益最大化为目标,而日内市场则更应当侧重于调频效果。

3 虚拟电厂市场决策关键技术

通过以上分析可知,虚拟电厂市场投标的关键在于不确定性处理,故虚拟电厂市场决策首要的关键技术为不确定性处理相关技术。同时,市场投标策略的制定过程属于典型的博弈过程,近年来,博弈论被逐渐应用到虚拟电厂的投标策略与资源管理的研究中。

3.1 投标不确定性处理

3.1.1 随机优化

针对不确定性因素,最常见的方式便是随机优化方法。随机优化的求解一般可以分为3 种方式:期望值替代、概率意义下优化与概率分布离散化。

1)期望值替代

对于不确定性因素,在已知概率分布的条件下,最简单的方法便是采用其期望值代替概率分布,由于期望值代表了所有数据的加权平均,采用其代表概率分布具有一定的借鉴意义。将其融合到虚拟电厂的投标策略中,表现为确定性条件下的经济优化调度的研究[32,65-67]。其中:文献[66]采用历史数据或预测值作为确定性经济优化调度的输入数据;文献[68]借助长短时记忆神经网络对风力、光伏发电的出力进行预测;文献[69]则依赖数学期望对不确定性进行了转化。另外,部分文献考虑了预测偏差,如文献[65]利用多时间尺度的滚动报价与调度,不断缩小风光预测之间的误差。

该方法针对不确定性的处理过于简单,实际应用过程中难以衡量风险。

2)概率意义下优化

对于在概率意义下的问题转化,可以通过在置信区间内考虑优化问题或引入风险价值(value at risk,VaR)、条件风险价值(condition value at risk,CVaR)等参数量化风险,以帮助实现不确定性条件下的优化。文献[70]充分考虑了风力发电的不确定性;文献[42]又进一步考虑了竞价对手报价的随机性,均利用CVaR 在一定的置信水平下对VPP 的经济调度问题进行优化求解;文献[71]则采用CVaR量化了VPP购售电价格的风险。

这类方法能够量化虚拟电厂运营过程中需要承担的风险,但仍需大量数据对不确定性因素进行量化,在实际应用的过程中,需要与建模技术等方式进行联合使用。

3)概率分布离散化

连续的概率分布求解,对于部分简单的概率分布特征尚且可行,而在VPP 经济优化调度的过程中,受到了多种不确定性的影响,其概率分布呈现相当复杂的特征。因此,采用蒙特卡洛采样等离散随机过程的研究方法,生成大量场景来实现对不确定性因素的转化[44,72]。

该方法较简单易行,但效率较低,在不确定性种类较多的场景应用能较好求解,但对计算能力要求较高[73],计算时间较长。

3.1.2 精细化建模

随机优化模型中最重要的部分便是概率分布函数的构建。而概率分布函数的构建可以进一步理解为虚拟电厂内部资源的精细化建模。对于内部资源的建模,当前针对发电侧的风光资源建模主要有2种:1)直接对风光出力进行建模,针对风光出力的随机性,通常选用风电随机出力或风速分布符合Weibull分布,光伏随机出力符合Beta分布[74];2)针对风光出力预测的误差进行建模。常用的预测误差模型为正态分布N(0,δ2)[75]。

发电侧的不确定性主要来源于风、光等易受到气候影响的发电资源,其模型搭建可以从历史数据出发,进行规律寻找或拟合。而与发电侧的不确定性相比,用户侧负荷、电动汽车的使用等资源的调度将与用户直接挂钩,其不确定性因素更为复杂。目前,针对用户侧负荷,已经有部分研究关注了用户的行为不确定性[76-77],如:文献[76]考虑了用户参与需求响应的可能性,建立了需求响应可靠性模型;文献[77]通过实地调查了家庭用户参与澳大利亚某公司需求响应的意愿,并分析了影响意愿的相关因素;在此基础上,文献[78]进一步考虑消费者面对风险的态度,基于前景理论(prospect theory,PT)描述了消费者面对需求响应市场中风险的态度;而文献[79]则采用累积前景理论量化虚拟电厂内消费者对电子支付返利的主观态度。作为虚拟电厂中的常见资源,针对电动汽车的建模也是至关重要。文献[49]针对不同类型的电动汽车进行了分类并建模;文献[80]探究了用户的出行规律,并搭建了电动汽车的出行模型与充电时长模型;而文献[81]基于韦伯费希纳定律,建立了电动汽车参与自动发电控制调频的不确定性响应曲线。

同时,随着神经网络(neural network,NN)与强化学习(reinforcement learning,RL)的快速发展,无模型算法在决策过程中的建模获得了一定程度的应用[82-83]。文献[84]将电动汽车充电表述为马尔可夫决策过程(Markov decision process,MDP),并利用强化学习进行求解,实现了自适应学习最优策略及电动汽车最优充电导航。进一步地,该技术被应用到传统虚拟电厂的管理中,文献[78]则将消费者参与需求响应的决策表述为MDP,同样利用深度学习的无模型算法,在无需任何系统信息的条件下为DR 计划确定最优的定价策略。

精细化建模的方法主要为随机优化、鲁棒优化提供更精确的概率模型,以便进行更精细的不确定性分析。

3.1.3 鲁棒优化

电力系统运行中的随机变量往往难以通过概率密度函数对其进行准确的描述。而作为处理不确定性的另一种手段,鲁棒优化(robust optimization,RO)逐渐应用到电力系统的相关研究中。鲁棒优化中,通常不需要给出随机参数的概率分布,只需要掌握不确定参数所属的不确定集合即可。与随机优化相比,鲁棒优化的思路相对更加保守[85],其目标为:找到最恶劣场景下的确定性模型解[86],当最差的场景下可以满足时,其余场景定可满足。

近年来,许多学者将鲁棒优化、自适应鲁棒优化等技术运用到虚拟电厂投标策略的不确定性处理中。文献[34,85,87]利用自适应鲁棒优化方法处理了风力发电的随机性;而文献[88]同时考虑了风电与负荷的不确定性,建立了两阶段鲁棒优化模型,实现了电动汽车与储能参与电网削峰填谷;文献[89]则利用鲁棒对电动汽车充放电功率的不确定性进行了处理,提高了VPP运行的利润。

该方法具有较强的实用性,计算压力相对较小[90]。但所选的策略往往过于保守,难以最大化潜在利润。

3.2 基于博弈论的虚拟电厂投标策略分析

市场投标的过程属于典型的博弈过程,故大量学者基于博弈论对虚拟电厂的投标、管理等策略进行了详细的分析。

部分学者基于合作博弈理论对虚拟电厂的收益分配进行了探究,通过Shapley 值法、核仁法、核心法等方式进行收益分配[91,35]。也有学者认为,虚拟电厂与内部所管理资源之间具有主从与领导关系,故基于Stackelberg 博弈模型对其内部资源管理进行分析[74,79]。文献[92]通过主从博弈管理虚拟电厂所聚合的发电企业;文献[93]则进一步考虑电动汽车、储能系统等资源,建立了虚拟电厂内部通过主从博弈管理参与电力市场的模型;而文献[94]基于Stackelberg 博弈制定了虚拟电厂对内部用户的返利机制,并开发了一种基于交叉学习模型的强化学习方法以求解该双层模型。还有部分学者通过其他类型的博弈来分析虚拟电厂的投标与管理过程;如:文献[95]基于贝叶斯模型制定了虚拟电厂内部资源的能源交易模型;而文献[56]基于纳什均衡提出了讨价还价的内部资源收益分配方式。

多虚拟电厂投标的过程同样可以采用博弈论来进行分析。文献[65]利用无限次重复博弈模型,分析了多虚拟电厂互动模型;文献[96]基于非合作博弈分析了多虚拟电厂之间的竞标过程;而文献[97]基于动态博弈分析了虚拟电厂3种不同风格的投标目标的合理性。

4 结论

虚拟电厂参与各类型电力市场时,目前最需要解决的问题仍然是充分处理所聚合资源的不确定性。未来,随着分布式可控设备的迅速增多,虚拟电厂的运行、管理、优化调度与市场投标将更加复杂。总的来说,未来随着电力市场化进程的不断深入,虚拟电厂的技术也需要随之跟进。未来的研究可以从以下3方向深入开展:

1)引入虚拟电厂报量、报价机制,并充分发挥博弈论在投标研究中的作用。当前的研究中,大部分研究者都将虚拟电厂作为价格接收者参与电力市场,而随着大量分布式电源并网、可调度负荷侧资源的接入,虚拟电厂的规模将进一步扩大,显然,作为价格接收者参与市场并不满足市场发展需要。因此,应当充分考虑虚拟电厂的报量、报价策略对电力市场的影响,探究虚拟电厂的主动报量、报价策略。

2)充分考虑电动汽车等资源的接入。未来,电动汽车将逐步替代燃油车,成为市场的主流。而大量的电动汽车在闲暇时段接入电网,将成为电网优质的可调节储能资源,因此,可以从用户行为、电动汽车电池健康管理、虚拟电厂对电动汽车资源的主动调控等多方面入手,以充分发挥储能资源的调节作用。

3)开发更高效的优化调度求解算法。在投标策略数学建模的过程中,通常采用双层模型进行优化,且需要对大量的优化变量进行求解。当前,主要利用KKT定理转化、遗传算法、粒子群算法等求解双层模型。未来,当虚拟电厂参与实时市场时,将需要更迅速、效率更高的求解优化算法。

猜你喜欢
调频不确定性投标
法律的两种不确定性
考虑频率二次跌落抑制的风火联合一次调频控制
造价信息管理在海外投标中的应用探讨
国务院明确取消投标报名
浅析投标预算风险的防范
英镑或继续面临不确定性风险
军工企业招标投标管理实践及探讨
具有不可测动态不确定性非线性系统的控制
调频发射机技术改造
调频激励器干扰的排除方法