MATLAB遗传算法两个非独立变量怎么设置限制条件

在matlab中进行遗传算法优化,变量X1(比如说是压力) 的范围是1-15,这个上下边界可以在优化模块直接添加[1,15],但是还有一个变量T2(比如说是温度),要小于850K,但是这个变量T2是可以由X1求出来的(比如T2=X15+7),本质上就是一个变量,
问题是:T2小于850K这个限制条件我该怎么额外添加呢?
我知道可以把T2=X15+7的关系式带入T2<850K中先手动计算出变量X1的范围,用X1的范围来表示T2<850K这个约束条件,但是如果变量增多时就非常麻烦了,有没有简单的办法直接添加T2<850K这个约束条件,谢谢

这是目标函数的一部分:

function RE=fun3(x)    %问题:不知道怎么设置温度限制,850K
%固定参数
K =1.66
T1=298;      
P1=105;      
PEc=0.9;       
PRc=x(1);      %(优化参数1)
TRc=PRc^((K-1)/(K*PEc));    
T2=TRc*T1;    %温度与变量X1有关,(T2<=850)
 

这是优化模块:

n=1; %优化变量个数
up=[15]; %优化变量X1上限
low=[1]; %优化变量X2下线
[solution,objectiveValue] = ga(@fun3,n,[],[],[],[],low,up);

该回答引用ChatGPT
在Matlab中进行遗传算法优化时,可以通过使用非线性约束函数来添加不等式约束。

具体操作:

定义一个函数来表示限制条件,该函数的返回值为不等式的左侧的值减去右侧的值:

function [c, ceq] = constraint_func(x)
    c = [];
    ceq = x(2) - (x(1) + 7) - 850;
end


在调用遗传算法时,添加约束函数:

options = gaoptimset('NonlinIneqConFun', @constraint_func);

这样,就可以直接添加限制条件T2<850K,无需手动计算出变量X1的范围