批处理工艺优化MATLAB
本报告考虑了基于实验数据和反应的灰盒模型的设计空间的替代结构。该模型随后用于通过改变工艺变量来优化生产工艺。您可以用蒙特卡罗模拟检查参数的不确定性和可变性对工艺性能的影响。
亮点:
- 减少工艺表征阶段所需的实验
- 通过建立模型来提高对过程的基本科学理解
- 通过操作时变参数来优化或扩大过程
- 检查不确定性量化和分析的影响,这是设计质量(QbD)的强制性要求
你好,每个人。感谢大家今天的到来。我叫Paul Huxel,是MathWorks的高级应用工程师。自从四年前加入团队以来,我访问了许多医疗设备和制药网站,并与他们合作,帮助他们使用MATLAB来增强他们的数据分析。我希望这个关于批处理优化的介绍性网络研讨会也能证明你可以很容易地开始使用MATLAB。
但在我们讨论如何之前,我想先向你们展示今天的网络研讨会将朝着什么方向发展。这些图像来自PDF,我们将直接从MATLAB中的实时脚本创建。Live脚本是交互式文档,允许您结合格式化的文本、方程和图像——以及MATLAB代码和该代码的输出——轻松彻底地记录您的算法和结果。
稍后我将更详细地描述今天的问题。但简而言之,我们将使用几次恒温批处理运行的数据来建立一个模型,描述在这些运行期间发生的过程。然后,我们将使用这个模型来确定最优的温度方差计划,以最大限度地提高这一过程的产量。最后,我们将进行一个快速的蒙特卡罗分析,以评估温度的不确定性如何影响产量。
为此,我们将使用典型的数据分析工作流。如果我们要进行数据分析,我们就需要访问数据。在今天的例子中,我们将从电子表格中加载数据,但这也可能来自图像文件、其他软件和web应用程序,或者直接来自硬件和科学仪器。
一旦我们有了MATLAB中的数据,我们将看到开始探索和发现各种分析和建模技术是多么容易。特别是,我们将看到各种领域特定的应用程序如何帮助我们在编写任何代码之前快速入门。但是为了从我们的工作中获得最大的收益,我们会希望与同事或客户分享。正如您刚才看到的,这可以简单到将代码发布到PDF格式。
但是,其他选项包括创建独立的或基于web的应用程序,以便最终用户可以访问我们的工作,而不需要安装MATLAB或许可证,以及自动生成或云部署以实现可伸缩性。在演示之后,我将更多地讨论这些选项。在这个过程中,我们将看到如何使用MATLAB来帮助自动化这个过程。
但在我们进入MATLAB之前,我想给你一个今天主题的快速概述。我每天早上最喜欢做的一件事就是煮咖啡。像所有批处理过程一样,这涉及到一次处理有限的产品库存,在这种情况下,只有咖啡豆和水。
我们可以把批处理工艺的优化看作是在工艺限制条件下,寻找使特定参数最大化或最小化的配方或条件。所以在这种情况下,我们试图通过调整工艺条件来最大化风味,比如每种成分的数量,我们研磨豆子的精细程度,以及酿造温度和持续时间。取决于你对咖啡的挑剔程度,你可能从来不会担心对各种工艺条件的排列进行全参数扫描。
你可以想象,即使对于这个简单的问题,这也是一项艰巨的任务。如你所知,商业应用要复杂得多。商业批量产品的例子包括发酵工艺,如啤酒和葡萄酒,纺织品染料s manbetx 845和颜料,油漆和墨水,
常见的食品添加剂,香水和精油的香料,特殊化学品,当然还有药品。
在这些产品中,开发和控制精确的工s manbetx 845艺条件对于维持品牌声誉和法规合规性至关重要。许多工业过程模仿自然发生的过程。例如,导致食物腐败的青霉菌也被用于生产抗生素青霉素。
然而,制造过程需要高效和可重复。在制药行业尤其如此,任何与已批准的批配方的重大偏差都可能导致数百万美元的损失。因此,我们不仅对寻找最佳配方来优化产品产量或效力感兴趣,而且还对确定如何最好地控制这个过程来坚持这个配方感兴趣。
今天的演讲重点是前者。但正如我提到的,我们将使用蒙特卡罗分析,看看过程中的不确定性如何影响收益率。生物反应器用于帮助控制工业过程条件,以促进所需的生化反应。这些不锈钢罐提供了一种可控的方式,分别从反应器中添加和移除物质,如营养物质和废气。
传感器用于监测和控制条件,如压力、温度、氧气和ph值。曝气器和搅拌器有助于以可控的方式混合溶液,以免损坏正在生长的细胞。万博 尤文图斯但是为了设计和控制过程,我们需要知道这些过程的变化率,它可能在几秒钟、几小时或几天内发生。
这些变化可能是物理的,比如扩散过程——比如水进入咖啡粉所需的时间——也可能是化学的,比如发酵,其中有一种生物制剂正在吸收混合物中的某种物质。一种物质浓度的时间变化率通常是该物质当前浓度的函数,也可能是其他物质浓度或其他过程变量的函数,如温度、压力、pH值等。
举个简单的例子,一种物质的变化率,随时间的变化,等于负的k乘以浓度本身。如果k是常数,这就是一个指数衰减可以解析解。或者就像我们今天要讲的例子一样,反应的速率常数通常是温度的函数。
这些可能是极其复杂的非线性函数。所以这些模型通常是根据数据经验得出的。模型很重要,因为如果我们没有这个过程的模型,找到最佳配方的唯一方法就是反复试验。由于有如此多的变量,即使只有几个物种,测试所有不同的排列也需要大量的时间。
在今天的介绍演示中,我们将考虑的反应动力学有意地以一种简单的方式表述,这样我们就可以专注于整体问题的设置和工作流程,而不会陷入详细的微分方程中。考虑到这一点,我们只考虑两种物质的浓度——一种作为食物来源的营养物质,以及通过消耗这种营养物质而生长的生物体的生物量。
正如你在这里看到的,这种营养物质的模型是随着时间的推移而分解的,因为环境变量,比如温度。在现实中,它也将是一个可用于消耗它的生物质浓度的函数。但对于这个简单的模型,我们假设相比之下,这种影响可以忽略不计。
然而,我们将更现实地模拟生物体生物量浓度的变化,使其同时具有生长和死亡成分。生物体将开始进食和繁殖基于多少营养可用。由于细胞的寿命是有限的,它们会按照当前生物量浓度的比例死亡,这是生物系统的一个相当常见的模型。
因此,在某一时刻,食物将开始耗尽,死亡过程将开始占主导地位,最终,生物量浓度也将衰减为零。在这张图中,我展示了恒温运行下的养分和生物量的时间历史。我们的目标是确定温度变化工艺计划,优化关键性能指标,或KPI,如产品产量。
为此,我们将选择一个简单的KPI,表示生物量曲线中曾经达到的最大浓度。因此,一旦控制器注意到生物量不再增加,就可以停止该过程以获得最大产量。定义好问题后,让我们进入MATLAB开始。
对于那些刚接触MATLAB的人,请允许我快速介绍一下当它打开时您将看到的四个主要区域。当前文件夹是MATLAB查找脚本和其他文件的第一个地方。它显示了路径和地址栏上的所有文件。
通过Git或SVN集成,您还可以快速查看每个文件的源代码控制状态。通过“命令”窗口,可以立即执行命令和运行脚本。由这些命令或脚本创建的变量将显示在工作区中。工作区显示了当前在MATLAB内存中的变量,并提供了关于它们的维度和数据类型的信息。然后,这些变量可以在其他命令或脚本中使用。
最后,顶部的工具条在一系列选项卡中组织MATLAB功能。当我们使用它们时,我们会更多地讨论它们。今天,我们将浏览用于创建前面看到的PDF的实时脚本。如您所见,我已经用丰富的文本格式对外套进行了注释,并添加了一个易于导航的目录。
灰色阴影区域包含MATLAB代码。剩下的就是记录我们的方法和结果。回想一下工作流,我们需要做的第一件事是访问数据。正如您在当前文件夹中所看到的,我们有一个数据文件夹,其中包含几个含有养分和生物量时间历史的电子表格,这些电子表格来自一个实验活动,其中包括六个不同的恒温批处理运行。
如果我们正在处理单个文件,我们可以从使用Home选项卡上的交互式Import Data工具开始。相反,我们将使用一个数据存储来自动收集关于所有可用电子表格的信息。稍后我们将使用这个数据存储在一个命令中读入所有数据文件。
但首先,让我们看看单个运行的动态。为了简化操作,我插入了一个交互式控件,允许用户从下拉菜单中快速选择感兴趣的文件。当我们这样做时,请注意工作区中出现了一个新变量,它有31行和4列。
然后,我们可以使用点表示法从这个表中提取单独的列。从工作空间中选择这些新变量,我们可以使用绘图步骤快速可视化营养动态。MATLAB然后显示所有相关的绘图选项。我们将从一个简单的线形图开始。
注意,当我们这样做时,MATLAB自动在command窗口中显示相应的命令。我们还可以通过打开Figure Palette视图将生物量动态添加为子图
把这些变量拖到新的坐标轴上。然后我们可以使用属性编辑器来定制我们的图。
例如,我们将在每个x轴和y轴上添加标签,添加网格线,并为养分和生物量选择标记和线条颜色。一旦我们完成了自定义我们的绘图,我们就可以生成相应的MATLAB代码。因此,我们不需要每次获得新数据时都重复这个交互过程。
我已经将这段代码保存为一个名为Plot Dynamics的函数,然后可以从我们的实时脚本中调用它。正如预期的那样,营养动态看起来像指数衰减。我们可以使用MATLAB的内置应用程序之一,快速地为这些数据拟合一个模型。
“应用程序”选项卡提供了许多交互式应用程序来帮助您入门,例如机器和深度学习、图像和信号处理、测试和测量、计算生物学,或者在我们的例子中,曲线拟合。一旦我们从工作空间中的适当变量中选择了x和y数据,我们就可以快速地尝试拟合各种模型,例如多项式、傅立叶级数、自定义方程,或者在这种情况下,是指数。
然后,应用程序将自动计算相应的模型系数与95%的置信度界限,并显示各种拟合优度指标。与MATLAB的许多交互工具一样,我们将再次生成相应的MATLAB代码来自动化此任务,以供将来使用。我已经将这段代码保存为一个名为Create Fit的函数,将在我们的实时脚本中使用它来创建一个模型,可以评估该模型以在每个时间步骤生成拟合的营养曲线。
或者,我们可以使用fitlm函数对营养数据的对数进行线性回归,而不是对数据进行指数拟合。如果你曾经不确定如何使用一个函数,MATLAB文档包含了完整的描述,详细的参考,和许多例子,以帮助你开始。一旦我们创建了一个回归模型,我们就可以在每个时间步骤进行预测,并将结果从对数空间转换回来。
同样地,一旦我们转换计算机回归系数,你会看到我们得到的结果类似于我们用指数拟合得到的结果。对于生物量,我添加了一个Live Task,以允许我们以交互方式平滑数据。可以在Insert选项卡上找到Live Task,以帮助您开始使用常用功能,而不需要离开脚本去参考文档。
一旦对任务的选择感到满意,就可以显示MATLAB代码,以学习将来如何以编程方式执行这些任务。然后,我们可以使用第4批运行数据将所有这些结果添加到之前创建的图中。到目前为止,我们已经创建了函数来可视化和拟合恒温运行的数据。
但我们真正的目标是利用这些恒温数据来创建一个解释温度变化的模型。首先,我们将使用readall命令加载电子表格数据存储中包含的所有数据,并再次提取时间、养分、生物量和温度列。然后,我们可以通过绘制每次恒温运行的最大生物量来探索温度的影响。
看来最佳的恒温温度是22摄氏度。我们可以通过检查这些数据点的分段三次插值的最大值来确认这一点。为此,我们将使用interp1函数,并在最低温度和最高温度之间每四分之一度计算一次结果。
我们现在有一些信心,22度是最佳的恒温计划。但这并不意味着它会产生比改变温度时间表更大的生物量产量。为了研究这个问题,我们假定并检查前面讨论过的简单流程模型,该模型以矩阵形式写在这里。
所以k1动力学参数类似于我们之前计算的B系数。然而,这一次,我们认为它与温度有关。回想一下,k2参数模拟生物量的增长,而k3参数模拟其死亡周期。
为了测试我们的模型,我们将为这些动力学参数任意选择三个值——例如1,1,1——然后对系统进行积分,使用四阶和五阶运行切出常微分方程求解器。再次使用我们的绘图动态函数,我们看到生成的动态与我们之前看到的非常相似。特别是,营养物质呈现指数衰减,而生物量增长,直到营养物质显著耗尽,然后开始消亡。
现在我们有了一个模型,我们可以用这些数据来估计动力学参数。由于这是模拟数据,我们可以比较我们的动力学参数估计与1,1,1的真实值。有了这个目标,我创建了一个函数来估计动力学参数。
由于我将其设置为带有嵌入式方程的活动函数,因此如果用户在此函数上寻求帮助,他们将看到类似于MATLAB内置函数的格式丰富的文档。该函数通过重新建立过程模型和数值估计养分和生物量的导数来估计参数。这样,唯一的未知量是向量k,它可以通过使用fitlm函数用线性回归模型拟合方程来找到,类似于我们之前所做的。
然后我们可以回到我们的现场脚本,并将估计的动力学参数与已知值进行比较。现在我们对我们的方法有信心了,我们将循环进行所有六次恒温试验,以估计每个温度下的所有三个动力学参数。然后我们将使用这些估计在我们的进度动力学插值动力学参数值,作为温度的函数。
有了这些,我们现在就有了比较各种温度表所需的一切。为了更好地理解我们的过程,让我们首先比较我们之前看到的最优恒温计划和任意时变温度计划,比如这里看到的振荡温度计划。为此,我们将为每个进度动态集成我们的流程模型。
正如预期的那样,最佳恒温计划导致最大生物量略低于0.6,而任意时变温度计划导致最大生物量接近0.7。当然,任意选择一个温度表并不是优化我们工艺的有效方法。但事实证明,我们可以通过改变温度来提高KPI。
经过仔细研究,我们发现较低的初始温度似乎能使营养物质保存得更久,而不会显著影响初始生物量的生长。相反,我们后来看到,当温度再次下降时,生物量增长迅速下降。因此,在生物量很少的情况下,最初保持较低的温度以保存营养物质,然后提高温度以促进生物量的增长,似乎是有好处的。
有了这些见解,我们现在准备好建立一个适当的约束优化问题,以找到产生最大生物量的温度计划。我们将首先使用optimproblem命令创建一个优化问题。然后,我们可以使用优化变量的表达式指定约束条件和目标。
在本例中,我们将为温度创建一个优化变量,其下限和上界基于我们试运行中使用的最低和最高温度。然后,我们将使用这个变量来设置温度在时间表设置点之间可以变化的幅度和方向的约束。特别地,我们设定温度变化的最小值大于或等于0,这样它就会一直增加。
然后,我们会设定温度的最大变化与生物反应器的热力学规范保持一致。我已经创建了一个名为scheduleecost的函数来指定目标。该函数集成调度动态来计算结果KPI,即所获得的最大生物量。由于优化问题将试图最小化成本,所以我们将成本设置为KPI的负值,这样它就会最大化。
接下来,我们将使用前面的最优恒温计划初始化优化搜索,然后在运行求解器之前查看问题公式。执行Solve命令将在大约一分钟内生成解决方案。但由于时间关系,我将加载之前得到的结果。从最优解中提取温度,我们看到设定点之间的温度变化满足我们指定的幅度和方向约束。
最后,我们将集成我们的过程模型动态使用这个最佳时变温度计划。将得到的KPI与最优恒温计划进行比较,我们看到新的时变温度计划导致生物质产量增加44%。然而,我们知道在现实世界中,我们可能无法精确地控制温度以完美匹配最佳温度计划。
我们可以建立蒙特卡罗分析,以检查温度控制的不确定性如何影响我们的生物量产量。例如,假设每个设定值的温度只能控制在2度以内,即1西格玛。我们将通过在每个设定点上扰动我们的温度表来模拟这一点,通过添加一个标准偏差为2度的正常随机误差。
为了统计量化此控制错误的影响,我们将重复该过程250次运行,并计算结果KPI分布的平均值和标准偏差。因为我们使用的是一个简单的流程模型,所以这只需要几秒钟的时间。然而,如果由于增加了动态复杂性或蒙特卡罗运行的次数而成为计算负担,我们可以使用MATLAB的并行计算功能来在集群或云中并行执行这些运行,从而加快分析速度。
如你所料,如果我们不能精确地遵循最佳温度计划,我们将看到最大生物量的减少。将正态分布拟合到得到的直方图上,我们看到平均值从0.8降低到0.7左右,标准差约为0.03。最后,工作流的最后一步是分享我们的工作。在这种情况下,我们将通过将实时脚本保存为PDF来快速记录我们的算法开发和分析。
我希望这个示例能让您了解如何快速、轻松地开始使用MATLAB来增强数据分析。正如您在这里看到的,我们只讨论了这个工作流的一个非常狭窄的路径。所以我想花点时间来强调一下我们忽略的一些功能。
MATLAB为您的整个工作流程提供了一个单一的集成平台。今天,我们导入了Excel电子表格。但我们也提供交互式工具和硬件支持包,以方便从其他应用程序、数据库和科学仪器访问数据。万博1manbetx对于分析和开发,其他功能包括机器和深度学习,信号和图像处理,生物序列分析,以及时域和频域模拟,仅举几例。
正如我们之前简要看到的,在这些领域中,MATLAB提供了交互式工具和深入的解决方案,以帮助您快速开始分析和开发。万博 尤文图斯但你可能也注意到,还有一些应用程序可以帮助你分享和部署你的工作。有两种主要方法可以做到这一点——应用程序部署和自动代码生成。
在这两种情况下,您将再次开始在MATLAB中开发模型、算法或应用程序。选择哪种共享路径取决于系统的需求。应用程序部署允许您创建可与企业和云系统集成的图形用户界面和软件库。
有了这个选项,MATLAB的功能仍然在幕后有效地运行,但最终用户不需要MATLAB许可证。另一方面,自动代码生成允许您在嵌入式硬件(如医疗设备或生产线)上运行分析。在这种情况下,您的MATLAB算法将转换为指定硬件语言(如实时目标、FPGA或ASIC、PLC或GPU)的可读、可移植代码。
考虑到部署,我们经常被问到的一个问题是,MATLAB是否得到了FDA或其他监管机构的验证。我们已经创建了一个问答网页和工具验证工具包来帮助指导您完成这个过程。在这里,您还可以找到FDA MathWorks研究与合作协议的摘要,以及如果您有其他问题或需要咨询帮助的联系信息。
今天的网络研讨会让您快速了解了MATLAB所提供的功能。我们知道用MATLAB是多么简单。完整的文档和适用的示例意味着您不必从空白页开始编码。您还可以通过技术支持和应用工程师访问产品和行业专家,以及通过我们网页上的MATLAB答案和文件交换站点访问广阔的用户社区。万博1manbetx
我们看到了如何将应用程序用于交互式算法开发和自动MATLAB代码生成,从而提高了工作效率并允许快速原型化。此外,一旦你准备好部署你的算法,你就有很多选择,比如创建独立的和web应用程序,与企业和云系统集成的软件库,或者为嵌入式设备自动生成代码以节省时间和减少编码错误。
您可以从今天开始与我们的免费自定节奏的入口教程。这个在线交互式教程使用带有自动评估和反馈的动手练习,在短短几个小时内教你MATLAB的基本知识。从那里,你可以用其他几个免费的自定节奏的onramp课程来培养你的技能,其中包括机器和深度学习、图像和信号处理以及用Simulink进行控制设计等热门主题。万博1manbetx
如果你想比Onramps潜水更深,我们还提供各种自定节奏的培训和教练指导的课程。这些课程通常是面对面授课和在线授课相结合的。但在过去的一年里,我们扩大了教师指导的在线培训,得到了很好的反响。
这些课程也可以定制,以满足您的特定需求。在时间紧迫的情况下,我们还在世界各地提供咨询服务。我们的咨询是非常透明的,目标是您的团队拥有并运营最终的工作。
我们根据您的需求定制服务,优化您的投资,确保您的成功。我们的咨询帮助许多客户通过应用我们经过验证的最佳实践来启动他们的项目,
深厚的产品知识和广泛的技术经验。您可以在我们的网站mathworks.com了解更多关于我s manbetx 845们的产品和解决方案。万博 尤文图斯谢谢你们今天的时间和注意力。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。