满足频域要求的设计优化(GUI)
方法调优模型参数以满足频域要求响应优化器应用程序。
此示例需要Simulink®Control 万博1manbetxDesign™。
悬架模型
打开Simulin万博1manbetxk模型。
open_system (“sdoSimpleSuspension”)
质量-弹簧-阻尼器模型代表简单的悬挂系统,对于本例,您可以调整系统以满足典型的悬挂要求。该模型使用Simulink块实现了表示质量-弹簧-阻尼器的二阶系统,包括:万博1manbetx
一个
质量
以总悬浮质量为参数的增益块,m0 + mLoad
.总质量是标称质量|m0|和可变负载质量的和,mLoad
.
一个
阻尼器
增益块参数化为阻尼系数,b
.
一个
春天
由弹簧常数参数化的增益块,k
.
两个积分器块来计算质量速度和位置。
一个
限带扰动力
对物体施加扰动力的块。扰动力假设为限带白噪声。
模拟模型以查看系统对施加扰动力的响应。
设计问题
初始系统带宽过高。这可以从尖尖的位置信号中看出。调整弹簧和阻尼器的值,以满足以下要求:
-3dB系统带宽不能超过10rad /s。
系统阻尼比必须小于1/√(2)。这确保了没有频率在通带被系统放大。
尽量减少系统的预期故障率。预期故障率由依赖于质量、弹簧和阻尼器值的威布尔分布描述。
当负载质量范围从0到20时,这些要求必须全部满足。
打开响应优化器
在应用程序选项卡上,单击响应优化器下控制系统.
指定设计变量
在设计变量集列表中,选择新.添加b
而且k
为设计变量集建模变量。
指定
最低
而且最大
的值。b
变量分别为100和10000。
指定
最低
而且最大
的值。k
变量分别为10000和100000。
点击好吧.一个新变量,DesignVars
,出现在响应优化器浏览器。
在不确定变量集列表中,选择新.添加mLoad
变量到不确定变量集。
指定
不确定的值
的值。mLoad
变量为[10 15 20]
点击好吧.一个新变量,UncVars
,出现在响应优化器浏览器。
指定线性分析输入/输出点
指定定义用于计算带宽和阻尼比的线性系统的输入/输出点。
指定输入/输出点:
在新列表中,选择线性化I / o.
在Simuli万博1manbetxnk模型中,单击控件输出处的信号
限带扰动力
块。的创建线性化I/O集对话框更新,所选择的信号出现在其中。
在创建线性化I/O对话框中,选择信号并单击添加.
在配置列表为所选信号,选择输入扰动将其指定为输入信号。
类似地,添加pos信号从Simulink模型。万博1manbetx指定这个信号作为输出。在配置列表中,选择输出测量.
点击好吧.一个新变量,
IOs
,出现在响应优化器浏览器。
增加带宽和阻尼比要求
调整弹簧和阻尼器的值以满足带宽和阻尼比的要求。
设置带宽需求。
打开一个对话框以指定波德星等的边界。在新列表中,选择波德级.
指定需求名称为
带宽
.
指定边缘开始频率和幅度分别为10 rad/s和-3db。
指定边缘端频率和幅度分别为100 rad/s和-3db。
通过单击指定需求应用的输入/输出集选择绑定的系统.选择
IOs
复选框。
点击好吧.一个新的要求,
带宽
,出现在响应优化器浏览器和带宽需求的图形化视图将自动创建。
指定阻尼比要求:
打开一个对话框以指定阻尼比的边界。在新列表中,选择阻尼比.
指定阻尼比约束值为0.7071。
通过单击指定需求应用的输入/输出集选择绑定的系统.选择
IOs
复选框。
点击好吧.一个新的要求,
DampingRatio
,出现在响应优化器浏览器和阻尼比要求的图形化视图将自动创建。
增加可靠性要求
调整弹簧和阻尼器的值,将100e3英里寿命内的预期故障率降至最低。故障率是利用系统阻尼比的威布尔分布来计算的。随着阻尼比的增加,故障率预计也会增加。
将可靠性需求指定为自定义需求:
打开一个对话框以指定自定义需求。在新列表中,选择定制需求.
指定自定义需求名称为
MinFailureRate
.
在指定函数区域,选择最小化函数输出从类型列表。
将函数指定为@sdoSuspension_FailureRate。
点击好吧.一个新的要求,
MinFailureRate
,出现在响应优化器浏览器和自定义需求的图形化视图将自动创建。
@sdoSuspension_FailureRate函数返回生命周期为100e3英里的预期故障率。
类型sdoSuspension_FailureRate
函数pFailure = sdoSuspension_FailureRate(data) %SDOSUSPENDION_FAILURERATE % % sdoSuspension_FailureRate函数用于定义一个可在图形化SDTOOL环境中使用的自定义%需求。|数据|输入参数是一个包含优化器选择的%设计变量值的字段的结构。|pFailure|返回参数是由% SDOTOOL优化求解器最小化的故障率。故障率由威布尔%分布给出,该分布是质量、弹簧和阻尼器值的函数。这种设计最大限度地降低了100e3英里寿命内的故障率。获取弹簧和阻尼器的设计值allVarNames = {data.DesignVars.Name};idx = strcmp(allVarNames,'k');k = data.DesignVars(idx).Value;idx = strcmp(allVarNames,'b');b = data.DesignVars(idx).Value; %Get the nominal mass from the model workspace wksp = get_param('sdoSimpleSuspension','ModelWorkspace'); m = evalin(wksp,'m0'); %The expected failure rate is defined by the Weibull cumulative %distribution function, 1-exp(-(x/l)^k), where k=3, l is a function of the %mass, spring and damper values, and x the lifetime. d = b/2/sqrt(m*k); pFailure = 1-exp(-(100e3*d/250e3)^3); end
优化设计
在运行优化之前,请确保已经完成了前面的步骤。或者,您可以加载sdoSimpleSuspension_sdosession
从模型工作区进入响应优化器.
要保存初始设计变量值,然后将它们与优化值进行比较,请配置优化:
点击选项.
选择
保存优化的变量值为新的设计变量集
选择。
研究优化过程中设计变量值的变化情况:
在绘制数据列表中,选择DesignVars.
在添加图列表,并选择迭代的阴谋.
以适当比例的方式查看设计变量。右键单击
DesignVars
绘制和选择显示缩放值.
要在初始设计点评估需求,请单击评估需求.需求图被更新,aReqValues
变量添加到响应优化器浏览器。
单击,优化设计优化.图在优化期间更新。在优化结束时,将优化设计值写入DesignVars1
变量。优化设计的需求值被写入ReqValues1
变量。
分析设计
比较优化前后的设计变量:
在绘制数据列表中,选择DesignVars.
在添加图列表中,选择蜘蛛的阴谋.
若要将优化的设计变量添加到同一绘图中,请选择
DesignVars1
在响应优化器浏览器并将其拖到蜘蛛图上。另外,在绘制数据列表中,选择DesignVars1
.然后,在添加图列表中,选择蜘蛛图1从添加到现有地块部分。
该图显示,优化器降低了两者k
而且b
值为最优设计。
比较优化前后的需求:
在绘制数据列表中,选择ReqValues.
在添加图列表中,选择蜘蛛的阴谋.
要将优化的需求值添加到相同的图中,请选择
ReqValues1
在响应优化器浏览器并将其拖到蜘蛛图上。另外,在绘制数据列表中,选择ReqValues1
.然后,在添加图列表中,选择蜘蛛图2从添加到现有地块部分。
图中显示,优化设计具有更低的故障率(MinFailureRate轴),更好地满足带宽要求。在带宽轴上绘制的值是带宽绑定与带宽值之间的差值。通过保持这个值为负来满足约束;负值越大,表示对边界的满意程度越高。
提高的可靠性和带宽是通过推动阻尼比更接近阻尼比界限。该图有两个轴表示阻尼比要求,一个轴表示每个系统极点,绘制的值是阻尼比界限与阻尼比值之间的差值。通过保持这个值为负,优化满足了约束。
最后,模拟质量位置比初始位置响应(根据需要指示较低的带宽)更平滑,代价是较大的位置偏转。
相关的例子
学习如何优化悬架设计使用sdo.optimize
命令,看到满足频域要求的设计优化(规范).
%关闭模型bdclose (“sdoSimpleSuspension”)