自動車業界では、MATLAB/Simulinkをベースとしたモデルベース開発が有望視されています。言うと、適用方法によってはそれなりに工数削減や品質向上が出来ると言う事が実証されてきたからです。一方ではモデルベース開発によって逆に工数が増加してしまうケースもあり、まだまだ課題が山積みです。これは、ユーザー様にとっては課題が山積みと言えますが、私にとっては仕事のネタが山積みとも言えます。このブログでは、そういったモデルベース開発に関わっていく中で思った事について書いていきます。更新日は月曜日+気が向いた日です。Simulink基礎編6回目です。(忙しい忙しいって言ってたら、前回の基礎編5から、もう3か月も経ってるんですねぇ。お盆休み中も、結局ずっと仕事してました。この企画、もうちょっと続ける予定です。)これまでは、対象となるモデルやブロックの名前が存在している状態で、それらのパラメータを読み書きしていました。「そもそもブロックが無いから、追加したいんだけど・・・」という場合、パラメータの読み書きではどうにもなりません。そこで、今回からはブロックなどを追加したり削除したりしてみましょう。ブロックを追加するさて、突然ですが手でブロックを追加するときは、どうするでしょう?Simulinkライブラリブラウザからドラッグ&ドロップするかモデルからCtrlキー押しながらドラッグ&ドロップするかといった所ですよね。ドラッグ&ドロップですから、追加というより「コピー」と言った方がしっくり来ます。SimulinkのAPIを使う場合も、これと同じ考え方をします。コマンドを使いますが、その構文は次の通りです。上に、Constantという名前で配置します。addといいつつ、やっている事はコピーですね。ブロックを削除する手でブロックを削除するときは、ブロックを選択したうえでDeleteキーを押したりしますよね。これは本当に直観的ですね。削除対象を指定するだけです。中身はからっぽでOKです。次に、Simulinkライブラリブラウザを立ち上げておきます。結果3:Constantブロックがもう1つ追加されましたちょっと見にくいですが、同じ場所にConstantブロックが2つ重なっています。コピーを2回繰り返しました。コマンドでは、これらを削除しました。ここでちょっと気になるのが先ほどのエラー。コピー先の名前が重複していたらエラーになる。当たり前といえば当たり前ですが、なんとも不便な仕様です。ところが、さすがはマスワークスさん、そのあたりの抜かりはありません。実は、「重複していたら、勝手に名前変えといて?」という指定ができます。モデルに何もない状態で以下のコマンドを実行するとこうなります。