{"id":13974,"date":"2023-03-20T13:07:34","date_gmt":"2023-03-20T17:07:34","guid":{"rendered":"https:\/\/blogs.mathworks.com\/simulink\/?p=13974"},"modified":"2023-03-20T13:15:33","modified_gmt":"2023-03-20T17:15:33","slug":"whats-new-in-simulink-r2023b","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/simulink\/2023\/03\/20\/whats-new-in-simulink-r2023b\/","title":{"rendered":"What&#8217;s New in Simulink R2023a?"},"content":{"rendered":"<div class = rtcContent><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Each new release, I am always excited to share my favorite new Simulink features. As Simulink and our modeling and simulation technologies continue to mature, I am noticing that my release highlights are becoming more geared toward workflows than single features \u2013 and this is exciting!<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Here is my top three for what's new in Simulink R2023a.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Simulink Debugger<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>In R2023a, we finally retired the <\/span><a href = \"https:\/\/blogs.mathworks.com\/simulink\/2012\/08\/24\/running-a-simulation-step-by-step\"><span>old Simulink Debugger<\/span><\/a><span>. To replace it, we are introducing the capability to step block by block in the Simulink canvas. I plan to follow up with a blog post dedicated to this, but here is an animation to give you an idea of what this new feature looks like. What you will see:<\/span><\/div><ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 14px; '><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span>I added a breakpoint for the simulation to break when the output of the Sum block is greater than or equal to zero.<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span>I enabled the new option \"Pause within time step\" to allow block-by-block stepping.<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span>I enabled <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/displaying-block-outputs.html\"><span>Port Value Display<\/span><\/a><span> for most signals in the model. (For that, hit Ctrl+A to Select All and click on \"Show port value display label on selected signals\" in the toolstrip)<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span>The <\/span><span style=' font-weight: bold;'>Step In<\/span><span> button allows to step inside MATLAB Function blocks and Stateflow charts seamlessly.<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span>It is also possible to <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/debugging-model-iterator-subsystem.html?s_tid=doc_srchtitle\"><span>step block-by-block in Iterator Subsystems<\/span><\/a><span>.<\/span><\/li><\/ul><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_1.gif\" width = \"1200\" height = \"474\" alt = \"inCanvasDebuggerGif.gif\" style = \"vertical-align: baseline; width: 1200px; height: 474px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Note that the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/simulink\/debugging.html\"><span>command-line interface<\/span><\/a><span> of the Simulink Debugger is still available for more advanced use cases.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Variant Assembly Subsystem<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This feature was introduced in MATLAB R2022b, but I decided to wait before highlighting it because we added enhancements making it more useful in R2023a.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The key advantage of the Variant Assembly Subsystem is that it enables you to add or remove variant choices without modifying the model. All you have to do is specify a list of Subsystem or Model files to be included as variant choices. This can be done in two ways.<\/span><\/div><h4  style = 'margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: 700; text-align: left; '><span>Option 1: Label mode<\/span><\/h4><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>When the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/variant-control-modes-in-variant-blocks.html\"><span>variant control mode<\/span><\/a><span> is set to Label, the list of variant choices is specified using the <\/span><span style=' font-weight: bold;'>Variant choices specifier<\/span><span> field. In this field, you can type anything that will be evaluated as a cell array of strings, where each string is the name of a model on the MATLAB path:<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_2.png\" width = \"734\" height = \"397\" alt = \"\" style = \"vertical-align: baseline; width: 734px; height: 397px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>With the model configured as in the above screenshot, if I was to receive a new Subsystem or Model, I could simply place it in the folder <\/span><span style=' font-family: monospace;'>Controller_subsystem_choices<\/span><span> and it would automatically become a new available variant choice.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>For a more advanced example, I recommend looking at <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/control-variant-choices-in-masked-variant-assembly-subsystem-block-using-mask-parameter-object.html\"><span>Control Variant Choices in Masked Variant Assembly Subsystem Block Using Mask Parameter Object<\/span><\/a><span>. You will see that the way we mask the Variant Assembly Subsystem and use a method of a MATLAB object passed as mask parameter has a lot in common with how I control variants in my <\/span><a href = \"https:\/\/blogs.mathworks.com\/simulink\/2022\/04\/22\/unifying-matlab-and-simulink-a-user-story-part-1\"><span style=' font-style: italic;'>slPart<\/span><span> blog post series<\/span><\/a><span>.<\/span><\/div><h4  style = 'margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: 700; text-align: left; '><span>Option 2: Expression Mode<\/span><\/h4><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>When the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/variant-control-modes-in-variant-blocks.html\"><span>variant control mode<\/span><\/a><span> is set to Expression, the list of variant choices is specified through an <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/about-simulink-enumerations.html\"><span>enumeration<\/span><\/a><span>, where each member is the name of a model on the MATLAB path. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_3.png\" width = \"990\" height = \"290\" alt = \"\" style = \"vertical-align: baseline; width: 990px; height: 290px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>where the enumeration is defined as:<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_4.png\" width = \"461\" height = \"150\" alt = \"\" style = \"vertical-align: baseline; width: 461px; height: 150px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>As it is the case for the Variant Subsystem, expression mode enables the Variant Assembly Subsystem to support all the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/ug\/activate-variant-during-different-stages-of-simulation-and-code-generation-workflow.html\"><span>activation times<\/span><\/a><span>.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Display of Parameter Values in Simscape blocks<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The capability to <\/span><a href = \"https:\/\/blogs.mathworks.com\/simulink\/2022\/10\/10\/parameter-values-in-blocks-dialogs\"><span>display parameter values in block dialogs<\/span><\/a><span> added in R2022b to Simulink blocks has now been extended to Simscape blocks. Here is an example with the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/simscape\/ref\/translationalmechanicalconverteril.html\"><span>Translational Mechanical Converter (IL)<\/span><\/a><span>:<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_5.png\" width = \"778\" height = \"360\" alt = \"\" style = \"vertical-align: baseline; width: 778px; height: 360px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>And for a Simscape Multibody block in the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2023a\/simulink\/slref\/propertyinspector.html\"><span>Property Inspector<\/span><\/a><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>  <\/span><img class = \"imageNode\" src = \"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_6.png\" width = \"682\" height = \"250\" alt = \"\" style = \"vertical-align: baseline; width: 682px; height: 250px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Now it's your turn<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Have a look at the R2023a <\/span><a href = \"https:\/\/www.mathworks.com\/help\/simulink\/release-notes.html\"><span>release notes<\/span><\/a><span> and let us know in the comments below which R2023a features you would like to see covered on this blog.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><\/div>\r\n<\/div><script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/simulink\/files\/WhatsNewR2023a_1.gif\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>Each new release, I am always excited to share my favorite new Simulink features. As Simulink and our modeling and simulation technologies continue to mature, I am noticing that my release highlights... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/simulink\/2023\/03\/20\/whats-new-in-simulink-r2023b\/\">read more >><\/a><\/p>","protected":false},"author":41,"featured_media":13977,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/posts\/13974"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/comments?post=13974"}],"version-history":[{"count":2,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/posts\/13974\/revisions"}],"predecessor-version":[{"id":14001,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/posts\/13974\/revisions\/14001"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/media\/13977"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/media?parent=13974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/categories?post=13974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/simulink\/wp-json\/wp\/v2\/tags?post=13974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}