3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MATLAB/SimulinkAdvent Calendar 2024

Day 20

Simulink モデルを以前のバーションに変換する方法

Last updated at Posted at 2024-12-20

 たまに使用するこの機能.すぐに忘れてしまうので,忘備録として投稿します.

 MATLAB の M ファイルはテキストなので,古いバージョンで開くことがでできます.それに対して,Simulink モデルを古いバージョンで開くためには,作成したバージョン以降で Simulink モデルを開き,以下のように「以前のバージョンにエクスポート」という作業を行う必要があります.

image.png

image.png

変更したい Simulink モデルがたくさんあったり,複数のバージョンに変換したいような場合,いちいち,マウスでこのような作業をするのはめっちゃ面倒.

 というわけで,ここでは,コマンドベースで Simulink モデルを以前のバーションに変換する方法を説明します(需要は少ないでしょうが).

 カレントディレクトリを

  • $\verb+D:\Advent_Calendar_2024+$

image.png

とし,

  • $\verb+D:\Advent_Calendar_2024\R2024b\hoge.slx+$(以前のバージョンで使用できるように変換)
  • $\verb+D:\Advent_Calendar_2024\R2024b\design.m+$(単なるコピー)

を以前のバージョン用に変換します.そのために,スクリプト M ファイル

$\verb+trans_ver_simulink.m+$
mkdir R2018a
mkdir R2022a
mkdir R2023a
mkdir R2024a

open_system('R2024b/hoge.slx');
Simulink.exportToVersion('hoge','R2018a/hoge_R2018a.slx','R2018a')
Simulink.exportToVersion('hoge','R2022a/hoge_R2022a.slx','R2022a')
Simulink.exportToVersion('hoge','R2023a/hoge_R2023a.slx','R2023a')
Simulink.exportToVersion('hoge','R2024a/hoge_R2024a.slx','R2024a')
close_system('R2024b/hoge.slx');

copyfile('R2024b/design.m','R2018a/design.m');
copyfile('R2024b/design.m','R2022a/design.m');
copyfile('R2024b/design.m','R2023a/design.m');
copyfile('R2024b/design.m','R2024a/design.m');

を実行します.その結果,

trans_ver_simulink.m の実行結果
>> trans_ver_simulink
エクスポートに成功しました: Simulink R2018a で使用するために 'D:\Advent_Calendar_2024\R2018a\hoge_R2018a.slx' が作成されました。
ans =
    'D:\Advent_Calendar_2024\R2018a\hoge_R2018a.slx'
エクスポートに成功しました: Simulink R2022a で使用するために 'D:\Advent_Calendar_2024\R2022a\hoge_R2022a.slx' が作成されました。
ans =
    'D:\Advent_Calendar_2024\R2022a\hoge_R2022a.slx'
エクスポートに成功しました: Simulink R2023a で使用するために 'D:\Advent_Calendar_2024\R2023a\hoge_R2023a.slx' が作成されました。
ans =
    'D:\Advent_Calendar_2024\R2023a\hoge_R2023a.slx'
エクスポートに成功しました: Simulink R2024a で使用するために 'D:\Advent_Calendar_2024\R2024a\hoge_R2024a.slx' が作成されました。
ans =
    'D:\Advent_Calendar_2024\R2024a\hoge_R2024a.slx'

image.png

という結果が得られます.

 古いバージョン R2018a 用に変換された Simulink モデルを実行すると,正常に動作することが確認できます.

image.png

 以上,小ネタでした.

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?